简介:漫剧大师极速版是一套基于Coze平台构建的AI漫剧/AI短剧自动化工作流,包含13个精心编排的节点,深度整合LLM文本解析、AI分镜与AI生图等能力,帮助创作者完成从剧本输入到视频成片的完整生产闭环。资源包共53个文件,以Python脚本(34个)、JSON配置文件(6个)、Shell脚本(5个)和Markdown文档(4个)为主,其中JSON文件对应各LLM节点的编排配置,Python脚本负责生图、分镜与视频合成逻辑,Shell脚本则便于一键部署与运行。压缩包仅94KB,结构清晰,包含config、src、tools等模块,可直接导入Coze Bot进行低代码流程重组。目前已有59人学习下载。通过这套工作流,读者可以获得完整可运行的工作流源码、节点级配置说明、跨平台资产同步与Seedance/火山方舟适配方案,以及经过2700小时验证的提示词模板与异常熔断机制,大幅压缩制作周期,适合具备一定Coze使用经验的中高级创作者。
1. 这包能吃吗:一个 13 节点的 Coze 工作流,凭什么省掉你大半天“黏流程”时间
很多做 AI 漫剧的人卡住的点,不是不会用 Seedance,而是写脚本、画分镜、生成视频这三级调用之间的胶水层。LLM 输出的是文字,生图插件输出的是图片,Seedance 又要求你提供一张可作首帧的图或一段精心构造的镜头语言;手工改字段、抄提示词的工程量,并不比干活本身少。这个 zip 里就是一个导入 Coze 后可识别的 13 节点工作流:输入故事主题、视频时长和画风关键词,前面六个节点做 LLM 编排与结构化拆分,中间四个节点处理 AI 生图和视频提示词组装,最后调用 Seedance 出片,一次性拿到视频地址、分镜表和发布文案。它对你的价值不在于“开箱即用”,而在于你只需要改少数参数,就能把漫剧题材从一个样,换到另一个样。
2. 拆掉 13 个节点:从一句主题到“首帧图+视频提示词”,整条线其实是四层
2.1 先摊开看:13 个节点里谁在写故事,谁在出图,谁在做胶水
zip 里的工作流节点,按功能排一遍就是这个表:
| 节点序号 | Coze 节点类型 | 叫什么 | 干什么 |
|---|---|---|---|
| 01 | Start | start | 接收主题、集长、风格词、镜头总数 |
| 02 | 变量聚合 | 全局参数 | 把画面比例、默认负向词、生成数量聚合成公共变量 |
| 03 | 大模型 | 漫剧编剧 | 把主题扩写成 5-6 段叙事脚本,含对白 |
| 04 | 大模型 | 分镜导演 | 把每段叙事拆成 4-6 个连续镜头 |
| 05 | 大模型 | 分镜画师 | 把镜头文本转写为 AI 生图的提示词 |
| 06 | 代码 | JSON 清洗与解析 | 从 05 的原始输出中剥离 Markdown,拆成数组 |
| 07 | 代码+循环 | 镜头队列 | 生成逐镜头的任务列表,控制并发与顺序 |
| 08 | 插件 | 文生图 | 为每个镜头生成一张 720x1280 的首帧图 |
| 09 | 条件分支 | 生图校验 | 检查图片 url 是否有效,失败走重试逻辑 |
| 10 | 代码 | 视频词组装 | 把“图片地址+场景描述+运镜词”拼成 Seedance 入参 |
| 11 | 插件 | Seedance 视频 | 生成视频片段,返回 video_url 和生成状态 |
| 12 | 大模型 | 发布文案 | 生成标题、简介和标签 |
| 13 | End | 输出 | 汇总输出视频地址、分镜脚本、文案 |
这 13 个节点按逻辑可以分成四层:输入与参数层(1、2),LLM 编排层(3、4、5、12),媒体生成层(8、9、11)以及胶水层(6、7、10)。你要长期维护的不是胶水层——洗数据、拼条目都是固定动作,代码节点多数时候不必改。真正决定漫剧好不好看的,是 03、04、05 这三个 LLM 节点的提示词,和 08、11 两个媒体节点的参数。这也是为什么导入之后不建议立刻跑完整集,先把每个大模型节点单独点开看一遍,看它把人设写到什么程度。
提示:如果你的 Coze 是中文版,“大模型”节点对应“大模型”插件,英文版叫 LLM。zip 里字段名写成 03_script_writer 之类不影响使用,导入后在节点面板里把引用关系对一遍就顺了。
2.2 导入 Coze 的实操:JSON 导入三步,外加一次“插件认领”
导入方法不复杂:先在 Coze 控制台新建一个空白工作流,右上角选“导入”或“导入 JSON”;把 zip 解压出的 JSON 文件选进去;等节点都铺开之后,把凡是标红、提示“插件未绑定/未授权”的节点重新绑成当前账号可用的同名插件。
但先别急着点运行。导入后做一次“字段体检”,重点看三处:一是 06 号代码节点的入参变量名是否连到了 05 号节点的输出;二是 10 号代码节点里image_url读的是不是 08 号节点返回的url字段,而不是text;三是 11 号 Seedance 节点的width/height是否写成了 720/1280。这一步能筛掉九成运行报错。JSON 文件里节点间的映射关系长这样:
{ "name": "漫剧大师极速版_13节点", "nodes": [ {"id": "n02", "type": "variable_aggregator", "params": {"ratio": "9:16"}}, {"id": "n03", "type": "llm", "system_prompt": "你是漫剧编剧……", "temperature": 0.7}, {"id": "n08", "type": "image_gen", "params": {"width": 720, "height": 1280}} ], "edges": [ {"from": "n01", "to": "n02", "mapping": {"topic": "topic"}}, {"from": "n03", "to": "n04", "mapping": {"script_text": "input_text"}} ] }如果你打开看到的是这种结构,说明字段比较规整。edges里的mapping就是节点之间的传参关系,界面上画的每根连线最终都会落到这一段。真正容易出问题的不是 nodes 本身,而是 mapping 里字段名的拼写——image_url和imageUrl一差,代码节点就拿不到值,这种错在界面上还不太容易看出来。
2.3 为什么选 Coze 而不是 Dify 或 ComfyUI
同样是工作流,三家平台的气质完全不同。做 AI 漫剧这条链路,要的是“LLM 讲故事 + 生图锁角色 + 视频模型让画面动起来”,Coze 对这三方的封装是最齐的:AI 生图插件、Seedance 相关插件都做成了节点,鉴权、回调、排队都由平台处理,你不需要去拼一堆第三方 API。Dify 的强项在知识库与 RAG 流程,适合做长上下文的问答型应用,放到漫剧这种媒体管线里,图像和视频工具链的循环处理比较弱,每一步都得多写一层工具。ComfyUI 在图像生成上的节点自由度当然最高,但它平时处理的是 latents、checkpoints 这些底层对象,你要在里面做多轮剧本编排,得先把文生图节点当文本编辑器使,过程很别扭。
所以我的结论倾向是:走 Coze 跑这套漫剧工作流,不是因为它最强大,而是因为字节体系内的视频模型和大模型接口离得最近,后续换题材、换画风,都只在提示词和参数两个维度上做调整,不用碰底层的请求体。对做内容的人来说,这个改动成本才是最有价值的。
3. LLM 编排层:三个大模型节点怎么做到各管一段、互不干扰
3.1 编剧、导演、画师拆开之后,镜头质量才稳定
你可能会问,为什么要把“剧本、分镜、图提示词”拆成三个独立节点,而不是一个节点全包。我的经验是不建议合成一个大节点:让语言模型同时想剧情矛盾和镜头景别,它的注意力会被稀释,分镜描述很容易变成“角色站在空地发呆”这种没有画面感的句子。更稳妥的分工是:03 号节点只负责人物动机和情节推进;04 号节点把情节翻译成动作+构图;05 号节点再把动作构图翻译成生图提示词。
这包工作流里做得比较对的一点,是给编剧节点加了“叙事段不出现镜头语言”的约束。编剧节点输出 80-120 字一段的叙事段,里面禁止出现“特写、摇镜、推近”这类词;分镜节点的输出强制包含 shot_number、scene_description、camera_language 三个字段,并且一节只写 4-6 个镜头。拆成两段有几层作用:一是每个模型节点的任务边界清晰,不会互相抢话;二是出问题时看日志能快速定位是故事写得不好,还是分镜拆得不够细;三是后续换题材时,你只需要改编剧节点的提示词,导演和画师基本不动。
这里给一个可以拿到自己工作流里试的简化版本,编剧节点的系统提示词:
你是漫剧编剧。把用户主题扩展为 5 集迷你漫剧脚本。 每集输出:集数、标题、叙事段(不出现镜头语言)、对白 2 句。 叙事段控制在 120 字以内,只交代人物行为与情绪。分镜导演节点的系统提示词:
你是分镜导演。基于叙事段拆出 4-6 个镜头。 每个镜头只输出 JSON 对象,字段包括: shot_number、scene_description、camera_language。 scene_description 写动作和画面,camera_language 写“推近/拉远/环绕/固定”。 不要输出 Markdown,不要输出解释。其实我自己调工作流时,也踩过编辑权限模糊的坑。有一次编剧节点自作主张在叙事段里加了一句“特写她流泪的脸”,结果分镜节点不敢再拆,整段就变成一个大特写。叙事段只聊故事,分镜交给导演去拆,职责边界一定要立住。
3.2 结构化输出与字段清洗:Markdown 是代码节点最大的敌人
LLM 节点聊完了,下一个问题接踵而至:你要求模型输出 JSON,但模型经常骨子里带着 Markdown 习惯。我在重跑这类工作流时,遇到过 05 号节点把结果包在 ```json 代码块里,导致 06 号代码节点json.loads直接报错。
解决分两层。第一层,在 LLM 节点参数里打开“结构化输出”,并把 JSON Schema 设成严格模式,只保留必填字段;你可以在节点配置里勾选“响应格式 JSON”,并打开“仅 JSON”。第二层,无论你配不配置 Schema,06 号代码节点都保留一段清洗逻辑:
import json, re raw = r_input['llm_raw_text'] raw = re.sub(r'^```(?:json)?', '', raw.strip()).strip() raw = re.sub(r'```$', '', raw.strip()).strip() try: data = json.loads(raw) except json.JSONDecodeError: idx = raw.rfind('}') if idx == -1: raise data = json.loads(raw[:idx + 1]) if isinstance(data, list): return {'shot_array': data} else: return {'shot_array': data['shots']}上面这段代码的逻辑很直接:第一步剥掉 Markdown 代码块标记;第二步尝试解析,失败就找到最后一个}截断重试,这能兜住模型 token 截断留下的半截 JSON;第三步兼容“模型返回数组”和“模型返回对象”两种形态。这里r_input['llm_raw_text']是上游 LLM 节点输出变量的名字;如果你在 Coze 里重命名了节点,这个变量名也要同步改,否则字段不存在时,代码节点会直接报 KeyError。
3.3 分镜粒度与上下文窗口:别让单次输出顶着上限跑
每节 4-6 个镜头看起来是个保守的数字,但这是刻意保的。如果你让分镜节点一次去拆连续五集,它会为了撑满输出而生成大量空镜头,或者在中途被 token 上限截断,只返回 20 个镜头里的一半。Coze 的 LLM 节点对上下文超长有容错,但它不保证输出质量,更不保证 JSON 完整。
我建议的参数范围是:编剧节点 temperature 0.8,让情节有一点意外感;分镜导演节点 0.5,保持镜头逻辑稳定;图提示词节点 0.4,因为生图模型对随机风格词很敏感,如果画面风格来回跳,再降到 0.2。每一轮 LLM 调用只处理一个叙事段,宁可让工作流循环多跑一轮,也别赌模型一次能输出完整长 JSON。这样做还有个附带好处: 06 号代码节点断行时更容易定位是哪一个镜头出了问题,不用对着二十个镜头一个个猜。
4. 媒体层实战:从静态分镜图到 Seedance 视频片段的几个关键拼接
4.1 生图阶段的画面,是给视频当“首帧”用的,不是当海报
把工作流跑顺之后,你会发现生图节点和视频节点之间其实是“首帧锁定”关系。Seedance 这类视频模型支持图文两条入口,但漫剧这种连续镜头多、人物要稳定出现的内容形态,我优先走“先生图、再图生视频”的路线:文字直接生成视频时,模型对角色脸的复现很玄学,每次生成都像开盲盒;而先把一个人物表情画出来,再让 Seedance 按这张首帧动起来,人物接续的逻辑就稳定得多。
所以媒体层的第一条原则:08 号生图节点选的尺寸,不按封面比例来,按视频比例来。竖屏漫剧直接锁定 720x1280 或 9:16,提示词里还要带“no text, no watermark”,否则画面上出现的字会被带入视频首帧,生成后再想抹掉就难了。
一个干净的首帧提示词大致是这样:
单人半身像,侧方窗光,室外背景虚化,服装细节清晰,画面无文字无水印,电影感调色其中“服装细节清晰”值得保留,它能在多镜头切换时减少“换套装”的违和感,视频模型对衣物的重绘能力通常弱于对脸的重绘。生图的清晰度直接决定视频模型的发挥空间,这一步省不得。
4.2 第 10 号代码节点:怎么把图和动作描述合成 Seedance 入参
这个节点本质是一段数据搬运工:把 08 号节点返回的图片地址、04 号节点的运镜词、05 号节点的画面描述,合并成一个 Seedance 的请求载荷。它的代码逻辑一般是:
def assemble(shot_list, image_list): payloads = [] for shot, img in zip(shot_list, image_list): prompt = f"{shot['scene_description']},镜头{shot['camera_language']},人物自然动作" payloads.append({ "image_url": img["url"], "prompt": prompt, "negative_prompt": "低分辨率, 画面抖动, 文字, 水印, 人体畸形", "width": 720, "height": 1280, "duration": 5 }) return {"payloads": payloads}这段代码的逻辑:用zip把镜头与首帧图一一配对,video_prompt由画面描述与运镜词拼成,并尾加“人物自然动作”一类行为词。这类词对 Seedance 2.0 系列模型尤其有效——它更愿意理解“镜头如何动”,而不是“情绪是什么”。负向提示词那一段注意用英文逗号,中文逗号有时会被合成进画面变成文字水印。duration 默认 5 秒,高燃爽剧可以压到 4 秒;再短剪辑会抢叙事,再长又会让单镜头迭代成本变高。width、height 必须和生图节点一致,至少比例一致,否则就等着看拉伸后的“胖脸”视频。
4.3 条件分支与重试:单个镜头失败,别让整场工作流陪跑
媒体层最容易出现的问题是“一个镜头炸穿全屏”:用户输入了 20 个镜头,第 17 张图生成失败,如果不加判断,循环卡在那里,后面的节点全部排队空转。09 号节点就是为这种情况设的:一个条件分支,检查生图是否返回了有效 url 和 status;失败时把该镜头标记为 retry,重试一次;仍失败就跳过,并把缺失镜头记录进输出列表。
这里我有一条经验性的判断方法:不要用插件的 status code 当唯一成功标准,很多插件的 status 永远是 0。实际要看返回体里有没有 url 字段,以及 url 是否非空。插件对你是黑匣子,但日志和输出结构不骗人,多抓两次返回就能明白。
提示:运行日志里偶尔会出现 LLM 节点报“provider rejected the request schema or tool payload”。这一般不是提示词问题,而是 LLM 节点打开了工具调用。如果只是做视频媒体验证,把那几个 LLM 节点的“工具”勾选去掉,问题会明显减少;换成 JSON 严格 schema 后,请求才合规矩。第 5 章会把这类问题展开成单条踩坑记录。
5. 避坑与常见问题:把“漫剧大师极速版”重新跑一遍,我记下的五条踩坑记录
这章把导入这包工作流时最容易撞上的问题,按现象、原因、解决排给你。都是实际跑过的记录,照着查即可。
5.1 插件节点全部标红:这不是 JSON 的问题,是插件归属问题
现象:导入后生图和视频节点出现红色警告,提示“插件未绑定”或“当前空间未授权”,连不上模型服务。
原因:工作流导出时携带的插件归属,与当前登录账号所在空间不一致;中文版和国际版的同名插件 ID 也不同。
解决:不用去改 JSON。直接在标红插件上点“更换插件”,重新选择当前空间可用的“文生图”和“Seedance 视频生成”,然后重新映射一次输入输出字段。注意把url、image_url对牢。这个动作几分钟能完成,但能省下后面一大把排查时间。
5.2 LLM 报错“provider rejected request schema or tool payload”
现象:03、04、05 号节点运行时,日志出现“llm request failed: provider rejected the request schema or tool payload”,工作流停在这一步。
原因:节点同时开启了工具调用和 JSON 严格输出,模型无法同时满足两套约束;或者 JSON schema 里写了过多枚举限制,模型采到的字段不在枚举范围内。
解决:先取消节点里的“工具调用”开关,只保留“JSON 模式”。如果业务确实需要工具,就换成支持 function calling 的模型,并把 schema 尽可能最小化——只定义必填字段,不给取值范围。这是所有语言模型节点最值得先做的减法。
5.3 视频画面被拉伸:生图比例和视频比例没对上
现象:Seedance 生成的视频人物变宽或变矮,显然不是 9:16 构图。
原因:08 号生图节点用了默认 1:1 画幅,但 11 号视频节点的 width/height 是 720/1280,视频模型只能把 1:1 的图拉成 9:16。
解决:第 08 号节点尺寸改为 720x1280;同时检查第 10 号代码节点里,是否把生图返回的 size 字段原样放进视频 prompt。补充一个细节:看日志时注意图片 url 后缀参数,有些 CDN 会拼接?size=1_1之类的标识,别被它迷惑,要以实际像素为准。
5.4 JSON 被截断,06 号代码节点报 JSONDecodeError
现象:分镜数量一多,LLM 输出停在半截 JSON 上,06 号节点的json.loads直接抛错。
原因:模型单次输出 token 到达上限被截断,返回文本末尾只有半个字段名。
解决:工作流层面,把第 04 号节点限制为“每次只拆一个叙事段”,确保单次输出不超过 4-6 个镜头;代码层面,把 3.2 节的rfind('}')兜底逻辑接上去。这个兜底不能保证数据完整,但它能保证“一个镜头失败不拖垮全片”。
5.5 长时间排队后拿不到 video_url
现象:Seedance 节点跑 5-10 分钟,最后返回 timeout 或“排队中”,视频地址拿不到。
原因:视频生成是异步排队型服务,当同一时间段任务量大,同步等待的节点会超时。
解决:先小批量跑 3-5 个镜头,确认服务响应正常后,再放整集;同时把节点的超时时间调大。如果你在一个空间里并发跑多个工作流,也会互相挤占资源,建议并发任务控制在 2 个以内。这不是工作流模板的问题,是平台排队资源的问题,别冤枉提示词。
6. 落地调整:换一种漫剧题材,我改得最频繁的四个位置
工作流跑通只是开始,真正考验的是改它换题材的时候。下面几个位置是我改得最多、效果也最明显的,按优先级排序。
6.1 改“编剧人设”比改“画风词”更能改变口味
遇到新题材,我会优先动第 03 号编剧节点,而不是去改那么多图提示词:
| 调整目标 | 第 03 号编剧节点 | 第 05 号图提示词节点 |
|---|---|---|
| 古风虐恋 | 主角关系设为“立场对立,命运被误拉线牵连” | 加入“古装、长襟、逆光、工笔感” |
| 都市轻喜剧 | 对白改成“机锋对话,两句话内必须抛出一个笑点” | 加入“高饱和度、明快、广角小畸变” |
| 赛博剧情 | 世界观约束设为“近未来、雨夜、霓虹广告” | 加入“赛博朋克、蓝色冷调、低角度打光” |
理由很简单:05 号节点的风格词只要 2-4 个,就能提供视觉识别度;但“情绪戏”还是“爽剧节奏”这套东西,是由编剧节点的约束决定的。只改画风词、不改人物关系,出来的漫剧就像一个换了滤镜的旧故事。
6.2 换题材后,强制做一次 3 镜头试拍
直接整集跑是最浪费时间的。我现在换题材后的做法是:起步前手动填一个只有 3 个镜头的短测试,把 Start 节点的“分镜数”改为 3,先跑一遍,检验三件事:生图是否正常拿到 720x1280;代码节点是否把 image_url 正确塞进 payload;Seedance 是否返回可播放的 video_url。这个过程 5-10 分钟,比 20 个镜头跑完再排查快一个数量级。
6.3 预留一个“动作动词”锚点,避免视频像 PPT
我碰过一次教训:人物多、对白密的一集,分镜节点生成的运镜词全是“特写”,画面动作幅度太小,视频生成后像静态图。从那以后我每次改完提示词,都强制在分镜导演节点里加一句“每个镜头必须包含一个动作动词或运镜动词”,并且在整集输出前先跑一次 3 镜头试拍。这个小习惯帮我挡下了很多次“生成出来全是 PPT”的尴尬,希望也能帮到你。
本文还有配套的精品资源,点击获取