这次我们来看一个面向AI视频生成的全新ComfyUI教程。如果你对AI视频、AI短剧、AI漫剧甚至AI电影制作感兴趣,但被复杂的节点和流程劝退,这篇文章就是为你准备的。它不是一个简单的功能展示,而是一套从零开始,教你搭建“文生视频”和“图生视频”工作流的实战指南,全程聚焦于如何让工作流真正跑起来,而不是空谈概念。
这个教程的核心价值在于“搭建”而非“使用”。它教你如何从空白画布开始,连接各种节点,理解数据流向,最终构建出能稳定生成视频的自动化流水线。无论是根据文字描述生成动态视频(文生视频),还是基于首尾两张图片生成中间过渡帧(图生视频),你都能通过自定义的工作流来实现。对于想深入掌握ComfyUI、希望批量生产视频内容,或者打算将AI视频能力集成到自己项目中的开发者来说,这套方法至关重要。
接下来,我会带你梳理从环境准备、核心节点认知、工作流搭建、到实际生成与优化的完整路径。我们将重点关注几个实际问题:需要什么样的硬件?如何安装缺失的依赖?工作流的关键节点有哪些?如何设置参数才能平衡速度与质量?以及,当遇到“请安装缺失的包”这类错误时,该如何快速解决?
1. 核心能力速览
在深入细节之前,我们先通过一个表格快速了解本教程所涵盖的ComfyUI视频生成工作流的核心能力与门槛,让你判断是否值得继续深入。
| 能力项 | 说明与解读 |
|---|---|
| 核心功能 | 文生视频:输入文本提示词,直接生成一段视频。 图生视频:输入首帧和尾帧图片,生成中间过渡动画。 工作流搭建:从零开始学习节点连接逻辑,而非单纯使用现成流程。 |
| 技术栈 | 基于ComfyUI,这是一个通过节点图进行AI模型推理的本地可视化工具,以其灵活性和可定制性著称。 |
| 硬件门槛 | 显存是关键。根据所使用的视频生成模型(如 Stable Video Diffusion, AnimateDiff等)不同,需求从8G到16G+不等。网络热词中提到的“comfyui 5070显卡 gpu 显存不足”就是典型问题。CPU模式通常仅适用于极小参数或测试,体验不佳。 |
| 启动方式 | 通常通过命令行启动ComfyUI主程序,或使用“秋叶一键整合包”等封装好的启动器,实现一键启动WebUI服务。 |
| 依赖管理 | 工作流常依赖第三方自定义节点(Custom Nodes)。首次加载他人工作流时,常遇到“请安装缺失的包”提示,需根据日志手动安装。 |
| 输出控制 | 支持自定义视频分辨率、帧数、时长、采样步数等。图生视频可精确控制首尾帧间的运动轨迹。 |
| 适合场景 | 内容创作:快速生成短视频、短剧片段、动漫素材。 产品演示:制作广告视频、产品动态展示。 学习研究:深入理解扩散模型在时序上的应用,掌握工作流自动化。 |
| 不适合场景 | 对视频质量有影视级要求;硬件显存严重不足(如<6G);希望完全免配置、一键出片。 |
2. 适用场景与使用边界
ComfyUI视频工作流是一把强大的瑞士军刀,但它并非万能。明确其适用边界,能帮助你更高效地利用它,并避免法律与伦理风险。
它非常适合:
- 创意原型快速可视化:编剧或导演可以用文生视频快速将文字剧本转化为视觉概念草图。
- 社交媒体内容批量生产:为抖音、B站、YouTube Shorts生成独特的背景动画或转场特效。
- 个性化短剧/漫剧制作:结合角色一致性(LoRA)和场景控制,生成具有统一风格的系列短片。
- 电商广告视频自动化:为产品图生成360度展示动画或使用场景动画。
- 教育与知识分享:将复杂的科学概念或历史事件通过动态视频直观呈现。
需要谨慎对待的边界:
- 版权与肖像权:图生视频功能若使用未经授权的图片(尤其是他人肖像或知名IP),生成内容可能侵权。务必使用自己拥有版权的素材,或明确可商用的开源素材。
- 内容安全:绝对禁止生成任何违法违规、暴力色情、虚假新闻或侵害他人权益的内容。AI是工具,使用者需承担主体责任。
- 质量预期管理:当前AI生成视频在动作连贯性、物理合理性、长时序稳定性上仍有局限,可能出现物体变形、闪烁等问题。它更适合创意发散和素材补充,而非最终成片。
- 算力成本:生成一段数秒的视频,可能需要数分钟到数十分钟,消耗大量GPU资源。批量生成前,请先用小参数测试单次成本。
3. 环境准备与前置条件
工欲善其事,必先利其器。在开始搭建工作流之前,请确保你的本地环境满足以下基础要求。这是避免后续无数报错的第一步。
3.1 硬件与操作系统
- GPU(推荐):NVIDIA显卡,显存至少8GB,推荐12GB及以上。这是流畅运行大多数视频生成模型的底线。RTX 3060 12G、RTX 4060 Ti 16G、RTX 4070等是性价比之选。
- CPU与内存:现代多核CPU(如Intel i5/R5及以上),系统内存至少16GB,推荐32GB。视频处理对内存也有一定要求。
- 存储空间:需要预留50GB以上的固态硬盘(SSD)空间,用于存放ComfyUI本体、基础模型(如SDXL)、视频生成模型以及依赖库。
- 操作系统:Windows 10/11, Linux 或 macOS(M系列芯片可通过GPU加速,但生态以Windows为主)。
3.2 软件基础
- Python:需要安装Python 3.10.x版本。这是ComfyUI及其大多数节点的最稳定兼容版本。避免使用3.11或3.12,可能遇到依赖冲突。
- Git:用于克隆ComfyUI仓库和自定义节点仓库。请确保已安装并可命令行执行
git。 - CUDA与cuDNN:如果你使用NVIDIA显卡,请安装与你的显卡驱动匹配的CUDA工具包(如CUDA 11.8或12.1)。通常通过安装PyTorch时会自动解决,但预先安装完整CUDA工具包更稳妥。
3.3 获取ComfyUI你有两种主流选择:
- 方式一:官方仓库(适合开发者/喜欢纯净环境)
然后根据官方README安装依赖。git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI - 方式二:秋叶一键整合包(适合新手/追求快速启动)这是国内社区维护的版本,集成了常用插件、汉化和启动器,能解决大部分环境配置问题。从可信来源下载后,解压即用。
3.4 准备模型文件视频生成工作流通常需要多个模型协同工作:
- 基础文生图模型:如
sd_xl_base_1.0.safetensors,用于理解提示词和生成图像帧。 - 视频生成运动模型:这是核心,例如
animatediff_开头的运动模块,或svd、svd_xt等文生视频专用模型。你需要将它们下载后放入ComfyUI/models/checkpoints或ComfyUI/models/animatediff等对应目录。 - 必要节点依赖:工作流中可能用到ControlNet、IP-Adapter等,需提前下载对应模型文件。
关键点:模型文件较大,请确保网络通畅,并放置到正确的文件夹,否则工作流无法加载。
4. 安装部署与启动方式
环境就绪后,我们启动ComfyUI并准备好安装自定义节点。
4.1 启动ComfyUI服务进入你的ComfyUI目录,使用以下命令启动。--listen参数允许局域网访问,--port可指定端口。
# 在ComfyUI根目录下执行 python main.py --listen --port 8188如果使用秋叶整合包,通常直接双击运行run_nvidia_gpu.bat(Windows)即可。
启动成功后,在浏览器中访问http://127.0.0.1:8188(或你指定的IP和端口),即可看到ComfyUI的空白工作区。
4.2 安装缺失的自定义节点(关键步骤)这是新手遇到的最大障碍。当你导入一个现成的视频生成工作流(.json或.png文件)时,经常会看到红色节点并提示“请安装缺失的包以使用此工作流。要安装缺失的节点,请先在你的 python 环境中运行...”。
解决方案如下:
- 定位错误信息:在ComfyUI的终端窗口或日志中,找到具体的错误信息,它会告诉你缺失的节点名称,例如
ComfyUI-Impact-Pack或ComfyUI-VideoHelperSuite。 - 使用ComfyUI管理器(推荐):许多整合包预装了
ComfyUI-Manager。在WebUI界面,你可以通过管理器直接搜索并安装缺失节点。 - 手动Git克隆:如果管理器里没有,你需要根据节点名找到其GitHub仓库,手动克隆到
ComfyUI/custom_nodes/目录下。cd ComfyUI/custom_nodes git clone https://github.com/作者名/节点仓库名.git - 安装节点依赖:进入克隆的节点目录,通常有一个
requirements.txt文件,使用pip安装。cd ComfyUI/custom_nodes/节点仓库名 pip install -r requirements.txt - 重启ComfyUI:安装完成后,完全关闭ComfyUI服务,再重新启动,新的节点就会出现在节点列表中。
4.3 导入工作流在ComfyUI WebUI界面,点击“Load”按钮,选择你下载的.json或.png工作流文件,即可将其加载到画布中。此时,如果所有节点都是正常颜色,说明环境配置成功。
5. 功能测试与效果验证:搭建你的第一个视频工作流
我们以构建一个基础的“文生视频”工作流为例,拆解关键节点和参数设置。理解了这个流程,图生视频的搭建也就触类旁通。
5.1 文生视频工作流搭建目标:输入一段文本提示词,生成一段3秒、24fps的短视频。
核心节点与连接逻辑:
- 提示词输入:添加
CLIP Text Encode (Prompt)节点,输入正面提示词(如“A beautiful sunset over a calm lake, cinematic shot”)和负面提示词。 - 加载基础模型:添加
Checkpoint Loader节点,选择你的基础大模型(如SDXL)。 - 加载视频运动模型:添加
AnimateDiff Loader节点(如果你用AnimateDiff),选择对应的运动模型(如mm_sd_v15_v2.ckpt)。如果是SVD模型,则有专用的加载器。 - 设置潜在空间:添加
Empty Latent Image节点,设置视频的宽度、高度和批次大小(Batch Size)。注意:这里的批次大小(batch size)在视频生成中通常代表视频总帧数。例如,3秒视频,24fps,则总帧数=3*24=72。将batch size设为72。 - K采样器:添加
KSampler节点。这是核心调度器。- 将
模型(model)连接到基础模型。 - 将
正/负条件(positive/negative)连接到CLIP编码器的输出。 - 将
潜在图像(latent_image)连接到Empty Latent Image的输出。 - 设置
步数(steps):20-30,步数越多,细节越好,耗时越长。 - 设置
CFG:7-8,控制提示词相关性。 采样器(sampler)和调度器(scheduler):可选择euler或dpmpp_2m+karras以平衡速度与质量。
- 将
- 注入运动信息:在
KSampler的模型(model)输入之前,添加一个Apply AnimateDiff Model节点。将KSampler的模型输入断开,先连接到Apply节点的model输入,再将Apply节点的model输出连接到KSampler。将AnimateDiff Loader的输出连接到Apply节点的motion_module。这一步是将运动能力“注入”到静态图像模型中。 - 解码与保存:添加
VAE Decode节点,将KSampler输出的潜在特征解码为图像。然后添加Save Image节点来保存单帧,但更常用的是Video Combine节点(来自ComfyUI-VideoHelperSuite等插件),它能将一批图像序列合成为视频文件(如MP4)。- 将
VAE Decode输出的图像列表连接到Video Combine。 - 设置输出帧率(fps),如24。
- 设置输出视频路径和文件名。
- 将
5.2 图生视频工作流搭建目标:给定一张起始图(A)和一张结束图(B),生成从A平滑过渡到B的动画。
在文生视频基础上的关键修改:
- 替换提示词为图片输入:不需要
CLIP Text Encode,改为两个Load Image节点,分别加载首帧和尾帧图片。 - 使用潜空间插值:核心思想是在潜空间(Latent Space)对首尾帧进行插值,而不是完全由噪声生成。这需要用到
Latent Blend或Batch Latent相关节点。- 将首尾帧图片分别通过
VAE Encode节点编码为潜空间表示(latent_A, latent_B)。 - 添加一个
Latent Composite或自定义的插值节点。该节点能根据你设定的总帧数(batch size),生成一个从 latent_A 到 latent_B 的线性(或非线性)插值序列。 - 将这个潜空间序列(batch of latents)直接输入给
KSampler。此时,KSampler的作用更多是“去噪和细化”这个已有的插值序列,而不是从纯噪声生成。
- 将首尾帧图片分别通过
- 连接运动模型:与文生视频一样,需要通过
Apply AnimateDiff Model节点将运动模型注入,让帧与帧之间的过渡具有合理的动态效果,而不是简单的 morph。 - 控制运动强度:在
Apply AnimateDiff Model节点中,通常有motion_scale等参数,可以控制运动幅度。图生视频中,为了保持内容一致性,这个值不宜过大。
5.3 参数调试与效果验证
- 分辨率:从较小分辨率(如512x512)开始测试,成功后再尝试提升(768x768)。分辨率翻倍,显存消耗接近4倍。
- 总帧数与时长:
batch size= 帧率(fps)x 时长(秒)。例如,24fps下,72帧对应3秒视频。首次测试可从16帧(约0.6秒)开始。 - 提示词技巧:文生视频时,提示词需包含时间动态描述,如“panning left”, “zooming in”, “waves crashing”。
- 查看显存占用:在生成过程中,通过任务管理器(Windows)或
nvidia-smi命令(Linux)监控GPU显存使用情况。如果接近爆满,需降低分辨率、减少总帧数或使用--medvram等优化参数启动ComfyUI。
6. 接口API与批量任务
当你搭建好一个稳定的工作流后,下一步就是自动化。ComfyUI原生支持API,这为批量任务和集成到其他系统提供了可能。
6.1 启动API服务ComfyUI启动时,默认已开启API服务,端口与WebUI一致(如8188)。API文档通常可通过http://127.0.0.1:8188/docs访问。
6.2 通过API触发工作流你不能直接通过API“上传”一个工作流图形。标准流程是:
- 在WebUI中固化工作流:将调试好的工作流,通过
Save (API Format)按钮保存为一个.json文件。这个文件包含了所有节点和连接的详细信息。 - 编写API调用脚本:使用Python的
requests库,向ComfyUI服务器发送这个工作流定义和参数。
import requests import json import uuid def queue_prompt(prompt_workflow): """将工作流提交到ComfyUI执行队列""" server_address = "http://127.0.0.1:8188" prompt_api_url = f"{server_address}/prompt" # 准备请求数据 p = {"prompt": prompt_workflow} data = json.dumps(p).encode('utf-8') # 发送请求 response = requests.post(prompt_api_url, data=data).json() # 获取任务ID,用于查询结果 prompt_id = response['prompt_id'] print(f"Prompt queued with ID: {prompt_id}") return prompt_id def get_image(filename, subfolder, folder_type): """从ComfyUI服务器获取生成的图片/视频文件""" server_address = "http://127.0.0.1:8188" view_api_url = f"{server_address}/view" params = { "filename": filename, "subfolder": subfolder, "type": folder_type } response = requests.get(view_api_url, params=params) # 这里可以保存文件 return response.content # 1. 加载你保存的工作流JSON文件 with open('your_video_workflow_api.json', 'r', encoding='utf-8') as f: workflow_data = json.load(f) # 2. 动态修改工作流中的参数(例如:提示词、种子、总帧数) # workflow_data 是一个巨大的字典,你需要找到对应节点的ID,修改其输入值。 # 例如,找到CLIP Text Encode节点的输入文本 # 这需要你了解自己工作流的JSON结构,通常通过“Save (API Format)”后分析可得。 # 假设你知道节点ID,可以这样修改: # node_id = "23" # CLIP Text Encode节点的ID # workflow_data[node_id]["inputs"]["text"] = "新的提示词" # 3. 提交任务 prompt_id = queue_prompt(workflow_data) # 4. 轮询或通过WebSocket监听任务状态,完成后调用get_image获取结果6.3 实现批量任务基于上述API,你可以轻松实现批量生成:
- 准备一个参数列表:例如一个CSV文件,每一行包含不同的提示词、种子、首尾图路径等。
- 编写脚本循环:循环读取参数列表,在每次循环中,修改工作流JSON中的对应参数,然后调用
queue_prompt。 - 管理任务队列与结果:注意ComfyUI的队列长度,避免堆积。为每个任务生成唯一的输出文件名,防止覆盖。
7. 资源占用与性能观察
AI视频生成是资源密集型任务,理解性能瓶颈对于优化工作流至关重要。
7.1 显存占用分析
- 模型加载阶段:加载基础模型和运动模型会占用固定显存,通常为3-6GB,取决于模型大小。
- 推理计算阶段:这是显存消耗的高峰。影响因素包括:
- 分辨率:最主要的因素。512x512下可能占用6-8GB,768x768可能直接需要10-12GB。
- 总帧数(Batch Size):帧数越多,一次性处理的潜空间张量越大。如果显存不足,可以考虑分批次生成(使用
Batch相关节点)或使用--lowvram模式。 - 采样步数(Steps):步数增加会线性增加计算时间,但对单步峰值显存影响不大。
- 观察工具:在命令行使用
nvidia-smi -l 1可以每秒刷新一次GPU使用情况,观察峰值。
7.2 性能优化建议
- 使用
--medvram或--lowvram参数启动:这些参数会让ComfyUI以更节省显存的方式加载模型,但可能会轻微降低速度。python main.py --listen --port 8188 --medvram - 启用xFormers:在启动命令前设置环境变量
FORCE_ENABLE_XFORMERS=1,可以加速注意力计算并节省显存。 - 使用TAESD解码器:对于VAE解码,可以使用轻量版的TAESD,加快最终图像的解码速度。
- 降低分辨率与帧数:这是最直接的优化手段。先用小参数跑通流程,再逐步提升。
- 合理设置CFG Scale:过高的CFG值(如>10)不仅可能使画面过饱和,也会增加计算负担。通常7-9之间是甜点区。
8. 常见问题与排查方法
以下是搭建和运行ComfyUI视频工作流时的高频问题及解决思路。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 启动后页面打不开 | 端口被占用;防火墙阻止;启动命令错误。 | 检查命令行是否有报错;用netstat -ano查看端口占用;尝试--port 7860换端口。 | 关闭占用端口的进程;以管理员身份运行;检查启动路径是否正确。 |
| 加载工作流后节点变红/报错 | 缺失自定义节点或模型文件。 | 查看ComfyUI终端或WebUI右下角的错误信息。 | 根据错误提示,使用ComfyUI管理器或手动安装缺失节点;检查模型文件是否下载并放置到正确目录。 |
| 生成视频时显存不足(OOM) | 分辨率过高;总帧数过多;未使用优化参数。 | 使用nvidia-smi观察峰值显存。 | 降低分辨率或总帧数;使用--medvram启动;尝试启用xFormers。 |
| 生成的视频闪烁、抖动严重 | 运动模型强度过高;CFG值过高;提示词冲突;采样步数不足。 | 对比不同参数下的生成结果。 | 降低运动模型中的motion_scale;适当降低CFG(如从10降到7);简化提示词,避免矛盾描述;增加采样步数。 |
| 图生视频结果不像首尾帧 | 潜空间插值方式不对;运动模型干扰过强;KSampler去噪强度过高。 | 检查潜空间插值节点是否正确连接;检查Apply AnimateDiff Model的参数。 | 尝试不同的插值算法;降低motion_scale;降低KSampler的denoise值(如果使用)。 |
| API调用返回错误 | 工作流JSON格式不对;节点ID引用错误;服务器未就绪。 | 检查API返回的具体错误信息;在WebUI中先用相同参数测试工作流是否正常。 | 确保使用Save (API Format)保存的JSON;仔细核对动态修改参数时的节点ID和字段名;确保ComfyUI服务已启动。 |
| 视频合成失败,只有图片 | 缺少视频合成节点(如Video Combine);输出路径无写入权限。 | 检查工作流末尾是否有视频合成节点及其设置。 | 安装ComfyUI-VideoHelperSuite节点;检查输出目录是否存在且可写。 |
9. 最佳实践与使用建议
为了更稳定、高效地使用ComfyUI进行视频创作,遵循以下实践能让你少走弯路。
项目文件管理:
- 工作流备份:每搭建好一个可用的工作流,立即保存(
.json和.png双备份)。.png用于可视化分享,.json用于API调用。 - 模型分类存放:在
ComfyUI/models下建立清晰的子文件夹,如checkpoints,loras,vae,animatediff,controlnet,便于管理。 - 输入输出分离:建立
input和output目录,分别存放源素材和生成结果,并按日期或项目分类。
- 工作流备份:每搭建好一个可用的工作流,立即保存(
工作流搭建原则:
- 模块化设计:将复杂工作流拆分成功能模块,例如“提示词处理模块”、“潜空间生成模块”、“运动控制模块”、“输出编码模块”。用组(Group)功能框起来并命名,便于理解和维护。
- 善用注释:为关键节点和连接线添加注释(右键节点 -> Add Sticky Note),说明其作用和参数范围。
- 从简到繁:先构建一个最小可运行的工作流(如低分辨率文生图),然后逐步添加运动模块、ControlNet等,每步都测试,便于定位问题。
生成策略:
- 小样测试:正式生成前,务必用低分辨率(如384x384)、少帧数(如16帧)、低步数(如15步)快速生成小样,检查构图、运动和提示词是否符合预期。
- 种子固定:找到满意的效果后,固定随机种子(seed),以便微调其他参数时能进行对比。
- 参数记录:使用ComfyUI的“工作流队列”历史或自行记录每次成功生成的关键参数(模型、提示词、种子、步数、CFG、分辨率、帧数),建立自己的参数库。
合规与伦理:
- 素材溯源:用于图生视频的图片,确保拥有版权或符合CC0等开源协议。人脸肖像需获得明确授权。
- 内容审核:生成的视频在公开使用前,应进行人工审核,避免出现不可控的负面内容。
- 技术探索边界:将技术用于创意表达和效率提升,而非制造虚假信息或进行不当用途。
通过从零开始搭建ComfyUI视频工作流,你获得的不仅仅是一个生成工具,更是一套理解AI视频生成底层逻辑的方法论。从环境配置、节点连接、参数调试到API集成,每一步的实践都在加深你对时序扩散模型的理解。最值得尝试的起点,是选择一个简单的文生视频工作流模板,成功运行并生成你的第一个3秒动画。在这个过程中,最容易踩的坑是依赖缺失和显存不足,按照本文的排查清单,大部分问题都能迎刃而解。接下来,你可以探索更复杂的控制方式,如使用ControlNet控制动作,结合IP-Adapter保持角色一致性,从而创造出更具导演意图的AI短片。