| name | aliang-shortvideo |
| description | 短剧全流程制作流水线——把一句话灵感逐步做成可拍/可播的短剧:① 剧情大纲 → ② 分集剧本(含台词) → ③ 分镜表 → ④ 用百炼 bl CLI 批量生成每镜关键帧图片 → ⑤ 图生视频合成最终成片。支持多题材(草根逆袭/复仇打脸/都市甜宠/悬疑反转/家庭伦理/古装重生/战神赘婿/搞笑沙雕),支持按单镜指定时长(5s/10s/15s)。每阶段产出后暂停等用户确认再继续。⚠️ **视频生成费钱:开发/测试/演示阶段默认只产出视频命令、不实跑,需用户显式确认要为某段付费才生成**。当用户说"做短剧""短剧剧本""短剧分镜""把这个点子做成短剧""短剧出图""短剧成片"时使用。 |
短剧全流程制作流水线
把一句话灵感做成可播短剧,五阶段、每步暂停确认:
① 剧情大纲 → ② 分集剧本(台词) → ③ 分镜表(枢纽) → ④ 批量出图 → ⑤ 图生视频(成片)
⚠️ 视频生成费钱。①~④ 可放心跑;⑤ 图生视频默认不自动实跑——开发/测试/演示时只产出每段的 bl video 命令交给用户,或等用户显式确认要为某段付费,再逐段生成。功能要做全,钱不替用户烧。
前置
bl(百炼 CLI)可用并已登录(bl auth status 可查)。出图阶段需要它。
- 开工先确认 4 件事,其余用默认:① 一句话灵感(必问);② 题材(用 AskUserQuestion 给 3-4 个高频项让用户选,见
references/genres.md);③ 总时长(用 AskUserQuestion 给 15s / 30s / 60s + 自定义;用户已在灵感里说了时长就别再问);④ 画风(用 AskUserQuestion 从 references/styles.md 的 22 个预设里让用户挑,分写实/动漫/3D-CG/插画/风格化 5 类;按题材把最搭的放第一标「(推荐)」。问画风时务必明确邀请上传参考图:在选项里加一项「📎 我发一张参考图(照着这张的画风做)」,并提示用户可直接把图片拖/粘贴进对话、或给本地路径/URL。用户发了图就走参考图模式,见下条)。画风是画面质量的头号变量,必须开工就定,别拖到出图。比例默认竖版 9:16、单镜默认 5s,用户没要求就别追问。
- 时长换算:图片张数 ≈ 总时长 ÷ 5(每 5s 一镜一张)。15s≈3 张、30s≈6 张、60s≈12 张。总时长定了,镜数就定了。
- 可选·参考图:用户甩了参考图(海报/截图/角色图)时,别只靠肉眼翻译——① 用
bl vision 把它读成一段精准的 style 串;② 把图路径填进 storyboard.json 的 style_ref,出图脚本会用 bl image edit 直接迁移这张图的画风,还原度更高。两者可并用。
工作流
阶段 ① 剧情大纲
- 确认题材后,读
references/genres.md 取该题材的爽点库 + 结构模板 + 红线。
- 抽爽点:跑
python3 scripts/pick_beats.py --genre <题材>(真随机抽 8-12 个,避免套路雷同)。
- 按该题材结构写约 500 字纯叙事大纲,融入抽到的爽点,遵守反套路 + 内容健康红线。
- 输出大纲 + 列出本次用的爽点 + 逆袭/反转路径标注。
- 暂停:请用户确认大纲走向,改完再进下一阶段。
阶段 ② 分集剧本
把大纲扩成可拍剧本:
- 按节奏切场(每场一个地点+冲突单元),标注 场景 / 人物 / 动作 / 台词。
- 台词口语化、短、有冲突感;旁白克制。
- 黄金 3 秒原则:第一场就抛冲突/悬念。
- 短剧分集可选:若用户要多集,每集结尾留扣。
- 暂停:用户确认剧本,再进分镜。
阶段 ③ 分镜表(枢纽)
读 references/storyboard.md,产出两份同源数据:
- 给人看的分镜表格(镜号/时长/景别/运镜/画面/角色动作/台词/情绪)。
- 给脚本用的
storyboard.json(存到项目目录),含全片统一 style、固定 characters[].desc、每镜 image_prompt。
关键:
- 镜数由总时长定:镜数 ≈ 总时长 ÷ 5(单镜默认 5s)。先按这个铺满镜数,再按剧情节奏微调。
- 单镜时长用户可逐镜调:分镜表每镜都有「时长」列,用户可指定某镜 5s/10s/15s。给某镜 10s/15s 时,按 5s 为单位拆成多个子镜(视频阶段每段 5s),图片阶段每个子镜出 1 张——所以加长某镜会增加该镜的图片数。拆完把总时长/总张数报给用户对一下。
image_prompt 只写画面,不写台词/镜号。
- 落实画风:把开工选定的画风预设(
references/styles.md 里的 style 串)写进 storyboard.json 的 style;有参考图就填 style_ref。此处只做应用/微调,不重新问(开工已定)。
- 先定全片
style 串和主角 desc(一致性命脉,见 storyboard.md 第六节)。
- 暂停:用户确认分镜 + 各镜时长 + 画风,再出图。
阶段 ④ 批量出图
画风和分镜定了后,跑脚本批量出关键帧:
python3 scripts/gen_images.py --storyboard <项目>/storyboard.json --outdir <项目>
- 每镜 1 张,存到
<项目>/images/shot_NN.png。
- 脚本自动把
style + 角色 desc 拼进每张图的 prompt,保证画风/长相统一。
- 建议先验主角脸:先只出主角首次登场那 1-2 镜(
--only 1,2),用户确认长相满意,再 --only 跑全量;不满意就调 characters[].desc 或换 --seed 重跑。
- 想更稳的人物一致性:给主角选一张满意的图设为
characters[].ref(基准图),脚本会自动切到 bl image edit 带参考图模式。
- 先
--dry-run 可只看命令不烧额度。
- 暂停:把
images/ 的图按镜号给用户预览确认,满意后进入成片。
阶段 ⑤ 图生视频(最终成片 · 💰 费钱,确认后再跑)
每张关键帧用 i2v 生成一段视频,再按镜号拼成成片。这是真正的最终产物,但每段都要花钱。
🚦 花钱闸门——务必遵守:
- 默认不自动实跑
bl video generate。先为每镜产出对应命令清单(填好 --image/运镜 prompt/时长),交给用户。
- 用户显式确认要为哪些段付费后,再逐段生成(可先只跑 1 段试效果,满意再批量)。
- 开发、调试、演示阶段一律只产命令不实跑,别替用户烧钱。
每段命令(约 5s/段,10s 镜=2 段,与分镜的子镜对应):
bl video generate --image <项目>/images/shot_01.png \
--prompt "<该镜运镜与动作,如:缓慢推近,人物抬头>" \
--ratio 9:16 --duration 5 --download <项目>/video/shot_01.mp4
- 运镜 prompt 取分镜表的
camera + 动作。
- 全部段生成后用 ffmpeg 按镜号拼接成片;要加字幕/转场/配乐可转交
video-editor(Remotion)skill。
- 交付:
<项目>/video/ 各段 mp4 + 拼接成片。
项目目录结构
<项目名>/
├── outline.md # ① 大纲
├── script.md # ② 剧本
├── storyboard.md # ③ 分镜表(人看)
├── storyboard.json # ③ 分镜数据(脚本用)
├── images/shot_NN.png # ④ 关键帧
└── video/shot_NN.mp4 # ⑤ 各段视频 + 拼接成片(💰 确认后才生成)
参考文件
references/genres.md — 8 大题材的爽点库、结构模板、反套路/内容红线、题材选择表。
references/styles.md — 22 种画风预设 style 串(写实/动漫/3D-CG/插画/风格化 5 类,按题材选)+ 参考图模式用法。画质头号变量,定画风时必读。
references/storyboard.md — 分镜表格 + storyboard.json 结构、时长拆分规则、画面 prompt 写法、画风/角色一致性锚点。
scripts/pick_beats.py — 按题材真随机抽爽点。
scripts/gen_images.py — 读 storyboard.json 批量出图(文生图 / 带参考图编辑两种模式)。