W
AI-Wiki
SOURCE

我用 Hermes Agent + ComfyUI 搭了一条「AI 拍短剧」流水线(基础版) 摘要

文档概览

本文要解决的问题,不是“写一个提示词,让 AI 生成一段视频”这种单点操作,而是把 一句话创意→剧本→分镜→关键帧→视频→质检 串成一条尽量全自动走完的流水线。

作者给出的总体链路是 5 个生产环节加 1 个输出结果:

  1. 剧本策划:由 Hermes Agent 先把一句话创意拆成可拍的短剧结构。
  2. 分镜提示词:由 Agent 把剧情转译成可用于画面生成和视频工作流的提示词包。
  3. 关键帧生成:先生成关键帧图片,作为后续视频合成的节奏锚点。
  4. ComfyUI 视频合成:由 ComfyUI 调用视频工作流,把关键帧送入图生视频链路。
  5. 后期质检:由 Agent 自动检查输出质量。
  6. 最终输出:产出一条 MP4 视频。

作者明确区分了核心分工:

  • Hermes Agent 是编排与控制层,负责拆解创意、生成提示词、维护角色一致性、调用 API、检查输出质量。
  • ComfyUI 是渲染执行层,负责真正把画面做出来。
  • Agent 不负责“画图”本身,实际出画面和视频渲染由模型工作流承担。

关键事实

1. 目标是端到端短剧流水线,而不是单点视频生成

作者一开始的动机,是看到像 Hermes 这样的 Agent 框架已经能产出文字和图片内容,于是继续追问:视频是否也能纳入同一类 Agent 编排能力中。

因此本文的重点不是证明某个模型单次生成视频有多强,而是强调:当前 AI 视频工具虽然不少,但“从灵感到成品”的各环节串联,仍缺少成熟方案。本文是在这个背景下做的一次初期尝试,可作为参考模板。

2. 基础版示例采用四宫格分镜结构

文中给出的示例创意是一句话剧情:

一个程序员在咖啡店写代码时,电脑突然蓝屏,咖啡洒了,最后发现是老板关的服务器。

这句话不会直接进入视频生成,而是先被 Agent 拆成 四宫格分镜。该结构包含 4 个分镜,每段 5 秒,总时长约 20 秒,并且每一段都承担明确戏剧功能:

分镜时长戏剧功能内容
15 秒开场钩子程序员在咖啡店专注写码,先建立情境
25 秒冲突触发电脑蓝屏,角色表情从专注转为崩溃
35 秒高潮发展咖啡意外翻倒,矛盾进一步爆发
45 秒收尾反转老板现身关服务器,形成反转或悬念收尾

也就是说,这条基础版短剧并不是任意拼接的 4 段画面,而是按照“开场钩子→冲突触发→高潮发展→收尾反转”的戏剧节奏组织起来的。

3. Agent 对每个分镜都要产出完整提示词包

作者没有把分镜只理解为一句画面提示词,而是让 Agent 为每段分镜生成多种产物,至少包括:

  • 画面描述
  • 动作线
  • TTS 旁白文本
  • BGM 情绪点位标注
  • 英文 Prompt

这里的英文 Prompt 不是可有可无,而是因为后续视频工作流需要英文输入。

4. Agent 要把剧本语言转译成可执行的视频生成语言

在“分镜提示词”阶段,Hermes Agent 的角色更像导演或转译器。它不是停留在剧情文本层,而是要为每个分镜生成结构化提示词包,让后续工作流可以直接消费。

文中给出了一段典型结构,包含:

  • 分镜标题,例如 Focused Coding in Cozy Coffee Shop
  • 英文 Prompt,描述角色、场景、光线、镜头运动、质感与分辨率,如 cinematic lighting4kslow camera pan right
  • 中文画面描述,例如中景、暖色调、侧后方视角、咖啡店安静舒适、屏幕柔和发光、咖啡热气上升
  • 角色参照路径,用于绑定到角色资料
  • 色彩基调,例如“暖橙 + 柔和棕色”
  • 动作线,例如手指持续敲击、镜头缓慢横移、阳光投影缓慢移动、蒸汽轻微上升
  • TTS 旁白
  • BGM 情绪点位,例如 0s - 5s:轻松 lofi + 咖啡店环境音 + 低频暖音垫

