Andersons vinkel

Sådan træner og bruger du Hunyuan Video LoRA-modeller

mm
Føj Unite.AI til dine foretrukne kilder på Google
ChatGPT-4o: Variation on 'Create me an image 1792 x 1024. It should be in the style of Théodore Géricault, and should depict a dark medieval figure seated in front of a laptop, illuminated by the screen. We are facing the figure, and can only see the back of the laptop lid. Around the seated medieval figure are many other medieval men and women, curious as to what is happening on the computer screen'

Denne artikel vil vise dig, hvordan du kan installere og bruge Windows-baseret software, der kan træne Hunyuan Video LoRA-modeller, hvilket giver brugeren mulighed for at generere brugergenererede personligheder i Hunyuan Video grundmodellen:

Klik for at afspille. Eksempler fra den seneste eksplosion af celebrity Hunyuan LoRAs fra civit.ai-fællesskabet.

For øjeblikket er de to mest populære måder at generere Hunyuan LoRA-modeller lokalt:

1) Diffusion-pipe-ui Docker-baseret ramme, der afhænger af Windows Subsystem for Linux (WSL) til at håndtere nogle af processerne.

2) Musubi Tuner, en ny tilføjelse til den populære Kohya ss diffusionstræningsarkitektur. Musubi Tuner kræver ikke Docker og afhænger ikke af WSL eller andre Linux-baserede proxier – men det kan være svært at få det til at køre på Windows.

Derfor vil denne gennemgang fokusere på Musubi Tuner og på at give en fuldstændig lokal løsning for Hunyuan LoRA-træning og generation, uden brug af API-drevne websteder eller kommercielle GPU-leje processer som Runpod.

Klik for at afspille. Eksempler fra LoRA-træning på Musubi Tuner til denne artikel. Alle tilladelser er givet af personen afbildet, til formålet med at illustrere denne artikel.

KRÆVER

Installationen kræver mindst en Windows 10-PC med en 30+/40+-serie NVIDIA -kort, der har mindst 12 GB VRAM (selvom 16 GB anbefales). Installationen, der blev brugt til denne artikel, blev testet på en maskine med 64 GB system-RAM og en NVIDIA 3090-grafikkort med 24 GB VRAM. Det blev testet på en dedikeret test-sæt-system ved hjælp af en frisk installation af Windows 10 Professional, på en partition med 600+ GB ledig diskplads.

ADVARSEL

Installation af Musubi Tuner og dets forudsætninger medfører også installation af udviklerfokuseret software og pakker direkte på den primære Windows-installation af en PC. Tagning af installationen af ComfyUI i betragtning, til de sidste faser, dette projekt vil kræve omkring 400-500 gigabyte diskplads. Selvom jeg har testet proceduren uden incident flere gange i nyinstalleret test-sæt Windows 10-miljøer, er jeg eller unite.ai ikke ansvarlige for eventuel skade på systemer fra at følge disse instruktioner. Jeg råder dig til at sikre alle vigtige data, før du forsøger denne type installationsprocedure.

OVERVEJELSER

Er denne metode stadig gyldig?

Det generative AI-scene bevæger sig meget hurtigt, og vi kan forvente bedre og mere strømlinet metoder til Hunyuan Video LoRA-rammer dette år.

…eller endda denne uge! Mens jeg skrev denne artikel, producerede udvikleren af Kohya/Musubi musubi-tuner-gui, en sofistikeret Gradio-GUI til Musubi Tuner:

Det er naturligvis bedst at have en brugervenlig GUI frem for de BAT-filer, jeg bruger i denne funktion – når musubi-tuner-gui fungerer. Da jeg skriver, er det kun gået online for fem dage siden, og jeg kan ikke finde nogen beretning om, at nogen har brugt det med succes.

Ifølge indlæg i repository, er den nye GUI tænkt til at blive integreret direkte i Musubi Tuner-projektet så snart som muligt, hvilket vil afslutte dets nuværende eksistens som et selvstændigt GitHub-repository.

Basieret på de nuværende installationsinstruktioner, bliver den nye GUI klonet direkte ind i den eksisterende Musubi-virtuelle miljø; og, trods mange forsøg, kan jeg ikke få det til at associerer med den eksisterende Musubi-installation. Dette betyder, at når det køres, vil det opdage, at det ikke har nogen motor!

Når GUI’en er integreret i Musubi Tuner, vil problemer af denne type være løst. Selvom forfatteren indrømmer, at det nye projekt er ‘meget ru’, er han optimistisk om dets udvikling og integration direkte i Musubi Tuner.

Taget i betragtning disse problemer (især vedrørende standardstier på installations tidspunkt og brug af UV Python-pakken, som komplicerer visse procedurer i den nye udgave), vil vi sandsynligvis skulle vente lidt på en mere glat Hunyuan Video LoRA-træningserfaring. Det ser dog lovende ud!

Men hvis du ikke kan vente, og er villig til at rulle dine ærmer op lidt, kan du få Hunyuan video LoRA-træning til at køre lokalt lige nu.

Lad os komme i gang.

Hvorfor installere noget på bare metal?

(Spring over denne afsnit, hvis du ikke er en avanceret bruger)
Avancerede brugere vil undre sig over, hvorfor jeg har valgt at installere så meget software på den bare metal Windows 10-installation i stedet for i en virtuel miljø. Årsagen er, at den essentielle Windows-port af den Linux-baserede Triton-pakke er langt sværere at få til at fungere i en virtuel miljø. Alle andre bare-metal-installationer i denne vejledning kunne ikke installeres i en virtuel miljø, da de må interface direkte med lokal hardware.

INSTALLATION AF FORUDSÆTNINGERNE PAKKER OG PROGRAMMER

For programmerne og pakkerne, der skal installeres først, er installationsrækkefølgen vigtig. Lad os komme i gang.

1: DOWNLOAD MICROSOFT REDISTRIBUTABLE

