

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Gere imagens em lote com um modelo de difusão
<a name="tutorial-text-to-image-batch"></a>

Este tutorial mostra como executar a geração de imagens em lote de alto rendimento em um arquivo JSONL de solicitações usando um modelo de difusão. Você envia o pacote de trabalho em lote [ de texto para imagem GitHub ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/text_to_image_batch) para uma frota de GPU em sua fazenda Deadline Cloud. O modelo padrão é o [ FLUX.2 Klein 4B on Hugging Face](https://huggingface.co/black-forest-labs/FLUX.2-klein-4B), que é licenciado pelo Apache 2.0, não bloqueado, destilado em 4 etapas e precisa de cerca de 13 GB de RAM de vídeo (VRAM).

Cada linha selecionada no JSONL se torna uma tarefa de geração. O agendador distribui as tarefas entre os trabalhadores de GPU disponíveis, e cada trabalhador carrega o pipeline de difusão uma vez e o reutiliza para cada tarefa executada. Quando uma linha carrega um `caption` campo, ou um `generated_text` campo encadeado a partir da saída do pacote de inferência em lote vLLM, a tarefa compõe o texto sobre a imagem gerada como uma tipografia nítida. Linhas sem legenda produzem imagens puras, então o pacote funciona igualmente bem como um gerador de lote de texto simples para imagem.

**Tempo estimado: ** 30 a 60 minutos, incluindo a configuração da fazenda. A primeira execução também baixa cerca de 13 GB de pesos de modelo por trabalhador.

A execução deste tutorial gera cobranças para as instâncias de trabalho da GPU que processam a tarefa.

## Visão geral do
<a name="tutorial-t2i-overview"></a>

Para concluir este tutorial, siga estas etapas:

1. Configure sua fazenda.

1. Prepare o arquivo de entrada.

1. Envie o trabalho de geração de imagens.

1. Baixe e navegue na galeria.

1. Limpe recursos.

## Configure sua fazenda
<a name="tutorial-t2i-setup"></a>

Você precisa de uma frota gerenciada por serviços com GPUs NVIDIA e pelo menos 32 GB de RAM, além de uma fila com um ambiente de fila conda anexado com leituras e parâmetros de trabalho. `CondaPackages` `CondaChannels` FLUX.2 O Klein 4B se encaixa confortavelmente em GPUs de 16 GB ou maiores (por exemplo, L4 ou A10G) graças ao descarregamento da CPU.

A maneira mais rápida de obter uma fazenda compatível é implantar o modelo de fazenda [ CUDA GitHub](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/cuda_farm), que é o mesmo CloudFormation modelo usado pelo pacote de inferência em lote vLLM. Depois que a pilha chegar`CREATE_COMPLETE`, configure o Deadline Cloud CLI para usar a nova fazenda:

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

**nota**  
O pacote inclui um ambiente de `InstallDeps` trabalho que é instalado PyTorch e a biblioteca de difusores mais recente do git no topo do ambiente conda da fila em cada sessão, além de baixar quatro pequenas fontes do Google para a sobreposição de legendas. Espere de 30 a 90 segundos de tempo adicional de configuração por trabalhador na primeira utilização, além do download do modelo na primeira execução. Se sua frota funciona em uma VPC restrita à rede, você precisa pré-transformar as dependências em uma AMI personalizada ou em um canal conda, ou abrir a saída.

## Prepare o arquivo de entrada
<a name="tutorial-t2i-input"></a>

A entrada é um arquivo JSONL com um objeto JSON por linha. Cada linha deve ter um `prompt` campo ou um `generated_text` campo encadeado a partir da saída do pacote de inferência em lote 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"}
```

Os campos opcionais `caption` por linha incluem sobreposição de texto, `style` para substituir o sufixo de estilo de nível de trabalho,, e, e. `font` `width` `height` `steps` `seed` O pacote inclui a mesma ferramenta de criação de prompts de dependência zero do pacote de lotes vLLM. Abra `tools/prompt_builder.html` para criar arquivos de entrada, importe um JSONL arrastando e soltando e adicione substituições por solicitação.

O `sample_prompts.jsonl` arquivo incluído é uma demonstração de campanha de padaria de 10 imagens: slogans de padaria gerados pelo pacote de inferência em lote vLLM, com dicas de estilo em camadas para obter visuais evocativos.

## Envie o trabalho de geração de imagens
<a name="tutorial-t2i-submit"></a>

**Para enviar com o remetente da GUI**

1. No diretório do `text_to_image_batch` pacote, abra o remetente:

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

1. Escolha seu arquivo JSONL de entrada. Experimente `sample_prompts.jsonl` a demonstração da campanha de padaria.

1. Defina ** o intervalo de solicitações ** (por exemplo, `1-10` para as primeiras 10 solicitações) e escolha um diretório de saída.

1. Opcionalmente ** StyleSuffix**, ajuste a ** largura e ** ** a altura. ** Deixe a legenda ** sobreposta ** em `true` se seu JSONL tiver legendas ou slogans, ou configure-a como para pura geração de imagens. `false`

1. Selecione **Enviar**.

Como alternativa, envie com a CLI:

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

Os `ChunkSize` parâmetros `Prompts` e funcionam da mesma forma que no pacote de inferência em lote vLLM, usando o recurso de fragmentação de tarefas do Deadline Cloud. Para obter mais informações, consulte [Divisão de tarefas para modelos de trabalho](build-job-bundle-chunking.md). O `ModelName` parâmetro aceita qualquer coisa que a biblioteca de difusores possa carregar, incluindo SDXL Turbo e Stable Diffusion 3.5. Para ver a lista completa de parâmetros e as configurações de outros modelos, consulte [ a tabela de parâmetros no exemplo README em GitHub](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/text_to_image_batch#parameters).

## Baixe e navegue na galeria
<a name="tutorial-t2i-results"></a>

**Para baixar e navegar pelos resultados**

1. Depois que o trabalho for concluído, execute o comando de download no mesmo diretório usado no momento do envio, para que o `OutputDir` caminho seja resolvido no mesmo local:

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

1. Cada artefato fica em um `output/` subdiretório do caminho que você definiu como. `OutputDir` Os PNGs brutos estão dentro`output/images/`, os metadados combinados estão dentro `output/output.jsonl` e `output/gallery.html` é um visualizador de galeria estático com pesquisa e exportação de CSV.

1. Se as imagens da galeria não carregarem quando você abre `gallery.html` diretamente, isso é uma restrição de segurança do navegador em `file://` URLs. Em vez disso, sirva o diretório:

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

## Cadeia a partir da inferência em lote vLLM
<a name="tutorial-t2i-chaining"></a>

O fluxo clássico combina esse pacote com o pacote de inferência em lote vLLM:

1. Gere texto com o pacote de inferência em lote vLLM: slogans, legendas, descrições de cenas ou texto alternativo. A saída é `output.jsonl` com um `generated_text` campo por linha. Consulte [Execute inferência LLM em lote com vLLM](tutorial-vllm-batch.md).

1. (Opcional) Abra`tools/prompt_builder.html`, insira`output.jsonl`, adicione ou edite legendas, estilos ou descrições visuais por solicitação e reexporte.

1. Envie este pacote com o JSONL como. `InputFile` O script por tarefa é usado automaticamente `generated_text` como legenda de sobreposição.

Quando uma linha tem um `generated_text` slogan e o LLM original`prompt`, o script de tarefas tenta extrair o assunto da solicitação e usá-lo como aviso visual para o modelo de difusão, porque os slogans geralmente são muito abstratos para dar ao modelo um assunto concreto. O trabalhador registra a fonte visual do prompt por tarefa para que você possa identificar extrações incorretas.

## Fazer a limpeza.
<a name="tutorial-t2i-cleanup"></a>

Para evitar cobranças contínuas, limpe os recursos que você criou para este tutorial:

**Para limpar os recursos do tutorial**

1. Se você implantou o CloudFormation modelo de farm CUDA, exclua a CloudFormation pilha do console. CloudFormation 

1. Se você usou uma fazenda existente e criou uma frota de GPU especificamente para este tutorial, interrompa ou exclua essa frota. Se você usou uma frota compartilhada preexistente, deixe-a em vigor.

1. Remova os arquivos de saída locais se não precisar mais deles.

## Recursos relacionados
<a name="tutorial-t2i-related"></a>

Os seguintes recursos fornecem informações adicionais:
+ [Exemplo de código-fonte em GitHub ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/text_to_image_batch)
+ [Execute inferência LLM em lote com vLLM](tutorial-vllm-batch.md)
+ [Divisão de tarefas para modelos de trabalho](build-job-bundle-chunking.md)
+ [FLUX.2 Ajuste fino e geração de imagens do Klein LoRa](flux2-klein-lora.md)
+ [Documentação dos difusores Hugging Face ](https://huggingface.co/docs/diffusers)