[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-76224":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":12,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":14,"stars7d":14,"stars30d":15,"stars90d":13,"forks30d":13,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":13,"starSnapshotCount":13,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},76224,"shortdrama-pipeline","drasstry\u002Fshortdrama-pipeline","drasstry","Backend-first AI pipeline for Chinese short-drama script, character, and video generation",null,"Python",106,8,0,1,47,3,47.06,false,"main",[21,22,23,24,25,26,27],"ai-video","cli","fastapi","seedance","seedream","short-drama","volcengine","2026-06-12 04:01:21","# Shortdrama Pipeline\n\n中文 | [English](README.en.md)\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fdrasstry\u002Fshortdrama-pipeline\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fdrasstry\u002Fshortdrama-pipeline\u002Factions\u002Fworkflows\u002Fci.yml)\n![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.11%2B-blue)\n![Backend First](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbackend-first-green)\n![Chinese Short Drama](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FChinese-short--drama-red)\n\n**Shortdrama Pipeline** 是一个面向中文短剧生产的后端自动化流水线。输入一个主题，它会帮你生成中文剧本、主体人物形象、分镜视频，并把视频片段拼接成单集成片。\n\n它不是一个大而全的平台，而是一条能跑起来、能审核、能续生产、能接真实模型的最小可用链路。你可以先用 CLI 在本地验证，再逐步接 Web 前端、审核台或内部生产系统。\n\n## 一眼看懂\n\n```mermaid\nflowchart LR\n  A[\"输入主题\\n时长 \u002F 集数 \u002F 风格\"] --> B[\"Seed 2.0\\n生成中文剧本\"]\n  B --> C{\"人工审核剧本\"}\n  C -->|批准| D[\"Seedream\\n逐角色生成人物图\"]\n  C -->|拒绝| B\n  D --> E{\"人工审核人物\"}\n  E -->|批准| F[\"Seedance 2.0\\n生成 shot 视频\"]\n  E -->|拒绝| D\n  F --> G[\"ffmpeg\\n按顺序拼接\"]\n  G --> H[\"每集成片\\nproject\u002Flatest\"]\n```\n\n核心原则很简单：**剧本确认后才生成人物，人物确认后才生成视频。** 这样可以避免在错误剧本或错误人物上浪费昂贵的视频额度。\n\n## 适合谁\n\n- 想快速验证 AI 短剧生产链路的开发者。\n- 想批量尝试中文短剧题材、人设和反转钩子的内容团队。\n- 想把 Seed \u002F Seedream \u002F Seedance 串成稳定后端流程的工程团队。\n- 想先用 CLI 和 API 跑通后端，再慢慢做前端界面的产品团队。\n\n## 现在能做什么\n\n- **中文剧本生成**：调用 Seed 2.0 生成剧名、人设、分集剧情和 shot 分镜。\n- **脚本质检**：生成 warning-only 的脚本质量报告，提示 shot 时长、动作过载、对白过载等问题。\n- **人工审核门槛**：剧本和人物图都有明确审核状态，不会自动越过关键节点。\n- **人物图生成**：Seedream 一次生成一个角色，适配“主体人物一致性”的生产需求。\n- **视频生成和拼接**：Seedance 2.0 按 shot 生成视频，ffmpeg 按 `shot_order` 拼接成片。\n- **项目续生产**：同一项目可沿用最近一次已批准的剧本和人物形象继续生成。\n- **fake 模式**：没有 API Key 也能跑完整状态机、CLI、Artifact 和测试。\n\n## 5 分钟跑起来\n\n下面是一条从零开始的本地路径，适合第一次接触这个项目的人。\n\n### 1. 准备环境\n\n你需要：\n\n- Git\n- Python 3.11 或更高版本\n- ffmpeg，真实视频拼接时需要\n\nmacOS 可以这样安装依赖：\n\n```bash\nbrew install git python ffmpeg\n```\n\n如果你已经有 Git、Python 和 ffmpeg，可以跳过这一步。\n\n### 2. 下载代码\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fdrasstry\u002Fshortdrama-pipeline.git\ncd shortdrama-pipeline\n```\n\n### 3. 创建 Python 虚拟环境\n\n```bash\nPYTHON_BIN=$(command -v python3.13 || command -v python3.12 || command -v python3.11 || command -v python3)\n$PYTHON_BIN -c 'import sys; assert sys.version_info >= (3, 11), \"需要 Python 3.11 或更高版本\"'\n$PYTHON_BIN -m venv .venv\nsource .venv\u002Fbin\u002Factivate\n```\n\n看到终端前面出现 `(.venv)`，说明虚拟环境已经启用。如果这里提示 Python 版本不够，macOS 用户可以先运行 `brew install python`，再重新执行上面的命令。\n\n### 4. 安装项目\n\n```bash\npip install -e \".[dev]\"\n```\n\n安装完成后，确认 CLI 可用：\n\n```bash\nshortdrama --help\n```\n\n### 5. 进入交互菜单\n\n```bash\nshortdrama shell\n```\n\n然后按菜单操作：\n\n1. 选择 `创建新项目\u002F新任务`\n2. 输入短剧主题、时长、集数\n3. 查看生成的剧本\n4. 批准剧本\n5. 查看人物图\n6. 批准人物\n7. 等待视频生成和拼接\n\n第一次建议先不配置 API Key，让系统使用 fake 模式跑通流程。fake 模式不会调用线上模型，也不会消耗额度。\n\n## 跑真实模型\n\n如果你要调用火山方舟的真实模型，复制配置模板：\n\n```bash\ncp .env.example .env\n```\n\n编辑 `.env`：\n\n```env\nARK_API_KEY=你的火山方舟密钥\nSHORTDRAMA_PROVIDER_MODE=ark\nSHORTDRAMA_OUTPUT_DIR=outputs\nSHORTDRAMA_DB_PATH=outputs\u002Fshortdrama.sqlite3\nARK_BASE_URL=https:\u002F\u002Fark.cn-beijing.volces.com\u002Fapi\u002Fv3\n```\n\n先跑一个低成本连通性测试：\n\n```bash\nshortdrama smoke-ark\n```\n\n通过后再进入真实生产：\n\n```bash\nshortdrama shell\n```\n\n## 常用命令\n\n如果你喜欢直接敲命令，可以不用交互菜单。\n\n```bash\n# 创建任务\nshortdrama create\n\n# 查看项目和任务\nshortdrama projects\nshortdrama jobs\nshortdrama status \u003Cjob_id>\nshortdrama project-dashboard \u003Cproject_id>\nshortdrama project-latest \u003Cproject_id>\n\n# 审核剧本\nshortdrama review \u003Cjob_id>\nshortdrama approve-script \u003Cjob_id>\nshortdrama reject-script \u003Cjob_id> --reason \"反转不够强\"\nshortdrama regenerate-script \u003Cjob_id> --notes \"女主更强势，前三秒更抓人\"\n\n# 审核人物\nshortdrama approve-characters \u003Cjob_id>\nshortdrama reject-characters \u003Cjob_id> --reason \"人物辨识度不够\"\nshortdrama regenerate-character \u003Cjob_id> \u003Ccharacter_id>\n\n# 基于已有项目继续生产\nshortdrama continue-project \u003Cproject_id> --notes \"沿用已批准剧本和人物\"\n\n# 失败任务处理\nshortdrama failed-summary \u003Cjob_id>\nshortdrama retry-failed \u003Cjob_id>\nshortdrama cleanup-failed \u003Cjob_id>\n```\n\n## 项目状态\n\n你可以用 `shortdrama project-dashboard \u003Cproject_id>` 查看项目当前走到哪一步。\n\n常见阶段：\n\n- 剧本生成中\n- 剧本待审核\n- 剧本已批准\n- 人物生成中\n- 人物待审核\n- 人物已批准\n- 视频生成中\n- 已完成\n\n只有已经批准的剧本和人物会沉淀到 `project\u002Flatest`，后续 `continue-project` 也只会复用这些已确认资产。\n\n## 输出在哪里\n\n默认输出目录是 `outputs\u002F`：\n\n```text\noutputs\u002F\n  projects\u002F\n    \u003Cproject_id>\u002F\n      latest\u002F\n        script\u002F\n        characters\u002F\n        videos\u002F\n      runs\u002F\n        \u003Cjob_id>\u002F\n          input.json\n          status.json\n          script\u002F\n          characters\u002F\n          shots\u002F\n          videos\u002F\n          harness\u002F\n          logs\u002F\n```\n\n`outputs\u002F` 不会提交到 git，因为里面可能有模型输出、日志、SQLite 数据库和视频文件。\n\n## API 模式\n\n除了 CLI，这个项目也提供 FastAPI 服务，方便后续接前端或外部调度系统。\n\n```bash\nshortdrama-api\n```\n\n创建任务示例：\n\n```bash\ncurl -X POST http:\u002F\u002F127.0.0.1:8000\u002Fjobs \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"topic\":\"替嫁新娘逆袭\",\"duration_seconds\":60,\"episode_count\":1}'\n```\n\n## 配置项\n\n常用环境变量：\n\n```env\nARK_API_KEY=你的火山方舟密钥\nSHORTDRAMA_PROVIDER_MODE=auto\nSHORTDRAMA_OUTPUT_DIR=outputs\nSHORTDRAMA_DB_PATH=outputs\u002Fshortdrama.sqlite3\nARK_BASE_URL=https:\u002F\u002Fark.cn-beijing.volces.com\u002Fapi\u002Fv3\nSHORTDRAMA_SEEDANCE_CONCURRENCY=2\nSHORTDRAMA_SEEDANCE_POLL_INTERVAL_SECONDS=15\nSHORTDRAMA_SEEDANCE_MAX_WAIT_SECONDS=1800\n```\n\n`SHORTDRAMA_PROVIDER_MODE` 支持：\n\n- `auto`：有 `ARK_API_KEY` 时使用线上 Ark，否则使用 fake provider。\n- `ark`：强制使用线上 Ark，缺少 Key 会直接报错。\n- `fake`：强制使用本地 fake provider。\n\n## 开发和测试\n\n```bash\nsource .venv\u002Fbin\u002Factivate\nPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 pytest -q\npython -m compileall src\u002Fshortdrama_pipeline\n```\n\n测试默认使用 fake provider，不会调用线上模型。\n\n## 安全提醒\n\n不要提交真实 API Key。真实密钥只放在本地 `.env`，仓库只提交 `.env.example`。\n\n如果真实 Key 曾经出现在聊天、截图、日志、commit、issue 或 PR 中，请立即到火山方舟后台轮换密钥。\n\n更多说明见 [SECURITY.md](SECURITY.md)。\n\n## 文档\n\n- 架构说明：[中文](docs\u002FARCHITECTURE.md) \u002F [English](docs\u002FARCHITECTURE.en.md)\n- GitHub 发布指南：[中文](docs\u002FGITHUB_UPLOAD.md) \u002F [English](docs\u002FGITHUB_UPLOAD.en.md)\n- 安全说明：[SECURITY.md](SECURITY.md)\n\n## 当前边界\n\n这个项目优先解决后端自动化链路，还不是完整 SaaS 平台。当前不包含：\n\n- 多用户权限\n- Web 可视化编辑器\n- 云端对象存储集成\n- 支付和额度管理\n- 视频时间线编辑器\n\n这些能力可以在后端状态机稳定后继续扩展。\n","Shortdrama Pipeline 是一个面向中文短剧生产的后端自动化流水线，能够根据输入的主题生成剧本、人物形象和视频片段，并最终拼接成完整的短剧。该项目使用 Python 开发，基于 FastAPI 构建，集成了 Seed 2.0、Seedream 和 Seedance 2.0 等 AI 模型来实现从剧本创作到视频生成的全流程自动化。其核心特点在于通过人工审核确保每个阶段的质量，避免在错误的基础上浪费资源。适用于希望快速验证 AI 短剧生产链路的开发者、内容团队以及需要将多个 AI 服务整合为稳定后端流程的工程团队。此外，项目支持 CLI 和 API 方式运行，方便用户在本地或逐步扩展至前端界面进行测试与部署。",2,"2026-06-11 03:54:48","CREATED_QUERY"]