Текстовые энкодеры: CLIP, T5 и другие
Часть модели, которая читает промпт, и почему у некоторых моделей их две или три.
Простыми словами
Рисующая модель букв не читает. Сначала текстовый энкодер (text encoder) превращает промпт в числа, и рисующая модель следует этим числам. В ComfyUI текстовый энкодер ходит по связям типа CLIP, каким бы он ни был на самом деле.
Есть три поколения текстовых энкодеров:
- CLIP (текстовая половина CLIP от OpenAI, размеры
clip_lиclip_g). Его учили на коротких подписях к картинкам. Он читает до 75 токенов за раз и понимает слова и короткие фразы лучше, чем грамматику. SD 1.5 используетclip_l, SDXL оба:clip_lиclip_g. - T5 (T5-XXL от Google и
umt5_xxl, его многоязычный вариант). Языковая модель, которая читает целые предложения длиной в несколько сотен токенов. Flux.1 и SD3 используют его рядом с CLIP, Wan использует толькоumt5_xxl, Chroma использует T5 без CLIP. - Большие языковые модели: Qwen2.5-VL у Qwen-Image, Qwen3 4B у Z-Image, модель Mistral у Flux.2 dev, энкодеры на основе Llama у HunyuanVideo. Они читают длинные подробные промпты и понимают, кто что делает и где.
Зачем два? Модель, которую учили с двумя энкодерами, привыкла смотреть на промпт сразу двумя способами: CLIP для стиля и вида, T5 для смысла и расположения. Грузить нужно оба. SD3 использует даже три (clip_l, clip_g, t5xxl).
Где встречается в графе
- Load Checkpoint даёт
CLIPу SD 1.5 и SDXL. - Load CLIP (
CLIPLoader) грузит один энкодер, DualCLIPLoader два, TripleCLIPLoader три. У каждой есть полеtypeс названием семейства. - CLIP Text Encode (Prompt) берёт
CLIPи ваш текст и отдаётCONDITIONING. У некоторых семейств свои текстовые ноды (например CLIPTextEncodeFlux с отдельными полями для CLIP и T5 или TextEncodeQwenImageEdit для правки картинок). - CLIP Set Last Layer останавливает CLIP на один или два слоя раньше («clip skip»), об этом просят некоторые аниме-модели SD 1.5.
Значения и что они меняют
typeдолжен совпадать с семейством модели.- Файлы энкодеров бывают разной точности:
fp16эталон, вариантыfp8(t5xxl_fp8_e4m3fn,umt5_xxl_fp8_e4m3fn_scaled) занимают вдвое меньше памяти с небольшой потерей. stop_at_clip_layer: -1 обычное значение, -2 это «clip skip 2».
Частые ошибки
- Загружен только один из двух энкодеров: ошибка или модель, которая не слышит большую часть промпта.
- Не тот
type: бессмысленные картинки. - Список тегов для модели, читающей предложения (или длинная проза для CLIP): см. Промпт.
- Не хватает памяти на T5-XXL: возьмите файл
fp8.
Как помогает приложение
Проверка говорит, когда промпт длиннее куска CLIP в 75 токенов или слишком длинный для T5. Карточка модели во вкладке Модели показывает её семейство, урок о промпте объясняет два способа чтения, а урок Какой загрузчик для какого файла разбирает загрузчики. В Свойствах у поля со встроенной заметкой рядом с именем есть кнопка Что делает это поле; она открывает заметку под полем: что делает поле и что в него ставить.