Andersonův úhel

Jak trénovat a používat modely Hunyuan Video LoRA

mm
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'

Tento článek vám ukáže, jak nainstalovat a používat software založený na Windows, který může trénovat modely Hunyuan Video LoRA, umožňující uživateli generovat vlastní osobnosti v základním modelu Hunyuan Video.

Kliknutím spustíte. Příklady z nedávného výbuchu celebrity Hunyuan LoRAs z komunity civit.ai.

V současné době existují dvě nejoblíbenější způsoby generování modelů Hunyuan LoRA lokálně:

1) Diffusion-pipe-ui, který spoléhá na Windows Subsystem for Linux (WSL) pro zpracování některých procesů.

2) Musubi Tuner, nová součást populární architektury Kohya ss pro trénování difúze. Musubi Tuner nevyžaduje Docker a nezávisí na WSL nebo jiných linuxových proxy – ale může být obtížné jej spustit na Windows.

Proto se tento článek bude soustředit na Musubi Tuner a na poskytování zcela lokálního řešení pro trénování a generování modelů Hunyuan LoRA, bez použití webových stránek poháněných API nebo komerčních procesů pronájmu GPU, jako je Runpod.

Kliknutím spustíte. Vzorky z trénování LoRA na Musubi Tuner pro tento článek. Všechna povolení udělena osobou zobrazenou, za účelem ilustrace tohoto článku.

Požadavky

Instalace bude vyžadovat minimálně počítač s Windows 10 a 30+/40+ sérií NVIDIA karty s alespoň 12GB VRAM (i když 16GB je doporučeno). Instalace použitá pro tento článek byla testována na počítači s 64GB systémové RAM a NVIDIA 3090 grafickou kartou s 24GB VRAM. Byla testována na dedikovaném testovacím systému pomocí čerstvé instalace Windows 10 Professional, na partitionu s 600+GB volného místa na disku.

Varování

Instalace Musubi Tuner a jeho předpokladů také zahrnuje instalaci softwaru a balíčků zaměřených na vývojáře přímo na hlavní instalaci Windows na počítači. Přijetí instalace ComfyUI do úvahy, pro konečné fáze, tento projekt bude vyžadovat kolem 400-500 gigabytů místa na disku. Ačkoli jsem testoval postup bez incidentu několikrát v nově nainstalovaných testovacích prostředích Windows 10, ani já, ani unite.ai, nejsme odpovědní za jakékoli poškození systémů při následování těchto pokynů. Doporučuji vám zálohovat všechny důležité údaje před pokusem o tento typ instalace.

Významné skutečnosti

Je tato metoda stále platná?

Scéna generativního AI se vyvíjí velmi rychle a můžeme očekávat lepší a více streamované metody Hunyuan Video LoRA frameworks tento rok.

…nebo dokonce tento týden! Zatímco jsem psal tento článek, vývojář Kohya/Musubi vytvořil Musubi-tuner-gui, sofistikovaný Gradio GUI pro Musubi Tuner:

Zjevně je uživatelsky přívětivý GUI lepší než BAT soubory, které používám v tomto článku – jednou, když musubi-tuner-gui funguje. Zatímco píšu, šel online před pěti dny a nemůžu najít žádný účet o tom, že někdo úspěšně jej použil.

Podle příspěvků v repozitáři je nový GUI určen k přímému začlenění do projektu Musubi Tuner co nejdříve, což ukončí jeho současnou existenci jako samostatného repozitáře GitHub.

Založeno na současných instalacích, nový GUI se klonuje přímo do stávajícího virtuálního prostředí Musubi; a navzdory mnoha snahám, nemohu jej spojit se stávající instalací Musubi. To znamená, že když běží, zjistí, že nemá žádný motor!

Jakmile bude GUI integrováno do Musubi Tuner, problémy tohoto typu budou jistě vyřešeny. Ačkoli autor připouští, že nový projekt je ‘skutečně hrubý’, je optimistický ohledně jeho vývoje a integrace přímo do Musubi Tuner.

Vzhledem k těmto problémům (a také ohledně výchozích cest při instalaci a použití balíčku UV Python, který komplikuje některé postupy v nové verzi), budeme muset pravděpodobně počkat trochu na hladší Hunyuan Video LoRA tréninkový zážitek. To řečeno, vypadá to velmi slibně!

Ale pokud nemůžete čekat a jste ochotni trochu zamést rukávy, můžete získat Hunyuan video LoRA tréninkový běh místně hned teď.

Pojeďme.

Proč instalovat cokoli na holý kov?

(Přeskočte tento odstavec, pokud nejste pokročilý uživatel)
Pokročilí uživatelé se budou divit, proč jsem zvolil instalaci tolik softwaru na holou kovovou instalaci Windows 10, místo do virtuálního prostředí. Důvod je, že základní port Linux-založeného Triton balíčku je mnohem obtížnější získat fungující v virtuálním prostředí. Všechny ostatní instalace v tomto tutoriálu nemohly být nainstalovány v virtuálním prostředí, protože musí komunikovat přímo s místním hardwarem.

Instalace požadovaných balíčků a programů

