AI短剧系列 | 第 29 天:效率进阶——从单集到日更的自动化流水线

从”手工搓”第一部 AI 短剧到”日更”稳定输出,中间往往隔着一条鸿沟:工具链分散、参数不可复用、每一集都在重新摸索。本篇系统讲解如何把 ComfyUI、MiniMax H3、LTX 2.3 三大工具整合成可复用的自动化流水线,让单集生产效率从 4 小时压缩到 30 分钟以内,并支撑稳定日更。

一、引言:为什么需要自动化流水线

刚入行的创作者常遇到三个痛点:

  • 参数不稳定:昨天调好的 ComfyUI 工作流,今天换个角色就得重新调 ControlNet 权重。
  • 工具链断裂:ComfyUI 出图、MiniMax H3 分镜、LTX 2.3 生成视频、剪映剪辑,每一步都要人工搬运。
  • 无法日更:单集 3-4 小时,一天最多做 1 集,遇到热点窗口就赶不上。

自动化流水线的目标不是替代创意,而是把重复劳动压缩到最低,让你把精力留给剧本、表演、节奏这些真正决定质量的部分。

AI短剧 第29天

二、核心概念:AI 短剧自动化的三层架构

一条成熟的日更流水线通常分为三层:

层次 职责 典型工具
内容生成层 剧本、分镜、画面、配音 GPT/Claude 剧本模型、MiniMax H3、ComfyUI、LTX 2.3
后期处理层 剪辑、字幕、BGM、封面 FFmpeg、剪映 API、Whisper、ElevenLabs
分发运营层 多平台发布、数据回收、A/B 抖音开放平台、快手开放平台、视频号 API

其中,内容生成层是自动化 ROI 最高的部分,因为它是每集都在重复、且最容易标准化的环节。

2.1 什么是”可复用的工作流”

ComfyUI 的 JSON 工作流、MiniMax H3 的项目模板、LTX 2.3 的提示词预设,本质上都是结构化配置。只要把它们抽离为独立文件,通过参数化输入(角色 ID、剧集编号、分镜脚本),就能实现”换一个 JSON,跑出一整集”。

2.2 数据驱动 vs. 硬编码

错误的做法是把角色名、提示词、镜头时长写死在脚本里。正确的做法是用一份剧集清单 JSON 驱动全流程

{
  "series": "都市逆袭2026",
  "episode": 12,
  "duration_sec": 60,
  "character": {
    "id": "xiaoyan_v3",
    "lora_path": "/models/loras/xiaoyan_v3.safetensors",
    "voice_ref": "/assets/voices/xiaoyan.wav"
  },
  "scenes": [
    {"shot": 1, "desc": "女主深夜办公室加班,眼神疲惫", "duration": 8, "cam": "slow_zoom_in"},
    {"shot": 2, "desc": "电话响起,上司通知明天升职", "duration": 12, "cam": "static"},
    {"shot": 3, "desc": "女主嘴角上扬,望向窗外夜色", "duration": 10, "cam": "pan_right"}
  ]
}

三、实战步骤:搭建一条完整的日更流水线

步骤 1:统一剧本产出格式

用大模型批量生成剧本时,务必约定 JSON Schema,让下游工具能直接解析。以下是一段用于校验剧本格式的 Python 脚本:

import json, sys
from pathlib import Path

SCHEMA = {
    "series": str,
    "episode": int,
    "duration_sec": int,
    "character": dict,
    "scenes": list,
}

def validate(path):
    data = json.loads(Path(path).read_text(encoding="utf-8"))
    for k, v in SCHEMA.items():
        assert k in data, f"缺少字段: {k}"
        assert isinstance(data[k], v), f"字段 {k} 类型错误"
    for s in data["scenes"]:
        assert all(k in s for k in ("shot", "desc", "duration", "cam"))
    print("剧本校验通过:", data["series"], "EP", data["episode"])

if __name__ == "__main__":
    validate(sys.argv[1])

