FLUX LoRA har opnået stor popularitet i AI-fællesskabet, især blandt dem, der ønsker at finjustere AI-modeller med deres egne datasæt. Denne tilgang giver dig mulighed for let at tilpasse eksisterende FLUX-modeller til dine unikke datasæt, hvilket gør det meget tilpasningsdygtigt og effektivt til en bred vifte af kreative projekter. Hvis du allerede er bekendt med ComfyUI, vil det være en leg at bruge ComfyUI FLUX LoRA Træningsarbejdsgangen til at træne din FLUX LoRA-model. Arbejdsgangen og de relaterede noder blev skabt af Kijai, så stor tak til ham for hans bidrag! Tjek for mere info.
ComfyUI FLUX LoRA Træningsarbejdsgangen er en kraftfuld proces designet til at træne FLUX LoRA-modeller. Træning med ComfyUI tilbyder flere fordele, især for brugere, der allerede er fortrolige med dens grænseflade. Med FLUX LoRA Træning kan du bruge de samme modeller, der anvendes til inferens, hvilket sikrer, at der ikke er kompatibilitetsproblemer, når du arbejder inden for det samme Python-miljø. Derudover kan du bygge arbejdsgange til at sammenligne forskellige indstillinger, hvilket forbedrer din træningsproces. Denne tutorial vil guide dig gennem trinene til at opsætte og bruge FLUX LoRA Træning i ComfyUI.
Vi vil dække:
Når du forbereder dine træningsdata til FLUX LoRA Træning, er det vigtigt at have billeder af høj kvalitet til dit målobjekt.
I dette eksempel træner vi en FLUX LoRA-model til at generere billeder af en bestemt influencer. Til dette skal du bruge et sæt billeder af høj kvalitet af influenceren i forskellige positurer og omgivelser. En praktisk måde at samle disse billeder på er ved at bruge , som gør det nemt at generere en samling af billeder, der viser den samme karakter i forskellige positurer, mens deres udseende forbliver konsistent. Til vores træningsdatasæt har vi valgt fem billeder af høj kvalitet af influenceren i forskellige positurer og omgivelser for at sikre, at datasættet er robust nok til, at FLUX LoRA Træning kan lære de detaljer, der er nødvendige for at producere konsistente og præcise output.
Du kan også samle dit eget datasæt baseret på dine specifikke behov——FLUX LoRA Træning er fleksibel og fungerer med forskellige typer data.
FLUX LoRA Træningsarbejdsgangen består af flere centrale noder, der arbejder sammen for at træne og validere din model. Her er en detaljeret oversigt over de vigtigste noder, opdelt i tre dele: Datasæt, Indstillinger og Init, og Træning.
Datasætafdelingen består af to væsentlige noder, der hjælper dig med at konfigurere og tilpasse dine træningsdata: TrainDatasetGeneralConfig og TrainDatasetAdd.
TrainDatasetGeneralConfig-noden er, hvor du definerer de overordnede indstillinger for dit træningsdatasæt i FLUX LoRA Træning. Denne node giver dig kontrol over forskellige aspekter af dataforøgelse og forbehandling. For eksempel kan du vælge at aktivere eller deaktivere farveforøgelse, som kan forbedre modellens evne til at generalisere på tværs af forskellige farvevariationer. På samme måde kan du slå flipforøgelse til for tilfældigt at vende billeder vandret, hvilket giver mere varierede træningsprøver. Derudover har du mulighed for at blande billedteksterne tilknyttet hvert billede, hvilket introducerer tilfældighed og reducerer overfitting. Billedtekst dropout-rate giver dig mulighed for tilfældigt at droppe billedtekster under træning, hvilket kan hjælpe modellen med at blive mere robust over for manglende eller ufuldstændige billedtekster.
TrainDatasetAdd-noden er, hvor du specificerer detaljerne for hvert enkelt datasæt, der skal inkluderes i din FLUX LoRA Træning.
For at få mest muligt ud af denne node er det vigtigt at organisere dine træningsdata korrekt. Når du bruger RunComfy’s filbrowser, skal du placere træningsdataene i /home/user/ComfyUI/input/{file-name}
-mappen, hvor {file-name}
er et meningsfuldt navn, du tildeler dit datasæt.
Når du har placeret dine træningsdata i den relevante mappe, skal du angive stien til den mappe i image_dir
-parameteren i TrainDatasetAdd-noden. Dette fortæller noden, hvor den kan finde dine træningsbilleder.
Hvis dit datasæt drager fordel af at bruge specifikke klasse-token eller triggerord, kan du indtaste dem i class_tokens
-parameteren. Klasse-token er særlige ord eller sætninger, der foranstilles hver billedtekst og hjælper med at styre modellens genereringsproces. For eksempel, hvis du træner på et datasæt af forskellige dyrearter, kan du bruge klasse-token som "dog", "cat" eller "bird" for at angive det ønskede dyr i de genererede billeder. Når du senere bruger disse klasse-token i dine prompts, kan du kontrollere, hvilke specifikke aspekter du vil have modellen til at generere.
Ud over image_dir
- og class_tokens
-parametrene giver TrainDatasetAdd-noden flere andre muligheder for at finjustere dit datasæt. Du kan indstille opløsningen (bredde og højde) af billederne, angive batchstørrelsen til træning og bestemme, hvor mange gange datasættet skal gentages pr. epoke.
En af de kraftfulde funktioner ved FLUX LoRA Træning er evnen til at kombinere flere datasæt problemfrit. I FLUX LoRA Træningsarbejdsgangen er der tre TrainDatasetAdd-noder forbundet i rækkefølge. Hver node repræsenterer et særskilt datasæt med sine egne unikke indstillinger. Ved at forbinde disse noder sammen kan du skabe et rigt og varieret træningssæt, der inkorporerer billeder og billedtekster fra forskellige kilder.
For at illustrere dette, lad os overveje et scenarie, hvor du har tre separate datasæt: et til katte, et til hunde og et andet til bjørne. Du kan opsætte tre TrainDatasetAdd-noder, hver dedikeret til et af disse datasæt. I den første node vil du angive stien til "katte"-datasættet i image_dir
-parameteren, indstille class token
til "cat" og justere andre parametre som opløsning og batchstørrelse for at passe til dine behov. Tilsvarende vil du konfigurere den anden og tredje node til henholdsvis "hunde"- og "bjørne"-datasættene.
Denne tilgang giver FLUX LoRA Træningsprocessen mulighed for at udnytte en bred vifte af billeder, hvilket forbedrer modellens evne til at generalisere på tværs af forskellige kategorier.
I vores eksempel bruger vi kun ét datasæt til at træne modellen, så vi aktiverer en TrainDatasetAdd-node og omgår de andre to. Her er, hvordan du kan sætte det op:
Indstillinger og Initialisering-sektionen er, hvor du konfigurerer de vigtigste komponenter og parametre til FLUX LoRA Træning. Denne sektion inkluderer flere væsentlige noder, der arbejder sammen for at opsætte dit træningsmiljø.
Først har du FluxTrainModelSelect-noden, som er ansvarlig for at vælge de FLUX-modeller, der skal bruges under FLUX LoRA Træning. Denne node giver dig mulighed for at angive stierne til fire kritiske modeller: transformer, VAE (Variational Autoencoder), CLIP_L (Contrastive Language-Image Pre-training) og T5 (Text-to-Text Transfer Transformer). Disse modeller udgør rygraden i FLUX-træningsprocessen, og alle er blevet opsat på RunComfy-platformen.
OptimizerConfig-noden er afgørende for at opsætte optimeringsenheden i FLUX LoRA Træning, som bestemmer, hvordan modellens parametre opdateres under træning. Du kan vælge optimeringstypen (f.eks. AdamW, CAME), indstille den maksimale gradientnorm til gradientklipning for at forhindre eksploderende gradienter og vælge læringsratens scheduler (f.eks. konstant, cosine annealing). Derudover kan du finjustere optimeringsspecifikke parametre som warmup-trin og scheduler-kraft og angive ekstra argumenter for yderligere tilpasning.
Hvis du foretrækker Adafactor-optimeringsenheden, som er kendt for sin hukommelseseffektivitet og evne til at håndtere store modeller, kan du bruge OptimizerConfigAdafactor-noden i stedet.
InitFluxLoRATraining-noden er det centrale knudepunkt, hvor alle de væsentlige komponenter samles for at kickstarte FLUX LoRA Træningsprocessen.
En af de vigtigste ting, du skal specificere i InitFluxLoRATraining-noden, er outputmappen, hvor din trænede model vil blive gemt. På RunComfy-platformen kan du vælge /home/user/ComfyUI/output/{file_name}
som placeringen for din output. Når træningen er fuldført, vil du kunne se den i filbrowseren.
Derefter skal du indstille netværksdimensionerne og læringsraterne. Netværksdimensionerne bestemmer størrelsen og kompleksiteten af dit LoRA-netværk, mens læringsraterne kontrollerer, hvor hurtigt din model lærer og tilpasser sig.
En anden vigtig parameter at overveje er max_train_steps
. Det bestemmer, hvor længe du ønsker, at træningsprocessen skal køre, eller med andre ord, hvor mange trin du ønsker, at din model skal tage, før den er fuldt bagt. Du kan justere denne værdi baseret på dine specifikke behov og størrelsen af dit datasæt. Det handler om at finde det søde punkt, hvor din model har lært nok til at producere lækre output!
Endelig giver FluxTrainValidationSettings-noden dig mulighed for at konfigurere valideringsindstillingerne til at evaluere din models præstation under FLUX LoRA Træningsprocessen. Du kan indstille antallet af valideringstrin, billedstørrelse, vejledningsskala og frø for reproducerbarhed. Derudover kan du vælge tidsstegprøvetagningsmetoden og justere sigmoid-skala- og skiftparametrene for at kontrollere tidsstegsplanlægningen og forbedre kvaliteten af de genererede billeder.
Træningssektionen af FLUX LoRA Træning er, hvor magien sker. Den er opdelt i fire dele: Train_01, Train_02, Train_03 og Train_04. Hver af disse dele repræsenterer et andet trin i FLUX LoRA Træningsprocessen, hvilket giver dig mulighed for gradvist at forfine og forbedre din model.
Lad os starte med Train_01. Dette er, hvor den indledende træningssløjfe finder sted. Stjernen i denne sektion er FluxTrainLoop-noden, som er ansvarlig for at udføre træningssløjfen i et specificeret antal trin. I dette eksempel har vi sat det til 250 trin, men du kan justere dette baseret på dine behov. Når træningssløjfen er færdig, sendes den trænede model til FluxTrainSave-noden, som gemmer modellen med jævne intervaller. Dette sikrer, at du har checkpoints af din model på forskellige stadier af træningen, hvilket kan være nyttigt til at spore fremskridt og gendanne fra uventede afbrydelser.
Men træning handler ikke kun om at gemme modellen. Vi skal også validere dens præstation for at se, hvor godt den klarer sig. Det er her, FluxTrainValidate-noden kommer ind i billedet. Den tager den trænede model og tester den ved hjælp af et valideringsdatasæt. Dette datasæt er adskilt fra træningsdataene og hjælper med at vurdere, hvor godt modellen generaliserer til usete eksempler. FluxTrainValidate-noden genererer prøvebilleder baseret på valideringsdataene og giver dig en visuel repræsentation af modellens output på dette stadium.
For at holde øje med træningsfremskridtene har vi VisualizeLoss-noden. Denne praktiske node visualiserer træningstabet over tid, så du kan se, hvor godt modellen lærer, og om den konvergerer mod en god løsning. Det er som at have en personlig træner, der holder styr på dine fremskridt og hjælper dig med at forblive på rette spor.
I Train_02, som fortsætter fra Train_01 i FLUX LoRA Træning, trænes outputtet yderligere i et specificeret antal trin (f.eks. 250 trin). Train_03 og Train_04 følger et lignende mønster og forlænger træningen med opdaterede forbindelser for en jævn progression. Hvert trin outputter en FLUX LoRA-model, hvilket giver dig mulighed for at teste og sammenligne præstationen.
I vores eksempel har vi valgt kun at bruge Train_01 og Train_02, hver kørende i 250 trin. Vi har omgået Train_03 og Train_04 for nu. Men føl dig fri til at eksperimentere og justere antallet af træningssektioner og trin baseret på dine specifikke behov og ressourcer.
Når du har FLUX LoRA-modellen, kan du inkorporere den i . Udskift den eksisterende LoRA-model med din trænede model, og test derefter resultaterne for at evaluere dens præstation.
I vores eksempel bruger vi FLUX LoRA-arbejdsgangen til at generere flere influencer-billeder ved at anvende FLUX LoRA-modellen og observere dens præstation.
Se licensfiler:
FLUX.1 [dev]-modellen er licenseret af Black Forest Labs. Inc. under FLUX.1 [dev] Non-Commercial License. Copyright Black Forest Labs. Inc.
UNDER INGEN OMSTÆNDIGHEDER SKAL BLACK FOREST LABS, INC. VÆRE ANSVARLIG FOR NOGEN KRAV, SKADER ELLER ANDRE ANSVAR, HVAD ENTEN I EN KONTRAKTSHANDLING, TORT ELLER ANDEN, SOM OPSTÅR FRA, UDEN ELLER I FORBINDELSE MED BRUGEN AF DENNE MODEL.
© Ophavsret 2024 RunComfy. Alle rettigheder forbeholdes.