View a markdown version of this page

Hasilkan gambar dalam batch dengan model difusi - Awan Batas Waktu

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Hasilkan gambar dalam batch dengan model difusi

Tutorial ini memandu Anda menjalankan pembuatan gambar batch throughput tinggi pada file prompt JSONL menggunakan model difusi. Anda mengirimkan bundel pekerjaan batch text-to-image GitHub ke armada GPU di farm Deadline Cloud Anda. Model defaultnya adalah FLUX.2 Klein 4B pada Hugging Face, yang berlisensi Apache 2.0, tidak dihilangkan, disuling hingga 4 langkah, dan membutuhkan sekitar 13 GB RAM video (VRAM).

Setiap baris yang dipilih di JSONL menjadi tugas pembuatan. Penjadwal mendistribusikan tugas di seluruh pekerja GPU yang tersedia, dan setiap pekerja memuat pipa difusi sekali dan menggunakannya kembali untuk setiap tugas yang dijalankannya. Ketika sebuah baris membawa caption bidang, atau generated_text bidang yang dirantai dari output bundel inferensi batch vLLM, pekerjaan menggabungkan teks di atas gambar yang dihasilkan sebagai tipografi yang tajam. Garis tanpa keterangan menghasilkan citra murni, sehingga bundel berfungsi sama baiknya dengan generator batch teks-ke-gambar biasa.

Perkiraan waktu: 30-60 menit, termasuk pengaturan pertanian. Proses pertama juga mengunduh sekitar 13 GB bobot model per pekerja.

Menjalankan tutorial ini dikenakan biaya untuk instance pekerja GPU yang memproses pekerjaan.

Gambaran umum

Untuk menyelesaikan tutorial ini, ikuti langkah-langkah berikut:

  1. Siapkan peternakan Anda.

  2. Siapkan file input.

  3. Kirim pekerjaan pembuatan gambar.

  4. Unduh dan telusuri galeri.

  5. Pembersihan sumber daya

Siapkan peternakan Anda

Anda memerlukan armada yang dikelola layanan dengan GPU NVIDIA dan setidaknya 32 GB RAM, dan antrian dengan lingkungan antrian conda yang terpasang yang membaca CondaPackages dan parameter pekerjaan. CondaChannels FLUX.2 Klein 4B cocok dengan nyaman pada 16 GB dan GPU yang lebih besar (misalnya, L4 atau A10G) berkat offloading CPU.

Cara tercepat untuk mendapatkan farm yang kompatibel adalah dengan menerapkan CloudFormation template pertanian CUDA GitHub, yang merupakan template yang sama dengan yang digunakan bundel inferensi batch vLLM. Setelah tumpukan mencapaiCREATE_COMPLETE, konfigurasikan Deadline Cloud CLI untuk menggunakan farm baru:

deadline config set defaults.farm_id FarmId-from-stack-outputs deadline config set defaults.queue_id CUDAQueueId-from-stack-outputs
catatan

Bundel ini mencakup lingkungan InstallDeps pekerjaan yang menginstal PyTorch dan pustaka diffusers terbaru dari git di atas lingkungan conda antrian pada setiap sesi, ditambah mengunduh empat Font Google kecil untuk overlay keterangan. Harapkan 30-90 detik waktu pengaturan tambahan per pekerja pada penggunaan pertama, ditambah unduhan model saat pertama kali dijalankan. Jika armada Anda berjalan di VPC yang dibatasi jaringan, Anda perlu melakukan pra-memanggang dependensi ke saluran AMI atau conda khusus, atau membuka keluar.

Siapkan file input

Input adalah file JSONL dengan satu objek JSON per baris. Setiap baris harus memiliki prompt bidang atau generated_text bidang yang dirantai dari output bundel inferensi batch vLLM:

{"prompt": "A golden hour photo of a sourdough loaf on a linen-covered table", "id": "loaf_01"} {"prompt": "A bakery storefront at sunrise, photorealistic", "caption": "OPEN AT DAWN", "id": "shop_01"} {"prompt": "Write a slogan for sourdough", "id": "001", "generated_text": "Real grain. Real fermentation. Real you.", "style": "rustic flat lay, warm tones"}

Bidang per baris opsional termasuk caption untuk teks overlay, style untuk mengganti akhiran gaya tingkat pekerjaan,, dan,font, width dan. height steps seed Bundel menyertakan alat pembuat prompt tanpa ketergantungan yang sama dengan bundel batch vLLM. Buka tools/prompt_builder.html untuk membuat file input, impor JSONL dengan drag and drop, dan tambahkan penggantian per prompt.

