Andersons vinkel

Hvordan trene og bruke Hunyuan Video LoRA-modeller

mm
Legg til Unite.AI blant 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 artikkelen vil vise deg hvordan du kan installere og bruke Windows-basert programvare som kan trene Hunyuan video LoRA-modeller, som gjør det mulig for brukeren å generere tilpassede personligheter i Hunyuan Video foundation modellen.

Klikk for å spille. Eksempler fra den nylige eksplosjonen av celebrity Hunyuan LoRAs fra civit.ai-samfunnet.

For øyeblikket er de to mest populære måtene å generere Hunyuan LoRA-modeller lokalt:

1) Diffusion-pipe-ui Docker-basert rammeverk, som avhenger av Windows Subsystem for Linux (WSL) for å håndtere noen av prosessene.

2) Musubi Tuner, en ny tilføyelse til den populære Kohya ss diffusjons-trening arkitektur. Musubi Tuner trenger ikke Docker og avhenger ikke av WSL eller andre Linux-baserte proksyer – men det kan være vanskelig å få det til å fungere på Windows.

Derfor vil denne gjennomgangen fokusere på Musubi Tuner, og på å gi en fullstendig lokal løsning for Hunyuan LoRA-trening og generering, uten å bruke API-drevne nettsider eller kommersielle GPU-leieprosesser som Runpod.

Klikk for å spille. Eksempler fra LoRA-trening på Musubi Tuner for denne artikkelen. Alle tillatelser er gitt av personen avbildet, for å illustrere denne artikkelen.

KRAV

Installasjonen vil kreve minst en Windows 10-PC med en 30+/40+ serie NVIDIA -kort som har minst 12 GB VRAM (selv om 16 GB er anbefalt). Installasjonen som ble brukt til denne artikkelen ble testet på en maskin med 64 GB systemminne og en NVIDIA 3090-grafikkort med 24 GB VRAM. Det ble testet på en dedikert test-sammenstilling med en fersk installasjon av Windows 10 Professional, på en partisjon med 600+ GB ledig diskplass.

ADVARSEL

Installasjon av Musubi Tuner og dens forutsetninger innebærer også installasjon av utviklerfokusert programvare og pakker direkte på hoved-Windows-installasjonen av en PC. Selv om jeg har testet prosedyren uten hendelser flere ganger i nyinstallerte test-miljøer, er hverken jeg eller unite.ai ansvarlige for skader på systemer fra å følge disse instruksjonene. Jeg råder deg til å sikre alle viktige data før du prøver denne type installasjonsprosedyre.

VURDERINGER

ER DENNE METODEN FORTSATT GYLDIG?

Det generative AI-landskapet beveger seg svært raskt, og vi kan forvente bedre og mer strømlinjeformede metoder for Hunyuan Video LoRA-rammeverk i år.

…eller selv denne uken! Mens jeg skrev denne artikkelen, produserte utvikleren av Kohya/Musubi musubi-tuner-gui, en sofistikert Gradio-GUI for Musubi Tuner:

Det er selvsagt at en brukervennlig GUI er å foretrekke fremfor BAT-filene jeg bruker i denne funksjonen – når musubi-tuner-gui fungerer. Da jeg skriver, gikk det bare online for fem dager siden, og jeg kan ikke finne noen konto av noen som har brukt det med hell.

Ifølge innlegg i repositoriet, er den nye GUI ment å bli rullet direkte inn i Musubi Tuner-prosjektet så snart som mulig, hvilket vil avslutte dens nåværende eksistens som et eget GitHub-repo.

Basert på de nåværende installasjonsinstruksjonene, blir den nye GUI klonet direkte inn i den eksisterende Musubi-virtuelle miljø; og, til tross for mange forsøk, kan jeg ikke få det til å assosiere med den eksisterende Musubi-installasjonen. Dette betyr at når det kjører, vil det finne at det ikke har noen motor!

Når GUI-en er integrert i Musubi Tuner, vil slike problemer sikkert bli løst. Selv om forfatteren innrømmer at det nye prosjektet er ‘veldig ru’, er han optimistisk for dens utvikling og integrering direkte i Musubi Tuner.

Med disse problemene (og også angående standardstier ved installasjonstid, og bruk av UV Python-pakken, som kompliserer visse prosedyrer i den nye utgaven), vil vi sannsynligvis måtte vente en litt for en smidigere Hunyuan Video LoRA-treningserfaring. Det ser imidlertid veldig lovende ut!

Men hvis du ikke kan vente, og er villig til å rulle opp ermene litt, kan du få Hunyuan video LoRA-trening til å fungere lokalt nå.

La oss komme i gang.

HVORFOR INSTALLERE NOE PÅ BARE METALL?

(Hopp over denne paragrafen hvis du er en avansert bruker)
Avanserte brukere vil lure på hvorfor jeg har valgt å installere så mye av programvaren på den bare metall Windows 10-installasjonen i stedet for i en virtuell miljø. Grunnen er at den essensielle Windows-porten av den Linux-baserte Triton-pakken er mye vanskeligere å få til å fungere i en virtuell miljø. Alle de andre bare metall-installasjonene i tutorialen kunne ikke installeres i en virtuell miljø, da de må kommunisere direkte med lokale maskinvare.

