A diffúziós modellek az elmúlt két év legizgalmasabb nyílt forráskódú kiadásait hajtották – gondoljunk a FLUX.1-dev-re szöveg-képhez, vagy a Wan 2.1-re és a HunyuanVideo-ra szöveg-videóhoz. A 🤗 Diffusers könyvtár lett e modellek otthona, egységes felületet biztosítva a kutatóknak és fejlesztőknek inferenciához, adaptációhoz és pipeline-összeállításhoz.
A modellek betanítása és finomhangolása is egyre népszerűbb, ami olyan eszközöket igényel, amelyek memóriahatékony particionálást, latens gyorsítótárazást, többfelbontású bucketinget és olyan konfigurációkat kezelnek, amelyek zökkenőmentesen skálázódnak egyetlen GPU-tól több százig.
Itt lép színre az NVIDIA NeMo Automodel nyílt forráskódú könyvtár. Ma az NVIDIA és a Hugging Face együttműködését emeljük ki, amely gyártási szintű, elosztott diffúziós betanítást hoz bármely Diffusers-formátumú modellhez a Hugging Face Hub-on – nincs szükség ellenőrzőpont-átalakításra vagy modell-újraírásra új modellek esetén. Az integrációt a Diffusers betanítási útmutató dokumentálja, és teljesen nyílt forráskódú az Apache 2.0 licenc alatt.
Mi az a NeMo Automodel?
A NeMo Automodel egy nyílt forráskódú PyTorch DTensor-natív betanítási könyvtár, az NVIDIA NeMo keretrendszer része. Két olyan tervezési elv köré épül, amelyek fontosak a Diffusers ökoszisztéma számára:
Hugging Face natív. Mutasson a
pretrained_model_name_or_pathbármely Diffusers modellazonosítóra a Hub-on, és kezdje el a betanítást. A NeMo Automodel a Diffusers modellosztályokat (pl.WanTransformer3DModel) használja a betöltéshez, és a Diffuses pipeline-okat (WanPipeline) a generáláshoz. Az ellenőrzőpontok tisztán visszakerülnek a Diffusers ökoszisztémába.Egy program, bármilyen méret. A receptek és betanítási szkriptek könnyen módosíthatók bármilyen méretű betanításhoz. A párhuzamosítás konfigurációs választás, nem kód-újraírás – váltson FSDP2, tenzor párhuzamos, szakértő párhuzamos, kontextus párhuzamos és pipeline párhuzamos között konfigurációk deklarálásával, nem modellek újraírásával.
Az AutoModel jelenleg csak flow-matching modelleket támogat. A motorháztető alatt flow matching-et használ betanítási célfüggvényként, latens-térbeli betanítással (előre kódolt VAE kimenetek segítségével) és többfelbontású bucketed adatbetöltéssel az átviteli sebesség gyorsítására.
Támogatott diffúziós modellek
A NeMo Automodel integráció készenléti finomhangolási receptekkel érkezik az alábbi nyílt diffúziós modellekhez. A lista a jelenlegi examples/diffusion/finetune mappában található recepteket tükrözi.
ModellHugging Face azonosítóFeladatParaméterekLoRA receptWan 2.1 T2V 1.3B / 14BWan-AI/Wan2.1-T2V-1.3B-Diffusers / Wan-AI/Wan2.1-T2V-14B-DiffusersSzöveg-videó1.3B (elfér egyetlen 40 GB-os A100-on) / 14BIgenWan 2.2 T2V A14BWan-AI/Wan2.2-T2V-A14B-DiffusersSzöveg-videó27B összesen (MoE), 14B aktív lépésenkéntNemFLUX.1-devblack-forest-labs/FLUX.1-devSzöveg-kép12BIgenFLUX.2-devblack-forest-labs/FLUX.2-devSzöveg-kép32BIgenHunyuanVideo 1.5hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-720p_t2vSzöveg-videó13BIgenQwen-ImageQwen/Qwen-ImageSzöveg-kép20B (MMDiT)Igen
Mit tesz lehetővé ez az együttműködés
A Diffusers felhasználók számára a gyakorlati előnyök néhány konkrét képességre bonthatók.
Nincs ellenőrzőpont-átalakítás. Az előre betanított súlyok a Hub-ról dobozból működnek. Nincs külön „betanítási formátum”, amire át kellene alakítani, majd vissza. A finomhangolt ellenőrzőpont közvetlenül betölthető egy DiffusionPipeline-ba inferenciához, vagy vissza a Hub-ra megosztáshoz. A downstream eszközök – kvantálás, kompiláció, LoRA adapterek, egyedi mintavételezők – továbbra is működnek.
Gyors út az új modelltámogatáshoz. Amikor egy új diffúziós modell megjelenik a Diffusers-ben, a NeMo Automodel-ben való engedélyezése egy kis, zárt kódkiegészítést igényel – egy adat-előfeldolgozó kezelőt és egy modell adaptert –, nem pedig egy teljes egyedi betanítási szkriptet. A receptverem többi része (FSDP2, bucketed adatbetöltés, ellenőrzőpont-készítés, generálás) változatlan marad, és ugyanaz a YAML-vezérelt munkafolyamat alkalmazható.
Teljes és paraméter-hatékony finomhangolás. Mind a teljes finomhangolás, mind a LoRA-stílusú PEFT támogatott, így választhat a maximális minőség (teljes FT nagy klaszteren) és a maximális hatékonyság (LoRA egyetlen csomóponton) között. Ugyanaz a receptszerkezet kezeli mindkettőt.
Skálázható betanítás, amely túlmutat a beépített szkriptek képességein. A NeMo Automodel olyan particionálási sémákat ad hozzá, mint az FSDP2, tenzor, kontextus és pipeline párhuzamosság, többcsomópontos orkesztráció (jelenleg SLURM, Kubernetes jön), és többfelbontású bucketing. Ezek a képességek teszik lehetővé nagyobb modellek, mint a FLUX.1-dev (12B) és a HunyuanVideo (13B) betanítását.
Pillantás a finomhangolási munkafolyamatra
Ebben a részben végigvesszük a tipikus munkafolyamatot bármely támogatott modell finomhangolásához. Az Automodel telepítésének ajánlott módja a NeMo Automodel Docker konténer (nvcr.io/nvidia/nemo-automodel:26.06), amely előre telepített PyTorch, TransformerEngine és más CUDA-kompilált függőségekkel érkezik. Alternatívaként telepíthető a pip3 install nemo-automodel paranccsal vagy forrásból (pip3 install git+https://github.com/NVIDIA-NeMo/Automodel.git); a telepítési útmutatóban minden lehetőség megtalálható.
Ez az útmutató végigvezeti a FLUX.1-dev teljes transzformátoros finomhangolását a 78 lapos Rider–Waite tarot adathalmazon, majd a kapott ellenőrzőpontból történő generálást. Felhasználja a bejelentkezett YAML konfigurációkat, és a futtatásspecifikus beállításokat parancssori felülírásokként alkalmazza, így nincs szükség új konfigurációs fájlokra.
1. Az adathalmaz előkódolása
A diffúziós recept gyorsítótárazott VAE latenseket és szövegbeágyazásokat használ a forrásképek minden betanítási lépésben történő kódolása helyett. Streamelje a 78 Rider–Waite képet közvetlenül a Hugging Face-ről, és ossza el az előfeldolgozást az összes látható GPU között:
uv run --locked --no-default-groups \
--extra diffusion \
--extra diffusion-media \
python -m tools.diffusion.preprocessing_multiprocess image \
--dataset_name multimodalart/1920-raider-waite-tarot-public-domain \
--dataset_media_column image \
--dataset_caption_column caption \
--dataset_streaming \
--max_images 78 \
--output_dir /cache/flux_tarot \
--processor flux \
--model_name black-forest-labs/FLUX.1-dev \
--max_pixels 245760
A feliratok már tartalmazzák a trtcrd trigger tokent. Ezzel a pixelköltségvetéssel és az adathalmaz portré képarányával az előfeldolgozás a mintákat a bemutató futtatás által használt 384×640-es bucketbe sorolja.
Képbetanítás esetén az előfeldolgozás .pt gyorsítótár fájlokat és particionált metaadatokat hoz létre:
/cache/flux_tarot/
├── 384x640/
│ ├── <hash1>.pt
│ └── ...
├── metadata_shard_0000.json
├── metadata.json
└── _hf_dataset/
└── images/
2. Betanítás indítása a meglévő FLUX YAML-lel
Használja közvetlenül a examples/diffusion/finetune/flux_t2i_flow.yaml fájlt. A YAML már kiválasztja a FLUX.1-dev-et, a teljes transzformátor finomhangolást, a FLUX flow-matching adaptert, a 32-es effektív batch méretet és a nyolcutas FSDP2-t.
Adja meg a tarot-specifikus útvonalakat és beállításokat parancssori felülírásokként:
uv run --locked --no-default-groups --extra diffusion \
torchrun --nproc-per-node=8 \
examples/diffusion/finetune/finetune.py \
-c examples/diffusion/finetune/flux_t2i_flow.yaml \
--model.transformer_engine_fp8 false \
--data.dataloader.cache_dir /cache/flux_tarot \
--data.dataloader.base_resolution '[384,640]' \
--lr_scheduler.lr_decay_style constant \
--lr_scheduler.lr_warmup_steps 20 \
--step_scheduler.max_steps 200 \
--step_scheduler.ckpt_every_steps 50 \
--checkpoint.checkpoint_dir /tmp/flux_tarot/checkpoints/full \
--checkpoint.save_consolidated true \
--seed 2026
A futtatás ellenőrzőpontokat hoz létre a 50., 100., 150. és 200. lépéseknél. A végső ellenőrzőpont címkéje epoch_66_step_199; a címke nullától kezdődő, bár a befejezett 200. optimalizálási lépést képviseli.
3. Generálás a finomhangolt ellenőrzőpontból
Használja a meglévő FLUX generálási YAML-t, és állítsa a model.checkpoint-ot a teljes betanítási ellenőrzőpontra:
uv run --locked --no-default-groups --extra diffusion \
python examples/diffusion/generate/generate.py \
-c examples/diffusion/generate/configs/generate_flux.yaml \
--model.checkpoint /tmp/flux_tarot/checkpoints/full/epoch_66_step_199 \
--inference.height 640 \
--inference.width 384 \
--inference.prompts '["a trtcrd of an astronaut tending a rose garden on Mars, \"the gardener\""]' \
--output.output_dir /tmp/flux_tarot/generations/full/step_200 \
--seed 2026
Adja meg a trtcrd-t a megtanult tarot stílus előhívásához. Kontroll összehasonlításként tartsa rögzítve a magot és a jelenetet, de hagyja ki a triggert:
uv run --locked --no-default-groups --extra diffusion \
python examples/diffusion/generate/generate.py \
-c examples/diffusion/generate/configs/generate_flux.yaml \
--model.checkpoint /tmp/flux_tarot/checkpoints/full/epoch_66_step_199 \
--inference.height 640 \
--inference.width 384 \
--inference.prompts '["an astronaut tending a rose garden on Mars, \"the gardener\""]' \
--output.output_dir /tmp/flux_tarot/generations/control \
--seed 2026
Eredmények
A 200. lépésnél a triggerelt űrhajós promptok megtartják a kért tartalmat, miközben krémszínű, piros és fekete vintage palettát, vastag tintakontúrokat, lapos színmezőket, öreg papír tónusokat és allegorikus kártyakompozíciót kapnak. A nem triggerelt űrhajós fotorealisztikus marad, ami azt mutatja, hogy a tanult hatás lényegében a trtcrd-hoz kapcsolódik, nem pedig az alapmodell globális helyettesítése.
Prompt (mag)AlapvonalFinomhangolt (200. lépés)Űrhajós rózsakertet gondoz a Marson (mag 2026)
4. Teljesítmény
Minden mérést egy csomóponton végeztünk 8× NVIDIA H100 80 GB GPU-val. Az eredmények átlagok ± minta szórása három steady-state 10 lépéses ablak felett.
Szöveg-kép – 512×512
ModellBetanításPárhuzamosításGBS / LBSLépésidőKépek/sKépek/s/GPUCSúcs allokált/GPUFLUX.1-devTeljesFSDP232 / 40.902 ± 0.039 s35.51 ± 1.554.44 ± 0.1963.88 GiBFLUX.1-devLoRA r64DDP48 / 60.894 ± 0.008 s53.73 ± 0.486.72 ± 0.0667.43 GiBQwen-ImageTeljesFSDP240 / 50.974 ± 0.075 s41.21 ± 3.065.15 ± 0.3853.55 GiBQwen-ImageLoRA r64DDP24 / 30.515 ± 0.006 s46.63 ± 0.545.83 ± 0.0766.33 GiB
Szöveg-videó – 512×512×49 képkocka
Minden minta egy 49 képkockás videoklip.
ModellBetanításGBS / LBSAktivációs ellenőrzőpontLépésidőKlip/sKlip/s/GPUCSúcs allokált/GPUWan 2.1 1.3BTeljes8 / 1Ki0.942 ± 0.038 s8.50 ± 0.351.06 ± 0.046.09 GiBWan 2.1 14BTeljes8 / 1Be3.798 ± 0.017 s2.107 ± 0.0060.263 ± 0.00633.35 GiBWan 2.1 14BLoRA r6416 / 2Be7.585 ± 0.014 s2.110 ± 0.0000.263 ± 0.00024.07 GiBWan 2.2 A14B, magas zajTeljes8 / 1Be4.628 ± 0.031 s1.730 ± 0.0100.217 ± 0.00623.57 GiBHunyuanVideo 1.5Teljes8 / 1Be5.926 ± 0.046 s1.350 ± 0.0100.170 ± 0.00015.90 GiBHunyuanVideo 1.5LoRA r648 / 1Be5.575 ± 0.006 s1.433 ± 0.0060.180 ± 0.00010.58 GiB
Mérési részletek
Hardver: 8× H100 80GB HBM3, teljes NVLink kapcsolat.
Kép adathalmaz:
lambda/naruto-blip-captions, 256 gyorsítótárazott minta.Videó adathalmaz:
svjack/Lelouch_Vi_Britannia_FramePack_First_Last_Frame_Video_Captioned, 112 gyorsítótárazott minta.Teljes batch-ek kényszerítve a
drop_last=truebeállítással.Ellenőrzőpont írás letiltva.
A lépésidő tartalmazza az adatbetöltést, előre, hátra, gradiens vágást, optimalizálót és ütemezőt.
A memória a PyTorch CUDA allokátor csúcs használata, nem a teljes NVML eszközmemória.
Egyéb finomhangolt/LoRA példák
A finomhangolás és LoRA eredményei bemutatják a NeMo Automodel erejét a doménspecializációban. Például a Wan 2.1 modell finomhangolása egy Ghibli videó adathalmazon sikeresen adaptálta a kimeneti stílust, amit egy virág megjelenésének észrevehető változása mutat az alapvonalhoz képest.
Alapvonal:
Finomhangolva Ghibli videókon:
Megfigyeltük a LoRA használatának jellegzetes hatását is, ahol az adapter alkalmazása a Wan 2.1-re azt eredményezte, hogy a videó felvette a jellegzetes Ghibli stílust, különösen a karakterek szemének kiemelésében látható.
LoRA nélkül:
LoRA-val:
Ezek a példák, beleértve a FLUX.2-t is, megerősítik, hogy a felhasználók elérhetik a maximális minőséget teljes finomhangolással és a maximális hatékonyságot LoRA-stílusú PEFT-tel, a kimenetet specifikus stilisztikai doménekhez igazítva.
Próbálja ki még ma
Tudjon meg többet az integrációról és találjon további finomhangolási példákat a NeMo Automodel dokumentációjában
Következik: Pythonic recept API-k
A YAML erős választás a reprodukálható konfigurációhoz, különösen olyan csapatok számára, amelyek olyan fájlokat szeretnének, amelyeket be lehet jelentkeztetni, át lehet nézni és újra lehet használni, de sok csapatnak programozási felületre is szüksége van.
Egy közelgő NeMo Automodel kiadásban tervezzük, hogy a diffúziós recepteket egy teljesen típusos Pythonic API-n keresztül is elérhetővé tesszük. A felhasználók ugyanazokat a modell-, adat-, optimalizáló-, PEFT/LoRA-, párhuzamosítási, ellenőrzőpont- és generálási elemeket közvetlenül Pythonból állíthatják össze.
A Pythonic út célja, hogy a recepteket könnyebben használhatóvá tegye a meglévő betanítási kódból, notebookokból és kísérleti munkafolyamatokból, és egy első osztályú Pythonic felületet kínáljon a YAML gyorsindítási út mellett.













