Nodul CLIP Text Encode (Prompt) în ComfyUI & Stable Diffusion / Flux

Condiționare & Text Encodere Nivel: începător

CLIP Text Encode transformă textul promptului într-o condiționare (CONDITIONING) folosind encoderul de text primit pe intrarea clip; suportă ponderi, embeddings și prompturi dinamice.

Intrări & ieșiri nod
CLIPTextEncode(clip: CLIP, text: STRING) -> CONDITIONING

Nodul primește encoderul de text pe intrarea clip și textul în câmpul text și scoate un CONDITIONING. Într-un workflow obișnuit apar două instanțe: una legată la intrarea positive a KSampler-ului (ce vrei să apară) și una la negative (ce vrei să eviți). Encoderul poate veni din Load Checkpoint sau din Load CLIP / Load CLIP (Dual); același nod codează deci și pentru modele cu alte encodere (T5 la FLUX.1, umt5-xxl la Wan, Qwen3-VL la FLUX.3). Dacă intrarea clip e goală, nodul oprește execuția cu o eroare.

Sintaxa de ponderare: (cuvânt:1.2) crește importanța, (cuvânt:0.8) o scade, iar parantezele simple (cuvânt) înseamnă 1.1. Parantezele literale se scriu \( și \). În editor, Ctrl + săgeată sus/jos schimbă ponderea textului selectat. Embeddings (fișiere .safetensors, .pt sau .bin din models/embeddings) se folosesc scriind embedding:nume; trebuie să fie pentru aceeași arhitectură ca modelul.

Câmpul acceptă prompturi dinamice: {zi|noapte|dimineață} alege la fiecare rulare una dintre variante (acoladele literale se scriu \{). La FLUX.1, șabloanele oficiale nu scriu prompt negativ: cel pentru [dev] folosește ConditioningZeroOut, cel pentru [schnell] un CLIP Text Encode gol, iar cu cfg 1 KSampler nu calculează oricum ramura negativă. Nodul CLIPSetLastLayer („CLIP Set Last Layer”, stop_at_clip_layer, implicit -1) se pune între încărcător și CLIP Text Encode când modelul cere ieșirea unui strat anterior al encoderului.

Concepte cheie și caracteristici

Concept / Parametru Descriere practică
text Promptul, pe mai multe rânduri; acceptă prompturi dinamice {a|b}.
clip Encoderul de text (CLIP) de la Load Checkpoint, Load CLIP, Load CLIP (Dual) sau Load LoRA.
CONDITIONING Ieșirea, pentru positive / negative ale KSampler-ului sau pentru noduri care modifică condiționarea.
(text:1.2) Pondere explicită; (text) = 1.1.
embedding:nume Folosește un embedding din models/embeddings.
ConditioningZeroOut Condiționare goală; folosită ca negativ în șablonul FLUX.1 [dev].
CLIPSetLastLayer stop_at_clip_layer de la -24 la -1, implicit -1.

Exemple practice și scenarii reale

Exemplul 1: Prompt pozitiv și negativ cu ponderi (SD1.5)

Exemplu din tutorialul text-to-image.

pozitiv: (ultra realistic portrait:1.3), (elegant woman in crimson silk dress:1.2),
         full body, soft cinematic lighting, (golden hour:1.2)
negativ: (deformed, cartoon, anime, doll, plastic skin, overexposed, blurry, extra fingers)

Exemplul 2: Embedding în promptul negativ

Fișierul EasyNegative.pt stă în models/embeddings.

worst quality, embedding:EasyNegative, bad quality

Exemplul 3: Prompt dinamic

a lighthouse on a cliff at {sunrise|noon|night}, {oil painting|photo}

Greșeli frecvente și capcane

  • Scrii un prompt negativ lung pentru FLUX.1 cu cfg 1. La cfg 1 negativul nu este calculat; șablonul FLUX.1 [dev] îl înlocuiește cu ConditioningZeroOut.
  • Folosești un embedding pentru SD1.5 pe un model SDXL. Documentația spune că nu va funcționa corect; verifică arhitectura pentru care a fost antrenat.
  • Pui paranteze în text fără să vrei o pondere (de exemplu nume de fișiere sau ecuații). Scrie \( și \).

Noțiuni și module înrudite