INSTALLERE FORUTSETTNINGS-PAKKER OG PROGRAMMER

For programmene og pakker som må installeres først, er rekkefølgen av installasjon viktig. La oss komme i gang.

1: LAST NED MICROSOFT REDISTRIBUTABLE

Last ned og installer Microsoft Redistributable-pakken fra https://aka.ms/vs/17/release/vc_redist.x64.exe.

Dette er en enkel og rask installasjon.

2: INSTALLER VISUAL STUDIO 2022

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

Start den lastede installatoren:

Vi trenger ikke alle tilgjengelige pakker, som ville være en tung og lang installasjon. Ved den innledende Workloads-siden som åpner, merk Desktop Development with C++ (se bildet under).

Nå klikk Individual Components-fanen øverst til venstre i grensesnittet og bruk søkeboksen til å finne ‘Windows SDK’.

Standardt er bare Windows 11 SDK merket. Hvis du er på Windows 10 (denne installasjonsprosedyren har ikke blitt testet av meg på Windows 11), merk den siste Windows 10-versjonen, som vist i bildet over.

Søk etter ‘C++ CMake’ og sjekk at C++ CMake tools for Windows er merket.

Denne installasjonen vil ta minst 13 GB plass.

Når Visual Studio har installert, vil det prøve å kjøre på din datamaskin. La det åpne fullstendig. Når Visual Studio’s fullskjermsgrensesnitt er endelig synlig, lukk programmet.

3: INSTALLER VISUAL STUDIO 2019

Noen av de påfølgende pakker for Musubi forventer en eldre versjon av Microsoft Visual Studio, mens andre trenger en nyere versjon.

