

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Genera immagini in batch con un modello di diffusione
<a name="tutorial-text-to-image-batch"></a>

Questo tutorial illustra come eseguire la generazione di immagini batch ad alto rendimento su un file JSONL di prompt utilizzando un modello di diffusione. Invii il pacchetto di lavori batch [ da testo a immagine a una flotta di GPU nella tua farm Deadline Cloud GitHub](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/text_to_image_batch). Il modello predefinito è [ FLUX.2 Klein 4B su Hugging Face](https://huggingface.co/black-forest-labs/FLUX.2-klein-4B), con licenza Apache 2.0, non certificato, suddiviso in 4 passaggi e richiede circa 13 GB di RAM video (VRAM).

Ogni riga selezionata nel JSONL diventa un'attività di generazione. Lo scheduler distribuisce le attività tra i GPU worker disponibili e ogni lavoratore carica la pipeline di diffusione una volta e la riutilizza per ogni attività eseguita. Quando una riga contiene un campo o un `caption` `generated_text` campo concatenato dall'output del batch inference bundle vLLM, il lavoro compone il testo sull'immagine generata sotto forma di caratteri tipografici nitidi. Le righe senza didascalia producono immagini pure, quindi il pacchetto funziona altrettanto bene come un semplice generatore di batch da testo a immagine.

**Tempo stimato: ** 30-60 minuti, inclusa la configurazione dell'azienda agricola. La prima esecuzione consente inoltre di scaricare circa 13 GB di peso del modello per lavoratore.

L'esecuzione di questo tutorial comporta l'addebito delle istanze di lavoro della GPU che elaborano il job.

## Panoramica di
<a name="tutorial-t2i-overview"></a>

Per completare questo tutorial, segui questi passaggi:

1. Allestisci la tua fattoria.

1. Prepara il file di input.

1. Invia il lavoro di generazione dell'immagine.

1. Scarica e sfoglia la galleria.

1. Eliminare le risorse.

## Allestisci la tua fattoria
<a name="tutorial-t2i-setup"></a>

È necessaria una flotta gestita dai servizi con GPU NVIDIA e almeno 32 GB di RAM e una coda con un ambiente conda queue collegato per la lettura dei parametri e dei processi. `CondaPackages` `CondaChannels` FLUX.2 Klein 4B si adatta perfettamente a GPU da 16 GB o più grandi (ad esempio, L4 o A10G) grazie all'offload della CPU.

Il modo più veloce per ottenere una farm compatibile è implementare il modello di farm [ CUDA GitHub](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/cuda_farm), lo stesso CloudFormation modello utilizzato dal pacchetto di inferenza batch vLLM. Una volta raggiunto lo stack`CREATE_COMPLETE`, configura la CLI di Deadline Cloud per utilizzare la nuova farm:

```
deadline config set defaults.farm_id {{FarmId-from-stack-outputs}}
deadline config set defaults.queue_id {{CUDAQueueId-from-stack-outputs}}
```

**Nota**  
Il pacchetto include un ambiente di `InstallDeps` lavoro che si installa PyTorch e la più recente libreria di diffusori di git in aggiunta all'ambiente conda della coda per ogni sessione, oltre al download di quattro piccoli Google Fonts per la sovrapposizione delle didascalie. Aspettatevi 30-90 secondi di tempo di configurazione aggiuntivo per lavoratore al primo utilizzo, oltre al download del modello alla prima esecuzione. Se la tua flotta funziona in un VPC con restrizioni di rete, devi pre-inserire le dipendenze in un canale AMI o conda personalizzato oppure aprire l'uscita.

## Prepara il file di input
<a name="tutorial-t2i-input"></a>

L'input è un file JSONL con un oggetto JSON per riga. Ogni riga deve avere un `prompt` campo o un `generated_text` campo concatenato dall'output del pacchetto di inferenza 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"}
```

I campi opzionali per riga includono i campi `caption` per sovrapporre testo, per sovrascrivere il suffisso `style` di stile a livello di lavoro, e,, e. `font` `width` `height` `steps` `seed` Il pacchetto include lo stesso strumento di creazione di prompt a dipendenza zero del pacchetto batch vLLM. Apri `tools/prompt_builder.html` per creare file di input, importa un JSONL trascinandolo e aggiungi sostituzioni per prompt.

Il `sample_prompts.jsonl` file in bundle è una demo di 10 immagini per la campagna dedicata ai prodotti da forno: slogan sui prodotti da forno generati dal vLLM batch inference bundle, con suggerimenti di stile sovrapposti per immagini evocative.

## Invia il lavoro di generazione delle immagini
<a name="tutorial-t2i-submit"></a>

**Da inviare con il mittente della GUI**

1. Dalla directory del `text_to_image_batch` pacchetto, apri il mittente:

   ```
   deadline bundle gui-submit .
   ```

1. Scegli il file JSONL di input. Prova `sample_prompts.jsonl` la demo della campagna dedicata ai prodotti da forno.

1. Imposta il ** Prompt Range ** (ad esempio, `1-10` per i primi 10 prompt) e scegli una directory di output.

1. Facoltativamente ** StyleSuffix**, modifica ** Larghezza e Altezza**. ** ** Lascia ** Overlay Caption ** su `true` se il tuo JSONL ha didascalie o slogan, oppure impostalo su per la pura generazione di immagini. `false`

1. Seleziona **Invia**.

In alternativa, invia con la CLI:

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

I `ChunkSize` parametri `Prompts` e funzionano allo stesso modo del pacchetto di inferenza batch vLLM, utilizzando la funzionalità di suddivisione delle attività di Deadline Cloud. Per ulteriori informazioni, consulta [Suddivisione delle attività per i modelli di lavoro](build-job-bundle-chunking.md). Il `ModelName` parametro accetta tutto ciò che la libreria dei diffusori può caricare, inclusi SDXL Turbo e Stable Diffusion 3.5. Per l'elenco completo dei parametri e le impostazioni per altri modelli, consultate la tabella [ dei parametri nell'esempio README on. GitHub ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/text_to_image_batch#parameters)

## Scarica e sfoglia la galleria
<a name="tutorial-t2i-results"></a>

**Per scaricare e sfogliare i risultati**

1. Al termine del processo, esegui il comando di download dalla stessa directory utilizzata al momento dell'invio, in modo che il `OutputDir` percorso si risolva nella stessa posizione:

   ```
   deadline job download-output --job-id {{job-id}}
   ```

1. Ogni artefatto atterra in una `output/` sottodirectory del percorso che hai impostato. `OutputDir` I PNG non elaborati sono presenti`output/images/`, i metadati combinati sono presenti ed `output/gallery.html` è un visualizzatore di gallerie statico con ricerca ed esportazione CSV. `output/output.jsonl`

1. Se le immagini della galleria non vengono caricate quando le apri `gallery.html` direttamente, si tratta di una restrizione di sicurezza del browser sugli URL. `file://` Servi invece la directory:

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

## Catena da inferenza batch vLLM
<a name="tutorial-t2i-chaining"></a>

Il flusso classico abbina questo pacchetto al pacchetto di inferenza batch vLLM:

1. Genera testo con il pacchetto di inferenza batch vLLM: slogan, didascalie, descrizioni delle scene o testo alternativo. `output.jsonl`L'output `generated_text` è composto da un campo per riga. Per informazioni, consulta [Esegui l'inferenza LLM in batch con vLLM](tutorial-vllm-batch.md).

