Un workflow ComfyUI este un graf de noduri legate prin fire. Fiecare nod are un nume intern (class_type, folosit în fișierele JSON și în API) și un nume afișat, care s-a schimbat de câteva ori între versiuni: de exemplu DualCLIPLoader apare acum ca „Load CLIP (Dual)”, iar UNETLoader ca „Load Diffusion Model”. Nodurile incluse în ComfyUI (Comfy Core) se găsesc în panoul Node Library; nodurile instalate de comunitate apar acolo după instalare și repornire.
Firele leagă doar tipuri compatibile, colorate diferit în editor: MODEL (modelul de difuzie), CLIP (encoderul de text), VAE, CONDITIONING (promptul codat), LATENT (imaginea în spațiul latent), IMAGE (pixeli), MASK, plus valori simple (INT, FLOAT, STRING). Un nod are trei moduri utile: normal, Never (nu rulează și nu dă nimic mai departe) și Bypass (nu rulează, dar intrarea trece neschimbată spre nodurile următoare).
Workflow-ul implicit text-to-image are șapte noduri: Load Checkpoint, două CLIP Text Encode (prompt pozitiv și negativ), Empty Latent Image, KSampler, VAE Decode și Save Image. Celelalte fluxuri pornesc de la el: img2img înlocuiește Empty Latent Image cu Load Image + VAE Encode, LoRA se pune între încărcător și restul grafului, ControlNet modifică condiționarea, iar upscaling-ul adaugă o a doua trecere. Tabelul de mai jos folosește numele din ComfyUI v0.43; fiecare nod are o pagină proprie, legată în coloana din dreapta.
Concepte cheie și caracteristici
| Concept / Parametru | Descriere practică |
|---|---|
CheckpointLoaderSimple – Load Checkpoint |
ckpt_name → MODEL, CLIP, VAE. Pagina nodului |
UNETLoader – Load Diffusion Model |
unet_name, weight_dtype → MODEL. Pagina nodului |
CLIPLoader / DualCLIPLoader – Load CLIP / Load CLIP (Dual) |
fișier(e) + type → CLIP. Pagina nodului |
VAELoader – Load VAE |
vae_name → VAE. |
LoraLoader – Load LoRA (Model and CLIP) |
MODEL, CLIP, lora_name, strength_model, strength_clip → MODEL, CLIP. Pagina nodului |
CLIPTextEncode – CLIP Text Encode (Prompt) |
text, CLIP → CONDITIONING. Pagina nodului |
EmptyLatentImage – Empty Latent Image |
width, height, batch_size → LATENT. Pagina nodului |
KSampler / KSamplerAdvanced |
MODEL, positive, negative, LATENT + seed, steps, cfg, sampler, scheduler, denoise → LATENT. Pagina nodului |
VAEDecode / VAEEncode |
LATENT + VAE → IMAGE / IMAGE + VAE → LATENT. Pagina nodului |
SaveImage / PreviewImage |
IMAGE (+ filename_prefix) → fișier PNG în output / temp. Pagina nodului |
LoadImage – Load Image |
Fișier din input → IMAGE, MASK (masca vine din canalul alfa). |
ControlNetLoader + ControlNetApplyAdvanced – Apply ControlNet |
positive, negative, CONTROL_NET, IMAGE → positive, negative. Pagina nodului |
LatentUpscale / LatentUpscaleBy – Upscale Latent (By) |
LATENT → LATENT mărit. Pagina nodului |
UpscaleModelLoader + ImageUpscaleWithModel |
Model ESRGAN etc. din models/upscale_models + IMAGE → IMAGE mărită. |
InpaintModelConditioning / VAEEncodeForInpaint |
Imagine + mască pentru inpainting. Pagina despre Flux Fill |
FluxGuidance |
CONDITIONING + guidance → CONDITIONING (FLUX.1). Pagina nodului |
SaveVideo / CreateVideo |
Cadre IMAGE + fps → VIDEO → fișier video. Pagina despre video |
Exemple practice și scenarii reale
Exemplul 1: Workflow-ul text-to-image implicit, în format API
Exemplul din documentația API (model SD1.5); numerele sunt ID-urile nodurilor, iar ["4", 1] este a doua ieșire a nodului 4.
4 CheckpointLoaderSimple ckpt_name = v1-5-pruned-emaonly.safetensors
5 EmptyLatentImage width = 512, height = 512, batch_size = 1
6 CLIPTextEncode clip = ["4", 1], text = "masterpiece best quality man"
7 CLIPTextEncode clip = ["4", 1], text = "bad hands"
3 KSampler model = ["4", 0], positive = ["6", 0], negative = ["7", 0],
latent_image = ["5", 0], seed = 8566257, steps = 20, cfg = 8,
sampler_name = euler, scheduler = normal, denoise = 1
8 VAEDecode samples = ["3", 0], vae = ["4", 2]
9 SaveImage images = ["8", 0], filename_prefix = ComfyUI
Exemplul 2: Image-to-image din același graf
Documentația img2img: Load Image și VAE Encode înlocuiesc Empty Latent Image, iar denoise din KSampler trebuie să fie sub 1.
Load Image -> VAE Encode (pixels, vae) -> KSampler (latent_image, denoise = 0.6)
Greșeli frecvente și capcane
- Cauți un nod după numele dintr-un tutorial vechi. Numele afișate s-au schimbat („Load LoRA” înseamnă acum varianta doar pentru model, „Apply ControlNet” este nodul cu positive și negative); căutarea din editor găsește nodurile și după aliasuri (de exemplu „lora loader”, „checkpoint”).
- Legi o ieșire IMAGE direct la intrarea
latent_image. Pixelii trec în spațiul latent doar prin VAE Encode, iar latentul înapoi în pixeli doar prin VAE Decode. - Pui un nod pe Never când voiai să-l ocolești. Nodurile de după el rămân fără date; pentru a sări peste un LoRA, de exemplu, folosește Bypass.
Întrebări & Exemple practice:
Nodurile de bază din ComfyUI: tabel de referințăAi o întrebare despre Nodurile de bază din ComfyUI: tabel de referință sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.