Vodič za treniranje ultra-realističnog AI influencera uz ComfyUI i LoRA na AMD GPU-a s 12 GB VRAM

Uvod: Ovaj vodič objašnjava korak-po-korak kako istrenirati konzistentan, ultra-realističan lik AI influencera – uključujući lice i tijelo – koristeći Stable Diffusion modele (npr. SD 1.5 ili SDXL) uz tehniku LoRA (Low-Rank Adaptation) i sučelje ComfyUI. Poseban fokus je na korištenju AMD GPU-a s 12 GB VRAM-a, uz savjete za kasniju primjenu modela i na video sadržaj. Slijede poglavlja koja pokrivaju sve od instalacije potrebnih modela, preko pripreme skupa podataka, treninga LoRA modela na AMD hardveru, do generiranja konzistentnih slika i napomena za video. Ovdje možete vidjeti objašnjenje pojmova

1. Instalacija modela i potrebnih datoteka

Za uspješan rad potrebno je instalirati nekoliko modela i alata, kao i prilagoditi ComfyUI za AMD GPU. Preporučujemo sljedeće korake i datoteke:

Stable Diffusion bazni model: Preuzmite Stable Diffusion model na kojem ćete graditi svog influencera. Najčešći izbor je Stable Diffusion v1.5 (512×512 rezolucija) zbog manjih zahtjeva za resursima i brzog treninga. Alternativno, možete koristiti Stable Diffusion XL (SDXL) za potencijalno višu kvalitetu, ali imajte na umu da SDXL zahtijeva znatno više VRAM-a i vremena za treniranje. Korisnici su prijavili da na 12 GB kartici trening LoRA za SD1.5 može trajati oko sat vremena, dok je za SDXL (1024×1024) potreban daleko dulji trening (20+ sati) i rezultat može i dalje biti slabije konzistentnosti lica. Stoga, ako vam je primarni cilj konzistentan lik uz 12 GB VRAM-a, SD1.5 je praktičniji izbor. (Kasnije možete pokušati SDXL kada budete imali optimizirano okruženje i ako vam treba dodatna kvaliteta.)

LoRA “base” integracija: LoRA nije zaseban model već skup težina koji se primjenjuje na bazni Stable Diffusion model. Za treniranje LoRA potreban vam je bazni model na koji će se LoRA naučiti. To znači da bazni SD model (npr. SD1.5) morate imati i tijekom treniranja i kasnije tijekom generiranja slika. Preuzmite Stable Diffusion 1.5 model (npr. v1-5-pruned.safetensors ili .ckpt s Hugging Face ili drugog pouzdanog izvora) i smjestite ga u ComfyUI mapu models/checkpoints. Ako radite sa SDXL, preuzmite SDXL base model (i opcionalno refiner model za kasniju finu obradu) – imajte na umu da LoRA trenirana za SDXL neće biti kompatibilna sa SD1.5 i obratno, pa odaberite jedan smjer.

VAE datoteka: Za fotorealistične rezultate preporučuje se korištenje odgovarajućeg VAE (Variational Autoencoder) modela uz Stable Diffusion. VAE poboljšava kvalitetu boja i detalja. Za SD1.5 široko je preporučen “vae-ft-mse-840000-ema-pruned”. Preuzmite tu datoteku (.safetensors ili .ckpt) i stavite je u ComfyUI/models/vae/ direktorij. U ComfyUI možete koristiti Load VAE čvor da je učitate pri generiranju. (Napomena: SDXL modeli već imaju interni VAE, ali možete koristiti poboljšane verzije ako su dostupne.)