Derfor last ned også den gratis Community-utgaven av Visual Studio 19 enten fra Microsoft (https://visualstudio.microsoft.com/vs/older-downloads/ – konto påkrevd) eller Techspot (https://www.techspot.com/downloads/7241-visual-studio-2019.html).

Installer det med samme valg som for Visual Studio 2022 (se prosedyre over, bortsett fra at Windows SDK allerede er merket i Visual Studio 2019-installatoren).

Du vil se at Visual Studio 2019-installatoren allerede er klar over den nyere versjonen når den installerer:

Når installasjonen er fullført, og du har åpnet og lukket den installerte Visual Studio 2019-applikasjonen, åpne en Windows-kommandoprompt (Skriv CMD i Start-søk) og skriv inn og trykk enter:

where cl

Resultatet bør være de kjente plasseringene av de to installerte Visual Studio-utgavene.

Hvis du i stedet får INFO: Could not find files for the given pattern(s), se Check Path-delen av denne artikkelen nedenfor, og bruk disse instruksjonene for å legge til de relevante Visual Studio-stier til Windows-miljø.

Lagre alle endringer gjort i henhold til Check Paths-delen nedenfor, og prøv deretter where cl-kommandoen igjen.

4: INSTALLER CUDA 11 + 12 VERKTØY

De forskjellige pakker installert i Musubi trenger forskjellige versjoner av NVIDIA CUDA, som akselererer og optimaliserer trening på NVIDIA-grafikkort.

Grunnen til at vi installerte Visual Studio-versjonene først er at NVIDIA CUDA-installatorene søker etter og integrerer med eksisterende Visual Studio-installasjoner.

Last ned en 11+ serie CUDA-installasjonspakke 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 (last ned ‘exe (local)’)

Last ned en 12+ serie CUDA Toolkit-installasjonspakke fra:

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

Installasjonsprosessen er identisk for begge installatorer. Ignorer eventuelle advarsler om eksistensen eller ikke-eksistensen av installasjonsstier i Windows-miljøvariabler – vi kommer til å håndtere dette manuelt senere.

INSTALLER NVIDIA CUDA TOOLKIT V11+

Start installatoren for 11+ serie CUDA Toolkit.

Ved Installation Options, velg Custom (Advanced) og fortsett.

Avmrk NVIDIA GeForce Experience-valget og klikk Next.

La Select Installation Location være på standard (dette er viktig):

Klikk Next og la installasjonen fullføres.

Ignorer eventuelle advarsler eller notater som installatoren gir om Nsight Visual Studio-integrering, som ikke er nødvendig for vårt brukstilfelle.

INSTALLER NVIDIA CUDA TOOLKIT V12+

Gjenta hele prosessen for den separate 12+ NVIDIA Toolkit-installatoren du lastet ned:

Installasjonsprosessen for denne versjonen er identisk med den ovenfor (11+ versjonen), bortsett fra en advarsel om miljøstier, som du kan ignorere:

Når 12+ CUDA-versjon installasjonen er fullført, åpne en kommandoprompt i Windows og skriv inn og trykk enter:

nvcc --version

Dette bør bekrefte informasjon om den installerte driver-versjonen:

For å sjekke at kortet ditt er gjenkjent, skriv inn og trykk enter:

nvidia-smi

5: INSTALLER GIT

GIT vil håndtere installasjonen av Musubi-repositoriet på din lokale maskin. Last ned GIT-installatoren fra:

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

Kjør installatoren:

Bruk standardinnstillinger for Select Components:

La standardredaktøren være Vim:

La GIT bestemme om grenenavn:

Bruk anbefalte innstillinger for Path Environment:

Bruk anbefalte innstillinger for SSH:

Bruk anbefalte innstillinger for HTTPS Transport backend:

Bruk anbefalte innstillinger for linjeavslutningskonverteringer:

Velg Windows-standardkonsoll som Terminal Emulator:

Bruk standardinnstillinger (Fast-forward or merge) for Git Pull:

Bruk Git-Credential Manager (standardinnstillingen) for Credential Helper:

I Configuring extra options, la Enable file system caching være merket, og Enable symbolic links være avmerket (med mindre du er en avansert bruker som bruker hardlinker for et sentralisert modell-repo).

Fullfør installasjonen og test at Git er installert korrekt ved å åpne en CMD-vindu og skrive inn og trykke enter:

git --version

GITHUB LOGIN

Senere, når du prøver å klonere GitHub-repositorier, kan du bli utfordret for dine GitHub-legitimasjoner. For å forutse dette, logg inn på din GitHub-konto (opprett en hvis nødvendig) på noen av nettleserne installert på din Windows-system. På denne måten bør 0Auth-autentiseringsmetoden (en popup-vindu) ta så lite tid som mulig.

Etter denne første utfordringen bør du forbli autentisert automatisk.

6: INSTALLER CMAKE

CMake 3.21 eller nyere er påkrevd for deler av Musubi-installasjonen. CMake er en cross-platform utviklingsarkitektur i stand til å orkestrere forskjellige kompilatorer og å kompilere programvare fra kildekoden.

Last det ned fra:

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

Kjør installatoren:

Sikre at Add Cmake to the PATH environment variable er merket.

Trykk Next.

Skriv inn og trykk enter denne kommandoen i en Windows-kommandoprompt:

cmake --version

Hvis CMake er installert korrekt, vil det vise noe som:

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

7: INSTALLER PYTHON 3.10

Python-tolken er sentral i dette prosjektet. Last ned 3.10-versjonen (den beste kompromissen mellom de forskjellige kravene til Musubi-pakker) fra:

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

Kjør nedlastingsinstallatoren og la den være på standardinnstillinger:

Ved slutten av installasjonsprosessen, klikk Disable path length limit (krever UAC-administrativ godkjenning):

I en Windows-kommandoprompt, skriv inn og trykk enter:

python --version

Dette bør resultere i Python 3.10.0

SJekk STIER

Kloning og installasjon av Musubi-rammeverket, samt dets normale drift etter installasjon, krever at dets komponenter kjenner stien til flere viktige eksterne komponenter i Windows, spesielt CUDA.

Så vi må åpne sti-miljøet og sjekke at alle kravene er der.

En rask måte å komme til kontrollene for Windows-miljø er å skrive Edit the system environment variables i Windows-søkefeltet.

Klikking på dette vil åpne System Properties-kontrollpanelet. I nedre høyre del av System Properties, klikk Environment Variables-knappen, og et vindu kalt Environment Variables åpner. I System Variables-panelet i nedre halvdel av dette vinduet, blæring ned til Path og dobbeltklikk på det. Dette åpner et vindu kalt Edit environment variables. Trekk bredde på dette vinduet så du kan se full sti for variablene:

Her er de viktige innstillingene:

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 tilfeller bør de riktige sti-variablene allerede være til stede.

Legg til manglende stier ved å klikke New på venstre side av Edit environment variable-vinduet og lime inn den riktige stien:

Ikke bare kopier og lim inn fra stiene ovenfor; sjekk at hver tilsvarende sti eksisterer i din egen Windows-installasjon.

Hvis det er mindre sti-variabler (spesielt med Visual Studio-installasjoner), bruk stiene ovenfor for å finne de riktige mål-mappene (dvs. x64 i Host64 i din egen installasjon). Lim så inn disse stiene i Edit environment variable-vinduet.

Etter dette, restart datamaskinen.

INSTALLERE MUSUBI

OPPDATER PIP

Bruk av den siste versjonen av PIP-installatoren kan gjøre noen av installasjonsstadiene enklere. I en Windows-kommandoprompt med administrator-privilegier (se Elevation nedenfor), skriv inn og trykk enter:

pip install --upgrade pip

ELEVATION

Noen kommandoer kan kreve forhøyede privilegier (dvs. å kjøres som administrator). Hvis du mottar feilmeldinger om tillatelser i de påfølgende stadiene, lukk kommandoprompt-vinduet og åpne det igjen i administrator-modus ved å skrive CMD i Windows-søkefeltet, høyreklikke på Command Prompt og velge Run as administrator:

For de neste stadiene, vil vi bruke Windows Powershell i stedet for Windows-kommandoprompt. Du kan finne dette ved å skrive Powershell i Windows-søkefeltet og (hvis nødvendig) høyreklikke på det for å Run as administrator:

INSTALLER TORCH

I Powershell, skriv inn og trykk enter:

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

Vær tålmodig mens de mange pakker installerer.

Når det er fullført, kan du verifisere en GPU-aktivert PyTorch-installasjon ved å skrive inn og trykke enter:

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

Dette bør resultere i:

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

INSTALLER TRITON FOR WINDOWS

Neste, installasjonen av Triton for Windows-komponenten. I forhøyet Powershell, skriv inn (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

(Installatoren triton-3.1.0-cp310-cp310-win_amd64.whl fungerer for både Intel og AMD-prosessorer så lenge arkitekturen er 64-bit og miljøet matcher Python-versjonen)

Etter å ha kjørt, bør dette resultere i:

Successfully installed triton-3.1.0

Vi kan sjekke om Triton fungerer ved å importere det i Python. Skriv inn denne kommandoen:

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

Dette bør utskrive:

Triton is working

For å sjekke at Triton er GPU-aktivert, skriv inn:

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

Dette bør resultere i True:

OPPRETT VIRTUELL MILJØ FOR MUSUBI

Fra nå av, vil vi installere all videre programvare i en Python virtuell miljø (eller venv). Dette betyr at alt du vil måtte gjøre for å avinstallere all påfølgende programvare er å dra venv’s installasjonsmappe til søppelkassen.

La oss opprette installasjonsmappen: lag en mappe kalt Musubi på skrivebordet ditt. Følgende eksempler antar at denne mappen eksisterer: C:\Users\[Ditt Profilnavn]\Desktop\Musubi\.

I Powershell, naviger til denne mappen ved å skrive inn:

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

Vi ønsker at den virtuelle miljøet skal ha tilgang til hva vi allerede har installert (spesielt Triton), så vi vil bruke --system-site-packages-flagget. Skriv inn dette:

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

Vent til miljøet er opprettet, og aktivér det ved å skrive inn:

.\musubi\Scripts\activate

Fra dette punktet, kan du se at du er i den aktive virtuelle miljøet ved at (musubi) vises i begynnelsen av alle dine prompter.

KLON REPOSITORIET

Naviger til den nyopprettede musubi-mappen (som er inne i Musubi-mappen på skrivebordet ditt):

cd musubi

Nå som vi er på riktig sted, skriv inn følgende kommando:

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

Vent til kloningen er fullført (det vil ikke ta lang tid).

INSTALLERE KRav

Naviger til installasjonsmappen:

cd musubi-tuner

Skriv inn:

pip install -r requirements.txt

Vent til de mange installasjonene er fullført (det vil ta lengre).

AUTOMATISER TILGANG TIL HUNYUAN VIDEO VENV

For å enkelt aktivere og få tilgang til den nye venv for fremtidige sesjoner, lim inn følgende i Notepad og lagre det med navnet activate.bat, lagret som All files (se bildet under).

@echo off

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

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

cmd

(Ersett [Ditt Profilnavn] med ditt faktiske Windows-brukerprofilnavn)

Det har ingen betydning hvor du lagrer denne filen.

Fra nå av kan du dobbeltklikke activate.bat og starte arbeidet umiddelbart.

BRUK MUSUBI TUNER

LAST NED MODELLER

Hunyuan Video LoRA-treningprosessen krever nedlasting av minst syv modeller for å støtte alle mulige optimaliseringsalternativer for forhåndscaching og trening av en Hunyuan video LoRA. Disse modellene veier sammen over 60 GB.

Aktuelle instruksjoner for å laste ned dem kan finnes på https://github.com/kohya-ss/musubi-tuner?tab=readme-ov-file#model-download

Men disse er nedlastningsinstruksjonene på tidspunktet for skriving:

clip_l.safetensors, llava_llama3_fp16.safetensors og llava_llama3_fp8_scaled.safetensors kan lastes ned fra 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 lastes ned fra https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/transformers

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

Selv om du kan plassere dem i hvilken som helst mappe du ønsker, er det best å plassere dem i:

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

Dette er konsistent med mappenheten før dette punktet. Ikke glem å erstatte [Ditt Profilnavn] med ditt faktiske Windows-brukerprofilnavn.

DATASET FORBEREDNING

Ignorert samfunnskontrovers rundt dette punktet, er det rettferdig å si at du vil trenge mellom 10-100 bilder for et treningsdataset for din Hunyuan LoRA. Veldig gode resultater kan oppnås selv med 15 bilder, så lenge bildene er godt balanserte og av god kvalitet.

En Hunyuan LoRA kan trenes både på bilder eller svært korte og lavoppløste video klipp, eller selv en blanding av begge – selv om å bruke video klipp som treningsdata er utfordrende, selv for et 24 GB-kort.

Men video klipp er bare virkelig nyttige hvis din karakter beveger seg på en så uvanlig måte at Hunyuan Video foundation modellen kanskje ikke vet om det, eller kan gjette.

Eksempler ville inkludere Roger Rabbit, en xenomorph, The Mask, Spider-Man eller andre personligheter som besitter unike karakteristiske bevegelser.

Ettersom Hunyuan Video allerede kjenner hvordan vanlige menn og kvinner beveger seg, er video klipp ikke nødvendige for å oppnå en overbevisende Hunyuan Video LoRA menneske-type karakter. Så vi vil bruke statiske bilder.

BILDE FORBEREDNING

BUKKET LISTEN

TLDR-versjonen:

Det er best å bruke bilder som alle er av samme størrelse for ditt dataset, eller bruke en 50/50-deling mellom to forskjellige størrelser, dvs. 10 bilder som er 512x768px og 10 som er 768x512px.

Treningen kan gå bra selv om du ikke gjør dette – Hunyuan Video LoRAs kan være overraskende tilgjengelige.

Den lengre versjonen

Som med Kohya-ss LoRAs for statiske generative systemer som Stable Diffusion, bucketing brukes til å distribuere arbeidsbelastningen over forskjellige størrelser på bilder, som gjør det mulig å bruke større bilder uten å forårsake out-of-memory-feil under trening (dvs. bucketing ‘kutter opp’ bildene i biter som GPU-en kan håndtere, samtidig som den opprettholder den semantiske integriteten til hele bildet).

For hver størrelse på bilder du inkluderer i ditt treningsdataset (dvs. 512x768px), vil en bucket eller ‘underoppgave’ bli opprettet for den størrelsen. Så hvis du har følgende fordeling av bilder, blir bucket-oppmerksomheten ubalansert, og risikerer at noen bilder vil bli gitt større vekt i trening enn andre:

2x 512x768px bilder
7x 768x512px bilder
1x 1000x600px bilde
3x 400x800px bilder

Vi kan se at bucket-oppmerksomheten er delt ubalansert blant disse bildene:

Derfor er det best å holde seg til én formatstørrelse, eller prøve å holde fordelingen av forskjellige størrelser relativt lik.

I begge tilfeller, unngå svært store bilder, da dette sannsynligvis vil forsinke treningen, uten noen betydelig fordel.

Jeg har brukt 512x768px for alle bildene i mitt dataset.

Disclaimer: Modellen (personen) brukt i datasett ga meg full tillatelse til å bruke disse bildene for dette formålet, og godkjente alle AI-baserte utdata som avbildet hennes likhet i denne artikkelen.

Mitt dataset består av 40 bilder i PNG-format (selv om JPG er greit også). Mine bilder ble lagret i C:\Users\Martin\Desktop\DATASETS_HUNYUAN\examplewoman

Du bør opprette en cache-mappe inne i treningsbildemappen:

Nå la oss opprette en spesialfil som vil konfigurere treningen.

TOML-FILER

Trening- og forhåndscache-prosessene for Hunyuan Video LoRAs henter filstier fra en flat tekstfil med .toml-utvidelse.

For min test, er TOML-filen plassert i C:\Users\Martin\Desktop\DATASETS_HUNYUAN\training.toml

Innholdet av min trening TOML ser slik ut:

[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

(Dobbelt back-slash for bilde- og cache-mapper er ikke alltid nødvendig, men de kan hjelpe med å unngå feil i tilfeller hvor det er et mellomrom i stien. Jeg har trenet modeller med.toml-filer som brukte enkelt-fremover- og enkelt-bakover-slash)

Vi kan se i resolution-delen at to oppløsninger vil bli vurdert – 512px og 768px. Du kan også la det være 512, og likevel oppnå gode resultater.

KAPSELER

Hunyuan Video er en tekst+visuell foundation modell, så vi trenger beskrivende kapsler for disse bildene, som vil bli vurdert under trening. Treningprosessen vil feile uten kapsler.

Det finnes en mengde åpne kildekode-kapslingssystemer vi kunne bruke til dette formålet, men la oss holde det enkelt og bruke taggui-systemet. Selv om det er lagret på GitHub, og selv om det laster ned noen svært tunge dyptlæringsmodeller på første kjøring, kommer det i form av en enkel Windows-eksekverbar fil som laster Python-biblioteker og et enkelt grensesnitt.

Efter å ha startet Taggui, bruk File > Load Directory for å navigere til ditt bilde-dataset, og valgfritt sett et token-identifikator (i dette tilfellet, examplewoman) som vil bli lagt til alle kapslene:

(Sikre at Load in 4-bit er avmerket når Taggui først åpner – det vil kaste feil under kapsling hvis dette er på)

Velg et bilde i venstre forhåndsvisningskolonne og trykk CTRL+A for å velge alle bildene. Deretter trykk Start Auto-Captioning-knappen til høyre:

Du vil se Taggui laste ned modeller i den lille CLI-kolonnen til høyre, men bare hvis dette er første gang du har kjørt kapslingsverktøyet. Ellers vil du se en forhåndsvisning av kapslene.

Nå har hver enkelt bilde en tilhørende.txt-kapsel med en beskrivelse av bildets innhold:

Du kan trykke Advanced Options i Taggui for å øke lengden og stilen på kapslene, men det er utenfor denne gjennomgangens omfang.

Lukk Taggui og la oss gå videre til…

LATENT FORHÅNDSCACHE

For å unngå overflødig GPU-belastning under trening, er det nødvendig å opprette to typer forhåndscache-filer – en for å representere det latente bildet som er avledet fra bildene selv, og en annen for å vurdere en tekst-koding som er relatert til kapsel-innhold.

For å forenkle alle tre prosesser (2x cache + trening), kan du bruke interaktive.BAT-filer som vil spørre deg om spørsmål og utføre prosessene når du har gitt den nødvendige informasjonen.

For latent forhåndscache, kopier følgende tekst inn i Notepad og lagre det som en.BAT-fil (dvs. navngi det noe som latent-precache.bat), som tidligere, og sikre at filtypen i Save As-dialogboksen er All Files (se bildet under):

@echo off

REM Aktiver den virtuelle miljøet

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

REM Få brukerinput

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 Kjør den latente forhåndscache-skriptet

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

) else (

echo Operation canceled.

)

REM Hold vinduet åpent

pause

(Ersett [Ditt Profilnavn] med ditt faktiske Windows-brukerprofilnavn)

Nå kan du kjøre.BAT-filen for automatisk latent caching:

Når du blir bedt om det av.BAT-filen, lim inn eller skriv inn stien til ditt dataset, cache-mapper og TOML-fil.

TEKST FORHÅNDSCACHE

Vi vil opprette en annen.BAT-fil, denne gangen for tekst-forhåndscache.

@echo off

REM Aktiver den virtuelle miljøet

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

REM Få brukerinput

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 Bruk python-utøveren fra den virtuelle miljøet

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

) else (

echo Operation canceled.

)

REM Hold vinduet åpent

pause

Erstatt [Ditt Profilnavn] med ditt faktiske Windows-brukerprofilnavn og lagre dette som text-cache.bat (eller noe annet navn du liker), i noen praktiske lokasjoner, som prosedyren for den forrige.BAT-filen.

Kjør denne nye.BAT-filen, følg instruksjonene, og de nødvendige tekst-kodede filene vil dukke opp i cache-mappen:

TRENING AV HUNYUAN VIDEO LORA

Trening av den faktiske LoRA vil ta betraktelig lengre tid enn disse to forberedende prosessene.

Selv om det finnes flere variable som vi kunne bekymre oss om (slik som batch-størrelse, gjentakelser, epoker og om å bruke full eller kvantiserte modeller, blant andre), vil vi spare disse overvektene for en annen dag og en dypere titt på kompleksiteten ved LoRA-opprettelse.

For nå, la oss minimere valgene litt og trene en LoRA på ‘median’ innstillinger.

Vi vil opprette en tredje.BAT-fil, denne gangen for å initiere trening. Lim inn følgende i Notepad og lagre det som en.BAT-fil, som tidligere, som training.bat (eller noe annet navn du liker):

@echo off

REM Aktiver den virtuelle miljøet

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

REM Få brukerinput

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 Forbered kommandoen

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

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

--dit C:\Users\[Ditt 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\[Ditt Profilnavn]\Desktop\Musubi\Output Models" ^

--output_name %OUTPUT_NAME% ^

--vae C:/Users/[Ditt 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/[Ditt Profilnavn]/Desktop/Musubi/musubi/musubi-tuner/models/llava_llama3_fp16.safetensors ^

--text_encoder2 C:/Users/[Ditt 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 Hold vinduet åpent

cmd /k

Som vanlig, erstatt alle eksempler på [Ditt Profilnavn] med ditt faktiske Windows-brukerprofilnavn.

Sikre at mappen C:\Users\[Ditt Profilnavn]\Desktop\Musubi\Output Models\ eksisterer, og opprett den på den lokasjonen hvis ikke.

TRENING FORHÅNDSVISNINGER

Det finnes en svært grunnleggende trening forhåndsvisningsfunksjon som nylig er blitt aktivert for Musubi-trener, som tillater modellen å pause og generere bilder basert på promter du har lagret. Disse blir lagret i en automatisk opprettet mappe kalt Sample, i samme mappe som de trenede modellene blir lagret.

For å aktivere dette, må du lagre minst en prompt i en tekstfil. Trening.BAT-en vi opprettet, vil spørre deg om å angi lokasjonen til denne filen; derfor kan du navngi prompt-filen til å være noe du liker, og lagre den hvor som helst.

Her er noen eksempler på promter for en fil som vil utskrive tre forskjellige bilder når de blir bedt om det av treningrutinen:

Som du kan se i eksemplet ovenfor, kan du sette flagg på slutten av prompten som vil påvirke bildene:

–w er bredde (standarder til 256px hvis ikke angitt, ifølge dokumentasjonen)
–h er høyde (standarder til 256px hvis ikke angitt)
–f er antall rammeverk. Hvis det er satt til 1, blir et bilde produsert; mer enn ett, en video.
–d er frøet. Hvis det ikke er angitt, er det tilfeldig; men du bør angi det for å se en prompt utvikle seg.
–s er antall steg i generering, som standarder til 20.

Se den offisielle dokumentasjonen for flere flagg.

Selv om trening forhåndsvisninger kan raskt avsløre noen problemer som kan føre til at du avbryter treningen og omgjør data eller oppsett, og dermed spare tid, husk at hver ekstra prompt sakter ned treningen litt mer.

Og størrelsen på trening forhåndsvisningsbildets bredde og høyde (som angitt i flaggene ovenfor), vil også påvirke treningstiden.

Kjør din trening.BAT-fil.

Spørsmål #1 er ‘Enter the path to the dataset configuration’. Lim inn eller skriv inn den riktige stien til din TOML-fil.

Spørsmål #2 er ‘Enter the number of epochs to train’. Dette er en prøving-og-feil variabel, da det påvirkes av mengden og kvaliteten på bildene, samt kapslene og andre faktorer. Generelt er det best å sette det for høyt enn for lavt, da du alltid kan avbryte treningen med Ctrl+C i treningsvinduet hvis du føler at modellen har fremmet nok. Sett det til 100 i første omgang, og se hvordan det går.

Spørsmål #3 er ‘Enter the output model name’. Navngi din modell! Det er kanskje best å holde navnet rimelig kort og enkelt.

Spørsmål #4 er ‘Choose learning rate’, som standarder til 1e-3 (alternativ 1). Dette er et godt sted å starte, avhengig av videre erfaring.

Spørsmål #5 er ‘How often (in steps) to save preview images’. Hvis du setter det for lavt, vil du se liten fremgang mellom forhåndsvisningsbildene, og dette vil forsinke treningen.

Spørsmål #6 er ‘What is the location of the text-prompt file for training previews?’. Lim inn eller skriv inn stien til din prompt-fil.

.BAT-en vil vise deg kommandoen det vil sende til Hunyuan-modellen, og spørre om du vil fortsette, y/n.

Gå videre og start trening:

Under denne tiden, hvis du sjekker GPU-delen av Ytelsesfanen i Windows Task Manager, vil du se at prosessen tar rundt 16 GB VRAM.

Dette kan ikke være et tilfeldig tall, da dette er mengden VRAM som er tilgjengelig på ganske mange NVIDIA-grafikkort, og oppstrøms-koden kan ha blitt optimalisert for å passe oppgavene inn i 16 GB for å dra nytte av disse kortene.

Det er imidlertid svært enkelt å øke denne bruken, ved å sende mer ekstravagante flagg til treningkommandoen.

Under trening, vil du se i nedre høyre del av CMD-vinduet en figur for hvor mye tid som har gått siden trening begynte, og en anslått total treningstid (som vil variere kraftig avhengig av flagg som er satt, antall treningsbilder, antall trening forhåndsvisningsbilder og flere andre faktorer).

En typisk treningstid er rundt 3-4 timer på median innstillinger, avhengig av tilgjengelig maskinvare, antall bilder, flagginnstillinger og andre faktorer.

BRUK DINE TRENETE LoRA-MODELLER I HUNYUAN VIDEO

VELG CHECKPOINTS

Når treningen er fullført, vil du ha en modell-checkpoint for hver epoke av trening.

Dette lagringsfrekvensen kan endres av brukeren for å lagre mer eller mindre ofte, som ønsket, ved å endre --save_every_n_epochs [N]-tallet i trening.BAT-filen. Hvis du la en lav verdi for lagring-per-steg når du satte opp trening med.BAT-en, vil det være et høyt antall lagrede checkpoint-filer.

HVA CHECKPOINT Å VELGE?

Som nevnt tidligere, vil de tidligste trenede modellene være de mest fleksible, mens de senere checkpointene kan tilby mest detalj. Den eneste måten å teste for disse faktorene er å kjøre noen av LoRAs og generere noen videoer. På denne måten kan du bli kjent med hvilke checkpoint som er mest produktive, og representerer den beste balansen mellom fleksibilitet og trofasthet.

COMFYUI

Det mest populære (om ikke det eneste) miljøet for å bruke Hunyuan Video LoRAs for øyeblikket, er ComfyUI, en node-basert redaktør med et elaborert Gradio-grensesnitt som kjører i din nettleser.

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

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

Installasjonsinstruksjoner er enkle og tilgjengelig på det offisielle GitHub-repositoriet (ytterligere modeller må lastes ned).

KONVERTERE MODELLER FOR COMFYUI

Dine trenede modeller er lagret i en (diffusers) format som ikke er kompatibelt med de fleste implementeringer av ComfyUI. Musubi er i stand til å konvertere en modell til et ComfyUI-kompatibelt format. La oss opprette en.BAT-fil for å implementere dette.

Før du kjører denne.BAT-en, opprett mappen C:\Users\[Ditt Profilnavn]\Desktop\Musubi\CONVERTED\ som skriptet forventer.

@echo off

REM Aktiver den virtuelle miljøet

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

:START

REM Få brukerinput

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

REM Avslutt hvis brukeren skriver "exit"

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

REM Eksporter filnavnet fra input-stien og legg til 'converted' til det

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

set OUTPUT_PATH=C:\Users\[Ditt 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 Kjør konverteringsskriptet med riktig quotert sti

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

echo Konvertering fullført.

) else (

echo Operasjon avbrutt.

)

REM Returner til start for en annen fil

goto START

:END

REM Hold vinduet åpent

echo Avslutter skriptet.

pause

Som vanlig, erstatt alle eksempler på [Ditt Profilnavn] med ditt faktiske Windows-brukerprofilnavn.

Lagre dette som ‘All files’ fra Notepad, og navngi det convert.bat (eller noe annet navn du liker).

Når du har lagret, dobbeltklikk den nye.BAT-filen, som vil spørre om stien til en fil å konvertere.

Lim inn eller skriv inn stien til den trenede filen du ønsker å konvertere, trykk y, og trykk enter.

Etter å ha lagret den konverterte LoRA til CONVERTED-mappen, vil skriptet spørre om du ønsker å konvertere en annen fil. Hvis du ønsker å teste flere checkpoint, konverter en rekke modeller.

Når du har konvertert nok checkpoint, lukk.BAT-kommandovinduet.

Du kan nå kopiere dine konverterte modeller til models\loras-mappen i din ComfyUI-installasjon.

Typisk er den riktige lokasjonen noe som:

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

OPPRETTE HUNYUAN VIDEO LoRAS I COMFYUI

Selv om ComfyUIs node-baserte arbeidsflyt ser komplekse ut, kan innstillingene til andre mer erfarne brukere lastes ned ved å dra et bilde (laget med en annen brukers ComfyUI) direkte inn i ComfyUI-vinduet. Arbeidsflyt kan også eksporteres som JSON-filer, som kan importeres manuelt eller dras inn i et ComfyUI-vindu.

Noen importerte arbeidsflyt kan ha avhengigheter som ikke eksisterer i din installasjon. Derfor installer ComfyUI-Manager, som kan hente manglende moduler automatisk.

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

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

For å laste ned en arbeidsflyt som ble brukt til å generere videoer fra modellene i denne tutorialen, last ned denne JSON-filen og dra den inn i ditt ComfyUI-vindu (selv om det finnes mye bedre arbeidsflyt-eksempler tilgjengelige på de forskjellige Reddit- og Discord-samfunnene som har adoptert Hunyuan Video, og min egen er adaptert fra en av disse).

Dette er ikke stedet for en utvidet tutorial i bruk av ComfyUI, men det er verdt å nevne noen av de viktige parameterne som vil påvirke utdataene dine hvis du laster ned og bruker den JSON-layouten jeg lenket til ovenfor.

1) BREDDE OG HØYDE

Jo større bildet ditt er, jo lengre vil genereringen ta, og jo høyere er risikoen for en out-of-memory (OOM)-feil.

2) LENGDE

Dette er det numeriske verdien for antall rammeverk. Hvor mange sekunder det tilsvarer, avhenger av rammefrekvensen (satt til 30fps i denne layouten). Du kan konvertere sekunder>rammeverk basert på fps her.

3) BATCH-STØRRELSE

Jo høyere du setter batch-størrelsen, jo raskere kan resultatet komme, men jo større blir belastningen på VRAM. Sett det for høyt, og du kan få en OOM-feil.

4) KONTROLL ETTER GENERERING

