CLIP: как текст превращается в понятное модели
Модель не понимает текст как человек. Ей нужен переводчик, который превратит «рыцарь на коне» в вектор чисел - conditioning. Этот переводчик и есть text encoder, чаще всего его зовут CLIP.
CLIP - это заказчик-переводчик между тобой и скульптором. Ты говоришь «рыцарь на коне», он переводит это в «координаты смысла», которые скульптор (диффузионная модель) умеет учитывать, скалывая шум. Выход CLIP - CONDITIONING, оранжевый провод. Именно он говорит KSampler'у, куда двигать чистку шума.
Positive и negative - две отдельные ноды
В скелете два CLIP Text Encode не случайно. Один кодирует positive (что хочу видеть), другой - negative (чего хочу избежать). Оба уходят в KSampler на разные входы. Модель во время чистки шума тянется к positive и от negative.
- Positive:
a knight on a horse, golden hour, cinematic, detailed armor - Negative:
blurry, low quality, extra fingers, watermark, text
Negative - не «магия», а просто второй промпт, от которого отталкиваются. У новых моделей (Flux) negative почти не используется - там другая механика (guidance встроен). У SDXL/Pony negative работает сильно.
Теги против естественного языка
Разные семейства «слушают» по-разному - это одна из главных причин, почему промпт «не работает»:
Tag-based (SD1.5, SDXL, Pony, Illustrious)
Любят списки тегов через запятую, часто в стиле danbooru: 1girl, silver hair, forest, masterpiece, best quality. Порядок = приоритет. Часто есть «quality-теги» (masterpiece, score_9 у Pony).
Natural language (Flux, Qwen)
Понимают связные предложения: A knight in polished armor rides a black horse through a misty forest at dawn. Тут T5-энкодер реально «читает» смысл, а не ловит теги.
У SDXL text encoder встроен в checkpoint - грузится сам. А Flux/SD3 используют большой T5-XXL энкодер (тот, что «читает предложения») плюс CLIP-L, и их часто грузят отдельными нодами (DualCLIPLoader, файлы в models/clip/). Поэтому Flux-граф выглядит «сложнее» уже на старте - это всего лишь другой, более умный переводчик, вынесенный наружу.
Синтаксис, который стоит знать сразу
- Вес слова:
(knight:1.3)- усилить,(horse:0.7)- ослабить. В ComfyUI можно выделить слово и крутить Ctrl+↑/↓. - Лимит ~77 токенов на «кусок» у CLIP. Длиннее - режется/склеивается по кускам. Не пиши полотно; ключевое - в начало.
- Trigger words: у многих LoRA есть слово-ключ, без которого стиль не включится (см. главу 10). Оно пишется в positive-промпт.
- Embeddings: можно позвать сохранённый «концепт» по имени, напр.
embedding:badhandsв negative - частый способ чинить руки (см. главу 11).
Копируешь красивый промпт с тегами score_9, source_anime в Flux - и получаешь мусор, потому что Flux этих тегов не знает, он ждёт предложение. И наоборот: пишешь роман для Pony - он ловит только отдельные слова. Промпт-стиль должен матчить семейство модели.