1. (Facoltativo) Apri`tools/prompt_builder.html`, inserisci`output.jsonl`, aggiungi o modifica didascalie, stili o descrizioni visive per prompt ed esporta nuovamente.

1. Invia questo pacchetto con il codice JSONL come. `InputFile` Lo script per attività viene utilizzato `generated_text` automaticamente come didascalia di sovrapposizione.

Quando una riga contiene sia `generated_text` uno slogan che l'LLM originale`prompt`, lo script del task tenta di estrarre l'oggetto dalla richiesta e di utilizzarlo come suggerimento visivo per il modello di diffusione, perché gli slogan sono spesso troppo astratti per dare al modello un soggetto concreto. Il lavoratore registra la fonte del prompt visivo per attività in modo da poter individuare errori di estrazione.

## Eliminazione
<a name="tutorial-t2i-cleanup"></a>

Per evitare addebiti continui, pulisci le risorse che hai creato per questo tutorial:

**Per ripulire le risorse del tutorial**

1. Se hai distribuito il CloudFormation modello di farm CUDA, elimina lo CloudFormation stack dalla CloudFormation console.

1. Se hai utilizzato una farm esistente e hai creato una flotta di GPU appositamente per questo tutorial, interrompi o elimina quella flotta. Se hai utilizzato una flotta condivisa preesistente, lasciala al suo posto.

1. Rimuovi i file di output locali se non ti servono più.

## Risorse correlate
<a name="tutorial-t2i-related"></a>

Le seguenti risorse forniscono informazioni aggiuntive:
+ [Esempio di codice sorgente su GitHub ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/text_to_image_batch)
+ [Esegui l'inferenza LLM in batch con vLLM](tutorial-vllm-batch.md)
+ [Suddivisione delle attività per i modelli di lavoro](build-job-bundle-chunking.md)
+ [FLUX.2 Ottimizzazione e generazione di immagini di Klein LoRa](flux2-klein-lora.md)
+ [Documentazione sui diffusori Hugging Face ](https://huggingface.co/docs/diffusers)