本地部署ComfyUI:开源AI生图与视频生成完整实战指南
2026/9/9 8:03:23 网站建设 项目流程

从今年 6、7 月开始,“本地跑 AI 生图 + 视频”突然变成了一个特别值得跟的话题。原因是两方面:一方面云端工具排队严重,积分越用越快,生成链接过期后素材管理很麻烦;另一方面,开源生态里已经拼出了一套可以完全离线运行的组合方案:本地启动一个工作流引擎,自己下载图像模型和视频模型,文生图、图生视频、视频后期都能在一台电脑上完成。很多还在观望的人以为门槛很高,其实真正动手后会发现,难点只集中在三块:环境装对、模型放对位置、工作流连通。这三块正是这篇文章要解决的问题。

先说结论:如果你有一张 8GB 以上显存的 NVIDIA 显卡,想在本地搭建一套“生图 + 视频”的一体化开源方案,目前最稳妥的底座是 ComfyUI,配合开源图像模型和一个支持视频生成的工作流模块。它不见得每个单项都能碾压云端的效果,但它把“本地生成”这个能力从极客玩具变成了普通开发者可以落地的工程方案。下面会从概念、环境、安装、跑通、验证、排错到工程化建议,完整走一遍。

1. 这篇文章真正要解决的问题

很多人第一次想尝试本地 AI 生图和视频,通常不是被技术难住,而是被一堆碎片信息劝退。比如:到底应该用 Stable Diffusion WebUI 还是 ComfyUI?视频生成用哪个模型?为什么下载了安装包但启动不到界面?为什么同样的提示词,别人的效果很好,自己的图却很模糊?这些问题背后其实是一个共同原因:本地 AI 的工具链不是单个软件,而是一套组合。组合没连通,任何一个环节出问题,结果都不对。

这篇文章真正要解决的是以下三类问题:第一,选型问题,帮你判断在“开源生图 + 视频”这个需求下,为什么推荐以 ComfyUI 为核心而不是从零搭建推理脚本;第二,部署问题,从安装包获取、Python 虚拟环境创建、依赖安装到界面启动,每一步都给可复制的命令;第三,使用问题,把文生图、图生视频的完整链路跑通,并告诉你如何验证结果、如何排查失败。

需要提前说明的是,本地生成无法完全做到和云端付费工具“一模一样”,但它的优势不在于像素级复刻,而在于不受积分制、排队时间、审核规则的制约。对做短视频素材、电商图文、内容创作者和想深入理解生成式 AI 技术细节的开发者来说,一套本地方案更值得投入时间。

2. 核心概念:本地 AI 生图 + 视频,到底在搭什么

先拆解一下“开源生图 + 视频一体化方案”这个词。它并不是某个单一软件的名字,而是三个层次组成的系统:

第一层是工作流引擎。它负责把模型加载、提示词解析、采样、解码、后处理这些环节串起来。ConfiUI 是 ComfyUI 的常见拼写误记,实际对应的是 ComfyUI。它用节点图的方式组织生成流程,每一个节点负责一个能力,节点之间连线传递数据。这种设计的好处是:换一个图像模型,只需要换一个 Checkpoint 节点;加视频生成能力,只需要插入新的采样、解码和视频输出节点。相比命令行直接调模型,ComfyUI 对“组合式实验”更友好。

第二层是基础模型。图像生成通常使用开源的 Checkpoint 模型,比如 SD1.5、SDXL 系列的社区版本,或者更新架构的 Flux 等。不同模型有不同侧重点:有的擅长写实人像,有的擅长插画风格,有的偏电影质感。视频生成则依赖专门训练过的视频扩散模型,或者基于图像模型扩展出来的视频生成模块。现实中还有一条路子:先用图像模型生成关键帧,再用视频生成模块做动态化处理。

第三层是自定义节点和扩展。ComfyUI 生态里有很多第三方节点包,用来补充官方没有的功能,比如视频帧分解与合并、ControlNet 姿态控制、局部重绘、超分放大等。“一体化”说的就是:把这些原本分散在不同项目里的能力,通过 ComfyUI 的工作流组织到同一个界面和同一套 API 里。

“硬刚即梦 2.5”这个说法可以从两个角度理解。如果单纯比生成质量和审美风格,各模型有各自的偏好,不能一概而论;但从能力维度看,本地开源方案已经覆盖了文生图、图生视频、视频编辑这些云端工具的核心场景,而且生成本地化之后,隐私性和可控性更好。所以更准确的理解是:在“能力覆盖范围”和“批量生成自由度”上,开源本地方案已经有了正面对比的条件。