Download og installér Microsoft Redistributable-pakken fra https://aka.ms/vs/17/release/vc_redist.x64.exe.

Dette er en retlinede og hurtig installation.

2: INSTALL VISUAL STUDIO 2022

Download Microsoft Visual Studio 2022 Community-udgaven fra https://visualstudio.microsoft.com/downloads/?cid=learn-onpage-download-install-visual-studio-page-cta

Start den downloaded installer:

Vi har ikke brug for alle tilgængelige pakker, hvilket ville være en tung og længerevarende installation. Ved den første Workloads-side, der åbner, skal du markere Desktop Development with C++ (se billedet nedenfor).

Nu skal du klikke på Individual Components-fanen øverst til venstre i grænsefladen og bruge søgefeltet til at finde ‘Windows SDK’.

Standardværdien er kun Windows 11 SDK markeret. Hvis du er på Windows 10 (denne installationsprocedure er ikke testet af mig på Windows 11), skal du markere den seneste Windows 10-version, som er angivet i billedet ovenfor.

Søg efter ‘C++ CMake’ og kontroller, at C++ CMake tools for Windows er markeret.

Denne installation vil tage mindst 13 GB plads.

Når Visual Studio er installeret, vil det forsøge at køre på din computer. Lad det åbne fuldt. Når Visual Studio’s fuldskærmsgrænseflade endelig er synlig, luk programmet.

3: INSTALL VISUAL STUDIO 2019

Nogle af de efterfølgende pakker til Musubi forventer en ældre version af Microsoft Visual Studio, mens andre har brug for en nyere version.