Pro programy a balíčky, které musí být inicializovány, záleží na pořadí instalace. Pojeďme.

1: Stáhněte si Microsoft Redistributable

Stáhněte a nainstalujte balíček Microsoft Redistributable z https://aka.ms/vs/17/release/vc_redist.x64.exe.

Tato instalace je přímá a rychlá.

2: Nainstalujte Visual Studio 2022

Stáhněte si Microsoft Visual Studio 2022 Community edition z https://visualstudio.microsoft.com/downloads/?cid=learn-onpage-download-install-visual-studio-page-cta

Spusťte stažený instalační program:

Nemusíme mít všechny dostupné balíčky, které by byly těžkou a dlouhou instalací. Na počáteční stránce Workloads, která se otevře, zaškrtněte Desktop Development with C++ (viz obrázek níže).

Nyní klikněte na kartu Individual Components v horní části rozhraní a použijte vyhledávací pole pro nalezení ‘Windows SDK’.

Ponechte Windows 11 SDK zaškrtnutý. Pokud jste na Windows 10 (tento postup nebyl testován mnou na Windows 11), zaškrtněte nejnovější verzi Windows 10, označenou na obrázku výše.

Vyhledejte ‘C++ CMake’ a zkontrolujte, zda je C++ CMake tools for Windows zaškrtnutý.

Tato instalace bude vyžadovat alespoň 13 GB místa.

Jakmile je Visual Studio nainstalován, pokusí se spustit na vašem počítači. Nechte jej otevřít úplně. Když je plně zobrazené rozhraní Visual Studio, zavřete program.

3: Nainstalujte Visual Studio 2019

Některé z následujících balíčků pro Musubi očekávají starší verzi Microsoft Visual Studio, zatímco jiné potřebují novější.

