菜单

高级模型

相关源文件

本页面涵盖了ComfyUI对现代基于Transformer的扩散模型架构的支持,包括流匹配模型、视频生成系统和先进的引导技术。这些模型代表了生成式AI的前沿,超越了传统的UNet架构,转向更复杂的基于Transformer的设计。

有关传统UNet模型和注意力机制的信息,请参阅UNet和注意力。有关文本编码器的详细信息,请参阅文本编码器。有关模型修补和LoRA集成,请参阅模型修补和LoRA

Flux 模型

Flux代表了扩散模型的一项重大进步,它使用纯粹的Transformer架构和流匹配,而不是传统的去噪。该架构包含两个主要的处理流,它们分别处理图像和文本数据,然后再将它们合并。

核心架构

Flux类实现了一个专门为序列上的流匹配设计的Transformer模型。该模型使用双流架构,为图像和文本token提供独立的处理路径。

来源: comfy/ldm/flux/model.py37-212

双流处理

Flux架构使用通过DoubleStreamBlockSingleStreamBlock层实现的复杂双流方法

DoubleStreamBlock 分别处理图像和文本token

  • 为图像和文本流维护独立的注意力机制
  • 使用调制将两个流都条件化到时间步和向量输入
  • 应用RMSNorm和QKNorm以实现稳定的训练
  • 支持注意力掩码和位置嵌入

SingleStreamBlock 处理合并后的图像-文本序列

  • 将图像和文本token合并成一个序列
  • 使用并行线性层以提高效率
  • 应用与双流块相同的调制系统

来源: comfy/ldm/flux/layers.py132-261

RoPE 位置编码

Flux 使用旋转位置嵌入 (RoPE) 来处理空间和时间关系。EmbedND类处理多维位置编码

RoPE 实现支持不同的设备和优化

  • MPS 和 DirectML 设备的 CPU 回退
  • 用于旋转矩阵计算的高效 einsum 操作
  • 支持多维位置编码(时间、高度、宽度)

来源: comfy/ldm/flux/math.py24-44

Flux ControlNet

ControlNetFlux类扩展了基础Flux模型,以支持通过控制图像进行条件生成

来源: comfy/ldm/flux/controlnet.py52-207

SD3 模型

Stable Diffusion 3 引入了一种基于Transformer的架构,该架构需要专门处理其三文本编码器系统和高级条件机制。

三文本编码器系统

SD3 使用三个独立的文本编码器,必须同时加载和协调

编码器目的典型模型
clip_lCLIP-L 文本编码clip-l
clip_gCLIP-G 文本编码clip-g
t5xxlT5-XXL 长文本编码t5

TripleCLIPLoader节点负责同时加载所有三个编码器,而CLIPTextEncodeSD3则协调它们的输出

来源: comfy_extras/nodes_sd3.py9-86

SD3 跳层引导

SkipLayerGuidanceSD3节点实现了一种高级引导技术,该技术专门针对SD3的Transformer架构进行了优化

来源: comfy_extras/nodes_sd3.py104-125

视频生成模型

ComfyUI通过Hunyuan Video架构支持先进的视频生成,该架构将基于Transformer的扩散扩展到时间序列。

Hunyuan Video 架构

HunyuanVideo类实现了一个复杂的视频生成模型,其中包含用于时间处理的专用组件

关键创新在于3D补丁嵌入系统,该系统可以同时处理时间、高度和宽度维度,使模型能够理解运动和时间关系。

来源: comfy/ldm/hunyuan_video/model.py163-356

Token Refiner 系统

Hunyuan Video 包含一个名为TokenRefiner的先进文本处理系统,该系统可提高文本到视频的对齐度

TokenRefinerBlock使用基于时间步的自适应层归一化 (AdaLN) 来在整个去噪过程中精炼文本表示。

来源: comfy/ldm/hunyuan_video/model.py44-162

图像到视频生成

Hunyuan Video 通过专门的条件机制支持图像到视频生成

V1 (Concat) 模式:将参考图像 latent 与掩码连接 V2 (Replace) 模式:用参考图像替换第一帧 Custom Mode:使用参考 latent 作为附加条件

来源: comfy_extras/nodes_hunyuan.py71-115

高级引导技术

现代模型支持高级引导机制,这些机制超越了传统的无分类器引导。

跳层引导 (SLG)

SkipLayerGuidanceDiT类实现了一种通用的引导技术,可以应用于任何DiT(扩散Transformer)模型

该技术通过以下方式工作

  1. 运行正常的CFG,所有层都激活
  2. 运行第二个通道,跳过指定的层
  3. 混合结果以增强结构细节

关键参数

  • double_layers / single_layers:要跳过的Transformer层
  • scale:引导效果的强度
  • start_percent / end_percent:在采样过程中何时应用SLG
  • rescaling_scale:可选的输出重缩放以维持方差

来源: comfy_extras/nodes_slg.py6-80

流匹配 vs 去噪

Flux 等流匹配模型使用的数学公式与传统的去噪扩散不同

方面传统扩散流匹配
进程噪声 → 图像流场跟踪
训练预测噪声预测速度
采样去噪步骤流积分
引导CFG 应用于噪声预测CFG 应用于流速度

这种根本性的区别需要专门的采样和引导技术,ComfyUI 通过特定于模型的实现来透明地处理这些技术。

集成到 ComfyUI

高级模型通过处理其独特需求的专用节点类与 ComfyUI 的节点系统集成

每种高级模型都需要

  • 专门的文本编码以处理多个编码器
  • 自定义 latent 格式(SD3 为 16 通道,视频为 5D 张量)
  • 特定于模型的引导技术和参数
  • 高级条件机制用于复杂输入

来源: comfy_extras/nodes_flux.py3-63 comfy_extras/nodes_sd3.py9-139 comfy_extras/nodes_hunyuan.py7-124