Diffüzyon modelleri, son iki yılın en heyecan verici açık kaynak sürümlerine güç verdi — metinden görsele FLUX.1-dev veya metinden videoya Wan 2.1 ve HunyuanVideo gibi. 🤗 Diffusers kütüphanesi, bu modeller için başvurulan yer haline geldi ve araştırmacılara ve geliştiricilere çıkarım, uyarlama ve ardışık düzen oluşturma için tek ve tutarlı bir arayüz sunuyor.
Bu modellerin eğitimi ve ince ayarı da artıyor ve bu da bellek verimli parçalama, gizli önbellekleme, çok çözünürlüklü gruplama ve bir GPU'dan yüzlercesine sorunsuz ölçeklenen yapılandırmaları işleyen araçlar gerektiriyor.
İşte NVIDIA NeMo Automodel açık kaynak kütüphanesi devreye giriyor. Bugün, NVIDIA ve Hugging Face arasındaki, Hugging Face Hub'daki herhangi bir Diffusers formatındaki modele üretim düzeyinde, dağıtık difüzyon eğitimi getiren iş birliğine odaklanıyoruz — kontrol noktası dönüştürme veya yeni modeller için model yeniden yazma gerektirmez. Entegrasyon, Diffusers eğitim kılavuzunda belgelenmiştir ve Apache 2.0 altında tamamen açık kaynaktır.
NeMo Automodel Nedir?
NeMo Automodel, NVIDIA NeMo çerçevesinin bir parçası olan açık kaynaklı bir PyTorch DTensor yerel eğitim kütüphanesidir. Diffusers ekosistemi için önemli olan iki tasarım ilkesi etrafında inşa edilmiştir:
Hugging Face yerel.
pretrained_model_name_or_path'i Hub'daki herhangi bir Diffusers model kimliğine yönlendirin ve eğitime başlayın. NeMo Automodel, yükleme için Diffusers model sınıflarını (ör.WanTransformer3DModel) ve üretim için Diffusers ardışık düzenlerini (WanPipeline) kullanır. Kontrol noktaları, Diffusers ekosistemine temiz bir şekilde geri döner.Tek program, her ölçek. Tarifler ve eğitim komut dosyaları, herhangi bir ölçekte eğitime uyacak şekilde kolayca değiştirilebilir. Paralellik, bir kod yeniden yazma değil, bir yapılandırma seçeneğidir — modelleri yeniden yazmak yerine yapılandırmalar bildirerek FSDP2, tensör paralel, uzman paralel, bağlam paralel ve ardışık düzen paralel arasında geçiş yapın.
AutoModel şu anda yalnızca akış eşleme modellerini desteklemektedir. Dahili olarak, eğitim hedefi olarak akış eşlemeyi kullanır; gizli alan eğitimi (önceden kodlanmış VAE çıktıları aracılığıyla) ve verimi hızlandırmak için çok çözünürlüklü gruplanmış veri yükleme ile.
Desteklenen difüzyon modelleri
NeMo Automodel entegrasyonu, aşağıdaki açık difüzyon modelleri için kullanıma hazır ince ayar tarifleriyle birlikte gelir. Liste, şu anda examples/diffusion/finetune içindeki tarifleri yansıtmaktadır.
ModelHugging Face KimliğiGörevParametrelerLoRA tarifiWan 2.1 T2V 1.3B / 14BWan-AI/Wan2.1-T2V-1.3B-Diffusers / Wan-AI/Wan2.1-T2V-14B-DiffusersMetinden Videoya1.3B (tek bir 40GB A100'e sığar) / 14BEvetWan 2.2 T2V A14BWan-AI/Wan2.2-T2V-A14B-DiffusersMetinden VideoyaToplam 27B (MoE), adım başına 14B aktifHayırFLUX.1-devblack-forest-labs/FLUX.1-devMetinden Görsele12BEvetFLUX.2-devblack-forest-labs/FLUX.2-devMetinden Görsele32BEvetHunyuanVideo 1.5hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-720p_t2vMetinden Videoya13BEvetQwen-ImageQwen/Qwen-ImageMetinden Görsele20B (MMDiT)Evet
Bu iş birliği nelerin kapısını açıyor
Diffusers kullanıcıları için pratik kazanımlar birkaç somut yeteneğe ayrılıyor.
Kontrol noktası dönüştürme yok. Hub'daki önceden eğitilmiş ağırlıklar kutudan çıktığı gibi çalışır. Dönüştürülecek ve sonra geri dönüştürülecek ayrı bir "eğitim formatı" yoktur. İnce ayarlı kontrol noktanız, çıkarım için doğrudan bir DiffusionPipeline'a veya paylaşım için Hub'a yüklenir. Alt araçlar — niceleme, derleme, LoRA adaptörleri, özel örnekleyiciler — çalışmaya devam eder.
Yeni model desteğine hızlı yol. Diffusers'a yeni bir difüzyon modeli geldiğinde, NeMo Automodel'de etkinleştirmek, tam bir özel eğitim komut dosyası yerine küçük, sınırlı bir kod eklemesi (bir veri ön işleme işleyicisi ve bir model adaptörü) gerektirir. Tarif yığınının geri kalanı (FSDP2, gruplanmış veri yükleme, kontrol noktası oluşturma, üretim) değişmeden devreder ve aynı YAML odaklı iş akışı geçerlidir.
Tam ve parametre verimli ince ayar. Hem tam ince ayar hem de LoRA tarzı PEFT desteklenir, böylece maksimum kalite (büyük bir kümede tam FT) veya maksimum verimlilik (tek bir düğümde LoRA) arasında seçim yapabilirsiniz. Aynı tarif yapısı her ikisini de işler.
Yerleşik komut dosyalarının sunduğunun ötesine geçen ölçeklenebilir eğitim. NeMo Automodel, FSDP2, tensör, bağlam ve ardışık düzen paralellikleri gibi parçalama şemaları, çok düğümlü orkestrasyon (bugün SLURM, Kubernetes geliyor) ve çok çözünürlüklü gruplama ekler. Bu yetenekler, FLUX.1-dev (12B) ve HunyuanVideo (13B) gibi daha büyük modellerin eğitimini mümkün kılar.
İnce ayar iş akışına bir bakış
Bu bölümde, desteklenen modellerden herhangi birini ince ayar yapmak için tipik iş akışını adım adım inceliyoruz. Automodel'i kurmanın önerilen yolu, NeMo Automodel Docker konteyneridir (nvcr.io/nvidia/nemo-automodel:26.06), PyTorch, TransformerEngine ve diğer CUDA derlenmiş bağımlılıklarla birlikte gelir. Alternatif olarak, pip3 install nemo-automodel ile veya kaynaktan (pip3 install git+https://github.com/NVIDIA-NeMo/Automodel.git) kurun; tüm seçenekler için kurulum kılavuzuna bakın.
Bu kılavuz, FLUX.1-dev'in 78 kartlık Rider–Waite tarot veri seti üzerinde tam dönüştürücü ince ayarını ve ardından elde edilen kontrol noktasından üretim yapmayı anlatıyor. Kontrol edilmiş YAML yapılandırmalarını yeniden kullanır ve çalıştırmaya özel ayarları komut satırı geçersiz kılmaları olarak uygular, bu nedenle yeni yapılandırma dosyaları gerekmez.
1. Veri setini önceden kodlayın
Difüzyon tarifi, her eğitim adımında kaynak görüntüleri kodlamak yerine önbelleğe alınmış VAE gizli değişkenlerini ve metin yerleştirmelerini tüketir. 78 Rider–Waite görüntüsünü doğrudan Hugging Face'den akışla alın ve ön işlemeyi tüm görünür GPU'lar arasında dağıtın:
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
Altyazılar zaten trtcrd tetikleyici belirteci içeriyor. Bu piksel bütçesi ve veri setinin portre en boy oranıyla, ön işleme örnekleri vitrin çalıştırmasında kullanılan 384×640 demetine atar.
Görüntü eğitimi için ön işleme, .pt önbellek dosyaları ve parçalanmış meta veriler üretir:
/cache/flux_tarot/
├── 384x640/
│ ├── <hash1>.pt
│ └── ...
├── metadata_shard_0000.json
├── metadata.json
└── _hf_dataset/
└── images/
2. Mevcut FLUX YAML ile eğitimi başlatın
examples/diffusion/finetune/flux_t2i_flow.yaml dosyasını doğrudan kullanın. YAML zaten FLUX.1-dev, tam dönüştürücü ince ayarı, FLUX akış eşleme adaptörü, 32'lik etkili toplu iş boyutu ve sekiz yönlü FSDP2'yi seçer.
Tarota özgü yolları ve ayarları komut satırı geçersiz kılmaları olarak sağlayın:
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
Çalıştırma, 50, 100, 150 ve 200. adımlarda kontrol noktaları üretir. Son kontrol noktası epoch_66_step_199 olarak etiketlenmiştir; etiket sıfır tabanlıdır ancak tamamlanmış 200. optimize edici adımını temsil eder.
3. İnce ayarlı kontrol noktasından üretim yapın
Mevcut FLUX üretim YAML'ını kullanın ve model.checkpoint'i tam eğitim kontrol noktasına yönlendirin:
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
Öğrenilen tarot stilini çağırmak için trtcrd ekleyin. Bir kontrol karşılaştırması için, tohumu ve sahneyi sabit tutun ancak tetikleyiciyi atlayın:
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
Sonuçlar
200. adımda, tetiklenen astronot istemleri istenen içeriği korurken krem, kırmızı ve siyah vintage bir palet, ağır mürekkep konturları, düz renk alanları, eski kağıt tonları ve alegorik kart kompozisyonu kazanır. Tetiklenmemiş astronot fotoğrafik kalır, bu da öğrenilen etkinin temel modeli küresel olarak değiştirmekten ziyade büyük ölçüde trtcrd ile ilişkili olduğunu gösterir.
İstem (tohum)Temelİnce ayarlı (200. adım)Mars'ta bir gül bahçesiyle ilgilenen astronot (tohum 2026)
4. Performans
Tüm ölçümler, 8× NVIDIA H100 80GB GPU'lu bir düğümde toplanmıştır. Sonuçlar, üç kararlı durum 10 adımlı pencere üzerinden ortalama ± örnek standart sapmadır.
Metinden Görsele — 512×512
ModelEğitimParalellikGBS / LBSAdım süresiGörüntü/sGörüntü/s/GPUPik tahsis/GPUFLUX.1-devTamFSDP232 / 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-ImageTamFSDP240 / 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
Metinden Videoya — 512×512×49 kare
Her örnek, 49 karelik bir video klibidir.
ModelEğitimGBS / LBSAktivasyon kontrol noktasıAdım süresiKlipler/sKlipler/s/GPUPik tahsis/GPUWan 2.1 1.3BTam8 / 1Kapalı0.942 ± 0.038 s8.50 ± 0.351.06 ± 0.046.09 GiBWan 2.1 14BTam8 / 1Açık3.798 ± 0.017 s2.107 ± 0.0060.263 ± 0.00633.35 GiBWan 2.1 14BLoRA r6416 / 2Açık7.585 ± 0.014 s2.110 ± 0.0000.263 ± 0.00024.07 GiBWan 2.2 A14B, yüksek gürültüTam8 / 1Açık4.628 ± 0.031 s1.730 ± 0.0100.217 ± 0.00623.57 GiBHunyuanVideo 1.5Tam8 / 1Açık5.926 ± 0.046 s1.350 ± 0.0100.170 ± 0.00015.90 GiBHunyuanVideo 1.5LoRA r648 / 1Açık5.575 ± 0.006 s1.433 ± 0.0060.180 ± 0.00010.58 GiB
Ölçüm ayrıntıları
Donanım: 8× H100 80GB HBM3, tam NVLink bağlantılı.
Görüntü veri seti:
lambda/naruto-blip-captions, 256 önbelleğe alınmış örnek.Video veri seti:
svjack/Lelouch_Vi_Britannia_FramePack_First_Last_Frame_Video_Captioned, 112 önbelleğe alınmış örnek.Tam gruplar
drop_last=trueile zorunlu kılındı.Kontrol noktası yazmaları devre dışı bırakıldı.
Adım süresi, veri yükleme, ileri, geri, gradyan kırpma, optimize edici ve zamanlayıcı çalışmasını içerir.
Bellek, pik PyTorch CUDA ayırıcı kullanımıdır, toplam NVML cihaz belleği değil.
Diğer İnce Ayar/LoRA örnekleri
İnce ayar ve LoRA'dan elde edilen sonuçlar, NeMo Automodel'in alan uzmanlaşması için gücünü sergiliyor. Örneğin, Wan 2.1 modelinin bir Ghibli video veri setinde ince ayarı, çıktı stilini başarıyla uyarladı ve bir çiçeğin görünümünde temele kıyasla gözle görülür bir değişiklikle kanıtlandı.
Temel:
Ghibli videolarında ince ayarlı:
Ayrıca LoRA kullanmanın belirgin etkisini gözlemledik; adaptörü Wan 2.1'e uygulamak, videonun karakteristik bir Ghibli stili benimsemesine neden oldu, özellikle karakterlerin gözlerinin vurgulanmasında görülebilir.
LoRA yok:
LoRA:
FLUX.2 için olanlar da dahil olmak üzere bu örnekler, kullanıcıların tam ince ayar yoluyla maksimum kaliteye ve LoRA tarzı PEFT yoluyla maksimum verimliliğe ulaşabileceğini, çıktıyı belirli stilistik alanlara göre uyarlayabileceğini doğrulamaktadır.
Bugün deneyin
Entegrasyon hakkında daha fazla bilgi edinin ve NeMo Automodel belgelerinde daha fazla ince ayar örneği bulun
Sırada ne var: Pythonic tarif API'leri
YAML, özellikle kontrol edebilecekleri, gözden geçirebilecekleri ve yeniden kullanabilecekleri dosyalar isteyen ekipler için tekrarlanabilir yapılandırmaya çok uygundur, ancak birçok ekip aynı zamanda programlı bir arayüze ihtiyaç duyar.
Yaklaşan bir NeMo Automodel sürümünde, difüzyon tariflerini tamamen yazılmış bir Pythonic API aracılığıyla da sunmayı planlıyoruz. Kullanıcılar aynı model, veri, optimize edici, PEFT/LoRA, paralellik, kontrol noktası oluşturma ve üretim parçalarını doğrudan Python'dan birleştirebilecek.
Pythonic yolun, tarifleri mevcut eğitim kodundan, not defterlerinden ve deney iş akışlarından kullanmayı kolaylaştırması ve YAML hızlı başlangıç yolunun yanında birinci sınıf bir Pythonic arayüz sunması amaçlanmaktadır.