只要剧本符合这个格式,后续所有工具都可以无脑接入,不必为每集写专属适配代码。

步骤 2:ComfyUI 工作流参数化

ComfyUI 的 API 模式允许通过 JSON 传入参数,替代手动拖拽节点。以下是一个调用示例:

# 通过 API 提交 ComfyUI 工作流
curl -X POST http://127.0.0.1:8188/prompt 
  -H "Content-Type: application/json" 
  -d @/data/ep12/comfy_workflow.json 
  -o /data/ep12/comfy_response.json

# 轮询任务状态
TASK_ID=$(jq -r '.prompt_id' /data/ep12/comfy_response.json)
until curl -s http://127.0.0.1:8188/history/$TASK_ID | jq -e '.status.status_str == "success"' >/dev/null; do
  sleep 2
done
echo "ComfyUI 完成,图片位于 output/images/"

关键是把 comfy_workflow.json 中的角色 LoRA 路径、提示词、种子做成模板变量,脚本在运行时替换。

步骤 3:MiniMax H3 分镜批量生成

MiniMax H3 的核心价值是剧本直接驱动分镜。批量生成时,建议用一个 Shell 循环串联 API:

#!/usr/bin/env bash
set -euo pipefail

EPISODES="10 11 12 13 14 15"

for EP in $EPISODES; do
  SCRIPT="/data/scripts/ep${EP}.json"
  echo "[EP${EP}] 提交 MiniMax H3 分镜任务..."
  curl -s -X POST https://api.minimaxi.com/h3/projects 
    -H "Authorization: Bearer ${MINIMAX_KEY}" 
    -H "Content-Type: application/json" 
    -d "$(jq '. | {script: ., style: "cinematic_realism"}' "$SCRIPT")" 
    > "/data/h3/ep${EP}_submit.json"

  TASK_ID=$(jq -r '.task_id' "/data/h3/ep${EP}_submit.json")
  echo "[EP${EP}] task_id=${TASK_ID},等待渲染..."
  sleep 60
done

echo "全部 EP 已提交,稍后轮询状态"

步骤 4:LTX 2.3 图生视频批量渲染

ComfyUI 或 MiniMax 输出的分镜图,直接喂给 LTX 2.3 图生视频,可以保持角色和场景一致。使用配置驱动的多镜头渲染:

# ltx_batch.yaml
model: ltx-2.3-large
base_seed: 20260916
batch:
  - scene: 1
    image: /data/ep12/frames/shot01.png
    duration_sec: 8
    motion: slow_zoom_in
    guidance_scale: 5.5
  - scene: 2
    image: /data/ep12/frames/shot02.png
    duration_sec: 12
    motion: static
    guidance_scale: 4.8
  - scene: 3
    image: /data/ep12/frames/shot03.png
    duration_sec: 10
    motion: pan_right
    guidance_scale: 5.2
output_dir: /data/ep12/clips
# 提交批量任务
ltx-cli --config ltx_batch.yaml --concurrency 3

--concurrency 3 让多镜头并行渲染,4090 上大约 15 分钟能出 3 段 10 秒片段。

步骤 5:后期自动化——FFmpeg 一站式合成

生成好的片段、配音、BGM、字幕合并成成片,用一段 FFmpeg 脚本搞定:

#!/usr/bin/env bash
# stitch_ep.sh - 合成 EP12 成片
set -euo pipefail
EP=12
IN_DIR="/data/ep${EP}"
OUT="/data/final/ep${EP}.mp4"