Derfor skal du også downloade den gratis Community-udgave af Visual Studio 19 enten fra Microsoft (https://visualstudio.microsoft.com/vs/older-downloads/ – konto kræves) eller Techspot (https://www.techspot.com/downloads/7241-visual-studio-2019.html).

Installér det med samme indstillinger som for Visual Studio 2022 (se procedure ovenfor, bortset fra, at Windows SDK allerede er markeret i Visual Studio 2019-installeren).

Du vil se, at Visual Studio 2019-installeren allerede er bekendt med den nyere version, da den installeres:

Når installationen er fuldført, og du har åbnet og lukket den installeret Visual Studio 2019-applikation, åbn en Windows-kommandoprompt (skriv CMD i Start-søg) og skriv og udfør:

where cl

Resultatet skal være de kendte placeringer af de to installeret Visual Studio-udgaver.

Hvis du i stedet får INFO: Could not find files for the given pattern(s), se Check Path-afsnittet i denne artikel nedenfor, og brug disse instruktioner til at tilføje de relevante Visual Studio-stier til Windows-miljø.

Gem alle ændringer, der er lavet i henhold til Check Paths-afsnittet nedenfor, og prøv derefter where cl-kommandoen igen.

4: INSTALL CUDA 11 + 12 TOOLKITTER

De forskellige pakker, der installeres i Musubi, har brug for forskellige versioner af NVIDIA CUDA, som accelererer og optimerer træning på NVIDIA-grafikkort.

Årsagen til, at vi installerer Visual Studio-udgaverne først, er, at NVIDIA CUDA-installationsprogrammerne søger efter og integrerer med alle eksisterende Visual Studio-installationer.

Download en 11+-serie CUDA-installationspakke fra:

https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local (download ‘exe (local)’ )

Download en 12+-serie CUDA Toolkit-installationspakke fra:

https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64

Installationsprocessen er identisk for begge installatorer. Ignorer eventuelle advarsler om eksistensen eller ikke-eksistensen af installationsstier i Windows-miljøvariabler – vi skal selv omhandle dette senere.

INSTALL NVIDIA CUDA TOOLKIT V11+

Start installationsprogrammet for 11+-serien CUDA Toolkit.

Ved Installation Options skal du vælge Custom (Advanced) og fortsætte.

Afmarkér NVIDIA GeForce Experience-afkrydsfeltet og klik på Next.

Lad Select Installation Location være standard (dette er vigtigt):

Klik på Next og lad installationen afslutte.

Ignorer eventuelle advarsler eller noter, som installationsprogrammet giver om Nsight Visual Studio-integration, som ikke er nødvendig for vores brugsformål.

INSTALL NVIDIA CUDA TOOLKIT V12+

Gentag hele processen for den separate 12+ NVIDIA Toolkit-installator, du downloaded:

Installationsprocessen for denne version er identisk med den ovenfor (11+-versionen), bortset fra en advarsel om miljøstier, som du kan ignorere:

Når 12+-versionen af CUDA er installeret, åbn en kommandoprompt i Windows og skriv og udfør:

nvcc --version

Dette skal bekræfte oplysninger om den installeret driver-version:

For at kontrollere, at dit kort er genkendt, skriv og udfør:

nvidia-smi

5: INSTALL GIT

GIT vil håndtere installationen af Musubi-repository på din lokale maskine. Download GIT-installationsprogrammet på:

https://git-scm.com/downloads/win (’64-bit Git for Windows Setup’)

Kør installationsprogrammet:

Brug standardindstillinger for Select Components:

Lad standardredaktøren være Vim:

Lad GIT bestemme om grennavne:

Brug anbefalede indstillinger for Path-miljø:

Brug anbefalede indstillinger for SSH:

Brug anbefalede indstillinger for HTTPS Transport backend:

Brug anbefalede indstillinger for linjeafslutningskonverteringer:

Vælg Windows-standardkonsol som terminal-emulator:

Brug standardindstillinger (Fast-forward or merge) for Git Pull:

Brug Git-Credential Manager (standardindstilling) til Credential Helper:

I Configuring extra options skal du lade Enable file system caching være markeret og Enable symbolic links være afmarkeret (medmindre du er en avanceret bruger, der bruger hårdlinks til en central model-repository).

Afslut installationen og test, at GIT er installeret korrekt ved at åbne en CMD-vindue og skrive og udføre:

git --version

GITHUB LOGIN

Senere, når du forsøger at klone GitHub-repository, kan du blive udfordret til dine GitHub-legitimationsoplysninger. For at forudse dette skal du logge ind på din GitHub-konto (opret en, hvis nødvendigt) på en af de webbrowser, der er installeret på din Windows-maskine. På denne måde skal 0Auth-godkendelsesmetoden (en pop-op-vindue) tage så lidt tid som muligt.

Efter denne første udfordring skal du forblive godkendt automatisk.

6: INSTALL CMAKE

CMake 3.21 eller nyere er påkrævet for dele af Musubi-installationsprocessen. CMake er en cross-platform-udviklingsarkitektur, der kan orkestrere diverse compilatorer og kompilere software fra kildekode.

Download det på:

https://cmake.org/download/ (‘Windows x64 Installer’)

Kør installationsprogrammet:

Sikker, at Add Cmake to the PATH environment variable er markeret.

Klik på Next.

Skriv og udfør følgende kommando i en Windows-kommandoprompt:

cmake --version

Hvis CMake er installeret korrekt, skal det vise noget i retning af:

cmake version 3.31.4
CMake suite maintained and supported by Kitware (kitware.com/cmake).

7: INSTALL PYTHON 3.10

Python-fortolkeren er central for dette projekt. Download version 3.10 (den bedste kompromis mellem de forskellige krav til Musubi-pakker) på:

https://www.python.org/downloads/release/python-3100/ (‘Windows installer (64-bit)’)

Kør download-installationsprogrammet og lad det være standardindstillinger:

Ved slutningen af installationsprocessen skal du klikke på Disable path length limit (kræver UAC-administrationsgodkendelse):

I en Windows-kommandoprompt skriv og udfør:

python --version

Dette skal resultere i Python 3.10.0

KONTROL AF STIER

Kloning og installation af Musubi-rammer samt dens normale drift efter installation kræver, at dets komponenter kender stien til flere vigtige eksterne komponenter i Windows, især CUDA.

Derfor skal vi åbne sti-miljøet og kontrollere, at alle forudsætningerne er der.

En hurtig måde at få adgang til kontrollerne for Windows-miljø er at skrive Edit the system environment variables i Windows-søgefeltet.

Klikket på dette vil åbne System Properties-kontrolpanelet. I den nederste højre del af System Properties skal du klikke på Environment Variables-knappen, og et vindue kaldet Environment Variables åbnes. I System Variables-panelet i den nederste halvdel af dette vindue skal du rulle ned til Path og dobbeltklikke på det. Dette åbner et vindue kaldet Edit environment variables. Træk vinduets bredde bredere, så du kan se den fulde sti af variablerne:

Her er de vigtige indgange:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64
C:\Program Files\Git\cmd
C:\Program Files\CMake\bin

I de fleste tilfælde skal de korrekte sti-variabler allerede være til stede.

Tilføj eventuelle manglende stier ved at klikke på New på venstre side af Edit environment variable-vinduet og indsætte den korrekte sti:

Ikke blot kopier og indsæt fra de ovenstående stier; kontroller, at hver tilsvarende sti findes i din egen Windows-installation.

Hvis der er mindre sti-variationer (især med Visual Studio-installationer), brug de ovenstående stier til at finde de korrekte mål-mapper (dvs. x64 i Host64 i din egen installation. Så indsæt disse stier i Edit environment variable-vinduet.

Efter dette skal du genstarte computeren.

INSTALLATION AF MUSUBI

OPGRADERING AF PIP

Brug af den seneste version af PIP-installationsprogrammet kan glatte nogle af installationsstadierne. I en Windows-kommandoprompt med administrator-privilegier (se Elevation nedenfor) skriv og udfør:

pip install --upgrade pip

ELEVATION

Nogle kommandoer kan kræve forhøjede privilegier (dvs. skal køres som administrator). Hvis du modtager fejlmeddelelser om tilladelser i de følgende stadier, luk kommandoprompt-vinduet og genåbn det i administrator-tilstand ved at skrive CMD i Windows-søgefeltet, højreklikke på Command Prompt og vælge Run as administrator:

For de følgende stadier skal vi bruge Windows Powershell i stedet for Windows-kommandoprompt. Du kan finde det ved at skrive Powershell i Windows-søgefeltet og (hvis nødvendigt) højreklikke på det for at Run as administrator:

INSTALL TORCH

I Powershell skriv og udfør:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

Vær tålmodig, mens de mange pakker installeres.

Når det er fuldført, kan du verificere en GPU-aktiveret PyTorch-installation ved at skrive og udføre:

python -c "import torch; print(torch.cuda.is_available())"

Dette skal resultere i:

C:\WINDOWS\system32>python -c "import torch;
print(torch.cuda.is_available())"
True

INSTALL TRITON FOR WINDOWS

Næste installation af Triton for Windows-komponent. I forhøjet Powershell skriv (på en linje):

pip install https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post8/triton-3.1.0-cp310-cp310-win_amd64.whl

(Installationsprogrammet triton-3.1.0-cp310-cp310-win_amd64.whl fungerer for både Intel- og AMD-CPU’er, så længe arkitekturen er 64-bit og miljøet matcher Python-versionen)

Efter kørsel skal dette resultere i:

Successfully installed triton-3.1.0

Vi kan kontrollere, om Triton fungerer ved at importere det i Python. Skriv følgende kommando:

python -c "import triton; print('Triton is working')"

Dette skal udskrive:

Triton is working

For at kontrollere, om Triton er GPU-aktiveret, skriv:

python -c "import torch; print(torch.cuda.is_available())"

Dette skal resultere i True:

OPRET VIRTUELT MILJØ TIL MUSUBI

Fra nu af vil vi installere yderligere software i et Python-virtuelt miljø (eller venv). Dette betyder, at alt, du behøver at gøre for at afinstallere alle følgende software, er at trække venv’s installationsmappe til skraldespanden.

Lad os oprette installationsmappen: lav en map kaldet Musubi på dit skrivebord. Følgende eksempler antager, at denne map findes: C:\Users\[Dit Profilnavn]\Desktop\Musubi\.

I Powershell navigér til denne map ved at skrive:

cd C:\Users\[Dit Profilnavn]\Desktop\Musubi

Vi ønsker, at det virtuelle miljø skal have adgang til, hvad vi allerede har installeret (især Triton), så vi vil bruge --system-site-packages-flaget. Skriv følgende:

python -m venv --system-site-packages musubi

Vent, til miljøet er oprettet, og aktiver derefter det ved at skrive:

.\musubi\Scripts\activate

Fra dette punkt kan du se, at du er i det aktiverede virtuelle miljø ved, at (musubi) vises i starten af alle dine prompts.

KLON REPOSITORY

Navigér til den nyligt oprettede musubi -map (som er inde i Musubi -mappen på dit skrivebord):

cd musubi

Nu, da vi er på det rigtige sted, skriv følgende kommando:

git clone https://github.com/kohya-ss/musubi-tuner.git

Vent, til kloningen er fuldført (det tager ikke lang tid).

INSTALLATION AF KRÆVER

Navigér til installationsmappen:

cd musubi-tuner

Skriv og udfør:

pip install -r requirements.txt

Vent, til de mange installationer er fuldført (det tager længere tid).

AUTOMATISER ADGANG TIL HUNYUAN VIDEO VENV

For at lette og få adgang til det nye venv til fremtidige sessioner skal du indsætte følgende i Notepad og gemme det med navnet activate.bat, gemt som ‘Alle filer’ (se billedet nedenfor).

@echo off

call C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\Scripts\activate

cd C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner

cmd

(Erstat [Dit Profilnavn] med dit rigtige Windows-profilnavn)

Det er ikke vigtigt, hvilken placering du gemmer denne fil.

Herefter kan du dobbeltklikke activate.bat og starte arbejdet straks.

BRUG AF MUSUBI TUNER

DOWNLOADING AF MODELLER

Hunyuan Video LoRA-træningsprocessen kræver download af mindst syv modeller for at understøtte alle mulige optimeringsmuligheder for for-caching og træning af en Hunyuan video LoRA. Samlet vejer disse modeller mere end 60 GB.

Nuværende instruktioner til download kan findes på https://github.com/kohya-ss/musubi-tuner?tab=readme-ov-file#model-download

Men dette er download-instruktionerne på skrivets tidspunkt:

clip_l.safetensors
llava_llama3_fp16.safetensors og
llava_llama3_fp8.safetensors
kan downloades på:
https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/tree/main/split_files/text_encoders

mp_rank_00_model_states.pt
mp_rank_00_model_states_fp8.pt og
mp_rank_00_model_states_fp8_map.pt
kan downloades på:
https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/transformers

pytorch_model.pt
kan downloades på:
https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/vae

Selvom du kan placere dem i en hvilken som helst map, er det bedst at holde konsistens med senere scripting og placere dem i:

C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\models\

Dette er konsistent med mappen-arrangementet før dette punkt. Husk at erstatte [Dit Profilnavn] med dit rigtige Windows-profilnavn.

DATAFORBEREDNING

Ignorér fællesskabskontroversen om dette punkt, og det er retfærdigt at sige, at du vil have brug for mellem 10-100 billeder til en træningsdataset for din Hunyuan LoRA. Meget gode resultater kan opnås, selv med 15 billeder, så længe billederne er velbalancerede og af god kvalitet.

En Hunyuan LoRA kan trænes både på billeder eller meget korte og lavopløselige videooptagelser eller endda en blanding af begge – selvom brug af videooptagelser som træningsdata er udfordrende, selv for et 24 GB-kort.

Men videooptagelser er kun rigtig nyttige, hvis din karakter bevæger sig på en usædvanlig måde, som Hunyuan Video-grundmodellen måske ikke kender til, eller kan gætte.

Eksempler ville omfatte Roger Rabbit, en xenomorph, The Mask, Spider-Man eller andre personligheder, der besidder unike karakteristiske bevægelser.

Da Hunyuan Video allerede kender, hvordan almindelige mænd og kvinder bevæger sig, er videooptagelser ikke nødvendige for at opnå en overbevisende Hunyuan Video LoRA-menneske-type-karakter. Så vi vil bruge statiske billeder.

BILLEDFORBEREDNING

THE BUCKET LIST

The TLDR-version:

Det er bedst at bruge billeder, der alle er af samme størrelse til din dataset, eller bruge en 50/50-split mellem to forskellige størrelser, f.eks. 10 billeder, der er 512x768px, og 10, der er 768x512px.

Træningen kan gå godt, selv hvis du ikke gør dette – Hunyuan Video LoRAs kan være overraskende tilgivende.

Den længere version

Som med Kohya-ss LoRAs til statiske generative systemer som Stable Diffusion, bucketing bruges til at distribuere arbejdsbyrden over billeder af forskellige størrelser, hvilket giver mulighed for at bruge større billeder uden at forårsage out-of-memory-fejl under træningstidspunktet (dvs. bucketing ‘skærer billederne op’ i stykker, som GPU’en kan håndtere, mens den opretholder den semantiske integritet af det hele billede).

For hver billedstørrelse, du inkluderer i din træningsdataset (f.eks. 512x768px), oprettes en bucket eller ‘underopgave’. Så hvis du har følgende distribution af billeder, bliver bucket-opmærksomheden ubalanceret, og risikerer, at nogle billeder gives større betydning under træning end andre:

2x 512x768px billeder
7x 768x512px billeder
1x 1000x600px billede
3x 400x800px billeder

Vi kan se, at bucket-opmærksomheden er inddelt ulige blandt disse billeder:

Derfor enten fasthold én formatstørrelse eller prøv at holde fordelingen af forskellige størrelser relativt lig.

Under alle omstændigheder undgå meget store billeder, da dette sandsynligvis vil langsætte træningen uden nævneværdig fordel.

Til simplicitets skyld har jeg brugt 512x768px til alle billederne i min dataset.

Disclaimer: Modellen (personen) brugt i datasettet gav mig fuld tilladelse til at bruge disse billeder til dette formål og udøvede godkendelse af alle AI-baserede output, der afbilleder hendes lighed, der er med i denne artikel.

Min dataset består af 40 billeder i PNG-format (selvom JPG er fint også). Mine billeder var gemt på C:\Users\Martin\Desktop\DATASETS_HUNYUAN\examplewoman

Du skal oprette en cache -map inde i billedmappen:

Nu lad os oprette en særlig fil, der vil konfigurere træningen.

TOML-FILER

Trænings- og for-caching-processen af Hunyuan Video LoRAs får filstierne fra en flad tekstfil med .toml-udvidelsen.

Min TOML-fil er placeret på C:\Users\Martin\Desktop\DATASETS_HUNYUAN\training.toml

Indholdet af min trænings-TOML ser således ud:

[general]

resolution = [512, 768]

caption_extension = ".txt"

batch_size = 1

enable_bucket = true

bucket_no_upscale = false

[[datasets]]

image_directory = "C:\\Users\\Martin\\Desktop\\DATASETS_HUNYUAN\\examplewoman"

cache_directory = "C:\\Users\\Martin\\Desktop\\DATASETS_HUNYUAN\\examplewoman\\cache"

num_repeats = 1

(Dobbeltte back-slash for billed- og cache-mapper er ikke altid nødvendige, men de kan hjælpe med at undgå fejl i tilfælde, hvor der er et mellemrum i stien. Jeg har trænet modeller med.toml-filer, der brugte enkelt-fremad- og enkelt-bagud-slash)

Vi kan se i resolution-afsnittet, at to opløsninger vil blive overvejet – 512px og 768px. Du kan også lade det være 512 og stadig opnå gode resultater.

KAPITLER

Hunyuan Video er en tekst+vision grundmodel, så vi har brug for beskrivende kapitler til disse billeder, som vil blive overvejet under træning. Træningsprocessen vil fejle uden kapitler.

Der er en mængde af open source-kapitel-systemer, vi kunne bruge til dette formål, men lad os holde det simpelt og bruge taggui-systemet. Selvom det er gemt på GitHub, og selvom det downloader nogle meget store dybe læringsmodeller ved første kørsel, kommer det i form af en simpel Windows-eksekverbar fil, der loader Python-biblioteker og en retfærdig grænseflade.

Efter at have startet Taggui skal du bruge File > Load Directory til at navigere til din billedataset og eventuelt indsætte en token-identifikator (i dette tilfælde examplewoman), der vil blive føjet til alle kapitlerne:

(Sikrer, at Load in 4-bit er slået fra, når Taggui først åbnes – det vil kaste fejl under kapitelning, hvis dette er slået til)

Vælg et billede i venstre preview-kolonne og tryk på CTRL+A for at vælge alle billederne. Så tryk på Start Auto-Captioning-knappen til højre:

Du vil se Taggui downloade modeller i det lille CLI i højre kolonne, men kun hvis dette er den første gang, du har kørt kapitelneren. Ellers vil du se en forhåndsvisning af kapitlerne.

Nu har hvert billede en tilsvarende.txt-kapitel med en beskrivelse af billedindhold:

Du kan klikke på Advanced Options i Taggui for at øge længden og stilen af kapitler, men det er uden for denne gennemgangs omfang.

Afslut Taggui og lad os gå videre til…

LATENT FOR-CACHING

For at undgå overbelastning af GPU under træningstidspunktet er det nødvendigt at oprette to typer for-cached-filer – en til at repræsentere det latente billede, der er afledt af billederne selv, og en anden til at evaluere en tekst-kodning i forhold til kapitelindhold.

For at simplificere alle tre processer (2x cache + træning) kan du bruge interaktive.BAT-filer, der vil stille dig spørgsmål og udføre processerne, når du har givet de nødvendige oplysninger.

Til latent for-caching skal du indsætte følgende tekst i Notepad og gemme det som en.BAT-fil (f.eks. navngivet latent-precache.bat), som tidligere, og sikre, at filtypen i Save As-dialogboksen er Alle filer (se billedet nedenfor):

@echo off

REM Activate the virtual environment

call C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\Scripts\activate.bat

REM Get user input

set /p IMAGE_PATH=Enter the path to the image directory:

set /p CACHE_PATH=Enter the path to the cache directory:

set /p TOML_PATH=Enter the path to the TOML file:

echo You entered:

echo Image path: %IMAGE_PATH%

echo Cache path: %CACHE_PATH%

echo TOML file path: %TOML_PATH%

set /p CONFIRM=Do you want to proceed with latent pre-caching (y/n)?

if /i "%CONFIRM%"=="y" (

REM Run the latent pre-caching script

python C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\cache_latents.py --dataset_config %TOML_PATH% --vae C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\models\pytorch_model.pt --vae_chunk_size 32 --vae_tiling

) else (

echo Operation canceled.

)

REM Keep the window open

pause

(Erstat [Dit Profilnavn] med dit rigtige Windows-profilnavn)

Nu kan du køre.BAT-filen for automatisk latent caching:

Når du bliver bedt om det af.BAT-filen, indsæt eller skriv stien til din dataset, cache-mapper og TOML-fil.

TEKST FOR-CACHING

Vi vil oprette en anden.BAT-fil, denne gang til tekst for-caching.

@echo off

REM Activate the virtual environment

call C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\Scripts\activate.bat

REM Get user input

set /p IMAGE_PATH=Enter the path to the image directory:

set /p CACHE_PATH=Enter the path to the cache directory:

set /p TOML_PATH=Enter the path to the TOML file:

echo You entered:

echo Image path: %IMAGE_PATH%

echo Cache path: %CACHE_PATH%

echo TOML file path: %TOML_PATH%

set /p CONFIRM=Do you want to proceed with text encoder output pre-caching (y/n)?

if /i "%CONFIRM%"=="y" (

REM Use the python executable from the virtual environment

python C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\cache_text_encoder_outputs.py --dataset_config %TOML_PATH% --text_encoder1 C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\models\llava_llama3_fp16.safetensors --text_encoder2 C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\models\clip_l.safetensors --batch_size 16

) else (

echo Operation canceled.

)

REM Keep the window open

pause

Erstat [Dit Profilnavn] med dit rigtige Windows-profilnavn og gem dette som text-cache.bat (eller et andet navn, du kan lide), i en hvilken som helst bekvem placering, som tidligere.

Kør denne nye.BAT-fil, følg instruktionerne, og de nødvendige tekst-kodede filer vil dukke op i cache-mappen:

TRÆNING AF HUNYUAN VIDEO LORA

Træning af den faktiske LoRA vil tage betydeligt længere tid end disse to forberedende processer.

Selvom der også er mange variable, vi kunne bekymre os om (såsom batch-størrelse, gentagelser, epochs og om at bruge fuld eller kvantificerede modeller, blandt andre), vil vi gemme disse overvejelser for en anden dag og en dybere gennemgang af LoRA-oprettelsens kompleksitet.

For nu vil vi minimere valgmulighederne lidt og træne en LoRA på ‘median’-indstillinger.

Vi vil oprette en tredje.BAT-fil, denne gang til at initiere træning. Indsæt følgende i Notepad og gem det som en.BAT-fil, som tidligere, som training.bat (eller et andet navn, du kan lide):

@echo off

REM Activate the virtual environment

call C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\Scripts\activate.bat

REM Get user input

set /p DATASET_CONFIG=Enter the path to the dataset configuration file:

set /p EPOCHS=Enter the number of epochs to train:

set /p OUTPUT_NAME=Enter the output model name (e.g., example0001):

set /p LEARNING_RATE=Choose learning rate (1 for 1e-3, 2 for 5e-3, default 1e-3):

if "%LEARNING_RATE%"=="1" set LR=1e-3

if "%LEARNING_RATE%"=="2" set LR=5e-3

if "%LEARNING_RATE%"=="" set LR=1e-3

set /p SAVE_STEPS=How often (in steps) to save preview images:

set /p SAMPLE_PROMPTS=What is the location of the text-prompt file for training previews?

echo You entered:

echo Dataset configuration file: %DATASET_CONFIG%

echo Number of epochs: %EPOCHS%

echo Output name: %OUTPUT_NAME%

echo Learning rate: %LR%

echo Save preview images every %SAVE_STEPS% steps.

echo Text-prompt file: %SAMPLE_PROMPTS%

REM Prepare the command

set CMD=accelerate launch --num_cpu_threads_per_process 1 --mixed_precision bf16 ^

C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\hv_train_network.py ^

--dit C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\models\mp_rank_00_model_states.pt ^

--dataset_config %DATASET_CONFIG% ^

--sdpa ^

--mixed_precision bf16 ^

--fp8_base ^

--optimizer_type adamw8bit ^

--learning_rate %LR% ^

--gradient_checkpointing ^

--max_data_loader_n_workers 2 ^

--persistent_data_loader_workers ^

--network_module=networks.lora ^

--network_dim=32 ^

--timestep_sampling sigmoid ^

--discrete_flow_shift 1.0 ^

--max_train_epochs %EPOCHS% ^

--save_every_n_epochs=1 ^

--seed 42 ^

--output_dir "C:\Users\[Dit Profilnavn]\Desktop\Musubi\Output Models" ^

--output_name %OUTPUT_NAME% ^

--vae C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\models\pytorch_model.pt ^

--vae_chunk_size 32 ^

--vae_spatial_tile_sample_min_size 128 ^

--text_encoder1 C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\models\llava_llama3_fp16.safetensors ^

--text_encoder2 C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\models\clip_l.safetensors ^

--sample_prompts %SAMPLE_PROMPTS% ^

--sample_every_n_steps %SAVE_STEPS% ^

--sample_at_first

echo The following command will be executed:

echo %CMD%

set /p CONFIRM=Do you want to proceed with training (y/n)?

if /i "%CONFIRM%"=="y" (

%CMD%

) else (

echo Operation canceled.

)

REM Keep the window open

cmd /k

Erstat [Dit Profilnavn] med dit rigtige Windows-profilnavn.

Sikrer, at mappen C:\Users\[Dit Profilnavn]\Desktop\Musubi\Output Models\ findes, og opret den på den placering, hvis den ikke findes.

TRÆNINGSPREVIEW

Der er en meget grundlæggende træningspreview-funktion aktiveret for Musubi-træner, der giver mulighed for at tvinge træningsmodellen til at pause og generere billeder baseret på prompts, du har gemt. Disse gemmes i en automatisk oprettet map kaldet Sample, i samme directory som de trænede modeller er gemt.

For at aktivere dette skal du have mindst én prompt gemt i en tekstfil. Trænings-BAT’en vil bede dig om at indsætte placeringen af denne fil; derfor kan du navngive prompt-filen til hvad som helst og gemme den hvor som helst.

Her er nogle eksempler på prompts til en fil, der vil udgive tre forskellige billeder, når det anmodes af træningsruten:

Som du kan se i eksemplet ovenfor, kan du indsætte flags i slutningen af prompten, der vil påvirke billederne:

–w er bredde (standardværdi er 256px, hvis den ikke er angivet, ifølge dokumentationen)
–h er højde (standardværdi er 256px, hvis den ikke er angivet)
–f er antal frames. Hvis det er sat til 1, produceres et billede; mere end ét, en video.
–d er frøet. Hvis det ikke er angivet, er det tilfældigt; men du bør angive det for at se en prompt udvikle sig.
–s er antallet af skridt i generation, standardværdi er 20.

Se den officielle dokumentation for yderligere flags.

Træningspreviews kan hurtigt afsløre nogle problemer, der kan få dig til at annullere træningen og overveje data eller opsætning, hvilket kan spare tid. Men husk, at hver ekstra prompt langsætter træningen lidt mere.

Og størrelsen af træningspreview-billedets bredde og højde (som er angivet i flags ovenfor) påvirker også træningstiden.

Kør din trænings-BAT-fil.

Spørgsmål #1 er ‘Enter the path to the dataset configuration’. Indsæt eller skriv den korrekte sti til din TOML-fil.

Spørgsmål #2 er ‘Enter the number of epochs to train’. Dette er en trial-and-error-variabel, da det påvirkes af mængden og kvaliteten af billeder, såvel som kapitler og andre faktorer. Generelt er det bedst at sætte det for højt end for lavt, da du altid kan stoppe træningen med Ctrl+C i træningsvinduet, hvis du føler, at modellen er fremskredet nok. Sæt det til 100 i første omgang og se, hvordan det går.

Spørgsmål #3 er ‘Enter the output model name’. Navngiv din model! Det er bedst at holde navnet rimeligt kort og enkelt.

Spørgsmål #4 er ‘Choose learning rate’, der standardværdi er 1e-3 (mulighed 1). Dette er et godt sted at starte, afhængigt af yderligere erfaring.

Spørgsmål #5 er ‘How often (in steps) to save preview images’. Hvis du sætter dette for lavt, vil du se lidt fremgang mellem billed-gemte gemte billeder, og dette vil langsætte træningen.

Spørgsmål #6 er ‘What is the location of the text-prompt file for training previews?’. Indsæt eller skriv stien til din prompts-tekstfil.

BAT’en viser dig kommandoen, der vil blive sendt til Hunyuan-modellen, og beder dig, om du vil fortsætte, y/n.

Gå videre og start træning:

Under denne tid vil du se, at processen tager omkring 16 GB VRAM, hvis du checker GPU-sektionen af Performance-fanen i Windows Task Manager.

Dette kan ikke være en tilfældig figur, da dette er mængden af VRAM, der er tilgængelig på mange NVIDIA-grafikkort, og upstream-koden kan være optimeret til at passe opgaverne ind i 16 GB til fordel for dem, der ejer sådanne kort.

Det er dog meget let at øge denne brug ved at sende mere ekstravagante flags til træningskommandoen.

Under træning vil du se i den nederste højre del af CMD-vinduet en figur for, hvor lang tid der er gået, siden træning startede, og en estimering af den totale træningstid (der kan variere kraftigt afhængigt af flags, antal træningsbilleder, antal træningspreview-billeder og mange andre faktorer).

En typisk træningstid er omkring 3-4 timer på median-indstillinger, afhængigt af den tilgængelige hardware, antallet af billeder, flag-indstillinger og andre faktorer.

BRUG AF DINE TRÆNEDE LORA-MODELLER I HUNYUAN VIDEO

VALG AF CHECKPOINTS

Når træningen er afsluttet, vil du have en model-checkpoint for hvert trænings-epoch.

Denne gemmefrekvens kan ændres af brugeren til at gemme mere eller mindre ofte, som ønsket, ved at ændre --save_every_n_epochs [N]-nummeret i trænings-BAT-filen. Hvis du tilføjede et lavt tal for gemte billeder-pr-steps under opsætning af træning med BAT’en, vil der være et stort antal gemte checkpoint-filer.

HVILKEN CHECKPOINT AT VÆLGE?

Som nævnt tidligere vil de tidligste trænede modeller være de mest fleksible, mens de senere checkpoints kan tilbyde den mest detaljerede. Den eneste måde at teste for disse faktorer er at køre nogle af LoRAs og generere nogle videoer. På denne måde kan du få at vide, hvilke checkpoints er de mest produktive og repræsenterer den bedste balance mellem fleksibilitet og troværdighed.

COMFYUI

Det mest populære (omend ikke det eneste) miljø til brug af Hunyuan Video LoRAs på nuværende tidspunkt er ComfyUI, en node-baseret editor med en elaboreret Gradio-grænseflade, der køres i din webbrowser.

Kilde: https://github.com/comfyanonymous/ComfyUI

Kilde: https://github.com/comfyanonymous/ComfyUI

Installationsinstruktioner er retlinede og tilgængelige på det officielle GitHub-repository (yderligere modeller skal downloades).

KONVERTERING AF MODELLER TIL COMFYUI

Dine trænede modeller er gemt i en (diffusers) format, der ikke er kompatibel med de fleste ComfyUI-implementeringer. Musubi kan konvertere en model til et ComfyUI-kompatibelt format. Lad os oprette en.BAT-fil til at implementere dette.

Før du kører denne.BAT, opret en map kaldet C:\Users\[Dit Profilnavn]\Desktop\Musubi\CONVERTED\, som scriptet forventer.

@echo off

REM Activate the virtual environment

call C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\Scripts\activate.bat

:START

REM Get user input

set /p INPUT_PATH=Enter the path to the input Musubi safetensors file (or type "exit" to quit):

REM Exit if the user types "exit"

if /i "%INPUT_PATH%"=="exit" goto END

REM Extract the file name from the input path and append 'converted' to it

for %%F in ("%INPUT_PATH%") do set FILENAME=%%~nF

set OUTPUT_PATH=C:\Users\[Dit Profilnavn]\Desktop\Musubi\Output Models\CONVERTED\%FILENAME%_converted.safetensors

set TARGET=other

echo You entered:

echo Input file: %INPUT_PATH%

echo Output file: %OUTPUT_PATH%

echo Target format: %TARGET%

set /p CONFIRM=Do you want to proceed with the conversion (y/n)?

if /i "%CONFIRM%"=="y" (

REM Run the conversion script with correctly quoted paths

python C:\Users\[Dit Profilnavn]\Desktop\Musubi\musubi\musubi-tuner\convert_lora.py --input "%INPUT_PATH%" --output "%OUTPUT_PATH%" --target %TARGET%

echo Conversion complete.

) else (

echo Operation canceled.

)

REM Return to start for another file

goto START

:END

REM Keep the window open

echo Exiting the script.

pause

Som tidligere skal du gemme dette script som ‘Alle filer’ fra Notepad, navngivet convert.bat (eller et andet navn, du kan lide).

Når du har gemt det, kan du dobbeltklikke den nye.BAT-fil, der vil bede dig om stien til en fil til konvertering.

Indsæt eller skriv stien til den trænede fil, du vil konvertere, klik på y og tryk enter.

Efter at have gemt den konverterede LoRA til CONVERTED -mappen, vil scriptet bede dig, om du vil konvertere en anden fil. Hvis du vil teste flere checkpoints i ComfyUI, konverter en udvalg af modellerne.

Når du har konverteret nok checkpoints, luk.BAT-kommandovinduet.

Du kan nu kopiere dine konverterede modeller til models\loras-mappen i din ComfyUI-installation.

Typisk er den korrekte placering noget i retning af:

C:\Users\[Dit Profilnavn]\Desktop\ComfyUI\models\loras\

OPRETTELSE AF HUNYUAN VIDEO LORAS I COMFYUI

Selvom ComfyUI’s node-baserede arbejdsgange kan synes komplekse til at starte med, kan indstillingerne for andre mere erfarne brugere være indlæst ved at trække et billede (lavet med en anden brugers ComfyUI) direkte ind i ComfyUI-vinduet. Arbejdsgange kan også eksporteres som JSON-filer, der kan importeres manuelt eller trækkes ind i et ComfyUI-vindue.

Nogle indlæste arbejdsgange kan have afhængigheder, der ikke findes i din installation. Derfor skal du installere ComfyUI-Manager, der kan hente manglende moduler automatisk.

Kilde: https://github.com/ltdrdata/ComfyUI-Manager

Kilde: https://github.com/ltdrdata/ComfyUI-Manager

For at indlæse en af arbejdsgangene, der blev brugt til at generere videoer fra modellerne i denne vejledning, download denne JSON-fil og træk den ind i dit ComfyUI-vindue (selvom der er langt bedre arbejdsgangs-eksempler tilgængelige på de forskellige Reddit- og Discord-fællesskaber, der har antaget Hunyuan Video, og min egen er tilpasset fra en af disse).

Dette er ikke stedet for en udvidet vejledning i brugen af ComfyUI, men det er værd at nævne nogle af de vigtige parametre, der vil påvirke dit output, hvis du downloader og bruger den JSON-layout, der er linket ovenfor.

1) BREDDE OG HØJDE

Jo større billedet er, jo længere tid tager generationen, og jo større er risikoen for en out-of-memory-fejl.

2) LÆNGDE