Proto také stáhněte bezplatnou Community edition Visual Studio 19 buď z Microsoftu (https://visualstudio.microsoft.com/vs/older-downloads/ – účet je vyžadován) nebo Techspot (https://www.techspot.com/downloads/7241-visual-studio-2019.html).

Nainstalujte jej se stejnými možnostmi jako Visual Studio 2022 (viz postup výše, kromě toho, že Windows SDK je již zaškrtnutý v instalačním programu Visual Studio 2019).

Uvidíte, že instalační program Visual Studio 2019 je již vědom starší verze, zatímco instaluje:

Když je instalace dokončena a jste otevřeli a zavřeli nainstalovaný aplikaci Visual Studio 2019, otevřete okno příkazového řádku Windows (zadejte CMD do vyhledávacího pole Start) a zadejte a potvrďte:

where cl

Výsledek by měl být známé umístění dvou nainstalovaných edicí Visual Studio.

Pokud místo toho získáte INFO: Could not find files for the given pattern(s), podívejte se do sekce Check Path tohoto článku níže a použijte tyto pokyny pro přidání příslušných cest Visual Studio do prostředí Windows.

Uložte všechny změny provedené podle sekce Check Paths níže a poté zkuste příkaz where cl znovu.

4: Nainstalujte CUDA 11 + 12 Toolkits

Různé balíčky nainstalované v Musubi potřebují různé verze NVIDIA CUDA, které urychlují a optimalizují trénink na grafických kartách NVIDIA.

Důvod, proč jsme nainstalovali verze Visual Studio první, je, že instalační programy NVIDIA CUDA hledají a integrují se stávajícími instalacemi Visual Studio.

Stáhněte balíček instalace 11+ série CUDA z:

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

Stáhněte balíček instalace 12+ série CUDA Toolkit z:

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

Proces instalace je identický pro oba instalační programy. Ignorujte jakékoli varování o existenci nebo neexistenci instalačních cest v proměnných prostředí Windows – budeme se o to starat ručně později.

Nainstalujte NVIDIA CUDA Toolkit V11+

Spusťte instalační program pro 11+ sérii CUDA Toolkit.

Na Installation Options zvolte Custom (Advanced) a pokračujte.

Odstraňte zaškrtnutí NVIDIA GeForce Experience a klikněte na Next.

Ponechte Select Installation Location na výchozích hodnotách (to je důležité):

Klikněte na Next a nechte instalaci dokončit.

Ignorujte jakékoli varování nebo poznámky, které instalační program dává o Nsight Visual Studio integraci, která není potřebná pro náš případ.

Nainstalujte NVIDIA CUDA Toolkit V12+

Zopakujte celý proces pro samostatný 12+ NVIDIA Toolkit instalační program, který jste stáhli:

Instalační proces pro tuto verzi je identický s tím, který je uveden výše (11+ verze), kromě jednoho varování o cestách prostředí, které můžete ignorovat:

Když je instalace 12+ verze CUDA dokončena, otevřete okno příkazového řádku Windows a zadejte a potvrďte:

nvcc --version

To by mělo potvrdit informace o nainstalovaném ovladači verze:

Chcete-li zkontrolovat, zda je karta rozpoznána, zadejte a potvrďte:

nvidia-smi

5: Nainstalujte GIT

GIT bude zajišťovat instalaci repozitáře Musubi na vašem místním počítači. Stáhněte si instalační program GIT z:

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

Spusťte instalační program:

Použijte výchozí nastavení pro Select Components:

Ponechte výchozí editor na Vim:

Nechte GIT rozhodnout o názvech větví:

Použijte doporučené nastavení pro Path Environment:

Použijte doporučené nastavení pro SSH:

Použijte doporučené nastavení pro HTTPS Transport backend:

Použijte doporučené nastavení pro konverzi ukončení řádků:

Zvolte výchozí konzoli Windows jako Terminál Emulátor:

Použijte výchozí nastavení (Fast-forward or merge) pro Git Pull:

Použijte Git-Credential Manager (výchozí nastavení) pro Credential Helper:

V Configuring extra options ponechte Enable file system caching zaškrtnutý a Enable symbolic links odškrtnutý (pokud nejste pokročilý uživatel, který používá hard linky pro centralizovaný repozitář modelů).

Dokončete instalaci a otestujte, zda je GIT nainstalován správně, otevřením okna CMD a zadáním a potvrzením:

git --version

Přihlášení k GitHub

Později, když se pokusíte naklonovat repozitáře GitHub, můžete být vyzváni k zadání svých přihlašovacích údajů GitHub. Abyste se vyhnuli tomuto, přihlaste se ke svému účtu GitHub (vytvořte si jeden, pokud jste jej ještě nemáte) v libovolném prohlížeči nainstalovaném ve vašem systému Windows. Tímto způsobem by metoda ověřování 0Auth (vyžadující okno s výzvou) měla zabrat co nejméně času.

Po této počáteční výzvě byste měli zůstat automaticky přihlášeni.

6: Nainstalujte CMake

CMake 3.21 nebo novější je vyžadován pro části procesu instalace Musubi. CMake je architektura pro křížové vývojáře, schopná orchestrace různých kompilátorů a kompilace softwaru ze zdrojového kódu.

Stáhněte si jej z:

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

Spusťte instalační program:

Ujistěte se, že je Add Cmake to the PATH environment variable zaškrtnutý.

Klikněte na Next.

Zadejte a potvrďte tento příkaz v okně příkazového řádku Windows:

cmake --version

Pokud CMake nainstaloval úspěšně, mělo by se zobrazit něco jako:

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

7: Nainstalujte Python 3.10

Pythonový interpret je centrální pro tento projekt. Stáhněte si verzi 3.10 (nejlepší kompromis mezi různými požadavky balíčků Musubi) z:

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

Spusťte stažený instalační program a ponechte výchozí nastavení:

Na konci instalačního procesu klikněte na Disable path length limit (vyžaduje potvrzení UAC správcem):

V okně příkazového řádku Windows zadejte a potvrďte:

python --version

To by mělo vést k Python 3.10.0

Zkontrolujte cesty

Klonování a instalace rámců Musubi, stejně jako jeho normální provoz po instalaci, vyžaduje, aby jeho komponenty znaly cestu k několika důležitým externím komponentám ve Windows, zejména CUDA.

Proto musíme otevřít cestu prostředí a zkontrolovat, zda jsou všechny požadavky tam.

Rychlý způsob, jak se dostat k ovládacím prvkům pro prostředí Windows, je zadat Edit the system environment variables do vyhledávacího pole Windows.

Kliknutím na tuto možnost se otevře System Properties ovládací panel. V pravém dolním rohu System Properties klikněte na tlačítko Environment Variables a otevře se okno Environment Variables. V panelu System Variables v dolní polovině tohoto okna přetáhněte šířku tohoto okna, abyste viděli celou cestu proměnných:

Zde jsou důležité položky:

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

Většinou by měly být správné cesty již přítomny.

Přidejte jakékoli chybějící cesty kliknutím na New v levé části okna Edit environment variable a vložením správné cesty:

Nepoužívejte pouze kopírování a vkládání z výše uvedených cest; zkontrolujte, zda každá ekvivalentní cesta existuje ve vaší vlastní instalaci Windows.

Po tomto restartujte počítač.

Instalace Musubi

Aktualizujte PIP

Používání nejnovější verze instalačního programu PIP může usnadnit některé fáze instalace. V okně příkazového řádku Windows s oprávněním správce (viz Elevation níže) zadejte a potvrďte:

pip install --upgrade pip

Elevation

Některé příkazy mohou vyžadovat zvýšená oprávnění (tj. musí být spuštěny jako správce). Pokud obdržíte chybové zprávy o oprávněních v následujících fázích, zavřete okno příkazového řádku a znovu otevřete jej v režimu správce tak, že do vyhledávacího pole Windows zadáte CMD, kliknete pravým tlačítkem myši na Command Prompt a zvolíte Run as administrator:

Pro následující fáze budeme používat Windows Powershell místo okna příkazového řádku Windows. Můžete jej najít zadáním Powershell do vyhledávacího pole Windows a (pokud je to nutné) kliknutím pravým tlačítkem myši na něj a zvolením Run as administrator:

Nainstalujte Torch

V Powershellu zadejte a potvrďte:

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

Buďte trpěliví, zatímco se instalují mnoho balíčků.

Když je instalace dokončena, můžete ověřit instalaci PyTorch s podporou GPU zadáním a potvrzením:

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

To by mělo vést k True

Nainstalujte Triton pro Windows

Další instalace komponenty Triton for Windows. V Powershellu zadejte (na jeden řádek):

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

(Instalační program triton-3.1.0-cp310-cp310-win_amd64.whl funguje pro procesory Intel i AMD, pokud je architektura 64bitová a prostředí odpovídá verzi Pythonu)

Po spuštění by to mělo vést k:

Successfully installed triton-3.1.0

Můžeme zkontrolovat, zda Triton funguje, zadáním a potvrzením:

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

To by mělo vést k:

Triton is working

Chcete-li zkontrolovat, zda je Triton podporován GPU, zadejte a potvrďte:

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

To by mělo vést k True:

Vytvořte virtuální prostředí pro Musubi

Od této chvíle budeme instalovat jakýkoli další software do Python virtuálního prostředí (nebo venv). To znamená, že vše, co budete muset udělat pro odinstalaci následujících softwarů, je přesunout složku instalace venv do koše.

Je čas vytvořit složku instalace: vytvořte složku pojmenovanou Musubi na vašem desktopu. Následující příklady předpokládají, že tato složka existuje: C:\Users\[Your Profile Name]\Desktop\Musubi\.

V Powershellu navigujte do této složky zadáním:

cd C:\Users\[Your Profile Name]\Desktop\Musubi

Chceme, aby virtuální prostředí mělo přístup k tomu, co jsme již nainstalovali (zejména Triton), takže budeme používat --system-site-packages příznak. Zadejte:

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

Čekejte, než bude vytvořeno virtuální prostředí, a poté aktivujte jej zadáním:

.\musubi\Scripts\activate

Od této chvíle můžete poznat, že jste ve virtuálním prostředí, podle toho, že se na začátku všech vašich příkazů objeví (musubi).

Naklonujte repozitář

Navigujte do nově vytvořené musubi složky (která je uvnitř Musubi složky na vašem desktopu):

cd musubi

Teď, když jste na správném místě, zadejte následující příkaz:

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

Čekejte, než bude naklonování dokončeno (nezabere to dlouho).

Instalujte požadavky

Navigujte do instalační složky:

cd musubi-tuner

Zadejte:

pip install -r requirements.txt

Čekejte, než budou dokončeny mnoho instalací (to bude trvat déle).

Automatizace přístupu k Hunyuan Video Venv

Chcete-li snadno aktivovat a získat přístup k novému venv pro budoucí relace, vložte následující do Poznámkového bloku a uložte jej se jménem activate.bat, uložte jej s možností All files (viz obrázek níže):

@echo off

call C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\Scripts\activate

cd C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner

cmd

(Zaměňte [Your Profile Name] se skutečným jménem vašeho profilu Windows)

To nezáleží na umístění, kam soubor uložíte.

Od této chvíle můžete dvojkliknout na activate.bat a okamžitě začít pracovat.

Použití Musubi Tuner

Stažení modelů

Proces trénování Hunyuan Video LoRA vyžaduje stažení alespoň sedmi modelů, aby podpořil všechny možné optimalizační možnosti pro předkompilaci a trénink modelu Hunyuan video LoRA. Tyto modely dohromady váží více než 60 GB.

Aktuální pokyny pro stažení najdete na https://github.com/kohya-ss/musubi-tuner?tab=readme-ov-file#model-download

Však tyto jsou pokyny pro stažení v době psaní:

clip_l.safetensors, llava_llama3_fp16.safetensors a llava_llama3_fp8.safetensors lze stáhnout z:

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 a mp_rank_00_model_states_fp8_map.pt lze stáhnout z:

https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/transformers

pytorch_model.pt lze stáhnout z:

https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/vae

Ačkoli můžete umístit je do libovolné složky, kterou si zvolíte, pro konzistenci s pozdějšími skripty je nejlépe umístit je do:

C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\models\

To je konzistentní s adresářovou strukturou před tímto bodem. Nezaměňujte [Your Profile Name] se skutečným jménem vašeho profilu Windows.

Příprava dat

Ignorováním komunitní kontroverze na tomto bodě je spravedlivé říci, že budete potřebovat někde mezi 10-100 fotografiemi pro trénovací datovou sadu pro váš Hunyuan LoRA. Velmi dobré výsledky lze získat i s 15 obrázky, pokud jsou obrázky vyvážené a dobré kvality.

Hunyuan LoRA lze trénovat jak na obrázcích, tak na velmi krátkých a nízko rozlišených videoklipech, nebo dokonce na směsi obou – i když použití videoklipů jako trénovací data je náročné, i pro 24GB kartu.

Však video klipy jsou skutečně užitečné pouze v případě, že vaše postava se pohybuje neobvyklým způsobem, o kterém Hunyuan Video základnímu modelu nemusí vědět, nebo nebude schopen jej uhodnout.

Příklady zahrnují Rogera Rabbita, xenomorf, The Mask, Spider-Mana nebo jiné osobnosti, které mají jedinečné charakteristické pohyby.

Jelikož Hunyuan Video již ví, jak se běžní muži a ženy pohybují, video klipy nejsou nutné pro získání přesvědčivého Hunyuan Video LoRA lidského typu postavy. Proto budeme používat statické obrázky.

Příprava obrázků

Seznam

Verze TLDR:

Je nejlepší použít obrázky, které jsou všechny stejné velikosti pro vaši datovou sadu, nebo použít poměr 50/50 mezi dvěma různými velikostmi, tj. 10 obrázků, které jsou 512x768px a 10, které jsou 768x512px.

Trénink může probíhat dobře i v případě, že to neuděláte – Hunyuan Video LoRAs mohou být překvapivě tolerantní.

Dlouhá verze

Jako u Kohya-ss LoRAs pro statické generativní systémy, jako je Stable Diffusion, bucketing se používá k distribuci zátěže napříč obrázky různých velikostí, což umožňuje použití větších obrázků bez způsobení chyb paměti během tréninku (tj. bucketing ‘rozděluje’ obrázky na části, které může GPU zpracovat, zatímco zachovává sémantickou integritu celého obrázku).

Pro každou velikost obrázku, kterou zahrnete do trénovací datové sady (tj. 512x768px), bude vytvořen bucket nebo ‘podúkol’ pro tuto velikost. Pokud máte následující rozložení obrázků, tak se bucket pozornost stává nerovnoměrně rozloženou a riskujete, že některé fotografie budou během tréninku brány vážněji než ostatní:

2x 512x768px obrázky
7x 768x512px obrázky
1x 1000x600px obrázek
3x 400x800px obrázky

Můžeme vidět, že bucket pozornost je rozdělena nerovnoměrně mezi tyto obrázky:

Proto buď držte jeden formát velikosti, nebo se snažte udržet rozložení různých velikostí relativně rovnoměrné.

V každém případě se vyhněte velmi velkým obrázkům, protože to pravděpodobně zpomalí trénink, bez významného přínosu.

Pro jednoduchost jsem použil 512x768px pro všechny fotografie ve své datové sadě.

Prohlášení: Model (osoba) použitý v datové sadě mi dal plné povolení k použití těchto obrázků pro tento účel a schválil všechny výstupy AI zobrazené v tomto článku.

Má datová sada se skládá z 40 obrázků ve formátu PNG (i když je formát JPG také v pořádku). Mé obrázky byly uloženy v C:\Users\Martin\Desktop\DATASETS_HUNYUAN\examplewoman

Měli byste vytvořit cache složku uvnitř trénovací obrázkové složky:

Teď vytvořme speciální soubor, který bude konfigurovat trénink.

TOML soubory

Procesy trénování a předkompilace Hunyuan Video LoRAs získávají cesty k souborům z plochého textu s .toml rozšířením.

Pro můj test je TOML umístěn v C:\Users\Martin\Desktop\DATASETS_HUNYUAN\training.toml

Obsah mého trénovacího TOML vypadá takto:

[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

(Dvojitá zpětná lomítka pro adresáře obrázků a adresáře cache nejsou vždy nutné, ale mohou pomoci zabránit chybám v případech, kdy je v cestě mezera. Trénoval jsem modely s .toml soubory, které používaly jednoduché vpřed a jednoduché zpětné lomítka)

Můžeme vidět v sekci resolution, že budou zvažovány dvě rozlišení – 512px a 768px. Můžete také nechat ho na 512, a stále získat dobré výsledky.

Příslušné popisky

Hunyuan Video je text+vidění základního modelu, takže budeme potřebovat popisné popisky pro tyto obrázky, které budou zvažovány během tréninku. Proces tréninku selže bez popisků.

Existuje množství open source popiskovacích systémů, které bychom mohli použít pro tuto úlohu, ale pojďme to udržet jednoduše a použít taggui systém. Ačkoli je uložen na GitHubu, a ačkoli stahuje některé velmi těžké hluboké učící modely při prvním spuštění, přichází ve formě jednoduchého spustitelného souboru Windows, který načte Python knihovny a přímé GUI.

Po spuštění Taggui použijte File > Load Directory pro navigaci do vaší datové sady obrázků a případně vložte token identifikátor (v tomto případě examplewoman), který bude přidán ke všem popiskům:

(Ujistěte se, že jste vypnuli Load in 4-bit, když Taggui poprvé otevřete – to by mohlo vyvolat chyby během popiskování)

Vyberte obrázek ve sloupci náhledu vlevo a stiskněte CTRL+A pro výběr všech obrázků. Poté stiskněte tlačítko Start Auto-Captioning vpravo:

Uvidíte Taggui stahovat modely v malém CLI v pravém sloupci, ale pouze pokud je to poprvé, co jste spustili popiskovací systém. Jinak uvidíte náhled popisků.

Nyní má každá fotografie odpovídající .txt popisek s popisem obsahu obrázku:

Můžete kliknout na Advanced Options v Taggui, aby jste zvýšili délku a styl popisků, ale to je mimo rozsah tohoto článku.

Vypněte Taggui a pojďme dál na…

Předkompilace latentních

Abyste se vyhnuli nadměrné zátěži GPU během tréninku, je nutné vytvořit dva typy předkompilovaných souborů – jeden pro reprezentaci latentního obrázku odvozeného z obrázků samotných a další pro hodnocení textového kódování vztahujícího se k obsahu popisků.

Chcete-li zjednodušit všechny tři procesy (2x cache + trénink), můžete použít interaktivní .BAT soubory, které vám budou klást otázky a provádět procesy, až budete mít poskytnuty potřebné informace.

Pro latentní předkompilaci zkopírujte následující text do Poznámkového bloku a uložte jej jako .BAT soubor (tj. pojmenujte jej latent-precache.bat), stejně jako dříve, zajistěte, aby typ souboru v rozevíracím menu Save As byl All Files (viz obrázek níže):

@echo off

REM Activate the virtual environment

call C:\Users\[Your Profile Name]\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\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\cache_latents.py --dataset_config %TOML_PATH% --vae C:\Users\[Your Profile Name]\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

(Zaměňte [Your Profile Name] se skutečným jménem vašeho profilu Windows)

Nyní můžete spustit .BAT soubor pro automatickou latentní cache:

Když vás .BAT soubor vyzve k odpovědím na různé otázky, vložte nebo zadejte cestu k vaší datové sadě, složce cache a souboru TOML.

Předkompilace textu

Vytvoříme druhý .BAT soubor, tentokrát pro předkompilaci textu.

@echo off

REM Activate the virtual environment

call C:\Users\[Your Profile Name]\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\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\cache_text_encoder_outputs.py --dataset_config %TOML_PATH% --text_encoder1 C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\models\llava_llama3_fp16.safetensors --text_encoder2 C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\models\clip_l.safetensors --batch_size 16

) else (

echo Operation canceled.

)

REM Keep the window open

pause

Zaměňte [Your Profile Name] se skutečným jménem vašeho profilu Windows a uložte jej jako text-cache.bat (nebo jakýkoli jiný název, který vám vyhovuje), stejně jako u předchozího .BAT souboru.

Spusťte tento nový .BAT soubor, postupujte podle pokynů a nezbytné textově kódované soubory se objeví ve cache složce:

Trénování Hunyuan Video Lora

Trénování skutečného LoRA bude trvat podstatně déle než tyto dvě přípravné procesy.

Ačkoli existuje mnoho dalších proměnných, o kterých bychom se mohli bát (jako je velikost dávky, opakování, epochy a zda použít plné nebo kvantizované modely, mezi jinými), budeme tyto úvahy zachovat pro jiný den a hlubší pohled na jemnosti LoRA tvorby.

Prozatím se snažme minimalizovat výběr trochu a trénujeme LoRA na ‘medián’ nastavení.

Vytvoříme třetí .BAT soubor, tentokrát pro spuštění tréninku. Zkopírujte následující do Poznámkového bloku a uložte jej jako .BAT soubor, stejně jako dříve, pojmenujte jej training.bat (nebo jakýkoli jiný název, který vám vyhovuje):

@echo off

REM Activate the virtual environment

call C:\Users\[Your Profile Name]\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\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\hv_train_network.py ^

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

--output_name %OUTPUT_NAME% ^

--vae C:/Users/[Your Profile Name]/Desktop/Musubi/musubi/musubi-tuner/models/pytorch_model.pt ^

--vae_chunk_size 32 ^

--vae_spatial_tile_sample_min_size 128 ^

--text_encoder1 C:/Users/[Your Profile Name]/Desktop/Musubi/musubi/musubi-tuner/models/llava_llama3_fp16.safetensors ^

--text_encoder2 C:/Users/[Your Profile Name]/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

Zaměňte [Your Profile Name] se skutečným jménem vašeho profilu Windows.

Ujistěte se, že existuje adresář C:\Users\[Your Profile Name]\Desktop\Musubi\Output Models\ a vytvořte jej, pokud neexistuje.

Tréninkové náhledy

Existuje velmi základní funkce tréninkového náhledu, která byla nedávno povolena pro Musubi trainer, která umožňuje modelu tréninku pozastavit a vygenerovat obrázky na základě promptů, které jste uložili. Tyto jsou uloženy v automaticky vytvořené složce pojmenované Sample, ve stejné složce, kde jsou uloženy trénované modely.

Chcete-li tuto funkci povolit, budete muset uložit alespoň jeden prompt do textového souboru. Tréninkový .BAT soubor vás bude vyzývat k zadání umístění tohoto souboru; proto můžete pojmenovat promptový soubor libovolným názvem a uložit jej kamkoli.

Zde jsou einige příklady promptů pro soubor, který bude generovat tři různé obrázky, když je vyžádán tréninkovým rutinou:

Jako můžete vidět na příkladu výše, můžete umístit příznaky na konec promptu, které ovlivní generované obrázky:

–w je šířka (výchozí hodnota je 256px, pokud není nastavena, podle dokumentace)
–h je výška (výchozí hodnota je 256px, pokud není nastavena)
–f je počet snímků. Pokud je nastaven na 1, je generován obrázek; více než jeden, je generován video.
–d je semínko. Pokud není nastaveno, je náhodné; ale měli byste jej nastavit, abyste viděli, jak se jeden prompt vyvíjí.
–s je počet kroků v generování, výchozí hodnota je 20.

Viz oficiální dokumentaci pro další příznaky.

Ačkoli tréninkové náhledy mohou rychle odhalit některé problémy, které by vás mohly vést k zrušení tréninku a opětovnému zvážení dat nebo nastavení, a tak šetřit čas, pamatujte, že každá další prompt zpomalí trénink trochu více.

Kromě toho, čím větší je šířka a výška tréninkového náhledového obrázku (jako je nastavení příznaků uvedených výše), tím více zpomalí trénink.

Spusťte tréninkový .BAT soubor.

Otázka #1 je ‘Enter the path to the dataset configuration. Vložte nebo zadejte správnou cestu k vašemu souboru TOML.

Otázka #2 je ‘Enter the number of epochs to train’. Tato proměnná je ovlivněna množstvím a kvalitou obrázků, stejně jako popisků a dalších faktorů. Obecně je nejlepší nastavit ji příliš vysoko než příliš nízko, protože můžete vždy zastavit trénink stisknutím Ctrl+C v tréninkovém okně, pokud se domníváte, že model dostatečně pokročil. Nastavte ji na 100 v první instanci a uvidíte, jak to půjde.

Otázka #3 je ‘Enter the output model name’. Pojmenujte svůj model! Nejlepší je držet název krátký a jednoduchý.

Otázka #4 je ‘Choose learning rate’, která výchozí hodnotou je 1e-3 (možnost 1). To je dobrý začátek, v závislosti na dalších zkušeností.

Otázka #5 je ‘How often (in steps) to save preview images. Pokud nastavíte tuto hodnotu příliš nízko, uvidíte málo pokroku mezi uloženými náhledy a zpomalí se trénink.

Otázka #6 je ‘What is the location of the text-prompt file for training previews?’. Vložte nebo zadejte cestu k vašemu textovému souboru promptů.

.BAT soubor pak zobrazí příkaz, který bude odeslán modelu Hunyuan, a zeptá se, zda chcete pokračovat, y/n.

Pokračujte a spusťte trénink:

Během této doby, pokud zkontrolujete sekci GPU v sekci Performance v okně Správce úloh Windows, uvidíte, že proces zabírá asi 16 GB VRAM.

Toto nemusí být náhodné číslo, protože tato je množství VRAM dostupné na mnoha grafických kartách NVIDIA, a upstream kód by mohl být optimalizován pro přizpůsobení úkolů 16 GB prospěch těch, kteří vlastní takové karty.

Rovněž je velmi snadné zvýšit tuto spotřebu, zadáním více exorbitantních příznaků příkazu tréninku.

Během tréninku uvidíte v pravém dolním rohu okna CMD číslo, které udává, kolik času uplynulo od začátku tréninku, a odhad celkového tréninkového času (který se bude značně lišit v závislosti na příznacích, počtu trénovacích obrázků, počtu tréninkových náhledových obrázků a dalších faktorech).

Typická doba tréninku je kolem 3-4 hodin na mediálních nastaveních, v závislosti na dostupném hardwaru, počtu obrázků, nastavení příznaků a dalších faktorech.

Použití vašich trénovaných modelů LoRA v Hunyuan Video

Výběr kontrolních bodů

Když je trénink dokončen, budete mít kontrolní bod pro každou epochu tréninku.

Tato frekvence uložení může být změněna uživatelem, aby se uložily častěji nebo méně často, podle potřeby, úpravou --save_every_n_epochs [N] čísla v tréninkovém .BAT souboru. Pokud jste přidali nízkou hodnotu pro uložení kroků, když nastavovali trénink s .BAT souborem, bude zde velký počet uložených kontrolních bodů.

Který kontrolní bod zvolit?

Jak je zmíněno dříve, nejraněji vyškolené modely budou nejflexibilnější, zatímco pozdější kontrolní body mohou nabídnout nejvíce detailů. Jediný způsob, jak to otestovat, je spustit některé LoRAs a vygenerovat několik videí. Tímto způsobem můžete zjistit, které kontrolní body jsou nejproduktivnější a představují nejlepší rovnováhu mezi flexibilitou a věrností.

ComfyUI

Nejoblíbenějším (ačkoli ne jediným) prostředím pro použití Hunyuan Video LoRAs je v současné době ComfyUI, editor založený na uzlech s komplexním Gradio rozhraním, které běží ve vašem webovém prohlížeči.

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

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

Pokyny pro instalaci jsou přímé a dostupné na oficiálním repozitáři GitHub (další modely budou muset být staženy).

Převod modelů pro ComfyUI

Vaše trénované modely jsou uloženy ve formátu (diffusers), který není kompatibilní s většinou implementací ComfyUI. Musubi je schopen převést model do formátu kompatibilního s ComfyUI. Pojďme nastavit .BAT soubor pro implementaci tohoto převodu.

Před spuštěním tohoto .BAT souboru vytvořte složku C:\Users\[Your Profile Name]\Desktop\Musubi\CONVERTED\, kterou skript očekává.

@echo off

REM Activate the virtual environment

call C:\Users\[Your Profile Name]\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\[Your Profile Name]\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\[Your Profile Name]\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

Zaměňte [Your Profile Name] se skutečným jménem vašeho profilu Windows.

Uložte skript jako ‘All files’ z Poznámkového bloku, pojmenujte jej convert.bat (nebo jakýkoli jiný název, který vám vyhovuje).

Po uložení můžete dvojkliknout na nový .BAT soubor, který vás vyzve k zadání umístění souboru, který chcete převést.

Vložte nebo zadejte cestu k trénovanému souboru, který chcete převést, klikněte na y a stiskněte enter.

Po uložení převěděného LoRA do složky CONVERTED skript vás vyzve, zda chcete převést další soubor. Pokud chcete otestovat více kontrolních bodů v ComfyUI, převěďte výběr modelů.

Když jste převěděli dostatek kontrolních bodů, zavřete okno .BAT příkazu.

Nyní můžete zkopírovat své převěděné modely do složky models\loras ve vaší instalaci ComfyUI.

Typicky je správná cesta něco jako:

C:\Users\[Your Profile Name]\Desktop\ComfyUI\models\loras\

Vytvoření Hunyuan Video LoRAs v ComfyUI

Ačkoli node-based workflow ComfyUI vypadá složitě zpočátku, nastavení jiných více expertních uživatelů lze načíst tak, že se do okna ComfyUI přetáhne obrázek (vytvořený nastavením ComfyUI jiného uživatele). Workflow lze také exportovat jako soubory JSON, které lze importovat ručně nebo přetažením do okna ComfyUI.

Některé naimportované workflow mohou mít závislosti, které neexistují ve vaší instalaci. Proto nainstalujte ComfyUI-Manager, který může automaticky stáhnout chybějící moduly.

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

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

Chcete-li načíst jeden z workflow, který byl použit pro generování videí z modelů v tomto tutoriálu, stáhněte tento soubor JSON a přetáhněte jej do okna ComfyUI (i když existují lepší příklady workflow dostupné v různých komunitách Reddit a Discord, které přijaly Hunyuan Video, a můj vlastní je upraven z jednoho z nich).

Tohoto není místo pro prodloužený tutoriál o používání ComfyUI, ale stojí za zmínku několik klíčových parametrů, které ovlivní váš výstup, pokud stáhnete a použijete JSON rozložení, na které odkazuji výše.

1) Šířka a výška