3. 环境准备与前置条件

在下载任何安装包之前,先检查硬件和系统环境。这步没处理好,后面大概率会出现各种奇怪问题。

3.1 显卡与显存

本地生成视频对显卡要求明显高于纯文生图。我的建议是基于显存大小分档处理:

  • 8GB 显存:可以跑文生图,也能尝试轻量视频生成工作流,但需要控制视频帧数和分辨率,建议先用 384p 或 512p 短片段测试。
  • 12GB 到 16GB 显存:目前比较舒适的档位,大多数开源图像模型都能跑,视频生成可以尝试 512p 到 768p,几秒钟的片段。
  • 24GB 及以上:基本可以自由实验大部分开源模型,包括较大体积的视频生成模型。

没有 NVIDIA 显卡、只有核显或 AMD 显卡的情况下,也可以用 CPU 跑通流程,但速度会慢到让你怀疑人生,而且视频生成几乎不可用。这种情况建议先考虑云 GPU 实例,或者优先使用平台的免费额度。

3.2 驱动、CUDA 与 Python

为了保证 PyTorch 能正常调用 GPU,需要一块能正常工作的 NVIDIA 驱动。具体版本不是越新越好,但尽量保持不太老。在命令行输入nvidia-smi,能看到显卡信息就说明驱动正常。CUDA 不一定要单独装,因为 PyTorch 会自带一套运行时,重点是把显卡驱动装对。

Python 版本建议用 3.10 或 3.11。ComfyUI 官方和主流依赖在这两个版本上兼容性最好。不要图新用 3.12、3.13,某些编译型依赖可能没有对应轮子,安装时会报错。

3.3 磁盘空间与网络准备

本地部署最容易被低估的是磁盘占用。ComfyUI 安装包本身不大,但模型文件通常是几个 GB 起步,视频模型甚至可能达到 10GB 以上。建议预留至少 60GB 可用空间,最好放在固态硬盘上。模型加载速度和生成速度都会受到磁盘读写影响。

网络方面,下载模型依赖网络环境,实际下载速度可能不稳定。建议优先选择国内可访问的镜像源,或者用下载工具分片下载,再手动把文件放进 ComfyUI 对应目录。不要在安装过程中频繁中断下载,容易导致模型文件不完整。

4. 安装包获取与 ComfyUI 部署

ComfyUI 的部署方式有两种:一种是直接下载整合好的安装包,适合不想折腾依赖的用户;另一种是用 Git 拉取源码 + Python 虚拟环境安装,适合需要二次开发或自定义程度高的用户。下面主要介绍源码方式,因为它对后续安装自定义节点、升级版本更友好。

4.1 获取 ComfyUI 源码

以 Windows 为例,先确保已经安装 Git。打开命令行,执行:

git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI

如果 GitHub 访问速度不稳定,可以从官方仓库的 Releases 页面下载源码压缩包,或者在码云等国内代码托管平台搜索同步镜像。下载安装包后解压到指定目录,目录路径尽量不要带中文和空格,避免一些工具解析路径时出问题。

4.2 创建虚拟环境并安装依赖

进入 ComfyUI 目录后,创建 Python 虚拟环境:

python -m venv venv

Windows 下激活环境:

venv\Scripts\activate

Linux 或 macOS 下激活环境:

source venv/bin/activate

激活后安装 PyTorch 和 ComfyUI 依赖。PyTorch 官方安装命令会随着 CUDA 版本变化,建议访问 PyTorch 官网选择适合自己的版本。这里给出一个常见指令模板,使用 CUDA 12.x,版本号以官方实际为准:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

然后安装 ComfyUI 核心依赖:

pip install -r requirements.txt

如果网络慢,可以把 pip 源切到清华镜像,下载速度会明显提升:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

4.3 启动 ComfyUI

依赖装好后,启动界面:

python main.py

启动成功后,终端会显示类似下面的地址:

Starting server To see the GUI go to: http://127.0.0.1:8188

浏览器打开http://127.0.0.1:8188,就能看到 ComfyUI 的工作台界面。到这一步说明核心部署已经成功。

很多初学者卡在这一步,往往不是代码问题,而是依赖安装失败。最常见的表现是:启动时提示缺少某个包,或者提示torch没有 CPU/GPU 版本。排查方法很直接,先运行python -c "import torch; print(torch.__version__, torch.cuda.is_available())",如果torch.cuda.is_available()返回False,说明 PyTorch 装成了 CPU 版本,需要卸载重装 GPU 版本。