ComfyUI instalacija (AMD podrška): ComfyUI je čvorno-bazirano korisničko sučelje za Stable Diffusion. Instalacija na NVIDIA GPU je jednostavna, ali za AMD GPU treba primijeniti nekoliko dodatnih koraka:

  • PyTorch s ROCm: Obavezno instalirajte PyTorch verziju s podrškom za AMD ROCm (za Linux) ili odgovarajući paket za Windows. Na Linuxu to znači instalirati ROCm drivere i PyTorch (npr. pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/rocm5.x za odgovarajuću ROCm verziju). Na Windowsu ROCm ne radi direktno; alternativno rješenje je korištenje WSL2 (Ubuntu) s ROCm unutra. (Napomena: postoji i DirectML port Stable Diffusiona za Windows/AMD, ali u kontekstu ComfyUI bolje je ići putem ROCm-a.)
  • Instalacija ComfyUI: git clone https://github.com/comfyanonymous/ComfyUI.git && cd ComfyUI pip install -r requirements.txt Uvjerite se da ste prethodno instalirali odgovarajući AMD PyTorch i potrebne biblioteke (ComfyUI requirements uključuju torch – ako ste već instalirali ROCm varijantu, pip bi je trebao preskočiti; preporučuje se virtualno okruženje s preinstaliranim torch-rocm paketom).
  • Pokretanje na AMD: Pokrenite ComfyUI sa zastavicom za PyTorch cross-attention: python main.py --use-pytorch-cross-attention Ova opcija koristi implementaciju cross-attention iz PyTorcha umjesto NVIDIA xformers, što je nužno za AMD. (Xformers optimizacija nije podržana na AMD-u, stoga ovu opciju obavezno koristite kako bi se model uopće izvršavao.)
  • Optimizacije performansi: Instalirajte biblioteku Triton (pip install triton) radi mogućih ubrzanja na AMD-u. Zatim ComfyUI možete pokrenuti uz dodatnu ROCm AOT flagu: TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1 python main.py --use-pytorch-cross-attention Ova eksperimentalna opcija može ubrzati generiranje korištenjem AOT kompilacije, ali ako dobijete greške – pokrenite bez nje.
  • Provjera instalacije: Nakon pokretanja, ComfyUI bi se trebao podići u pregledniku. U ComfyUI sučelju vidjet ćete Load Checkpoint čvor. Provjerite mogu li se vaš prebačeni SD model i VAE učitati (putem čvorova Load Checkpoint i Load VAE i odabirom odgovarajućih datoteka).
  • Dodatni dodaci: Preuzmite i ubacite sve dodatne modele koje ćete koristiti u odgovarajuće mape unutar ComfyUI/models/ (npr. LoRA datoteke idu u models/loras/ ili ih možete staviti gdje želite i otvoriti putem Load LoRA čvora; ControlNet modeli idu u models/controlnet/, itd. – o tome više u nastavku za poze).

Alati za treniranje LoRA na AMD: ComfyUI sam po sebi služi za generiranje slika; za samo treniranje modela (bilo DreamBooth ili LoRA) trebat će vam poseban trening pipeline. Najpopularniji su:

  • Kohya SS sd-scripts – skripte i GUI za treniranje LoRA/DreamBooth koji se mogu pokrenuti lokalno. U velikoj mjeri podržavaju trening na AMD GPU uz odgovarajuće okruženje. Postoji i Kohya GUI (Gradio aplikacija) koji olakšava postavke. Za AMD preporučuje se Linux okruženje s ROCm-om; možete klonirati kohya-ss sd-scripts repo i pratiti upute za instalaciju AMD verzije (potrebno je instalirati ROCm PyTorch, isključiti xformers i eventualno koristiti prilagođenu verziju bitsandbytes za AMD ako želite 8-bitnu optimizaciju). U ovom vodiču nastavit ćemo s pretpostavkom da koristite kohya-ss skripte na Linuxu.
  • DreamBooth diffusers (Hugging Face) – ako radije želite Python notebook rješenje, postoji DreamBooth implementacija u 🧨 Diffusers biblioteci (npr. putem Colaba ili lokalno). To može raditi i na AMD GPU ako je PyTorch ispravno instaliran. Prednost je što izravno podržava trening na primjerima s instance i class slikama. Nedostatak je što fine-tjuna cijeli model (što traži više VRAM-a); no možete postaviti i LoRA trening unutar diffusers-a (postoji podrška za peft LoRA fine-tuning).

Alternative: Postoje i grafički alati poput Automatic1111 web UI DreamBooth/LoRA ekstenzije, ali oni uglavnom rade samo na NVIDIA. Za AMD najjednostavnije je: Linux+Kohya ili WSL2+Kohya.

Savjet: Ako vam postavljanje okruženja za trening na AMD-u nije ugodno, možete razmotriti cloud s NVIDIA GPU za treniranje, pa preuzeti gotov LoRA model za lokalno generiranje. Ipak, ovdje ćemo opisati i kako lokalno na AMD-u postići rezultat.

2. Priprema skupa podataka (dataset) za influencera

Kvalitetan dataset presudan je za treniranje konzistentnog lika. Potrebno je prikupiti slike koje dobro predstavljaju željeni lik influencera – uključujući lice i tijelo – u raznim situacijama. Preporuke:

Broj slika: Preporučljivo je prikupiti najmanje ~10–20 fotografija subjekta, iako 20–30 daje bolje rezultate. Izvorni DreamBooth rad spominjao je 3–5 slika kao minimum, ali praksa pokazuje da je 20+ raznolikih slika optimalno za stabilnije rezultate. Veći broj pomaže modelu da “nauči” koncept bez pretjeranog memoriranja jedne poze ili outfita – ali samo ako su slike dovoljno raznolike (50 vrlo sličnih slika neće pomoći više od 5 unikatnih).

Raznolikost sadržaja: U dataset uključite razne poze, perspektive, izraze lica, odjeću i okruženja. Npr.:

  • Krupni planovi lica (frontalno, poluprofil, osmijeh, ozbiljan izraz).
  • Polutke i cijele figure u različitim stavovima (stoji, sjedi, razni položaji ruku/nogu).
  • Različita osvjetljenja i pozadine (unutra, vani, dan/noć).
  • Različite odjevne kombinacije, modni dodaci ili frizure (ako želite da lik bude prepoznatljiv bez “vezanja” za jednu odjeću). No zadržite prepoznatljive crte lica i tijela konzistentnima – sve slike moraju biti doista ista osoba/lik.

Obrada slika:

  • Rezolucija: Pre treninga skalirajte/kropajte na ciljnu rezoluciju. Za SD1.5 uobičajeno je trenirati na 512×512 px (ili 512×768 za portrete, 768×512 za pejzažno). Trening na 512 px je izvediv na 12 GB VRAM-a (potrebno ~10 GB VRAM za batch size 1 na 512×512). Možete probati 640 px ili 768 px za više detalja, ali na 12 GB možda neće stati 768×768 ni s batch=1. Alternativa je multi-aspect buckets (kohya skripte to podržavaju). Ako niste sigurni, jednostavnije je kropati sve na isti format (npr. 1:1 kvadrat 512×512 ili 640×640).
  • Kropanje i centriranje subjekta: Osoba mora biti jasno vidljiva i dominantna u kadru. Izbjegavajte slike gdje je lik sitan u daljini.
  • Aspect ratio usklađivanje: Poželjno je ujednačiti omjere ili koristiti buckets.
  • Format i kvaliteta: PNG ili visokokvalitetni JPEG; izbjegnite filtere i tekst.
  • Imenovanje i opisi (captions): Svaka slika treba pratnju kratkog opisa s jedinstvenim tokenom za vašeg influencera (npr. “photo of xyzman person, standing, outdoor, smiling” ili “portrait of xyzman, studio lighting”). Token neka bude izmišljena riječ (5–8 slova) koja ne kolidira s postojećim pojmovima. Time model uči da taj token == vaš lik.

Regularizacijske (negativne) slike: Kod LoRA treninga često nisu nužne, osobito ako imate 10+ raznolikih slika. Pazite na overfitting – više u nastavku.

Sažetak pripreme: Prikupite ~20 kvalitetnih slika, obradite ih (~512 px, fokus na subjekt), osmislite jedinstveni token i pripremite kratke opise. Raznolikost pomaže da model nauči identitet osobe, a ne specifičan outfit ili scenu.

3. Trening LoRA modela na AMD (DreamBooth/LoRA pipeline)

Izbor pristupa – DreamBooth vs. LoRA: DreamBooth fine-tjuna cijeli model (velik, zahtjevniji za VRAM). LoRA trenira male adaptere i sprema ih kao zaseban, malen fajl (nekoliko MB), štedljiv je u VRAM-u i praktičniji za 12 GB. Za našu svrhu preporučuje se LoRA.

Korištenje kohya-ss skripti na AMD:

  • Instalacija okruženja: Klonirajte kohya-ss sd-scripts, napravite Python 3.10 virtualenv, instalirajte PyTorch ROCm, pip install -r requirements.txt, uklonite xformers, po želji pokušajte AMD varijantu bitsandbytes (nije nužno).
  • Priprema podataka: Napravite mapu npr. influencer_dataset i unutar nje podmapu npr. 100_influencer (prefiks broj označava ponavljanje/prioritet). U nju stavite ~20 slika i .txt opise s vašim tokenom. Bolje je imati eksplicitne captions nego oslanjati se na ime mape.
  • Pokretanje treninga (LoRA): Koristite train_network.py ili olakšanu lora_train_popup.py. Primjer: accelerate-launch --num_cpu_threads_per_process 12 lora_train_popup.py U interaktivnim koracima odaberite:
    • SD1.5 checkpoint za treniranje,
    • izlazno ime npr. influencer_lora.safetensors,
    • LoRA dim (rank) 64 ili 128,
    • broj koraka ~1000–2000 za ~20 slika,
    • learning rate ~1e-4 do 5e-5,
    • fp16 trening, bez xformers; optimizer AdamW.
  • Tijek treninga: Pri 512×512, batch 1, očekujte ~10 GB VRAM. Ako ste uključili preview generiranje, pratite slike da uhvatite trenutak prije overfittinga (kad krene “kopirati” točne trenirane poze/odjeću, stanite).
  • Rezultat: dobit ćete influencer_lora.safetensors (par MB).

