当前位置: 首页 > news >正文

【AI大模型】ComfyUI:Stable Diffusion可视化工作流

ComfyUI 是一个基于节点式工作流的 Stable Diffusion WebUI。它通过可视化的节点连接方式,让用户能够更精细、更灵活地控制和理解 Stable Diffusion 图像生成的整个过程。与 Automatic1111 等传统 WebUI 不同,ComfyUI 的核心在于其可视化工作流

核心概念:可视化工作流

  1. 节点: 工作流的基本构建块。每个节点代表一个特定的功能或操作(例如:加载模型、输入提示词、执行采样、解码图像、应用放大等)。

  2. 连接线: 连接不同节点的输入和输出端口,定义数据(如图像、潜空间表示、条件信息、模型、参数等)在工作流中的流动方向。

  3. 工作流: 由节点和连接线组成的完整图像生成管道。它清晰地展示了从输入(提示词、初始图像等)到输出(最终图像)的每一步处理。

ComfyUI 可视化工作流的优势

  1. 高度可视化与透明化:

    • 直观地看到整个生成过程的每个步骤。

    • 清晰地理解提示词、模型、采样器、潜在空间、VAE 等组件是如何相互作用并最终生成图像的。

    • 方便调试问题(例如,哪一步的输出不符合预期)。

  2. 无与伦比的灵活性:

    • 模块化: 可以自由组合、插入、移除或替换工作流中的任何部分。想尝试不同的 VAE?换一个 VAE 加载节点即可。想在潜空间做特殊处理?插入相应的处理节点。

    • 复杂流程: 轻松构建极其复杂的工作流,例如:多阶段生成(先生成草图再细化)、图像混合、条件控制(ControlNet, IPAdapter, T2IAdapter 等)的多重组合、自定义后处理链(放大、修复、面部修复、滤镜等)。

    • 自定义逻辑: 实现条件分支、循环(虽然原生支持有限,但可通过特定节点或外部脚本结合实现)等更高级的逻辑。

  3. 可复用性与共享:

    • 可以将精心设计的工作流保存为 .json 或 .png 文件。

    • 轻松分享给他人,他人导入后即可完全复现你的生成过程和结果(前提是使用相同的模型和自定义节点)。

    • 社区有大量高质量、功能强大的工作流分享,是学习和快速实现复杂效果的重要资源。

  4. 资源效率 (通常):

    • 只执行工作流中定义的必要步骤。

    • 智能缓存:如果工作流的一部分及其输入没有改变,ComfyUI 可能会重用之前的计算结果,避免重复计算,提高效率(尤其在复杂工作流多次运行时)。

  5. 面向高级用户和自动化:

    • 为理解 Stable Diffusion 内部机制提供了绝佳的学习工具。

    • 其结构天然易于与外部脚本或程序集成,方便进行批处理或构建更复杂的自动化管道。

一个典型的 ComfyUI 工作流示例 (文字描述)

想象一个生成图片并放大的基本流程:

  1. CheckpointLoader 节点: 加载你选择的 Stable Diffusion 模型 (.ckpt 或 .safetensors) 和对应的 VAE。

  2. CLIPTextEncode 节点 (通常有两个):

    • 一个连接 CheckpointLoader 的 clip 输出,并输入正面提示词

    • 另一个同样连接 clip,输入负面提示词

  3. EmptyLatentImage 节点: 根据你设定的宽度、高度和批次大小,创建一个空的潜空间图像(噪声)。

  4. KSampler 节点: 这是核心采样器节点。

    • 输入:连接 CheckpointLoader 的 model,连接正面提示词 CLIPTextEncode 的 conditioning,连接负面提示词 CLIPTextEncode 的 conditioning,连接 EmptyLatentImage 的 latent_image

    • 配置:选择采样器 (如 EulerDPM++ 2M Karras)、调度器 (如 normalkarras)、步数、CFG 值等。

    • 输出:采样后的潜空间表示。

  5. VAEDecode 节点:

    • 输入:连接 KSampler 输出的 latent_image,连接 CheckpointLoader 的 vae

    • 输出:解码后的像素图像 (通常称为 IMAGE)。

  6. SaveImage 节点: 连接 VAEDecode 输出的 IMAGE,将最终生成的图片保存到磁盘。

