ComfyUI 中的文本编码器将自然语言提示转换为数值嵌入,以指导扩散模型的生成。该系统支持多种编码器架构,包括 CLIP、T5、BERT 和 LLAMA 模型,并为 Stable Diffusion、SDXL、SD3、Flux 等模型系列提供了专门的实现。
有关处理文本编码器权重的模型加载和管理系统的信息,请参阅模型修补和 LoRA。有关这些嵌入在采样过程中如何使用的详细信息,请参阅条件和引导。
文本编码器系统遵循分层设计,基础类提供通用功能,专门实现提供不同模型架构的功能。
来源:comfy/sd1_clip.py81-287 comfy/sdxl_clip.py5-96 comfy/text_encoders/sd3_clip.py10-167 comfy/text_encoders/flux.py33-71
SDClipModel 类提供了 ComfyUI 中所有文本编码器的基础实现。
该模型通过 layer 参数支持不同的输出层
| 层类型 | 描述 | 用途 |
|---|---|---|
"last" | 最终层输出 | 大多数模型的默认设置 |
"hidden" | 中间层 | 由 layer_idx 指定 |
"pooled" | 池化表示 | 用于分类任务 |
"all" | 所有层输出 | 高级应用 |
来源:comfy/sd1_clip.py81-147 comfy/sd1_clip.py154-169
标记化系统处理文本预处理、嵌入注入和标记权重计算。
来源:comfy/sd1_clip.py293-457 comfy/sd1_clip.py522-619
CLIP(对比语言-图像预训练)编码器是 ComfyUI 中最常见的文本编码器,具有不同的尺寸和配置。
Stable Diffusion 1.x 模型的基本 CLIP 实现
SDXL 使用两个 CLIP 编码器协同工作
T5(文本到文本传递 Transformer)编码器为高级模型提供了增强的文本理解能力。
用于 SD3、Flux 和其他现代架构
来源:comfy/text_encoders/sd3_clip.py10-32 comfy/text_encoders/flux.py9-13
LLAMA 编码器用于 Hunyuan Video 等视频生成模型
LLAMA 模板包括详细的视频描述说明,并从完整输出中提取相关部分。
来源:comfy/text_encoders/hunyuan_video.py44-143
BERT 编码器处理 HyDiT 等模型中的中文和其他语言
来源:comfy/text_encoders/hydit.py9-25
现代扩散模型通常结合使用多个文本编码器来利用它们各自的优势。
SD3 结合了三个编码器以实现全面的文本理解
来源:comfy/text_encoders/sd3_clip.py101-149
Flux 使用 CLIP-L 和 T5XXL 进行高效文本处理
| 组件 | 角色 | 输出 |
|---|---|---|
| CLIP-L | 语义理解 | 池化表示 |
| T5XXL | 详细文本分析 | 序列嵌入 |
来源:comfy/text_encoders/flux.py49-55
ComfyUI 支持通过括号语法修改注意力权重
| 语法 | 效果 | 权重值 |
|---|---|---|
(text) | 增加注意力 | 1.1× |
((text)) | 进一步增加 | 1.21× |
(text:1.2) | 显式权重 | 1.2× |
[text] | 减少注意力 | 0.9× |
来源:comfy/sd1_clip.py321-339 comfy/sd1_clip.py56-79
可以加载自定义嵌入并将其集成到标记化过程中
来源:comfy/sd1_clip.py388-457 comfy/sd1_clip.py546-561
文本编码器支持通过选项系统进行运行时配置
选项系统允许在不重新加载模型的情况下动态重新配置,以支持同一会话中的不同生成需求。
来源:comfy/sd1_clip.py154-169 comfy/text_encoders/sd3_clip.py85-99