AI短剧最近有多火,不用我多说。不少做内容团队的朋友可能都尝试过本地ComfyUI生成视频,但大多数人都卡在一个尴尬的阶段:单张图能出,单段视频也能出,可一旦要凑齐一部短剧的二三十个分镜,手动在ComfyUI里一个节点一个节点地点,人就直接麻了。我自己也是从这条路过来的,算了一笔时间账之后就决定必须做点什么——这才有了用WorkBuddy调度本机ComfyUI做批量视频生成流水线这件事。
这套方案跑通之后,我生成AI短剧的分镜片段基本不再占用整块的盯屏时间,把所有分镜按脚本排好队,一觉醒来就收素材。严格讲,它不是那种动辄上百万的影视生产线,而是“一部普通显卡的电脑 + 两个开源软件 + 一套调度思路”就能跑的实用流水线。这篇文章把我的完整做法、实测耗时数据和踩过的坑都写成文字,给想把手头机器变成“AI短剧出片车间”的人做个参考。
1. 项目概述与整体思路
1.1 AI短剧出片的真实痛点是什么
先别急着聊WorkBuddy和ComfyUI,先说我之前手动出片的状况。AI短剧的镜头和普通短视频不一样,它是按脚本走的:每个场景要出角色图,还要让角色动起来,经常还会补几个不同角度的画面,最后剪辑时再配音、配字幕。这里面的工作量远超“随手生成几条动态图”。
举个例子,一部常见的3分钟AI短剧,镜头数少说30个,多则五六十个。假设你手动在ComfyUI里跑图生视频,一条3-4秒的动态片段生成可能要等待2到5分钟不等。如果你在电脑前守着,哪怕只是傻等,半小时也就搞定10条,期间还不能分心去干别的。更耗时间的是中途调整环节——哪个环节卡模型了、哪个节点参数不对,都要处理,处理完继续等。一天下来,有效产出可能只有10多条可用的镜头,这种效率根本没法满足连载更新需求。
这就是整个项目的出发点:把人工干预的机会压到最低,让机器按清单干活,把“人在盯”变成“人等结果”。
1.2 为什么选择本机ComfyUI作为生成引擎
AI视频生成可以选择云端工具,也可以选择本机ComfyUI。我的选择是本机ComfyUI,原因很简单:安全、可控、低成本。
ComfyUI是一个节点式工作流工具,你可以把整个生成过程拆成可视化节点,文生图、图生视频、视频帧插值等操作都能在同一个工作流里串起来。它对硬件的容忍度也比很多人想象中高,8GB显存级别的显卡就能跑基础模型,16GB显存可以上比较新的视频生成模型。这意味着只要手里有一台游戏级显卡的电脑,基本就拥有了一个“免费的本地视频工作室”。
用云端服务当然省事,但AI短剧这种批量制作场景,云端成本算下来并不便宜。一条视频消耗的计算量比你想象的大,几十条镜头叠加起来,订阅额度可能撑不到三五天。本机ComfyUI虽然有“一次性购买硬件”的成本,但后续每出一张图、一条视频,边际成本几乎可以看作零——这正是“零成本批量流水线”里最核心的逻辑。
1.3 WorkBuddy在整条流水线里扮演什么角色
ComfyUI解决“生成”问题,那谁来负责“调度”?我选的是WorkBuddy。WorkBuddy本质上是一个AI智能体工作台,它能配置技能、定义自动化流程、按顺序调用本机的应用或脚本。你可以简单把它当成一个“管家”,给ComfyUI派活并检查结果。
我见过不少人在本地把ComfyUI玩得很熟,但自动化这一步始终没迈出去,总觉得批量调用要写复杂的Python程序、搭消息队列。其实门槛没那么高。WorkBuddy提供了比较直观的Skill配置方式,允许你定义任务脚本、传入参数、执行命令并获取结果。你不需要去改ComfyUI源码,只需要利用它自带的API,把工作流变成“可以被外部程序呼叫的接口”,剩下的排队、等待、重试、记录产出,全都可以交给WorkBuddy处理。
这样一来,整个流水线的架构图就清晰了:脚本编写剧本分镜清单 → WorkBuddy读取清单 → 逐个调用ComfyUI的API → ComfyUI完成生成并把视频写入指定目录 → WorkBuddy检查文件是否存在、大小是否正常 → 记录结果并继续下一个任务。人工只需要处理第一条任务的成功与否,确保链路是通的,剩余的就交给机器。
2. 环境准备:先把ComfyUI和WorkBuddy的地基打好
2.1 ComfyUI部署选型:官方版还是整合包
本地部署ComfyUI,第一件事是决定用官方源码还是整合包。我的建议是,如果你对Git和Python环境有基本了解,直接使用官方分支,目录结构清晰、插件更新也方便;如果只是想省事,用秋叶整合包这类一键包也完全可以,它在国内网络环境下解决了大量依赖下载问题。
官方部署的流程不复杂:环境中需要有Python 3.10以上版本,然后执行git clone拉取ComfyUI源码,在根目录通过requirements.txt安装依赖。装完之后运行python main.py,默认服务就会在8188端口启动。需要注意一点,首次启动后不要急着装大模型,先把ComfyUI-Manager装上。这个插件是管理后续一切节点的“应用商店”,后续要加什么新模型、新节点,大部分都能通过它一键安装。
整合包的逻辑就更直接了:解压即用,内置了Python运行环境和大部分常用插件。但整合包也有它的弊端——目录结构经过封装,如果以后你想改比较底层的东西,查找文件会比官方版麻烦一些。我的个人建议是,如果你只是做视频生成这件事,没有深度改造需求,秋叶整合包完全够用;如果以后想写自定义脚本,从官方版开始会让你对文件结构更有底。
2.2 为保证AI短剧质量,必须准备哪些插件和模型
ComfyUI装好只是空壳,要让AI短剧出片,还要补两块东西:生成角色和场景的图片模型,以及让图片动起来的视频模型。
图片模型优先选绘图效果好的写实大模型,在Civitai这类社区里能找到很多非常成熟的版本,比如各类写实SD1.5或SDXL风格的模型。我实测下来,SD1.5系写实模型在角色稳定性上依然很能打,而且它对显存的要求更低;SDXL系画质更好,但出图速度稍慢,对显卡要求也更高。你可以按自己的机器配置选,不必盲目追新,关键看角色一致性是否满足你的短剧脚本需求。
视频模型这一环,目前主流选择有SVD、LTX-Video、以及动捕能力更强的AnimateDiff路线。如果只是想快速产出动态镜头,LTX-Video这类新模型的生成速度和画质都很均衡,一次可以生成数秒连续内容;SVD则擅长小幅自然运动,比如角色眨眼、轻微转头的场景,很适合特写镜头。模型准备好后放到ComfyUI的models下对应目录里,之后再按需安装VideoHelperSuite、AnimateDiff等节点插件。
顺带一提,安装模型遇到“缺模型导致流程报错”是非常正常的现象。工作流里任何一个小节点用到某个模型,而你本地没有,执行就会中断。排查的思路是看控制台报错信息,它通常会明确告诉你缺的是哪个目录下的哪个文件,把对应模型下载放进去即可。
2.3 WorkBuddy安装与Skill配置要点
WorkBuddy同样需要安装到本机。不同版本或发行渠道的WorkBuddy菜单布局可能会有差异,但核心逻辑一致:先配置一个“工作区”,然后定义Skill技能来执行任务。你可以在工作区里维护自己的脚本、提示词模板和任务清单,在Skill里写清楚“输入什么参数、执行什么命令、产出的文件去哪里找”。
以我目前的配置为例,我建了一个名为comfy_task的Skill,它的核心脚本逻辑是这样的:
# 伪代码示意:读取任务清单,按行调用ComfyUI API for task in tasks: # 调用ComfyUI的 /prompt 接口提交工作流 response = curl -X POST http://127.0.0.1:8188/prompt -d task_payload # 轮询 /history 接口,等待生成完成 while not task_finished(response.task_id): sleep(5) # 检查输出目录里是否出现了符合规则的新文件 if new_file_exists(expected_path): record_success(task.id) else: record_failure(task.id)当然,实际使用中你未必需要像我一样直接写脚本,WorkBuddy里如果提供了可视化流程编排界面,也可以用积木式节点完成类似流程。但有一条核心原则不会变:你必须确保ComfyUI的API能收到任务、能返回任务ID,并且WorkBuddy能通过这个ID查询到完成状态。这个链路打通了,自动化就成立了一半。
3. 从手动出片到批量流水线的实际搭建
3.1 先把ComfyUI里的单个视频片段跑通
很多人一开始就想着全自动,结果连手动工作流都还没验证过,批量调度一跑就各种报错。我的习惯是,第一步永远是在ComfyUI界面里手动跑通一个最简短的链路。
比如我先跑一个“文生图 → 图生视频”的典型短剧镜头:第一段,输入提示词生成一张角色半身图;第二段,把这张图输入到视频模型节点,生成一段人物轻微动态的视频。这一步的目的不是追求作品质量,而是确认节点的参数是合理可用的,模型没有报错,最终的视频能正常写入output目录。
跑通以后还有一个关键动作:把这个工作流保存下来,再导出成API格式。ComfyUI导出API格式后,你不需要再通过界面拖节点,而是可以把这个完整工作流当作一个JSON去请求。这一步很关键,它相当于把GUI里的画图操作,变成了一个“可编程接口”。
我建议在这个阶段把你最常用的镜头模板做出来,比如“角色半身动态特写模板”“人物走位中景模板”“物件场景动态模板”。每个模板对应一套稳定的节点连接方式和参数预设。未来短剧脚本里无论镜头怎么变,基本都能从一个模板里微调,而不必每次都从空白画布开始。
3.2 把工作流变成“可被呼叫的API”
手动跑通后的下一个动作,是验证API请求是否正常发出。
这里要提一下ComfyUI的设计逻辑:它默认启动时,除了界面本身,还会监听一个HTTP端口,允许外部程序提交任务。你在界面里按的那个“Queue Prompt”按钮,本质上也是向这个端口发送了一个请求。所以就算你没有深入读过它的源码,只需要按它的格式来构造请求体,就能做到“程序变法代替鼠标点击”。
实际操作中,常用的方法有三种:
- 直接使用HTTP请求调用接口,提交上面导出的API格式JSON,然后用WebSocket或history接口来查询执行进度;
- 在ComfyUI所在电脑上写一个小型的Python脚本,封装一个函数,传入工作流路径和参数修改项,返回任务ID;
- 让WorkBuddy直接把这个脚本当作外部工具来执行,从而间接完成对ComfyUI的调度。
我最终采用的是第三种组合方式:用Python封装了一个comfy_api.py脚本,里面包含提交任务、等待完成、校验输出文件三个环节。WorkBuddy只需要调用Python脚本,传入不同的参数值,就可以让ComfyUI执行不同的生成任务。这样做的好处是,WorkBuddy不关心ComfyUI内部细节,只关心脚本返回的“成功/失败/文件路径”,解耦很干净。
3.3 在WorkBuddy里设计批量任务编排
调度能力真正发挥作用的地方,就是批量任务编排。
我通常会用结构化的方式维护一份任务清单,就像给剧组排通告单一样。例如一个大纲里会写明每个镜头的序号、所属场次、角色描述、画面内容提示词、动作参数、以及期望生成的文件名。这份清单可以直接是CSV、JSON,甚至Markdown表格,WorkBuddy的Skill会一列一列读取,然后逐条提交给ComfyUI。
编排有几个细节值得注意。第一个是“串行执行还是并行执行”。如果你的显卡显存不大,我建议串行。并行提交多个任务到同一张显卡上,显存很快就会被撑爆,WorkBuddy会看到一堆失败的任务,你还得手动清理ComfyUI队列。我自己一开始就吃过这个亏:贪快并行3个任务,显卡直接OOM,三个任务全军覆没,白白浪费半小时。后来我改成串行,虽然单条生成时间没变,但整体成功率和设备稳定性都大幅提升。
第二个细节是“失败重试”。批量任务跑起来后最怕的不只是失败,而是失败之后自动跳过。WorkBuddy配置重试逻辑后,一旦检测到任务超时或输出文件异常,会把任务重新放入队列再跑一次。这个设计很重要,因为长任务偶发失败很常见,重试一次往往就能正常通过。
第三个细节是“阶段隔离”。我会把生成任务分成两批:先批量出角色图,再批量图生视频。为什么不能一起跑?因为图和视频的模型切换在ComfyUI里会消耗资源,图生视频链路里其实也会重新调用图片模型,如果两批夹杂在一起跑,每次都要加载不同的模型文件,时间反而更长,而且加载模型时显存峰值很容易爆。先跑图,再跑视频,可以让每一阶段只加载这一阶段最需要的模型,效率和稳定性都更好。
3.4 输出命名与目录规范,决定了后期效率
最后说一个很多人容易忽视的细节:输出文件的命名和目录规范。别小看这件事,当你一次性生成几十个文件,而每个文件的默认名都是一串随机哈希的时候,拼接和整理素材会让你疯掉。
我用的命名规则是:镜号_场次_角色_动作_画面比例_序号.mp4。比如:
SHOT_002_SCENE_01_CHAR_LI_STAND_TALK_9x16_01.mp4 SHOT_003_SCENE_01_CHAR_LI_TURN_LOOK_9x16_02.mp4ComfyUI工作流里可以通过修改保存节点的文件名前缀来实现这一点,WorkBuddy在调用每次任务时,也会把这个规则作为参数传给ComfyUI。这一步做完,后期剪辑时,我在素材管理器里按镜头号一排序,素材顺序一目了然,不需要手动改名。
目录方面,我会在ComfyUI的output目录下按“短剧名/集数/镜头类型”建好子目录,这样每次生成的内容自动归类,回看和替换版本也很方便。
4. 耗时实测与零成本逻辑
4.1 我的实测环境与基础数据参考
我不喜欢给那些“用自己的高端显卡跑出来的虚无数据”背书,所以直接说我自己的实测环境:RTX 4060 Ti 16GB显卡、64GB内存、Win11系统,ComfyUI采用官方源码部署。这个配置在目前玩AI视频的圈子里属于中低档偏家用,如果你显卡比我好,速度只会更快;比我差,参考价值也还能成立。
我用四类有代表性的任务做了多次采样,取稳定值记录如下:
| 任务类型 | 模型/设置 | 输出规格 | 单次耗时 |
|---|---|---|---|
| 文生图(角色定妆照) | SD1.5写实,采样步数20 | 768×1024 | 约1.8秒/张 |
| 文生图(场景空镜) | SDXL写实,采样步数25 | 1024×768 | 约5秒/张 |
| 图生视频(静态特写动效) | SVD,步数25 | 576×1024,14帧 | 约110秒/条 |
| 图生视频(连续动作) | LTX-Video,步数30 | 768×512,97帧 | 约240秒/条 |
先解释一下“帧数”和“时长”的关系。AI视频模型是逐帧生成的,97帧内容,如果以24帧/秒播放,大约就是4秒钟的画面。这个规格对短剧来说比较实用:太短的内容放出来观众还没看清就切了,四个多秒的镜头在剪辑里可以配合不同节奏使用。
从上表能看出来,文生图的耗时几乎可以忽略不计,大头全部在图生视频环节。一个4秒镜头基本要花4分钟左右,30个镜头全部串联,理想情况下是2小时出头。如果你有15秒长镜头需求,时间会成倍上涨。
4.2 手动模式 vs 流水线模式:时间都省在哪里
有人可能觉得,流水线只是“替你点了按钮”,生成时间又不能省,节省的时间有限。但实测下来的结果完全不是这样,核心原因是手动模式下的“隐形时间损耗”远比正常生成时间多。
先看手动模式的时间消耗。每次生成一条视频,你要在ComfyUI里确认节点参数、拖入刚生成的图片、点击队列等待生成,期间不能走开太远。视频模型生成期间,显卡占满,你也干不了其他吃显存的工作。生成完以后,还要打开输出文件夹,找到那个命名混乱的文件,确认效果,手动改名并移动到项目目录。这一整套动作下来,哪怕生成本身只用3分钟,人工操作和等待时间叠加,一条素材少说占掉你十分钟。
流水线模式下,我可以在任务启动前把30个镜头的参数全部配好,然后让WorkBuddy逐条跑。期间我完全不碰鼠标,去写脚本、处理配音、睡觉都可以。30条素材,包括偶尔的重试,大概2.5小时全部完成,并且文件名和目录都已经按规范放好。
换句话说,手动模式下30条镜头需要消耗我一整个下午,流水线模式下只占用了2个多小时的显卡算力,人工时间几乎等于零。对做内容的人来说,这种省下来的时间成本,远比所谓“电脑变快了”要有价值。
4.3 “零成本”到底怎么算才靠谱
标题里写的零成本,肯定有人质疑:你显卡不要钱?电费不是钱?所以我这里把“零成本”的边界说清楚:它指的是软件授权和生成费用的零成本,而不是“完全不花钱”。
ComfyUI是纯开源软件,模型基本全部来自公开社区,个人创作使用没有额外授权费用。WorkBuddy的基础调度能力也不需要额外买服务。也就是说,只要硬件设备已经在你手上了,每多生成一条视频的边际成本就是电费,几乎可以忽略不计。对照同样的量在云服务商的出图出视频费用,一套短剧三十个镜头,累计费用可能几百上千,本地流水线基本就是一块钱电费的事。
但这也是有前提的。第一,你必须有本地显卡,哪怕是最低配的人门卡;第二,你得愿意接受等待时长,不能要求秒出大师级长镜头;第三,“零成本”不代表零学习成本,前面那套环境搭建、任务编排、工作流调试都需要时间。你可以理解为:用一点时间成本,换来长期的制作成本归零。
5. 踩坑记录与排查心得
5.1 高频问题速查表
这套流水线跑起来后,遇到的高频坑我整理成了速查表,方便大家定位问题:
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 任务提交后ComfyUI无响应 | 端口被占用或未启动 | 检查8188端口是否被占用,重启ComfyUI |
| 控制台提示缺少模型文件 | 工作流引用未下载模型 | 按报错信息补下载并放入models对应目录 |
| 视频生成到一半显存溢出 | 并行任务过多或帧数/分辨率过大 | 降为串行,降低分辨率或缩短帧数 |
| 生成失败但无明确报错 | 节点参数冲突或版本不匹配 | 在ComfyUI界面重跑工作流查看红色报错节点 |
| 输出文件找不到或命名混乱 | 未设置保存节点前缀 | 在工作流中固定文件名前缀,使用输出目录分类 |
| WorkBuddy一直重试同一任务 | 脚本判断输出文件逻辑有误 | 检查输出的文件路径和命名是否与预期一致 |
| 视频出现严重跳帧 | 视频模型帧率设置过高 | 调整为24帧/秒,必要时增加关键帧间隔 |
这些条目每一条背后都有一段比较长的排查过程,但解决办法基本都围绕着一个思路:先简化环境、再做局部替换。尤其是文件命名混乱和输出路径错误这类问题,很多人一开始根本意识不到,往往因为一个小疏忽,让自动脚本跑了半小时产出一堆不可用素材,前功尽弃。
5.2 我被最深的几个坑坑到怀疑人生
第一个坑是显存溢出后ComfyUI的“僵尸任务”。有一次我批量跑了十几条任务,中间某个任务因为分辨率设置不当把显存撑爆了。结果ComfyUI并没有把出问题的任务自动踢出去,队列里一直停着一个“跑不完”的任务,导致后面所有任务全部卡住。我后来在脚本里增加了一个硬性超时逻辑:如果任务超过预设时间阈值仍未完成,就自动调用ComfyUI的打断接口把任务清掉,然后重新启动下一个任务。这一步之后,流水线的稳定性才算真正及格。
第二个坑是模型切换导致的隐性耗时。一开始我把图任务和视频任务全放在一个大队列里,结果每次切换模型时,ComfyUI都要重新加载大文件模型,单个任务之间凭空多出半分钟到一分钟的空转。批量跑30个任务,就多了将近20分钟的无效等待。解决办法前面说过,就是“阶段隔离”——图和视频分开跑两批,避免反复加载不同模型。
第三个坑更隐蔽:WorkBuddy脚本里我使用了相对路径来检查输出文件,而ComfyUI的工作目录和脚本工作目录不一致,导致脚本永远找不到生成文件。这种问题一般不报错,看起来像是“任务还在跑”,实际上是脚本的路径判断直接失效了。从那以后我所有涉及的路径全部使用绝对路径,并要求ComfyUI输出目录也通过配置文件统一维护,再没出现过这个问题。
5.3 排查思路和方法论小结
踩过这些坑之后,我沉淀出几个通用的排查习惯。
第一个习惯是把问题范围缩小。批量任务失败时,我通常会先挑其中一个任务手动拿到ComfyUI里跑一遍,如果手动执行成功,那么问题基本出在调度侧,比如参数格式、脚本逻辑;如果手动执行也失败,问题基本出在工作流或模型侧,跟WorkBuddy无关。这一步能快速切分责任范围,避免在错误的地方浪费大量时间。
第二个习惯是保留完整日志。WorkBuddy执行任务时,我会让它把每次请求的完整响应、任务ID、消耗时间、输出路径全部追加写入日志文件。排查问题时,日志比记忆靠谱得多。尤其是任务列表很长的时候,没有日志你会迷失在“到底跑到了哪一条”的混乱里。
第三个习惯是“小批量验证”。每次改动脚本或工作流后,我不会立刻跑完整30条,而是先挑两条验证,确认路径、时长、文件命名都正常,再放开跑大任务。这个小习惯帮我省下过至少两次通宵重跑的成本,各位一定不要跳过。
6. 一些个人体会
整套系统跑通以后,我最大的感受是:AI短剧的批量生产,拼的已经不再是“谁能用好模型”,而是“谁能让工具稳定地连续工作”。WorkBuddy调度ComfyUI这个组合真正解决的问题,是把“生成能力”和“流程控制”粘合在一起,让创作者把精力放到剧本和分镜创意上,而不是守在显卡旁边当操作工。
如果你也想复现这套流水线,我的核心建议是先不要追求一步到位。先跑通一条完整的视频生成链路,确认出片效果;再手动调用一次API,确认程序能与ComfyUI对话;最后才让WorkBuddy接管批量任务。每一步都验证过再往下走,你会发现整个过程虽然慢,但几乎没有返工。
最后再分享一个实用小技巧:把常用短剧镜头模板固定下来后,记得给模板里的关键参数留出“可替换变量”,比如角色描述、画面比例、动作标签。WorkBuddy每次调用同一个脚本,只替换这些变量的值,就能源源不断产出风格统一但内容各异的短剧素材。这套做法的扩展空间很大,接下来我正打算把音频对白和字幕生成也接入同一个调度体系,让AI短剧的后期环节同样走进流水线。