使用图像生成AI时,我们经常会接触到“CLIP”这个术语。很多人认为它只是“将文本转换为图像的解释器”,但CLIP的作用远比这更深刻和复杂。特别是随着使用两个以上编码器的“双重CLIP”方法的出现,编写提示的策略也在不断演变。
在这篇文章中,我们将从CLIP的基本概念开始,探讨在双重编码器系统中如何优化提示。
1. CLIP是什么?
CLIP (对比语言-图像预训练) 是OpenAI开发的模型,顾名思义,它是“在对比(Contrastive)中同时学习‘语言(文本)’与‘图像’”的多模态(Multi-modal)模型。
其核心功能是将图像和文本放置在同一个“潜在空间(Latent Space)”,即一个虚拟的向量空间中。
-
如果“狗”这个文本位于某个特定的空间坐标(向量)上,
-
“狗”的照片也会被学习到位于一个非常接近的坐标上。
在图像生成模型中的角色:
关键在于,CLIP本身并不是绘制图像的生成器(Generator)。相反,在生成模型(例如Stable Diffusion)生成图像的过程中,CLIP充当了“当前生成的图像与用户文本提示的匹配程度如何?”的“裁判”或“导航者”。CLIP的得分越高(文本与图像越接近),生成模型就会判断“这个方向是对的”,并增加细节。
2. 双重编码器的出现:为什么使用两个模型?
最近,高性能模型如Stable Diffusion XL (SDXL)采用了“双重文本编码器”的方法,取代了单一的CLIP。典型的组合是clip_l和t5xxl_fp16。
这是由于“角色分工与专业化”。
-
clip_l(视觉/关键词匹配专家):-
传统CLIP的文本编码器。
-
它在连接图像与文本之间的视觉概念方面非常强大。
-
主要用于捕捉核心关键词、风格、构图等视觉元素。
-
-
t5xxl_fp16(语言/语境专家):-
T5是Google开发的巨大语言模型(LLM),比CLIP的基本文本编码器大得多。
-
它不仅能够理解简单关键词,还能深刻理解复杂的句子结构、语境和单词间的微妙关系。
-
作为“语言专家”,它能够把握提示的细微差别。
-
通过同时使用两个编码器,我们可以准确反映复杂而长句子的含义(T5)和核心视觉风格(CLIP-L),从而生成更丰富、更准确的图像。
3. 最佳提示写作方法:句子与关键词的结合
为了最大程度地发挥双重编码器系统的性能,提供符合各个编码器特性的提示是明智之举。许多高级图像生成工具(例如ComfyUI)允许为这两个编码器分别输入不同的文本。
-
T5-XXL(语言专家):→ 自然的‘句子’
-
建议使用完整的句子来描述,以便模型能够理解语境。
-
例如: “一位20多岁的日本年轻女性,扎着黑色马尾,佩戴黑框眼镜。她坐在白色地毯上,听着音乐,抬头看着相机。”
-
-
CLIP-L(视觉匹配专家):→ ‘核心关键词’
-
列出风格、物体、颜色、构图等视觉上重要的核心元素是有效的。
-
例如: “日本女性,20多岁,黑色马尾,黑框眼镜,白色耳机,白色地毯,听音乐,坐着,仰望,从上方,整个身体,专业真实写真”
-
4. JSON或字典形式的提示如何?
为系统地管理提示,有时会写成如下的JSON或字典(Python Dictionary)形式。
{
"Character":"20多岁的日本年轻女性.",
"Appearance":{
"hair": "黑色马尾",
"wearing": "黑框眼镜,白色无线耳机"
},
"Action": "听音乐,坐在白色地毯上",
"style": "专业真人照片"
}
将这个结构直接复制给T5和CLIP-L编码器是非常低效且不理想的。
为什么效果会差?
-
模型的学习方式与不一致: T5或CLIP这样的模型学习的是自然的句子(文本)。像
{、}、“这样的编程符号可能会被模型视为‘噪声’而非‘语言’。 -
文脉断裂:
“Character”:“...”与“Action”:“...”之间的有机文脉连接被断开。模型将“角色”和“行为”视为独立的信息块,难以将其组合成自然的一个场景。
正确转换示例
为了在双重编码器系统中正确利用上述JSON数据,我们需要进行如下‘翻译’的过程。
-
T5-XXL(句子输入):
一位20多岁的日本年轻女性,扎着黑色马尾,佩戴黑框眼镜和白色无线耳机。她坐在白色地毯上,听着音乐。这是一张专业真实的照片。
-
CLIP-L(关键词输入):
日本年轻女性,20多岁,黑色马尾,黑框眼镜,白色无线耳机,听音乐,坐在白色地毯上,专业真实照片

5. 总结与结论
-
CLIP 不是绘制图像的生成器,而是评估文本与图像匹配度的“裁判”。
-
双重编码器(T5 + CLIP-L) 是“语言专家(T5)”与“视觉匹配专家(CLIP-L)”协作的强大方式。
-
为了获得最佳结果,将T5提供自然句子,将CLIP-L提供核心关键词是最理想的。
-
将像JSON或字典这样的结构化数据直接用于提示会妨碍模型的理解,因此需要将其转换为自然语言句子与关键词使用。
目前没有评论。