这说明本文中的 Agent 编排不是只生成自然语言脚本,而是把剧情拆成了镜头、动作、声音、氛围、提示词等多模态生产指令。

重要细节

1. 跨分镜角色一致性是核心难点

作者特别指出,如果让 Agent 独立生成 4 个分镜的提示词,那么大概率每段里的“程序员”都会长得不一样。这不是局部瑕疵,而是 AI 短剧可用性中的关键问题,因为一旦角色在镜头之间跳变,连续性就会被破坏。

文中给出的基础版解决思路不是复杂模型方案,而是先通过 角色资产库 + 统一角色提示词 维持最基本的一致性:

  • 让每个分镜都自动引用同一份角色专属提示词。
  • 让服装、发型、环境描述保持一致。
  • 不追求像素级一致性,但至少让观感不要跳跃。

作者也明确承认,这种方法不能保证视频模型做到严格一致,只能先在描述层和素材层减少偏移。

2. 角色资产库采用目录化组织,可放进 Git 仓库管理

文中建议把角色进行规范化管理,并给出了一个按目录组织的角色资产库结构。每个角色可以单独存放在仓库中,例如一个“程序员小王”目录下包含:

  • character_bible.md:角色档案
  • ref_photos/:参考照片,包含正脸、侧脸、全身、表情等
  • voice_samples/:各情绪音频样本
  • prompts/:角色专属提示词
  • prompts/main.txt:供 Agent 在各分镜统一引用的主描述

作者给出的参考文件例子还包括:

  • front.jpg
  • side.jpg
  • angry.jpg
  • neutral.wav

这种组织方式的意义在于:

  • 角色档案、参考图、语音样本、专属提示词都能被固定下来。
  • Agent 在生成各分镜时,可自动引用统一描述源。
  • 这些资产可以直接纳入 Git 仓库做版本管理。

也就是说,角色一致性在本文里不是靠“记忆”保证,而是靠目录化资产与固定引用路径来约束。

3. 关键帧阶段不是附属步骤,而是先定节奏的中间层

在进入 ComfyUI 之前,作者要求先生成 4 张关键帧。这一步不是可有可无的预览,而是整个流程中的关键中间层,用来先把节奏和叙事节点定下来。

关键帧顺序被明确写成:

  1. 首帧:建立场景
  2. 发展帧:冲突出现
  3. 高潮帧:矛盾爆发
  4. 结尾帧:反转或悬念

这些关键帧会根据剧本内容生成,然后再送入视频工作流。也就是说,本文采用的是“先用 4 张图确定叙事节奏,再做视频生成”的思路,而不是直接从一句话文生视频。

在工具选择上,作者提到:

  • 可以直接使用 GPT Image 2 出图。
  • 也可以使用一些免费的开源模型,例如 qwen-image。
  • 文生图工作流可以搜索现成方案下载使用。
  • 如果已有 ChatGPT 订阅,也可以直接用它生成关键帧,作者认为效果也不错。

4. ComfyUI 是整套流水线的核心枢纽

作者把 ComfyUI 生成阶段称为“核心环节”与“整套流水线的枢纽”。在这个阶段,Hermes Agent 通过 ComfyUI REST API 发起任务,整体交互形式是:

  • Agent 向 /prompt 提交工作流
  • 同时上传图片和音频文件
  • ComfyUI 在 GPU 上执行渲染
  • 最终输出 MP4

文中说整段交互大概只需要 50 行 Python,核心流程包括 5 步:

  1. 导出 API 格式的 workflow:必须在 ComfyUI 界面中使用 Save (API Format) 导出工作流。
  2. 上传图片:把 4 张关键帧通过 POST /upload/image 上传。
  3. 提交 workflow:把 workflow JSON 连同参数注入后,POST /prompt
  4. 轮询等待:通过 /history/{prompt_id} 轮询,直到返回 status: success
  5. 下载视频:从 /view 拉取最终 MP4。

这里有一个很重要的边界条件:

  • 编辑器格式的工作流,尤其是带 subgraph 的格式,不能直接提交给 API。
  • 必须导出为 API 格式后才能被程序调用。

这是本文中少数明确写出的“不能这样做”的技术约束,属于实际接入时容易踩坑的点。