

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Generieren Sie Bilder stapelweise mit einem Diffusionsmodell
<a name="tutorial-text-to-image-batch"></a>

In diesem Tutorial erfahren Sie, wie Sie mithilfe eines Diffusionsmodells eine Batch-Bildgenerierung mit hohem Durchsatz in einer JSONL-Datei mit Eingabeaufforderungen ausführen. Sie senden das [ Text-zu-Bild-Batch-Auftragspaket an eine GPU-Flotte GitHub ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/text_to_image_batch) in Ihrer Deadline Cloud-Farm. Das Standardmodell ist [ FLUX.2 Klein 4B auf Hugging Face](https://huggingface.co/black-forest-labs/FLUX.2-klein-4B). Es ist für Apache 2.0 lizenziert, ungatiert, in 4 Schritte unterteilt und benötigt etwa 13 GB Video-RAM (VRAM).

Jede ausgewählte Zeile in der JSONL wird zu einer Generierungsaufgabe. Der Scheduler verteilt die Aufgaben auf die verfügbaren GPU-Worker, und jeder Worker lädt die Diffusionspipeline einmal und verwendet sie für jede ausgeführte Aufgabe erneut. Wenn eine Zeile ein `caption` Feld oder ein aus der Ausgabe des vLLM-Batch-Inferenz-Bundles verkettetes `generated_text` Feld enthält, fügt der Job den Text über dem generierten Bild zu einer scharfen Typografie zusammen. Zeilen ohne Bildunterschrift erzeugen reine Bilder, sodass das Paket genauso gut funktioniert wie ein einfacher Text-Bild-Batch-Generator.

**Geschätzte Zeit: ** 30—60 Minuten, einschließlich der Einrichtung der Farm. Beim ersten Durchlauf werden außerdem etwa 13 GB an Modellgewichten pro Arbeiter heruntergeladen.

Bei der Ausführung dieses Tutorials fallen Gebühren für die GPU-Worker-Instances an, die den Job verarbeiten.

## -Übersicht
<a name="tutorial-t2i-overview"></a>

Gehen Sie folgendermaßen vor, um dieses Tutorial abzuschließen:

1. Richten Sie Ihre Farm ein.

1. Bereiten Sie die Eingabedatei vor.

1. Reichen Sie den Job zur Bildgenerierung ein.

1. Laden Sie die Galerie herunter und durchsuchen Sie sie.

1. Bereinigen Sie die Ressourcen.

## Richten Sie Ihre Farm ein
<a name="tutorial-t2i-setup"></a>

Sie benötigen eine vom Service verwaltete Flotte mit NVIDIA-GPUs und mindestens 32 GB RAM sowie eine Warteschlange mit einer angeschlossenen Conda-Warteschlangenumgebung, die Lese `CondaPackages` - und `CondaChannels` Jobparameter liest. FLUX.2 Klein 4B passt dank CPU-Entlastung problemlos auf GPUs mit 16 GB und mehr (z. B. L4 oder A10G).

Der schnellste Weg, eine kompatible Farm zu erhalten, besteht darin, die [ CUDA-Farmvorlage bereitzustellen. Dabei handelt es sich um dieselbe CloudFormation Vorlage GitHub](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/cuda_farm), die das vLLM-Batch-Inferenzpaket verwendet. Wenn der Stack erreicht ist`CREATE_COMPLETE`, konfigurieren Sie die Deadline Cloud-CLI so, dass sie die neue Farm verwendet:

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

**Anmerkung**  
Das Paket beinhaltet eine `InstallDeps` Job-Umgebung, die installiert wird, PyTorch und die neueste Diffusor-Bibliothek von Git zusätzlich zur Conda-Umgebung der Warteschlange bei jeder Sitzung. Außerdem werden vier kleine Google-Fonts für das Caption-Overlay heruntergeladen. Rechnen Sie mit einer zusätzlichen Einrichtungszeit von 30—90 Sekunden pro Mitarbeiter bei der ersten Verwendung sowie dem Herunterladen des Modells bei der ersten Ausführung. Wenn Ihre Flotte in einer VPC mit eingeschränktem Netzwerk läuft, müssen Sie die Abhängigkeiten entweder vorab in einem benutzerdefinierten AMI oder Conda-Channel speichern oder den Ausgang öffnen.

## Bereiten Sie die Eingabedatei vor
<a name="tutorial-t2i-input"></a>

Die Eingabe ist eine JSONL-Datei mit einem JSON-Objekt pro Zeile. Jede Zeile muss entweder ein `prompt` Feld oder ein `generated_text` Feld enthalten, das aus der Ausgabe des vLLM-Batch-Inferenzpakets verkettet ist:

```
{"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"}
```

Zu den optionalen zeilenspezifischen Feldern gehören `caption` für Overlay-Text, `style` um das Stilsuffix auf Jobebene außer Kraft zu setzen, und, und. `font` `width` `height` `steps` `seed` Das Paket enthält dasselbe Prompt-Builder-Tool ohne Abhängigkeit wie das vLLM-Batch-Paket. Öffnen Sie `tools/prompt_builder.html` es, um Eingabedateien zu erstellen, eine JSONL per Drag-and-Drop zu importieren und Überschreibungen pro Prompt hinzuzufügen.

Bei der mitgelieferten `sample_prompts.jsonl` Datei handelt es sich um eine Demoversion einer Bäckereikampagne mit 10 Bildern: Bäckerei-Slogans, die mit dem Batch Inference Bundle von vLLM generiert wurden, mit überlagerten Style-Hinweisen für eindrucksvolle Grafiken.

## Reichen Sie den Auftrag zur Bildgenerierung ein
<a name="tutorial-t2i-submit"></a>

**Um ihn mit dem GUI-Absender einzureichen**

1. Öffnen Sie im `text_to_image_batch` Bundle-Verzeichnis den Submitter:

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

1. Wählen Sie Ihre JSONL-Eingabedatei aus. Probieren Sie `sample_prompts.jsonl` die Demo der Bäckerei-Kampagne aus.

1. Stellen Sie den Bereich der ** Eingabeaufforderungen ein ** (z. B. `1-10` für die ersten 10 Eingabeaufforderungen) und wählen Sie ein Ausgabeverzeichnis.

1. Passen Sie optional ** Breite ** StyleSuffix ** und ** Höhe ** an. ** Belassen Sie ** Overlay Caption ** bei, `true` wenn Ihre JSONL Bildunterschriften oder Slogans enthält, oder stellen Sie sie auf für die reine Bildgenerierung ein. `false`

1. Wählen Sie **Absenden** aus.

Senden Sie es alternativ mit der CLI:

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

Die `ChunkSize` Parameter `Prompts` und funktionieren genauso wie im vLLM-Batch-Inferenzpaket, wobei die Deadline Cloud-Task-Chunking-Funktion verwendet wird. Weitere Informationen finden Sie unter [Aufgabenteilung für Jobvorlagen](build-job-bundle-chunking.md). Der `ModelName` Parameter akzeptiert alles, was die Diffusor-Bibliothek laden kann, einschließlich SDXL Turbo und Stable Diffusion 3.5. Die vollständige Parameterliste und die Einstellungen für andere Modelle finden Sie in der Parametertabelle in [ der Beispiel-README-Datei unter. GitHub ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/text_to_image_batch#parameters)

## Laden Sie die Galerie herunter und durchsuchen Sie sie
<a name="tutorial-t2i-results"></a>

**Um die Ergebnisse herunterzuladen und zu durchsuchen**

1. Führen Sie nach Abschluss des Jobs den Download-Befehl in demselben Verzeichnis aus, das Sie beim Senden verwendet haben, sodass der `OutputDir` Pfad an derselben Stelle angezeigt wird:

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

1. Jedes Artefakt landet in einem `output/` Unterverzeichnis des Pfads, den Sie als festgelegt haben. `OutputDir` Die rohen PNGs sind da`output/images/`, die kombinierten Metadaten sind drin `output/output.jsonl` und `output/gallery.html` es handelt sich um einen statischen Galerie-Viewer mit Suche und CSV-Export.

1. Wenn die Bilder der Galerie nicht geladen werden, wenn Sie sie `gallery.html` direkt öffnen, handelt es sich um eine Browser-Sicherheitsbeschränkung für `file://` URLs. Bereite stattdessen das Verzeichnis an:

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

## Kette aus der vLLM-Batch-Inferenz
<a name="tutorial-t2i-chaining"></a>

Der klassische Flow kombiniert dieses Paket mit dem vLLM-Batch-Inferenzpaket:

1. Generieren Sie Text mit dem vLLM-Batch-Inferenzpaket: Slogans, Bildunterschriften, Szenenbeschreibungen oder Alt-Text. Die Ausgabe erfolgt mit einem Feld pro Zeile. `output.jsonl` `generated_text` Siehe [Führen Sie eine Batch-LLM-Inferenz mit vLLM aus](tutorial-vllm-batch.md).

1. (Optional) Öffnen Sie Beschriftungen`tools/prompt_builder.html`, Stile oder visuelle Beschreibungen für jede Aufforderung`output.jsonl`, fügen Sie sie hinzu, fügen Sie sie hinzu oder bearbeiten Sie sie und exportieren Sie sie erneut.

1. Reichen Sie dieses Paket mit der JSONL ein als. `InputFile` Das aufgabenbezogene Skript wird automatisch `generated_text` als Overlay-Überschrift verwendet.

Wenn eine Zeile sowohl einen `generated_text` Slogan als auch das ursprüngliche LLM enthält`prompt`, versucht das Task-Skript, den Betreff aus der Anfrage herauszuziehen und ihn als visuelle Aufforderung für das Diffusionsmodell zu verwenden, da Slogans oft zu abstrakt sind, um dem Modell ein konkretes Thema zu geben. Der Worker protokolliert die Quelle der visuellen Eingabeaufforderung pro Aufgabe, sodass Sie Fehlextraktionen erkennen können.

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

Um laufende Gebühren zu vermeiden, sollten Sie die Ressourcen, die Sie für dieses Tutorial erstellt haben, bereinigen:

**So bereinigen Sie die Ressourcen für das Tutorial**

1. Wenn Sie die CloudFormation CUDA-Farmvorlage bereitgestellt haben, löschen Sie den CloudFormation Stack aus der CloudFormation Konsole.

1. Wenn Sie eine vorhandene Farm verwendet und speziell für dieses Tutorial eine GPU-Flotte erstellt haben, beenden oder löschen Sie diese Flotte. Wenn Sie eine bereits vorhandene gemeinsame Flotte verwendet haben, lassen Sie sie unverändert.

1. Entfernen Sie lokale Ausgabedateien, wenn Sie sie nicht mehr benötigen.

## Zugehörige Ressourcen
<a name="tutorial-t2i-related"></a>

Die folgenden Ressourcen bieten zusätzliche Informationen:
+ [Beispiel-Quellcode auf GitHub ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/text_to_image_batch)
+ [Führen Sie eine Batch-LLM-Inferenz mit vLLM aus](tutorial-vllm-batch.md)
+ [Aufgabenteilung für Jobvorlagen](build-job-bundle-chunking.md)
+ [FLUX.2 Klein LoRa Feinabstimmung und Bildgenerierung](flux2-klein-lora.md)
+ [Dokumentation zu Hugging Face Diffusoren ](https://huggingface.co/docs/diffusers)