sample_prompts.jsonlFile yang dibundel adalah demo kampanye roti 10 gambar: slogan roti yang dihasilkan oleh bundel inferensi batch vLLM, dengan petunjuk gaya berlapis untuk visual yang menggugah.

Kirim pekerjaan pembuatan gambar

Untuk mengirimkan dengan pengirim GUI
  1. Dari direktori text_to_image_batch bundel, buka pengirim:

    deadline bundle gui-submit .
  2. Pilih file input JSONL Anda. C sample_prompts.jsonl oba demo kampanye toko roti.

  3. Atur Rentang Prompt (1-10misalnya, untuk 10 prompt pertama) dan pilih direktori output.

  4. Secara opsional tweak StyleSuffix, Lebar, dan Tinggi. Tinggalkan Overlay Caption true jika JSONL Anda memiliki keterangan atau slogan, atau setel ke false untuk pembuatan gambar murni.

  5. Pilih Kirim.

Atau, kirimkan dengan CLI:

deadline bundle submit . \ --parameter InputFile=$PWD/sample_prompts.jsonl \ --parameter Prompts=1-10 \ --parameter OutputDir=$PWD/output

ChunkSizeParam Prompts eter dan bekerja dengan cara yang sama seperti pada bundel inferensi batch vLLM, menggunakan fitur pemotongan tugas Deadline Cloud. Untuk informasi selengkapnya, lihat Pemotongan tugas untuk templat pekerjaan. ModelNameParameter menerima apa pun yang dapat dimuat oleh pustaka diffuser, termasuk SDXL Turbo dan Stable Diffusion 3.5. Untuk daftar parameter lengkap dan pengaturan untuk model lain, lihat tabel parameter dalam contoh README pada GitHub.

Unduh dan telusuri galeri

Untuk mengunduh dan menelusuri hasil
  1. Setelah pekerjaan selesai, jalankan perintah unduh dari direktori yang sama yang Anda gunakan pada waktu pengiriman, sehingga OutputDir jalur diselesaikan ke tempat yang sama:

    deadline job download-output --job-id job-id
  2. Setiap artefak mendarat di bawah output/ subdirektori jalur yang Anda tetapkan. OutputDir PNG mentah masuk, metadata gabungan ada output/images/output/output.jsonl, dan output/gallery.html merupakan penampil galeri statis dengan pencarian dan ekspor CSV.

  3. Jika gambar galeri tidak dimuat saat Anda membuka gallery.html secara langsung, itu adalah batasan keamanan browser pada file:// URL. Sajikan direktori sebagai gantinya:

    cd OutputDir/output && python3 -m http.server 8080 # open http://localhost:8080/gallery.html

RanTAI dari inferensi batch vLLM

Aliran klasik memasangkan bundel ini dengan bundel inferensi batch vLLM:

  1. Hasilkan teks dengan bundel inferensi batch vLLM: slogan, keterangan, deskripsi adegan, atau teks alternatif. Outputnya adalah output.jsonl dengan generated_text bidang per baris. Lihat Jalankan inferensi LLM batch dengan vLLM.

  2. (Opsional) Bukatools/prompt_builder.html, masukkanoutput.jsonl, tambahkan atau edit teks, gaya, atau deskripsi visual per prompt, dan ekspor ulang.

  3. Kirim bundel ini dengan JSONL sebagai. InputFile Skrip per tugas secara otomatis digunakan generated_text sebagai keterangan overlay.

Ketika sebuah baris memiliki generated_text slogan dan LLM asliprompt, skrip tugas mencoba menarik subjek keluar dari permintaan dan menggunakannya sebagai prompt visual untuk model difusi, karena slogan seringkali terlalu abstrak untuk memberikan model subjek konkret. Pekerja mencatat sumber prompt visual per tugas sehingga Anda dapat menemukan kesalahan ekstraksi.

Bersihkan

Untuk menghindari biaya yang sedang berlangsung, bersihkan sumber daya yang Anda buat untuk tutorial ini:

Untuk membersihkan sumber daya tutorial
  1. Jika Anda menerapkan CloudFormation template pertanian CUDA, hapus tum CloudFormation pukan dari CloudFormation konsol.

  2. Jika Anda menggunakan farm yang ada dan membuat armada GPU khusus untuk tutorial ini, hentikan atau hapus armada itu. Jika Anda menggunakan armada bersama yang sudah ada sebelumnya, biarkan tetap di tempatnya.

  3. Hapus file output lokal jika Anda tidak lagi membutuhkannya.

Sumber daya berikut memberikan informasi tambahan: