ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

AI漫剧制作完整流程:从ComfyUI工作流到角色一致性批量生成

AI漫剧制作完整流程:从ComfyUI工作流到角色一致性批量生成 AI 漫剧制作最近确实很热。很多人看到别人用一套流程就能批量产出短剧、漫剧第一反应是“这事我也能干”。真到动手的时候才发现剧本可以用豆包写配音可以用 TTS 合成剪辑用剪映也能顶住但到了 ComfyUI 生成静帧这一步很多人直接被卡住。不是图崩了就是人物前后长相差太远两个场景之后主角已经换了个人。这篇文章想讲清楚一件事一条能跑的 AI 漫剧生产链路到底应该怎么搭。我不会重复“AI 时代内容创作变简单”这种话而是把番茄、豆包、ComfyUI、红果这几个环节各负责什么、整个流程怎么串、最容易踩的坑在哪里拆开讲一遍。如果你正准备做 AI 漫剧或者已经在尝试但始终觉得流程不顺畅这篇文章值得读完。它会帮你从“单个工具能用”走到“全套流程能跑”重点解决三个问题可控的角色一致性、批量的静态帧生产、以及从静帧到成片的工程化衔接。1. 一条完整 AI 漫剧链路先看全局1.1 四个工具到底各管哪一段很多人把 AI 漫剧想象成一个工具从头干到尾其实不是。它是一条分工明确的生产线每一环都有专门的工具。番茄主要负责内容和故事层面的定位。番茄等小说阅读平台上有大量适合改编成漫剧的短篇故事很多创作者从这里找灵感、找故事骨架。豆包承担剧本、分镜脚本、提示词优化的辅助创作。它本身不是画图工具而是内容策划和文本生成的助手。你需要把故事转成一场一场的分镜再把分镜转成能直接喂给绘图模型的提示词这一步用豆包能节省大量时间。ComfyUI整条链路里技术含量最高的一环。它负责把提示词变成漫画静帧并且通过工作流的方式把“生成一张图”变成“批量生成一批风格统一的图”。这是 AI 漫剧能不能规模化的分水岭。红果典型的内容分发出口。红果短剧这类平台对短剧、漫剧内容有持续需求是成片发布和测试反馈的地方。1.2 生产链路全景把漫剧生产拆成六个环节大概是这样故事选题 → 剧本创作 → 分镜设计 → 静态帧生成 → 视频化 → 配音剪辑成片 (番茄) (豆包) (豆包) (ComfyUI) (图生视频) (配音/剪映等)注意一个关键判断前三个环节是创意工作后三个环节是工程工作。创意工作里 AI 能帮你放大效率但真正决定你能不能“稳定量产”的是后面三个工程环节。特别是 ComfyUI 的静态帧生成它不是只要会文生图就行而是要解决“怎么让一千张图长得像同一个故事里的人物”。1.3 与传统流程的差异传统漫画或动画制作角色设定、原画、上色、补间、配音、剪辑每一环都是人力密集型工作。一个几分钟的短片一个小团队要做几周甚至几个月。AI 漫剧把“原画”这个环节变成了“模型生成 批量控制”。过去画一百张角色图要画师一张一张画现在是用工作流一次跑几十张再用 LoRA、参考图、ControlNet 等机制保证长相稳定。效率提升非常明显但代价是你需要学 ComfyUI 工作流需要理解模型、提示词、采样器这些概念。一句话总结AI 漫剧没有消灭工作量而是把工作量从“手工绘制”转移到了“搭建工作流和排查问题”。2. 为什么真正的难点在“可控生成”2.1 你实际要解决三件事做 AI 漫剧真正要解决的不是“图能不能生成”而是三个更现实的问题。第一是角色一致性。一个漫剧有主角、配角每一集可能几十个分镜。如果主角第 3 个分镜和第 20 个分镜长得不一样观众一眼就能看出来。这需要你在模型选择、LoRA 训练、参考图控制上下足功夫。第二是批量生产能力。一部漫剧可能上百个分镜每个分镜要生成多张候选图才能筛。如果一张一张手动调提示词、手动点生成效率太低。ComfyUI 最有价值的地方就是可以把工作流固化成模板然后通过脚本循环调用 API一次性跑完几十个分镜。第三是静帧到视频的桥接。漫画静帧是静态的漫剧需要动态画面。你要决定每一帧是直接用图生视频工具生成小段视频还是用镜头缩放、平移的运镜效果在剪辑软件里做“伪动态”。这个决策会影响整个生产速度。2.2 角色一致性不是“多写两句提示词”很多新手以为只要在提示词里写“red hair, blue eyes, black jacket”就能保证角色统一。实际上模型很难靠文字描述记住一个具体长相。更稳妥的做法是组合使用LoRA用十几张同一角色的图片训练一个小型 LoRA让模型“认识”这个角色。参考图在 ComfyUI 工作流里加入参考图输入让每一张生成图都参考主角的设定图生成。ControlNet控制画面构图和姿势保证同一分镜的构图稳定。固定 Seed 策略同一场景相同 Seed 会生成相似画面可以用来微调细节而不是推倒重来。这四项是 AI 漫剧出图的核心方法论后面章节会再展开。2.3 常见误区只调提示词不稳固结构我见过不少创作者在 ComfyUI 里反复改提示词试图解决“人物不像”问题。结果往往是一会儿像、一会儿不像非常不稳定。提示词只能影响生成的方向不能精确锁定外貌。真正的稳定来自两个地方一是模型本身的风格方向二是 LoRA、参考图、ControlNet 这类结构性控制手段。如果你只靠提示词就相当于在沙滩上盖楼。3. ComfyUI 环境准备与模型组织3.1 部署方式怎么选ComfyUI 的部署主要有三种方式适合不同人群。第一种整合包。国内社区比如秋叶整合包把 Python、依赖、常用模型组织好了下载解压就能用适合新手快速跑通。整合包的好处是省去环境折腾坏处是升级和排错时内部结构需要花时间理解。第二种官方源码手动部署。适合已经熟悉 Python 环境的用户。git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI pip install -r requirements.txt python main.py优点是最新、可控缺点是环境问题要自己解决比如 PyTorch 版本、CUDA 版本不匹配会让你启动即失败。第三种Docker 部署。适合团队统一环境和服务器部署。ComfyUI 社区有一些成熟镜像但显卡直通和模型挂载需要额外配置复杂度较高。从实战角度看个人学习和单机生产用整合包最快工程团队更推荐官方源码 固定版本依赖。3.2 目录结构与模型放置ComfyUI 的模型目录结构决定了你能不能快速找到模型、排查路径错误。建议保持默认结构ComfyUI/ ├── models/ │ ├── checkpoints/ # 主模型决定整体画风 │ ├── loras/ # 角色 LoRA 和风格 LoRA │ ├── controlnet/ # ControlNet 模型 │ ├── ipadapter/ # 图像参考相关模型 │ └── vae/ # VAE负责图像解码 ├── input/ # 参考图、遮罩等输入文件 ├── output/ # 生成结果 ├── custom_nodes/ # 第三方自定义节点 └── workflows/ # 建议自建存放工作流 JSON 存档主模型选择直接决定你出图的画风。画写实漫剧和画日系漫画用的模型完全不同画国漫风格又有更接近的专属模型。你可以根据实际效果多试几个不要从众轻易“迷信”某个模型。3.3 硬件要求ComfyUI 对硬件有两个硬指标显存和内存。8GB 显存能跑需要控制分辨率在 1024 附近不要把 Batch Size 调太大。12GB 以上显存比较舒服可以同时跑文生图和图生视频的局部片段。16GB 以上显存可以比较轻松地跑批量任务和多个 ControlNet 组合。没有 NVIDIA 显卡时用 CPU 跑不是不行但速度会非常慢几百张静帧基本不现实。如果你只是测试流程可以先用免费在线绘图工具验证思路正式生产再切到本地 ComfyUI。4. 分镜脚本与提示词工程4.1 用豆包辅助写剧本和分镜豆包这类大模型助手在漫剧生产里最适合扮演“编剧助理”的角色。你可以先把故事梗概喂给豆包让它扩展成剧本再进一步拆成分镜脚本。分镜脚本通常包含镜号、景别、画面内容、台词、时长。豆包生成的内容可能不会一次到位需要你主动补充角色设定、场景风格和情绪要求。这很正常提示词工程在文本创作里同样存在。建议让豆包输出的分镜结构如下{ scene_id: 001, shot_type: 中景, visual: 男主角推开房间门看到桌上放着旧照片, character: [男主角, 旧照片], camera: 缓慢推进, dialogue: 你什么时候回来, duration_seconds: 5 }这个结构化输出可以稳定地转成后面绘图用的提示词。4.2 分镜表要工程化个人做项目时分镜表随便写写问题不大一旦要批量生产分镜表就必须工程化。建议用 CSV 维护scene_id,shot_type,visual,character,style_tag,camera,dialogue,seed,duration 001,中景,男主角推门进入房间,男主,cinematic lighting,slow push in,台词A,20250101,5 002,特写,男主角拿起旧照片,男主,close-up,zoom in,台词B,20250102,3这份 CSV 的价值在于它可以同时作为豆包写稿的输入结构、ComfyUI API 批量脚本的读取来源、以及剪辑时的镜头清单。一份文件贯穿整条流程能避免后期素材对不上号的混乱。4.3 提示词模板提示词不需要每次重写。先做一个基础模板再针对分镜替换场景。我建议把正向提示词分成四个区块用英文逗号分隔开人物描述, 场景描述, 画面构图, 画质风格例如young man, short black hair, dark coat, standing at door, bedroom interior, old photo on desk, medium shot, cinematic composition, depth of field, high quality, detailed illustration, coherent lighting反向提示词相对固定bad anatomy, disfigured, extra limbs, blurry, watermark, text, logo, low quality, deformed hands, poor composition这段提示词不是唯一标准但结构可以复用。关键是“人物描述”部分要高度稳定不要频繁变否则角色一致性会崩。5. 核心 ComfyUI 工作流静态帧批量生成5.1 最小文生图工作流在 ComfyUI 界面里新建工作流最小文生图链路包含这些节点Load Checkpoint加载主模型。CLIP Text Encode (Prompt)输入正向提示词。CLIP Text Encode (Negative)输入反向提示词。Empty Latent Image设置宽、高、批次数。KSampler设置采样器、步数、降噪强度。VAE Decode从潜空间解码成图像。Save Image保存图片。初学者最容易忽略的是 KSampler 里seed的作用。固定 seed 时改动提示词能产生相近画面随机 seed 时每次生成变化很大。批量做分镜时我会推荐每个分镜固定一个 seed方便微调接近目标画面而不是每次全随机。5.2 通过 API 批量出图ComfyUI 的 Web 界面适合交互调试但真正生产时要走 API。先启动服务python main.py --listen 127.0.0.1 --port 8188然后在 Python 脚本里提交工作流。你需要先把工作流从界面导出为 API 格式 JSON在 Workflow 菜单里选择 Export API然后写脚本import json import urllib.request SERVER 127.0.0.1:8188 def queue_prompt(workflow): data json.dumps({prompt: workflow}).encode(utf-8) req urllib.request.Request( urlfhttp://{SERVER}/prompt, datadata, headers{Content-Type: application/json}, ) with urllib.request.urlopen(req) as resp: return json.loads(resp.read().decode(utf-8)) if __name__ __main__: with open(workflow_api.json, r, encodingutf-8) as f: workflow json.load(f) # 这里假设你的工作流 JSON 里 KSampler 的节点 id 是 3 workflow[3][inputs][seed] 20250101 result queue_prompt(workflow) print(result)这段代码的作用是把工作流 JSON 加载进来修改 seed然后提交给 ComfyUI 排队执行。执行结果不会保存文件路径真正的图片会输出到ComfyUI/output目录。5.3 批量跑分镜的完整思路批量生成的关键是把 CSV 分镜表和上面的 API 脚本结合起来。每次从一个分镜行读取提示词和 seed替换到工作流模板里然后提交任务。import csv import json import time import urllib.request SERVER 127.0.0.1:8188 def queue_prompt(workflow): data json.dumps({prompt: workflow}).encode(utf-8) req urllib.request.Request( urlfhttp://{SERVER}/prompt, datadata, headers{Content-Type: application/json}, ) with urllib.request.urlopen(req) as resp: return json.loads(resp.read().decode(utf-8)) def set_prompt_input(workflow, node_id, field, value): workflow[node_id][inputs][field] value with open(storyboard.csv, encodingutf-8) as f: reader csv.DictReader(f) for row in reader: with open(workflow_api.json, encodingutf-8) as fw: workflow json.load(fw) # 替换正向提示词、反向提示词和 seed set_prompt_input(workflow, 6, text, row[prompt_template]) set_prompt_input(workflow, 7, text, row[negative_prompt]) set_prompt_input(workflow, 3, seed, int(row[seed])) print(f提交分镜 {row[scene_id]} ...) queue_prompt(workflow) time.sleep(2) # 避免提交过快 print(全部任务已提交可在 ComfyUI 界面查看进度)这段代码对新手来说可以先用前一小节的最小示例跑通 API 调用再扩展成批量版。注意节点 id比如6、7、3不是固定的它来自你导出的workflow_api.json每个人可能不同。一定要先打开 JSON 文件确认你要修改的节点 id 是什么。5.4 角色一致性控制落地如果你已经训好了角色 LoRA把它放进models/loras目录然后在工作流里加入LoraLoader节点。批量脚本的思路不变只要额外给 LoRA 节点设置权重即可。如果你暂时不想训练 LoRA也可以先尝试参考图方式。把角色设定图放到ComfyUI/input目录在工作流里加入图像加载节点并用 IPAdapter 或 ControlNet 的 Reference 模式做参考控制。效果可能没有 LoRA 稳定但胜在无需训练。实际操作建议是主力角色先用 LoRA 保住一致性配角可以用参考图降低工作量。如果每个角色都训练 LoRA成本会比较高。6. 从静帧到视频视频生成与配音剪辑6.1 静帧视频化静态帧生成完毕后下一步是把静帧变成视频。常见路径有两条。第一条是在 ComfyUI 内部接 AnimateDiff 或类似模型直接生成短视频片段。优点是流程统一但从静帧生成视频对显存要求高且角色一致性风险会放大出了问题排查成本高。第二条是把静帧导出交给专门的图生视频工具处理。你可以选择 Runway、Pika也可以选择国内用户更常用的可灵、即梦等视频生成平台。操作方式类似上传静帧、写一句运动描述、生成短片段。更稳妥的建议如果你只是想快速验证权限短片节奏其实可以通过小幅缩放、平移来模拟运镜。这样能在不依赖视频生成模型的情况下把漫画静帧做成有动态感的漫剧。6.2 配音与字幕配音可以用豆包等 TTS 工具生成。把分镜表里的台词整理成脚本逐句生成音频然后按分镜时长对齐到时间线。字幕最省力的做法是用剪映等工具的自动识别字幕功能。生成后手动校对一遍即可不要直接依赖识别结果专有名词和人名容易出现错误。6.3 素材合并与文件整理当每个分镜都生成了一段片段后需要用剪辑工具把它们串起来。命令行场景下ffmpeg 可以快速做无损合并# 在 filelist.txt 中按顺序写入文件名 # file scene_001.mp4 # file scene_002.mp4 ffmpeg -f concat -safe 0 -i filelist.txt -c copy merged_episode.mp4注意-c copy只适合相同编码、相同分辨率的片段合并如果片段参数不一致需要重新编码否则时间轴会错乱。7. 常见 ComfyUI 报错与排查方法ComfyUI 最让人头疼的就是“节点在执行过程中发生错误”。这个错误其实是总提示真正的原因要从控制台日志里看。问题现象可能原因排查方式解决方案节点在执行过程中发生错误日志提示模型加载失败模型文件缺失或路径错误看报错日志中提到的文件路径把模型放到正确的models子目录确认文件名和节点配置一致CUDA out of memory显存不足分辨率过高、Batch Size 过大看任务开始时的显存占用降低分辨率、Batch Size 设为 1或换轻量模型生成速度异常慢采样步数过高、硬件较旧查看采样步数和输出时间合理降低步数使用蒸馏模型开启 xformers 或 TensorRT人物角色漂移缺少 LoRA、参考图或提示词描述不稳对比前后画面角色特征加入角色 LoRA固定主力角色的外观描述输出图片全是黑图VAE 加载异常或模型通道问题看 VAE 节点是否连接在 Checkpoint 后显式加载 VAE或更换 VAE 文件工作流导入后节点是红色缺少自定义节点看节点标题提示缺什么插件到custom_nodes安装对应节点重启 ComfyUI如果遇到“节点在执行过程中发生错误”第一步不是去查节点参数而是回到终端窗口看堆栈日志。日志通常会把报错定位到具体节点和具体原因。这个习惯比记住任何排查技巧都重要。8. AI 漫剧生产的最佳实践8.1 素材命名规范当你有几百张图片、几十个音频、几十个片段时命名就是生产力。推荐统一规则分镜编号_场景_版本。例如scene_001_room_v1.png scene_001_room_v2.png scene_002_door_v1.png不要用“最终版”“最新版”这类名字。剪映或剪辑软件里素材面板一旦乱掉返工成本极高。8.2 工作流版本管理ComfyUI 工作流 JSON 是文本文件完全可以纳入 Git 管理。只要模型名、节点配置不变同一份工作流就可以反复产出。建议每次修改结构后都保存一份带日期的版本workflows/ ├── 20250101_basic_txt2img.json ├── 20250102_add_lora.json └── 20250103_add_controlnet.json你还可以在workflow_api.json同目录放一份README.md写清楚这份工作流依赖哪些模型、哪些 custom nodes、节点 id 分别代表什么。这对团队协作尤其重要。8.3 批量任务与进度管理批量生成不是点一下“运行”就什么都不管了。任务多的时候建议按“分镜批次”提交一批一停查看成果再推进。一次提交几千个任务如果中间某个模型路径写错浪费的排队时间很可观。定期清理output目录把已选中的候选图移动到selected目录保持工作目录整洁。8.4 版权与原创红线这一条必须强调AI 漫剧的分发平台对版权和原创性有明确要求。做原创剧本没问题但如果参考已有小说、漫画、动画作品或使用他人角色设定需要先确认授权边界。批量生成时不要使用与真实人物、品牌相关且未经授权的提示词。本地部署也一样工具自由不等于内容可以随意使用。8.5 质量评估与迭代漫剧和短视频一样成片质量不是一次跑出来的。建议每一集成片后记录三个指标角色一致性主角是否在每个镜头里都稳定。节奏与时长每个分镜时长是否合理观众会不会觉得拖沓。画面质量有没有明显的手部崩溃、文字乱码、构图失衡。把这些指标反馈到工作流参数和提示词模板里下一集会比上一集稳定得多。9. 总结与下一步学习方向AI 漫剧制作看起来是一套“AI 工具串起来”的流程但实际上是一条需要工程化思维的流水线。番茄负责选题方向豆包负责把故事变成剧本和分镜ComfyUI 负责用稳定可控的方式批量生成静帧红果等平台负责成片分发。这里每一环都不算特别难但组合在一起时最容易出问题的就是 ComfyUI 环节——模型路径、节点配置、批量调用、角色一致性每一个细节都能影响整条产线。如果你是新手建议不要一上来就跑全套。先跑通一条最小链路用豆包写 5 个分镜用 ComfyUI 出 5 张图再随便用一个工具把它们拼成一段 30 秒的短视频。流程通了再逐步加入 LoRA、参考图、批量 API 和图生视频。下一步学习方向可以按顺序推进先是 ComfyUI 的基础工作流和 API 调用再是 LoRA 训练和角色一致性然后是 ControlNet 对构图和姿态的控制最后是视频生成和剪辑衔接。这些内容每一项单独拎出来都够写几篇文章但核心始终是“稳定、可控、可批量”这六个字。把这六个字想明白你的 AI 漫剧流程就真正跑起来了。
返回列表