ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ComfyUI入门指南:从零搭建Stable Diffusion可视化工作流

ComfyUI入门指南:从零搭建Stable Diffusion可视化工作流 1. 先搞清楚 ComfyUI 到底能帮你做什么以及它和 WebUI 的根本区别如果你刚开始接触 Stable Diffusion或者已经在用 WebUI 但觉得操作繁琐、流程固定那 ComfyUI 就是你下一步必须了解的工具。它不是一个简单的“另一个界面”而是一个可视化编程环境让你能像搭积木一样用节点和连线的方式完全自定义 AI 绘画或视频生成的每一个步骤。很多人被“工作流”这个词吓到以为需要编程基础。其实完全不是。它的核心价值在于透明和可控。在 WebUI 里你点一下“生成”背后发生了什么你很难知道。但在 ComfyUI 里从加载模型、输入提示词、设置采样器、到后期放大、人脸修复每一步都是一个看得见、摸得着的“节点”。你可以随意调整顺序插入新的处理环节或者把一套复杂的流程保存下来下次一键复用。所以这篇文章适合两类人一是想从 WebUI 进阶追求更高自由度和自动化能力的用户二是希望将 AI 图像/视频生成流程固化、复用于特定项目比如固定风格的漫画、产品图的创作者。最关键的它不是教你点哪个按钮而是教你理解流程并搭建属于自己的“生产线”。2. 环境部署从“秋叶整合包”开始避开 90% 的安装坑对于绝大多数国内用户最稳妥、最省心的起步方式就是使用“秋叶大佬”制作的 ComfyUI 一键整合包。自己从零安装 Python、配置环境、处理各种依赖冲突会消耗大量时间且极易失败。整合包帮你解决了所有前置问题。第一步获取与启动去秋叶的发布页面通常在 GitHub 或国内网盘下载最新的整合包。解压到一个没有中文和特殊字符的路径比如D:\ComfyUI。找到文件夹里的run_nvidia_gpu.batN卡用户或run_cpu.bat文件双击运行。首次启动会相对较慢因为它需要初始化并下载一些必要的运行时文件。第二步验证启动成功启动后命令行窗口会输出日志最终你会看到一行类似Running on local URL: http://127.0.0.1:8188的信息。这时打开你的浏览器输入http://127.0.0.1:8188就能看到 ComfyUI 的界面了。一个空白的画布右侧是节点选择面板这就代表基础环境部署成功。第三步放置基础模型整合包通常不自带大模型。你需要将你的*.safetensors模型文件如 SDXL 模型放入ComfyUI\models\checkpoints文件夹。VAE 模型放入models\vaeLoRA 模型放入models\loras。放好后在 ComfyUI 界面刷新一下就能在对应的节点里看到并选择它们了。注意不要一上来就追求最新版本的 ComfyUI。整合包基于某个稳定版本构建。直接覆盖升级核心文件可能导致插件不兼容。先用稳再求新。3. 核心概念拆解节点、工作流与最小可运行示例现在界面打开了一片空白从哪开始别急着找复杂工作流导入。我们先理解最核心的三个东西节点、连线和工作流文件。节点就是一个个功能模块。比如Load Checkpoint加载大模型。CLIP Text Encode将你的提示词正面/负面编码成模型能理解的数据。KSampler采样器决定如何从噪声中“画出”图像包含采样方法、步数、CFG 等关键参数。VAE Decode将采样后的潜空间数据解码成最终的 RGB 图片。Save Image将图片保存到磁盘。连线代表数据流向。一个节点的输出端口小圆点连接到另一个节点的输入端口数据就传递过去了。连线有类型比如模型、条件、潜空间、图像通常颜色不同不能乱连。工作流就是所有节点和连线的排列组合状态。它可以被保存为一个.json或.png文件。分享工作流其实就是分享这个配置文件。动手搭一个最简单的流程在空白处右键选择Add Node。找到loaders-Load Checkpoint点击添加。这是起点。再次右键找到conditioning-CLIP Text Encode添加两个一个用于正面提示词prompt一个用于负面提示词negative prompt。右键找到sampling-KSampler。右键找到latent-Empty Latent Image用于定义生成图片的宽高和批次。右键找到save-Save Image。现在开始连线将Load Checkpoint的MODEL输出连到KSampler的model输入。将Load Checkpoint的CLIP输出分别连到两个CLIP Text Encode节点的clip输入。在CLIP Text Encode节点的text输入框里分别输入你的正面和负面提示词。将两个CLIP Text Encode的CONDITIONING输出分别连到KSampler的positive和negative输入。将Empty Latent Image的LATENT输出连到KSampler的latent_image输入。将KSampler的LATENT输出连到VAE Decode的latent_image输入VAE Decode节点在latent类别里。将Load Checkpoint的VAE输出连到VAE Decode的vae输入。最后将VAE Decode的IMAGE输出连到Save Image的images输入。设置KSampler参数steps步数如20cfg如7.5采样器如dpmpp_2m调度器如karras。设置Empty Latent Image的宽高如 512x512。点击右下角的Queue Prompt按钮。如果一切正常你会在下方的历史记录里看到生成的图片。恭喜你完成了第一个手动搭建的工作流它虽然基础但包含了最核心的链路。理解了这个任何复杂工作流你都能慢慢拆解明白。4. 插件生态与管理用 ComfyUI Manager 高效扩展能力原生 ComfyUI 的功能节点是有限的。强大的社区插件生态才是其生产力的源泉。手动安装插件需要克隆 GitHub 仓库到custom_nodes文件夹处理依赖非常麻烦。因此第一个必须安装的“插件”是 ComfyUI Manager。安装 ComfyUI Manager进入你的 ComfyUI 根目录下的custom_nodes文件夹。打开命令行终端执行以下命令确保你在custom_nodes路径下git clone https://github.com/ltdrdata/ComfyUI-Manager.git重启 ComfyUI。重启后在界面上你应该能看到多了一个Manager的按钮。使用 Manager 安装其他插件点击Manager打开管理器界面。切换到Install Node(s)标签页。你可以在这里搜索插件名称如ComfyUI-Impact-Pack,ComfyUI-AnimateDiff-Evolved。找到后点击安装。Manager 会自动处理 git 克隆和依赖安装。安装完成后必须重启 ComfyUI新插件的节点才会出现在右键菜单中。处理“缺失节点”错误当你导入一个别人分享的工作流时经常遇到红框提示“请安装缺失的包以使用此工作流”。这时不要慌点击工作流画布上的Manager按钮。选择Install Missing Custom Nodes。Manager 会列出缺失的节点并提示安装。确认安装即可。安装后同样需要重启生效。经验之谈插件不要一次性装太多。按需安装并了解每个插件的主要功能。插件之间可能存在冲突如果安装新插件后出现奇怪问题可以尝试暂时将其从custom_nodes文件夹移出来排查。5. 工作流的保存、加载与分享建立你的可复用资产库搭建好的工作流是你的核心资产必须妥善管理。保存工作流保存为.json点击界面上的Save按钮会保存一个包含所有节点、连线、参数信息的 JSON 文件。这是最完整的保存方式便于后续编辑。保存为.pngComfyUI 有一个特性可以将工作流信息嵌入到生成的图片文件中。当你用Save Image节点保存图片时工作流数据已经包含在里面了。你也可以点击Save (API Format)按钮旁边的Save Image图标将当前画布保存为一张包含工作流数据的 PNG。验证将这张 PNG 图片拖回 ComfyUI 的画布它会自动还原成工作流。这是分享作品和流程最常用的方式。加载工作流加载.json点击Load按钮选择你的 JSON 文件。加载.png直接将包含工作流的 PNG 图片文件拖入 ComfyUI 浏览器窗口的画布区域。组织你的工作流建议在 ComfyUI 根目录下建立一个workflows文件夹里面再按类别分如文生图、图生图、修复、动画等把.json文件分类存放。对于嵌入工作流的 PNG 图也可以单独用一个outputs_with_workflow文件夹来存放方便检索。分享工作流分享.json文件或嵌入工作流的 PNG 图片即可。但务必注意对方需要有你所使用的所有模型和插件。否则加载时会报“缺失节点”错误。分享时最好附带一个简单的说明列出需要的主要模型和核心插件名称。6. 从静态到动态搭建你的第一个 AI 动画工作流静态图像满足后AI 视频动画是 ComfyUI 的另一个强大领域。其核心原理是让多帧图像在内容上保持连贯。这里以 AnimateDiff 为例演示如何扩展基础工作流。核心思路在原有的文生图流程中插入一个“运动模块”让采样过程不再是生成单张潜空间图而是生成一个潜空间序列视频帧。步骤使用 ComfyUI Manager 安装ComfyUI-AnimateDiff-Evolved插件。重启。搭建一个基础的文生图工作流如第3章所示。在Load Checkpoint和KSampler之间插入运动模块节点右键Add Node找到AnimateDiff相关类别。添加AnimateDiffLoader节点。将其model输入连接到Load Checkpoint的MODEL输出。这个节点负责加载运动模型如mm_sd_v15_v2.ckpt需单独下载并放入models/animatediff文件夹。修改起点将Empty Latent Image节点替换为Empty Latent Image Mass节点通常由 AnimateDiff 插件提供因为它可以定义批次大小batch size而批次在这里就相当于帧数。例如设置batch_size为 16就是生成 16 帧。连接将AnimateDiffLoader的MOTION_MODEL输出连接到KSampler的model输入这会覆盖之前从Load Checkpoint直接连过来的线。在KSampler之后VAE Decode之前你需要添加一个AnimateDiffCombine之类的节点具体名称可能因插件版本而异将采样后的潜空间序列合并处理再送给 VAE 解码。最终VAE Decode输出的IMAGE将是一个图像列表多帧。你需要使用Save Image节点的特殊版本如SaveAnimatedWEBP或SaveAnimatedPNG来保存为 GIF 或视频格式。关键参数batch_size动画总帧数。frame_rate帧率决定播放速度。运动模型不同的运动模型v1, v2, v3对运动幅度和类型的控制不同需要根据效果选择。这个流程比静态图复杂但搭建一次后你就可以通过调整提示词、运动模型和帧数批量生成各种风格的短视频了。这正是工作流“一次搭建无限复用”价值的体现。7. 进阶技巧与高效操作提升搭建效率当熟悉基础后这些技巧能让你事半功倍1. 节点操作技巧框选与多选鼠标拖拽可以框选多个节点进行整体移动、复制、删除。CtrlC / CtrlV支持跨工作流复制粘贴节点需在同一个 ComfyUI 实例内。Ctrl鼠标点击可以同时选择多个不连续的节点。鼠标中键拖动平移整个画布视图。Ctrl鼠标滚轮缩放画布视图。双击连线可以快速删除该连线。2. 使用“节点快照”快速复用局部流程如果你搭建了一套复杂的提示词处理流程比如多个文本混合、风格注入可以将其框选然后点击Save (API Format)按钮不是普通的 Save这段流程会以代码形式保存在剪贴板。在另一个工作流里点击Load (API Format)粘贴进去就能快速恢复这部分节点。这比保存整个工作流再修改更灵活。3. 利用“Reroute”和“Note”节点整理布线工作流复杂后连线会像一团乱麻。有两个整理神器Reroute 节点在右键菜单的utils里。把它放在连线上可以将长连线“打断”让布线更规整避免交叉。Note 节点在utils里。可以添加文字注释用来标记某个功能区域如“提示词处理区”、“放大修复区”方便日后维护和理解。4. 调试与排查查看数据鼠标悬停在节点的输出端口上会显示当前通过该端口的数据类型和简要形状如LATENT: (1, 4, 64, 64)。强制重绘有时节点显示异常可以右键画布空白处选择Refresh刷新。检查队列点击Queue Prompt后如果没反应查看命令行窗口是否有红色报错信息。这是最重要的调试窗口。8. 常见问题与系统化排查清单遇到问题别急着重装按这个顺序排查1. 启动失败或无法访问网页检查路径ComfyUI 所在路径不能有中文或空格。检查端口占用默认端口是 8188。如果被其他程序占用可以修改extra_model_paths.yaml示例文件或启动参数来更换端口。查看命令行日志启动时的错误信息会直接打印在命令行窗口这是第一手资料。2. 加载工作流后节点大面积报错红色第一反应点击Manager-Install Missing Custom Nodes。这是最常见的原因。插件冲突如果安装了新插件后出现问题尝试暂时将custom_nodes里对应插件的文件夹移走重启 ComfyUI 测试。模型缺失确认工作流中指定的模型大模型、LoRA、VAE、ControlNet等已放置在正确的models子目录下。3. 生成图片纯黑、纯灰或崩溃检查 VAE有些模型需要特定的 VAE。尝试在Load Checkpoint节点后显式连接一个VAE Loader节点选择一个合适的 VAE如sdxl_vae.safetensors。显存不足生成大图或高帧数动画时易发生。降低Empty Latent Image的尺寸或减少batch_size。使用--lowvram参数启动可能有助于缓解。采样器或步数问题极端参数可能导致数值不稳定。换用经典的采样器如 Euler, DPM 2M和适中的步数20-30测试。4. 生成结果不符合预期画面乱、内容错检查提示词连接确认正面/负面提示词节点正确连接到了CLIP Text Encode并且CLIP Text Encode的输出连到了KSampler的正确输入。检查模型确认Load Checkpoint节点加载的是你想要的模型。清理缓存在Settings菜单中可以找到清除缓存或重置的选项有时能解决一些顽固问题。5. 想回退到干净状态如果你安装了大量插件导致环境混乱最简单的办法是备份你的models文件夹里面是你的模型资产和output文件夹你的产出然后重新解压一份干净的秋叶整合包再把备份的models和output覆盖回去。这样你就得到了一个干净的核心环境插件可以按需重新安装。ComfyUI 的学习曲线初期较陡但一旦你理解了节点和流的概念并成功搭建出第一个符合自己需求的工作流你会发现它的效率和灵活性是其他工具难以比拟的。我的建议是不要试图一次吃透所有插件。从最小可运行示例开始每解决一个具体需求比如“我想高清放大”、“我想局部重绘”就去学习添加对应的节点模块逐步积累你的工具库。最终你将拥有一个完全为你量身定制的 AI 创作车间。
返回列表