Ako dobijete OOM (out of memory): smanjite rezoluciju (npr. 512→448), koristite manji LoRA rank, batch=1, ili uključite gradient checkpointing (ako je podržano).

4. Podešavanje promptinga u ComfyUI za konzistentno generiranje lica i tijela

Učitavanje LoRA u ComfyUI: U radnom prostoru dodajte Load LoRA. Povežite:

  • izlaze Load Checkpoint (MODEL i CLIP) u Load LoRA ulaze,
  • u Load LoRA odaberite vaš .safetensors,
  • podesite strength_model i strength_clip (krenite s 1.0).

Zatim izlaze Load LoRA (MODEL i CLIP) spojite tamo gdje su prethodno išli originalni MODEL/CLIP (npr. prema KSampler).

Promptanje za konzistentan lik:

  • U pozitivnom promptu uvijek koristite vaš token (npr. “portrait photo of xyzman, full body, city street, ultra-realistic, DSLR”).
  • U negativnom promptu navedite artefakte koje želite izbjeći (“blurry, out of focus, deformed hands, extra limbs, low quality, cartoon”…).
  • Za promjene frizure/odjeće dodajte opise, ali ne koristite formulacije koje bi mogle prizvati potpuno drugo lice.
  • Po potrebi koristite Img2Img (ubacite referentnu sliku, mali denoise 0.2–0.3) za maksimalnu sličnost identiteta.
  • Za poze koristite ControlNet:
    • učitajte OpenPose model (npr. control_v11p_sd15_openpose_fp16.safetensors),
    • učitajte sliku kostura poze kao conditioning image,
    • u Apply ControlNet podesite snagu (npr. 1.0 za strogo praćenje).

Dodatni savjeti:

  • Držite isti token, isti LoRA i sličan stil opisa za serije slika.
  • Za ujednačenost atmosfere možete fiksirati seed.

5. Testiranje konzistentnosti i iterativno poboljšanje

  • Varijacije: Generirajte više slika s različitim seedovima. Ako lice “bježi”, povećajte LoRA snagu (npr. 1.1–1.2) ili preciznije opišite ključne atribute (boja kose, očiju).
  • Različiti konteksti: Testirajte u različitim okruženjima/odjeći. Ako se identitet gubi, izbjegnite pojmove koji prizivaju druge poznate koncepte i budite specifičniji (“xyzman wearing basketball jersey, on a court”).
  • Usporedba s izvornim slikama: Tražite sličnost subjekta, ne identičnost (izbjegnite overfitting).
  • Ako tijelo varira: Dodajte više cijelih figura u dataset; u promptu eksplicitno opišite građu/visinu ako je relevantno.
  • Ako je overfitting: smanjite LoRA snagu (npr. 0.8) ili povećajte raznolikost odjeće/pozadina u datasetu.
  • Isprobajte različite checkpointove: Ponekad LoRA naučena na 1.5 radi bolje na fotorealističnim mješavinama (majicMix, Realistic Vision), ponekad ne – testirajte.

6. Dodatne napomene za primjenu na video (frame-by-frame)

Generiranje videa s vašim AI influencerom je sljedeći korak, ali znatno kompleksniji:

  • Frame-by-frame: Planirajte pokret kroz niz poza (npr. 50 sličica). Uz ControlNet OpenPose za svaku sličicu unesite kostur poze, zadržite isti prompt/LoRA/token – spojite slike u video (FFmpeg ili editor).
  • Smanjenje treperenja (flicker):
    • Sekvencijalni Img2Img: svaki sljedeći kadar generirajte iz prethodnog s malim denoiseom (0.2–0.3) + ažurirani pose → velika temporalna koherentnost.
    • Seed kontrola: koristite isti seed ili glatku interpolaciju seedova.
    • Fiksna pozadina/odjeća: eksplicitno ih zadržite u promptu kroz sve kadrove.
  • Alati: koncept Deforum-a se može primijeniti ručno u ComfyUI; Stable Video Diffusion/AnimateDiff postoje, ali nisu trenirani na vašem specifičnom liku – za konzistentan identitet bolji je kontrolirani frame-by-frame pristup.
  • EbSynth/TemporalKit: alternativa je generirati ključne kadrove i “propagirati” stil kroz video.
  • Praksa: krenite s kratkim sekvencama (npr. 10 frameova, 2 fps) i podešavajte dok ne dobijete zadovoljavajuću koherentnost.