可视化呈现: 在 ComfyUI 界面中,你会看到这些节点排列在画布上,并用箭头(连接线)将它们按上述逻辑连接起来。连线清晰地显示了数据(模型、条件信息、潜空间、图像)的流动路径。

构建更复杂的工作流

  • ControlNet: 添加 ControlNetLoader 节点加载 ControlNet 模型,添加 ControlNetApply 节点。将预处理后的参考图(如边缘图、深度图)和对应的条件信息输入到 ControlNetApply,并将其输出连接到 KSampler 的 positive 和 negative conditioning 输入(通常需要与原有的 conditioning 合并)。

  • LoRA: 添加 LoraLoader 节点,加载 LoRA 文件,并连接到 CheckpointLoader 和 CLIPTextEncode 之间(或之后),将其输出(通常是更新后的 model 和 clip)传递给后续节点。

  • 图像到图像: 将 EmptyLatentImage 替换为 VAEEncode 节点,将初始图像输入 VAEEncode 编码为潜空间表示,再输入 KSampler。通常还需要调整 denoise 强度。

  • 高清修复/放大: 在生成基础图像后,使用 LatentUpscale 或 ImageUpscaleWithModel 节点放大潜空间或像素图像,然后可能通过另一个 KSampler 进行精细化采样,最后再 VAEDecode 和 SaveImage。常用的放大模型如 UltraSharp 或 ESRGAN 需要对应的加载节点。

  • 面部修复: 在生成图像后,使用 FaceRestoreWithModel 节点(如 CodeFormer)进行面部修复。

  • 多路输出/比较: 可以复制流程分支(例如,一个分支用 VAE A 解码,另一个用 VAE B 解码),将不同结果输出到不同的 PreviewImage 或 SaveImage 节点,方便比较。

总结

ComfyUI 的可视化工作流是其灵魂所在。它将 Stable Diffusion 的生成过程拆解为可视化的、可连接的模块(节点),提供了:

  • 无与伦比的透明度: 看清每一步发生了什么。

  • 极致的灵活性: 像搭积木一样自由构建任意复杂度的流程。

  • 强大的可复用性: 保存和分享完整的工作流。

  • 潜在的效率提升: 智能执行和缓存。

虽然其节点式界面有一定的学习门槛,尤其对于新手,但一旦掌握,它将成为进行复杂、可控、可重复的 Stable Diffusion 图像生成和实验的强力工具。它是许多高级用户、研究人员和追求精细化控制用户的首选界面。

http://www.dtcms.com/a/278113.html

相关文章:

  • java基础编程(入门)
  • C++多线程知识点梳理
  • 深入理解 Java Map 与 Set
  • 每天学一个八股(二)——详解HashMap
  • 封装---优化try..catch错误处理方式
  • 【echarts踩坑记录】为什么第二个Y轴最大值不整洁
  • Acrobat 表单中的下拉菜单(附示例下载)
  • 使用docker的常用命令
  • RS4585自动收发电路原理图讲解
  • 从 Manifest V2 升级到 Manifest V3 的注意事项
  • Extended Nested Arrays for Consecutive Virtual Aperture Enhancement
  • 财务管理体系——解读大型企业集团财务管理体系解决方案【附全文阅读】
  • Python异步编程
  • 57.第二阶段x64游戏实战-实时监控抓取lua内容
  • 利用低汇率国家苹果订阅,120 元开通 ChatGPT Plus
  • 14.使用GoogleNet/Inception网络进行Fashion-Mnist分类
  • docker基础部署
  • ID生成策略
  • 在新版本的微信开发者工具中使用npm包
  • 用信号量实现进程互斥,进程同步,进程前驱关系(操作系统os)
  • DOS下EXE文件的分析 <1>
  • MacBook Air通过VMware Fusion Pro安装Win11
  • 从代码学习深度强化学习 - DDPG PyTorch版
  • [Python 基础课程]列表
  • 【DataLoader的使用】
  • 力扣 hot100 Day43
  • Actor-Critic重要性采样原理
  • java valueOf方法
  • 【算法】贪心算法入门
  • SwiftUI 7 新 WebView:金蛇出洞,网页江湖换新天