# 拼接所有镜头 + 配音 + 字幕
ffmpeg -y 
  -f concat -safe 0 -i "${IN_DIR}/clips_list.txt" 
  -i "${IN_DIR}/voice/final_voice.mp3" 
  -i "${IN_DIR}/bgm/office_night.mp3" 
  -i "${IN_DIR}/subs.zh.srt" 
  -filter_complex "[0:v]scale=1080:1920,setsar=1[vid]; 
                   [1:a]volume=1.0[voice]; 
                   [2:a]volume=0.15[bgm]; 
                   [voice][bgm]amix=inputs=2[aout]" 
  -map "[vid]" -map "[aout]" 
  -c:v libx264 -preset medium -crf 20 
  -c:a aac -b:a 128k 
  -vf "subtitles=${IN_DIR}/subs.zh.srt" 
  "${OUT}"

echo "成片输出: ${OUT}"

步骤 6:一键流水线脚本

把以上步骤封装成 daily_pipeline.sh

#!/usr/bin/env bash
# daily_pipeline.sh - AI 短剧日更流水线
set -euo pipefail
EP=${1:?用法: daily_pipeline.sh <episode_number>}

echo "==> [1/5] 生成剧本 (EP${EP})"
python scripts/gen_script.py --ep ${EP} --out /data/scripts/ep${EP}.json
python scripts/validate.py /data/scripts/ep${EP}.json

echo "==> [2/5] MiniMax H3 分镜"
bash scripts/h3_submit.sh ${EP}
bash scripts/h3_wait.sh ${EP}

echo "==> [3/5] ComfyUI 出图"
python scripts/comfy_batch.py --ep ${EP}

echo "==> [4/5] LTX 2.3 图生视频"
ltx-cli --config /data/ep${EP}/ltx_batch.yaml --concurrency 3

echo "==> [5/5] FFmpeg 合成"
bash scripts/stitch_ep.sh ${EP}

echo "✅ EP${EP} 已完成,成片位于 /data/final/ep${EP}.mp4"

四、常见问题

Q1:日更时如何保证角色一致性不崩?

核心答案是固定角色 LoRA + 参考图 + ControlNet 三件套。日更流水线里这三者必须固化到工作流模板,绝不能每集重训 LoRA。如果角色需要升级,走”新角色版本”分支,而不是就地修改。

Q2:MiniMax H3 和 ComfyUI 二选一还是都要?

推荐分工使用:MiniMax H3 负责分镜和长视频节奏(剧本到镜头),ComfyUI 负责画面质量微调(LoRA 精细控制、特定画风)。两者不冲突,串联使用反而互相补足。

Q3:LTX 2.3 图生视频的镜头衔接跳变怎么办?

关键在首尾帧衔接。可以在 FFmpeg 阶段加入 0.3-0.5 秒的交叉溶解过渡:

ffmpeg -i shot01.mp4 -i shot02.mp4 
  -filter_complex "[0:v][1:v]xfade=transition=fade:duration=0.4:offset=7.6[out]" 
  -map "[out]" -c:v libx264 -crf 20 out.mp4

Q4:并发渲染 GPU 爆内存怎么办?

--concurrency 参数按显存调整:24G 显存建议 3,48G 建议 6。同时监控 nvidia-smi,出现 OOM 立即降并发。

Q5:自动化之后如何避免”机械感”?

在关键镜头保留人工介入点。建议在流水线中设计 3 个 Review Gate:剧本初稿、分镜首镜、成片配音,人工过这三关,其余环节全部自动化。

五、总结

从单集手工到日更流水线,本质是把创意从执行中剥离

  • 创意留在剧本和关键镜头设计里;
  • 重复劳动交给脚本、API、YAML 配置;
  • 三层架构(内容生成 / 后期处理 / 分发运营)独立演进;
  • Review Gate 保证人工把关关键节点。

跑通这套流水线后,单集生产时长可以从 4 小时降到 30 分钟以内,并且换剧不需要重写脚本——只要替换剧集清单 JSON。这才是 AI 短剧从”手工活”进化到”内容工厂”的分水岭。

下期预告:第 30 天《AI 短剧精通之路——总结、避坑与进阶规划》,全系列收官篇,回顾 30 天学习路径,梳理常见踩坑清单,并给出下一阶段的进阶规划路线。

微信二维码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容