5. 从文生图跑通第一个工作流

环境启动后,还需要模型文件才能真正生成图片。这一步新手最容易困惑:为什么打开界面后加载默认工作流,生成时却报错找不到模型?原因很简单,模型文件还没有放到指定目录。

5.1 下载图像模型并放置到指定目录

ComfyUI 默认从models/checkpoints/目录加载 Checkpoint 模型。从官方或社区下载开源图像模型后,把文件放到这个目录即可。目录结构大致如下:

ComfyUI/ ├── models/ │ ├── checkpoints/ # 图像模型 │ ├── vae/ # 变分自编码器 │ ├── controlnet/ # 控制网络模型 │ ├── loras/ # 低秩适配模型 │ └── ... ├── custom_nodes/ # 自定义节点 ├── input/ # 输入图片 ├── output/ # 输出结果 └── main.py

严格来说,不同模型对安装位置要求不同,但 Checkpoint 模型放在checkpoints/下是最通用的方式。下载模型时要注意模型格式是否和 ComfyUI 兼容,一般.safetensors格式兼容性最好。

5.2 调整默认工作流

启动 ComfyUI 后,界面默认会加载一个文生图工作流。核心节点如下:

  • Load Checkpoint:选择刚下载的模型。
  • CLIP Text Encode:输入正向提示词和反向提示词。
  • Empty Latent Image:设置生成尺寸、batch 数量。
  • KSampler:控制采样步数、CFG、采样器名称。
  • VAE Decode:把潜空间数据解码成图像。

大多数情况下,只改提示词、选择模型、调整尺寸就能生成第一张图。举个例子,正向提示词可以写:

a cinematic portrait of a young woman, soft window light, detailed eyes, 8k, photorealistic

反向提示词可以写:

blurry, low quality, deformed, extra fingers, watermark

这里真正容易踩坑的地方是采样参数。步数不是越大越好,一般 20 到 30 步已经足够;CFG 太高容易导致颜色过饱和,太低则生成内容可能偏离提示词,建议从 7 左右开始调。

5.3 生成并查看结果

点击 Queue Prompt 按钮,右侧会生成一张图片,输出文件保存在output/目录。如果成功看到图片,说明文生图链路已经通了。如果报错,优先看终端日志,而不是界面上的提示。

从工程角度,我建议用 API 方式生成,这样可以批量测试不同提示词,也更接近生产环境的使用方式。这部分会在第 7 章展开。

6. 扩展视频生成能力:图生视频与文生视频

本地视频生成是这套方案里最复杂、也最值得花时间研究的部分。云端工具之所以让人又爱又恨,就是因为视频生成不仅消耗大量算力,还常常要排队。本地方案虽然没有排队问题,但要把开源视频模型和工作流接好。

6.1 视频生成的两种组织方式

第一种是使用独立的开源视频生成模型。这类模型通常直接支持文生视频或图生视频,输出的是连续帧序列。把模型放入 ComfyUI 的models/checkpoints/或专门目录,然后在工作流里接入视频解码节点,就能得到视频文件。

第二种是使用视频生成自定义节点。ComfyUI 生态中 AnimateDiff 等扩展通过这种方式实现:先生成一组连续潜空间帧,再做时序采样,最终拼接成视频。它更灵活,可以和 ControlNet、LoRA 组合使用,但节点更多,参数更复杂。

对新手来说,建议先选择官方或社区提供的一体化视频生成工作流模板,而不是自己从零搭建节点图。

6.2 安装自定义节点

以社区节点为例,在custom_nodes目录下执行:

git clone https://github.com/example/video-node.git cd video-node pip install -r requirements.txt

注意,这里example/video-node只是占位,实际使用时要去搜索相关开源视频扩展项目,并查看其 README 中关于 ComfyUI 兼容版本和模型放置位置的说明。很多节点还要额外下载配套模型,放在节点文档指定的目录,这一步千万不要跳过。

安装完成后,重启 ComfyUI,节点列表里会出现该扩展的节点类型。如果节点没有出现在界面里,可能原因包括:依赖安装失败、与当前 ComfyUI 版本不兼容、自定义节点目录结构不正确。

6.3 图生视频工作流示例

图生视频的核心是:先加载一张参考图,把这张图编码到潜空间,再用视频模型对这个潜空间做时序扩展。一个简化的工作流逻辑如下:

Load Image -> VAE Encode -> ImageToVideo Model -> Sample Video Latents -> VAE Decode -> Save Video