Dette er det numeriske værdi for antallet af frames. Hvor mange sekunder det tilføjer afhænger af frame-raten (sat til 30fps i denne layout). Du kan konvertere sekunder>frames baseret på fps på Omnicalculator.

3) BATCH-STØRRELSE

Jo højere du sætter batch-størrelsen, jo hurtigere kan resultaterne komme, men jo større er belastningen på VRAM. Sæt det for højt, og du kan få en out-of-memory-fejl.

4) KONTROL EFTER GENERERING

Dette kontrollerer den tilfældige seed. Mulighederne for denne under-node er fast, increment, decrement og randomize. Hvis du lader det være fast og ikke ændrer tekstprompten, vil du få det samme billede hver gang. Hvis du ændrer tekstprompten, vil billedet ændre sig i en vis udstrækning. Increment og decrement -indstillingerne giver dig mulighed for at udforske nærliggende seed-værdier, mens randomize giver dig en helt ny fortolkning af prompten.

5) LORA-NAVNET

Du skal vælge din egen installeret model her, før du forsøger at generere.

6) TOKEN

Hvis du har trænet din model til at udløse konceptet med en token (f.eks. ‘example-person’), indsæt denne udløsende ord i din prompt.

7) SKRIDT

Dette repræsenterer, hvor mange skridt systemet vil anvende på diffusion-processen. Højere skridt kan opnå bedre detaljer, men der er en grænse for, hvor effektivt denne tilgang er, og den grænse kan være svær at finde. Det almindelige skridt-område er omkring 20-30.

8) FLISESTØRRELSE

Dette definerer, hvor meget information der håndteres på én gang under generation. Det er sat til 256 som standard. At øge det kan accelerere generation, men at øge det for meget kan føre til en særligt frustrerende out-of-memory-oplevelse, da det kommer ved slutningen af en lang proces.

9) TEMPORAL OVERLAP

Hunyuan Video-generation af personer kan føre til ‘ghosting’ eller ikke-overbevisende bevægelse, hvis dette er sat for lavt. Generelt er den nuværende visdom, at dette skal være sat til en højere værdi end antallet af frames, for at producere bedre bevægelse.

KONKLUSION

Selvom yderligere udforskning af ComfyUI-brug er uden for denne artikels omfang, kan fællesskabsoplevelse på Reddit og Discord lette den læringskurve, og der er flere online-guider, der introducerer grundlæggende begreber.

 

Først udgivet torsdag, 23. januar 2025

Forfatter til maskinlæringsartikler, domæneekspert i menneskesynssyntese. Tidligere leder af forskningsindhold på Metaphysic.ai, indtil opløsningen i DNEG's Brahma.ai.
Portfolio site: martinanderson.ai
Kontakt: martin@martinanderson.ai