Čím větší je váš obrázek, tím déle bude generace trvat, a tím vyšší je riziko chyby nedostatku paměti (OOM).

2) Délka

Tato číselná hodnota představuje počet snímků. Kolik sekund to přidá, závisí na fps (nastaveném na 30fps v tomto rozložení). Můžete převést sekundy na snímky na základě fps na Omnicalculator.

3) Velikost dávky

Čím vyšší nastavíte velikost dávky, tím rychlejší může být výsledek, ale tím větší je zátěž VRAM. Nastavte ji příliš vysoko a můžete dostat chybu OOM.

4) Ovládání po generování

Toto ovládá náhodné semínko. Možnosti pro tento pod-uzel jsou pevné, inkrement, dekrement a náhodné. Pokud ji ponecháte na pevné a nezměníte textový prompt, budete vždy dostávat stejný obrázek. Pokud změníte textový prompt, obrázek se změní do jisté míry. Nastavení inkrement a dekrement vám umožní prozkoumat blízká semínka, zatímco náhodné vám dá zcela novou interpretaci promptu.

5) Název LoRA

Budete muset vybrat svůj nainstalovaný model zde, před tím, než se pokusíte vygenerovat.

6) Token

Pokud jste trénovali svůj model, aby spustit koncept s tokenem (jako example-person), vložte ten spouštěcí slovo do svého promptu.