ComfyUI 的工作流文件是 JSON 格式,但手动编写工作流 JSON 很容易出错。更可靠的方式是:在社区下载别人分享的“图生视频工作流模板”,拖进 ComfyUI 界面即可自动加载。如果你的需求是批量处理,可以先用界面编辑好工作流,再通过菜单导出 API 格式的 JSON,之后用脚本提交。

真实项目里,视频生成最花时间的不是配置,而是调参。分辨率、帧数、运动强度这三个参数会明显影响生成效果。帧数越高,显存占用越大;运动强度太高,画面容易扭曲;分辨率太高,生成时间急剧上升。建议先用 512 x 512、8 到 16 帧做小规模测试,确认工作流能跑通后再调高参数。

6.4 模型下载与放置规范

视频模型的体积通常远大于图像模型。下载前先确认模型文件的哈希值或大小,避免下载了损坏文件。放置位置尽量遵循模型说明,不要随意改名。如果需要同时管理多个模型,建议在models/下按用途分子目录,例如models/video/。ComfyUI 加载模型时可能会扫描整个模型目录,目录层级太深可能导致界面加载缓慢。

7. 用 API 方式批量生成与结果验证

当界面操作流程稳定后,很多开发者的下一步需求是批量生成。ComfyUI 内置了 HTTP API,允许我们通过接口提交工作流,然后轮询结果。这种方式非常适合自动化测试、批量出图和后续产品集成。

7.1 导出 API 格式工作流

在 ComfyUI 界面的工作流编辑区,点击菜单中的 Save (API Format),会得到一个 JSON 文件。这个文件和界面保存的工作流文件不同,它按 API 格式组织节点,可以直接用脚本提交。强烈建议用这种导出方式,而不是手写 JSON。

7.2 使用 Python 脚本提交工作流

安装 requests 库后,写一个简单的提交脚本:

import json import requests import time COMFYUI_API = "http://127.0.0.1:8188" def load_workflow(path): with open(path, "r", encoding="utf-8") as f: return json.load(f) def submit_prompt(workflow): resp = requests.post(f"{COMFYUI_API}/prompt", json={"prompt": workflow}) resp.raise_for_status() return resp.json() def get_history(prompt_id): resp = requests.get(f"{COMFYUI_API}/history/{prompt_id}") resp.raise_for_status() return resp.json() if __name__ == "__main__": wf = load_workflow("workflow_api.json") result = submit_prompt(wf) prompt_id = result.get("prompt_id") print("Submitted:", prompt_id) for _ in range(120): history = get_history(prompt_id) if prompt_id in history: print("Finished:", history[prompt_id].get("status")) break time.sleep(2)

这段脚本的逻辑是:读取工作流 JSON,提交到/prompt接口,然后每隔 2 秒轮询/history接口,直到产出结果。如果你的工作流里包含保存图片或视频的节点,输出文件会出现在output/目录。

需要特别注意:API 方式和界面操作共享同一个队列。如果界面上有任务在跑,API 提交的任务会排队等待,这属于正常行为。

7.3 结果验证的两个维度

判断生成是否成功,不能只看任务状态。第一层验证是“任务是否完成”,检查/history中的状态,如果含有error字段,说明任务失败,需要查看终端日志。第二层验证是“内容是否可用”,比如视频文件是否能正常播放、视频帧是否连贯、图片是否包含明显伪影。这一步需要人为干预,自动化脚本只能帮你把文件生成出来,不能保证内容质量。

如果你打算把生成流程接入自己的项目,建议先记录每个工作流对应的参数版本。因为同一个工作流 JSON,换一个模型后结果可能完全不同,后续做效果回归对比时,没有参数记录很难定位变化来源。

8. 常见问题与排查思路

本地部署必然会遇到问题。下面按出现频率整理了一份排查表,覆盖从启动到生成的常见故障。

问题现象可能原因排查方式解决方案
启动后网页打不开服务未成功启动,端口被占用查看终端日志,检查 8188 端口占用情况关闭占用端口的进程,或修改启动参数更换端口
生成图片时报找不到模型模型没有放到正确目录检查models/checkpoints目录下文件是否存在将模型文件放入正确目录,并确认文件名和节点选择一致
提示 torch 没有 GPUPyTorch 装成了 CPU 版本运行python -c "import torch; print(torch.cuda.is_available())"卸载 PyTorch 后,重新安装 GPU 版本
生成图片模糊或有重复纹理采样步数不足或 VAE 缺失检查输出图片尺寸和采样器参数增加步数,确认模型自带 VAE 或单独放置 VAE
视频生成时显存溢出分辨率或帧数过高查看报错信息中是否有out of memory降低分辨率和帧数,或使用轻量视频模型
自定义节点加载失败依赖未安装或版本不兼容查看终端日志中的节点加载报错按节点文档安装依赖,或更新 ComfyUI 版本后再试
下载模型后无法加载文件损坏或格式不对对比模型文件哈希值或大小重新下载完整文件,优先选择.safetensors格式

