CLIP(Contrastive Language-Image Pretraining)

CLIP 由 OpenAI 开发,是一个 多模态(文本 + 图像)预训练模型,可以理解图像和文本之间的关联。它的核心思想是 通过对比学习(Contrastive Learning) 让模型学习 “文本 - 图像” 之间的匹配关系

CLIP 的主要能力:

  • 直接从自然语言描述中理解图片内容(不需要传统的分类标签)。
  • 可以在 零样本(zero-shot) 条件下执行图像分类、风格匹配等任务。
  • 可以作为视觉编码器,为 Stable Diffusion(SD)等模型提供文本指导。 CLIP 目前有多个版本,主要区别在于模型大小、训练数据量、以及不同的编码器架构:
版本视觉编码器文本编码器训练数据主要特点
CLIP ViT-B/32ViT-B/32Transformer4 亿张图像计算快,精度中等
CLIP ViT-B/16ViT-B/16Transformer4 亿张图像精度比 ViT-B/32 更高
CLIP ViT-L/14ViT-L/14Transformer4 亿张图像精度更高,但计算更慢
CLIP ViT-H/14ViT-H/14Transformer4 亿张图像最高精度,但计算成本最大
CLIP ResNet-50/101ResNet-50/101Transformer4 亿张图像适用于传统 CNN 任务
OpenCLIP(Hugging Face 版)ViT 或 ResNetTransformer40 亿张图像训练数据更多,优化效果更好

其中,ViT(Vision Transformer)系列的 CLIP 更受欢迎,因为它们比 CNN 版本(ResNet)在处理复杂图像时表现更强。

Stable Diffusion(SD)如何使用 CLIP?

Stable Diffusion 主要使用 CLIP 的文本编码器(Text Encoder) 来处理用户输入的文本提示(prompt)。具体过程如下:

1. 文本编码(Prompt Encoding)

SD 使用 CLIP ViT-L/14(或 ViT-B/16)来将文本提示转换为 嵌入向量(Text Embedding),这样 AI 能够理解语义。例如:

"赛博朋克风格的夜晚城市" → CLIP → 向量表示

这个向量会引导 SD 生成符合描述的图像。

2. 计算图像相似度(Image Similarity)

如果你用 图生图(img2img)风格迁移,CLIP 也会用来评估生成图像与输入文本的匹配程度,确保生成的图片符合描述。

3. Prompt Engineering(提示词优化)

高级用户会使用一些 CLIP 相关技术,比如:

  • CLIP-Guided Prompting:用 CLIP 评估提示词的重要性,优化 Prompt 以提高 SD 生成质量。
  • Negative Prompting:通过 CLIP 计算哪些特征应该被避免,比如让图片减少噪点、避免某些元素。

T5(Text-To-Text Transfer Transformer)是什么?

T5(Text-To-Text Transfer Transformer)是 Google 提出的 文本生成模型,它和 CLIP 不同,因为它是专门用来处理 自然语言任务(如翻译、摘要、问答)的。

SD 并没有直接使用 T5,但一些扩展模型可能会结合 T5 来增强 Prompt 处理,比如:

  • Prompt Generation:T5 可能用于 自动优化提示词,让用户输入的短文本转化为更清晰的 Prompt。
  • 风格转换:T5 可能用于 改写 Prompt,比如把“动漫风格”转换成更详细的描述。

总结

  • CLIP 主要用于图像 - 文本对齐,SD 用它来解析 Prompt 并指导图像生成。
  • CLIP 有多个版本,ViT-L/14 是 SD 里最常用的。
  • T5 是 Google 开发的文本模型,SD 本身不直接使用它,但一些扩展工具可能会用 T5 来优化 Prompt。