Diffusers documentation
Hugging Face Pekerjaan
Hugging Face Pekerjaan
Hugging Face Jobs berjalan di GPU Hugging Face, sehingga Anda tidak perlu menyiapkan mesin, dan proses tetap berjalan meskipun Anda menutup terminal. Skrip pelatihan Diffusers dapat dijalankan di Jobs langsung dari URL GitHub-nya tanpa perlu meng-clone repositori atau menginstal apa pun secara lokal.
Sebelum memulai, ikuti Jobs quickstart untuk menginstal CLI hf, masuk, dan menambahkan kredit ke akun Anda.
Latih LoRA pada Jobs
Perintah di bawah ini melatih LoRA untuk FLUX.2-klein-4B menggunakan lima foto anjing di diffusers/dog-example. Perintah ini berjalan di satu A10G dan mendorong LoRA ke namespace Anda di Hub.
# 20 steps is a test run. For a real run, raise --max_train_steps
# (the FLUX.2 README uses 500) and --timeout to match.
hf jobs uv run --flavor a10g-small --timeout 30m -s HF_TOKEN -- \
https://raw.githubusercontent.com/huggingface/diffusers/main/examples/dreambooth/train_dreambooth_lora_flux2_klein.py \
--pretrained_model_name_or_path black-forest-labs/FLUX.2-klein-4B \
--dataset_name diffusers/dog-example \
--instance_prompt "a photo of sks dog" \
--resolution 512 --mixed_precision bf16 --guidance_scale 1 \
--gradient_checkpointing --cache_latents \
--optimizer adamW --use_8bit_adam --learning_rate 1e-4 \
--max_train_steps 20 --seed 0 \
--output_dir /tmp/out \
--push_to_hub --hub_model_id your-username/klein-dog-lorauv menginstal dependensi yang tercantum dalam header # /// script dari skrip, termasuk Diffusers dari main. Job tidak mendapatkan token Hugging Face secara default, sehingga -s HF_TOKEN meneruskan token Anda agar skrip dapat mendorong LoRA. Disk Job dibuang ketika Job berakhir, dan apa pun yang tidak Anda dorong akan hilang. Panduan DreamBooth dan LoRA menjelaskan argumen pelatihan.
Mengelola Tugas
Log pelatihan dicetak ke terminal Anda saat Job berjalan. Menutup terminal atau menekan Ctrl+C tidak menghentikan pelatihan, karena Job berjalan di mesin Hugging Face. Untuk menjalankan proses panjang tanpa mengunci terminal Anda, tambahkan -d sebelum --. Perintah tersebut mencetak Job ID dan kembali.
Gunakan Job ID untuk menyambung kembali ke log, memeriksa memori dan utilisasi GPU saat model dilatih, atau menghentikan eksekusi.
hf jobs logs -f <job_id>
hf jobs stats <job_id>
hf jobs cancel <job_id>Jika run gagal, hf jobs inspect <job_id> menampilkan pesan error. Lihat Manage Jobs untuk perintah lainnya.
Latih pada gambar Anda sendiri
Untuk melatih pada gambar Anda, mount folder mereka ke dalam Job dengan -v dan lewati jalur mount ke --instance_data_dir alih-alih --dataset_name. Jobs mengunggah folder ke bucket privat sebelum Job dimulai dan memount-nya hanya-baca. Mengunggah folder yang sama lagi hanya mengirim file baru atau yang berubah.
hf jobs uv run --flavor a10g-small --timeout 30m -s HF_TOKEN \
-v ./my-dog:/data -- \
https://raw.githubusercontent.com/huggingface/diffusers/main/examples/dreambooth/train_dreambooth_lora_flux2_klein.py \
--pretrained_model_name_or_path black-forest-labs/FLUX.2-klein-4B \
--instance_data_dir /data \
--instance_prompt "a photo of sks dog" \
--resolution 512 --mixed_precision bf16 --guidance_scale 1 \
--gradient_checkpointing --cache_latents \
--optimizer adamW --use_8bit_adam --learning_rate 1e-4 \
--max_train_steps 20 --seed 0 \
--output_dir /tmp/out \
--push_to_hub --hub_model_id your-username/klein-dog-loraSkrip membuka setiap file di --instance_data_dir sebagai gambar, jadi simpan hanya gambar di folder tersebut. File tersembunyi seperti .DS_Store menyebabkan eksekusi gagal. Lihat Local directories untuk informasi lebih lanjut tentang mounting folder.
Dengan --with_prior_preservation, skrip menghasilkan gambar kelas ke --class_data_dir sebelum pelatihan dimulai. Arahkan ke path yang dapat ditulis oleh Job. Untuk menggunakan kembali gambar kelas di eksekusi berikutnya, simpan di bucket mount baca-tulis seperti yang ada di Simpan checkpoint untuk eksekusi panjang.
Latih dalam FP8
Skrip DreamBooth LoRA untuk FLUX.2, Z-Image, Ideogram 4, dan Krea 2 menerima --do_fp8_training untuk melatih dalam FP8 dengan torchao, yang menurunkan penggunaan memori. Tidak ada header skrip yang menyertakan torchao, jadi tambahkan --with torchao sebelum --. FP8 juga memerlukan GPU dengan compute capability 8.9 atau lebih tinggi, seperti L4 (l4x1) atau L40S (l40sx1). A10G (8.6) dan A100 (8.0) tidak mendukungnya.
Jalankan skrip tanpa header dependensi
Hanya skrip di examples/dreambooth dan examples/advanced_diffusion_training yang menyatakan dependensinya dalam blok # /// script di bagian atas file. Beberapa skrip di folder tersebut, seperti train_dreambooth_lora_sdxl.py, tidak memilikinya.
Untuk skrip tanpa header, berikan setiap dependensi dengan --with. Instal Diffusers dari sumber, karena skrip pelatihan memerlukan versi pengembangan. Dependensi lainnya berasal dari file requirements.txt skrip dan impor-impornya.
hf jobs uv run --flavor a10g-small --timeout 30m -s HF_TOKEN \
--with "diffusers @ git+https://github.com/huggingface/diffusers.git" \
--with torch --with torchvision --with accelerate --with transformers \
--with peft --with datasets --with bitsandbytes \
--with ftfy --with tensorboard --with Jinja2 -- \
https://raw.githubusercontent.com/huggingface/diffusers/main/examples/dreambooth/train_dreambooth_lora_sdxl.py \
--pretrained_model_name_or_path stabilityai/stable-diffusion-xl-base-1.0 \
--pretrained_vae_model_name_or_path madebyollin/sdxl-vae-fp16-fix \
--dataset_name diffusers/dog-example \
--instance_prompt "a photo of sks dog" \
--resolution 1024 --mixed_precision fp16 \
--gradient_checkpointing --use_8bit_adam --learning_rate 1e-4 \
--max_train_steps 20 --seed 0 \
--output_dir /tmp/out \
--push_to_hub --hub_model_id your-username/sdxl-dog-loraSimpan checkpoint untuk eksekusi panjang
Eksekusi yang memakan waktu berjam-jam dapat habis waktu atau crash sebelum selesai. Untuk mempertahankan progresnya, mount Storage Bucket ke dalam Job dengan -v dan arahkan --output_dir ke sana. Buat bucket terlebih dahulu dengan hf buckets create.
Skrip menyimpan folder checkpoint-<step> ke --output_dir setiap --checkpointing_steps langkah (500 secara default), sehingga checkpoint tersimpan di bucket seiring berjalannya pelatihan. --checkpoints_total_limit membatasi jumlah checkpoint yang disimpan. --resume_from_checkpoint latest melanjutkan dari checkpoint terbaru di --output_dir, dan memulai dari awal jika tidak ada, sehingga perintah yang sama berfungsi untuk eksekusi pertama maupun setiap pengulangan.
hf jobs uv run --flavor a10g-small --timeout 8h -s HF_TOKEN \
-v hf://buckets/your-username/checkpoints:/ckpt -- \
https://raw.githubusercontent.com/huggingface/diffusers/main/examples/dreambooth/train_dreambooth_lora_flux2_klein.py \
--pretrained_model_name_or_path black-forest-labs/FLUX.2-klein-4B \
--dataset_name diffusers/dog-example \
--instance_prompt "a photo of sks dog" \
--resolution 1024 --mixed_precision bf16 --guidance_scale 1 \
--gradient_checkpointing --cache_latents \
--optimizer adamW --use_8bit_adam --learning_rate 1e-4 \
--max_train_steps 5000 --seed 0 \
--checkpointing_steps 500 --checkpoints_total_limit 3 \
--resume_from_checkpoint latest \
--output_dir /ckpt/klein-dogSaat pelatihan berakhir, LoRA disimpan ke bucket sebagai pytorch_lora_weights.safetensors. Lihat Volume untuk opsi mount.
Jangan tambahkan
--push_to_hubketika--output_dirberisi checkpoint. Unggahan hanya melewati folderstep_*danepoch_*, sehingga foldercheckpoint-<step>akan didorong ke repo model bersama dengan LoRA. Alih-alih, unggahpytorch_lora_weights.safetensorske repo model Anda sendiri.
Langkah selanjutnya
- Baca Train Models on Jobs di dokumentasi Hub untuk memeriksa langkah-langkah yang harus dilakukan sebelum menjalankan tugas panjang dan cara membaca tugas yang gagal.
- Muat LoRA yang telah Anda latih untuk inferensi dengan panduan LoRA.
- Telusuri file README DreamBooth untuk perintah dan opsi memori yang spesifik untuk model.