Dette kontrollerer den tilfeldige frøet. Alternativene for denne undernoden er fast, inkrement, dekrement og tilfeldig. Hvis du lar det være fast og ikke endrer tekst-prompten, vil du få samme bilde hver gang. Hvis du endrer tekst-prompten, vil bildet endre seg i en begrenset utstrekning. Inkrement– og dekrement-innstillingene lar deg utforske nærliggende frøverdier, mens tilfeldig gir deg en fullstendig ny tolkning av prompten.

5) LoRA-NAVN

Du må velge din egen installerte modell her, før du prøver å generere.

6) TOKEN

Hvis du har trenet din modell til å utløse konseptet med en token, (slik som ‘example-person’), legg til utløserordet i din prompt.

7) STEG

Dette representerer hvor mange steg systemet vil bruke til diffusjonsprosessen. Høyere steg kan oppnå bedre detalj, men det er en tak på hvor effektivt dette tilnærmingen er, og den terskelen kan være vanskelig å finne. Vanlig rekkevidde for steg er rundt 20-30.

8) FLISESTØRRELSE

Dette definerer hvor mye informasjon som håndteres på en gang under generering. Det er satt til 256 som standard. Å øke det kan akselerere generering, men å øke det for høyt kan føre til en særlig frustrerende OOM-erfaring, da det kommer på slutten av en lang prosess.

9) TEMPORAL OVERLAPP

Hunyuan Video-generering av personer kan føre til ‘ghosting’ eller uoverbevisende bevegelse hvis dette er satt for lavt. Generelt er det nåværende visdom at dette bør settes til en høyere verdi enn antall rammeverk, for å produsere bedre bevegelse.

KONKLUSJON

Selv om videre utforskning av ComfyUI-bruk er utenfor denne artikkels omfang, kan samfunns erfaring på Reddit og Discord-kanaler lette læringskurven, og det finnes flere online-guider som introduserer grunnleggende konsepter.

 

Først publisert torsdag, 23. januar 2025

Forfatter innen maskinlæring, domenespesialist i menneskeskapesynthese. Tidligere sjef for forskningsinnhold i Metaphysic.ai, til det ble oppløst i DNEG's Brahma.ai.
Portfolio nettsted: martinanderson.ai
Kontakt: martin@martinanderson.ai