7) Kroky

To představuje, kolik kroků systém bude aplikovat na difúzní proces. Vyšší kroky mohou získat lepší detaily, ale existuje strop pro to, jak efektivní je tento přístup, a ten práh může být obtížné najít. Obvyklý rozsah kroků je kolem 20-30.

8) Velikost dlaždice

To definuje, kolik informací je zpracováno najednou během generace. Je nastaveno na 256 výchozím způsobem. Zvýšení jej může urychlit generaci, ale zvýšení jej příliš vysoko může vést k frustrující chybě OOM, protože se objeví na konci dlouhého procesu.

9) Časové překrytí

Generování Hunyuan Video osob může vést k ‘ghostingu’ nebo neuvěřitelnému pohybu, pokud je toto nastaveno příliš nízko. Obecně se soudí, že by mělo být nastaveno na vyšší hodnotu, než je počet snímků, aby se vytvořil lepší pohyb.

Závěr

Ačkoli další prozkoumání používání ComfyUI je mimo rozsah tohoto článku, komunitní zkušenosti na Reddit a Discords mohou usnadnit proces učení, a existuje několik online průvodců, které představují základy.

 

Poprvé zveřejněno ve čtvrtek, 23. ledna 2025

Spisovatel o strojovém učení, doménový specialista na syntézu lidského obrazu. Bývalý vedoucí výzkumného obsahu ve společnosti Metaphysic.ai.
Osobní stránky: martinanderson.ai