这些问题之间有一个共同规律:90% 的情况下,报错信息已经指出了方向。不要一看到日志就慌,先搜索报错关键字,往往比盲目改参数更高效。

8.1 启动失败时的排查顺序

如果你的启动一直失败,建议按以下顺序排查:

  1. 看终端有没有 Python 版本提示错误,确认当前虚拟环境已经激活。
  2. 看是否缺少依赖,把requirements.txt里的依赖重新安装一遍。
  3. 确认显卡驱动正常,PyTorch 能识别 GPU。
  4. 如果是升级后出问题,查看更新日志是否存在破坏性变更。

8.2 生成效果不佳时的优化方向

效果不佳的排查逻辑和程序报错不同。程序报错一定是“哪里断了”,效果不佳往往是“哪里不匹配”。如果你是照着某个教程的提示词和参数来跑,但效果差距很大,优先检查三点:模型是否和教程一致;采样器步数和 CFG 是否被无意改动;VEA 是否正常工作。很多教程里的模型是社区精调版本,换成通用模型后,提示词的理解方式和画风完全不一样,这属于正常现象。

9. 最佳实践与工程建议

把本地 AI 方案真正用在项目里,不能只停留在“能跑通”。下面几条建议来自实践中反复踩过的坑。

9.1 模型管理和工作流版本管理

建议建立清晰的目录规范。模型文件按用途分类,工作流 JSON 放进 Git 仓库管理。每次跑出一个满意效果,就把工作流、模型文件名、关键参数记录到一份说明文件里。这样做的好处是:当你想复现某个效果时,不用靠记忆找回参数。视频生成项目尤其如此,因为模型版本之间的效果差异比图像模型更大。

9.2 优先使用 API 而不是手动点击

只要涉及批量出图或自动化处理,务必使用/prompt接口。手动点击适合验证想法,不适合生产流程。API 方式还能方便你集成排队逻辑、失败重试和结果通知,让生成过程变成一条可观测的流水线。

9.3 显存优化和性能调优

如果显存不够,可以尝试以下几种方式:降低 batch size、降低分辨率、使用--lowvram--medvram启动参数、使用模型浮点量化版本。其中--lowvram会影响生成速度,但能让本来跑不动的模型跑起来。先保证功能,再追求画质,这是本地部署里最务实的做法。

9.4 安全意识与素材规范

本地部署不等于没有边界。模型文件本身可能来自不同社区,下载时要从可信渠道获取。生成内容也要遵守合规要求,不要使用开源工具制作违规素材。如果你在公司项目中使用,还需要注意模型的许可证差异,有些模型允许商用,有些只允许研究使用,使用前务必查阅授权条款。

9.5 不要盲目追求最大模型

很多人拿到新机器后第一反应是下载最大体积的模型。实际使用中最大的模型不一定最适合你的需求,也不一定和你的显存匹配。更合理的做法是:先跑通一个小模型,验证工作流没有问题,再切换到更大模型观察效果。这样能减少排查问题的复杂度。

10. 总结与后续学习方向

这篇文章把“本地开源生图 + 视频一体化方案”拆成了四个环节:环境准备、ComfyUI 部署、文生图工作流、视频生成扩展。真正值得记住的不是某个具体命令,而是整个方案的思考方式:本地 AI 工具链是一个模型与工作流互相配合的系统,遇到问题先确认模型位置和依赖版本,再判断参数和效果问题。

如果你从头跟到了这里,建议下一步这样实践:先去跑通一个文生图工作流,熟悉节点之间的关系;然后安装一个视频生成自定义节点,用默认参数生成一段短视频;最后再考虑用 API 方式把生成流程固化下来。每完成一步,你都会对这套技术栈有更具体的感知。

这篇文章提到的安装包和模型,都可以在对应官方仓库的 Releases 页面找到,优先选择发布版本而不是开发分支。建议收藏备用,按文章顺序一步步操作,不用急着追求复杂功能。把最基础的对象关系搞清楚后,后面上 ControlNet、LoRA、视频工作流模板都会顺很多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询