

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á.

# FLUX.2 Ajuste fino e geração de imagens do Klein LoRa
<a name="flux2-klein-lora"></a>

Este exemplo demonstra como ajustar um modelo de geração de imagens FLUX.2 Klein usando LoRa (Low-Rank Adaptação) e gerar imagens em grande escala no Deadline Cloud. O fluxo de trabalho treina um adaptador leve a partir de um pequeno conjunto de dados de imagens. Em seguida, ele usa esse adaptador para gerar novas imagens a partir de solicitações de texto, todas orquestradas como trabalhos do Deadline Cloud em uma frota de GPU.

O código-fonte desse exemplo está disponível no repositório [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/flux2_klein_lora) em. GitHub

O vídeo a seguir demonstra o fluxo de trabalho do FLUX.2 Klein LoRa no Deadline Cloud.

[![AWS Videos](http://img.youtube.com/vi/3ziQqB19RSw/0.jpg)](http://www.youtube.com/watch?v=3ziQqB19RSw)


**Tempo estimado:** 30 a 60 minutos (incluindo 15 a 45 minutos para treinamento).

## Visão geral do
<a name="examples-flux2-overview"></a>

O exemplo consiste em dois pacotes de tarefas:

1. **lora\_training** — Fine-tunes [FLUX.2Klein em](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B) seu conjunto de dados de imagem usando [LoRa, produzindo](https://huggingface.co/docs/peft/conceptual_guides/adapter#low-rank-adaptation-lora) um arquivo adaptador. `.safetensors`

1. **image\_generation** — Carrega o modelo básico com seu adaptador treinado e gera imagens a partir de solicitações de texto. Ao gerar várias imagens, o trabalho é paralelizado entre os trabalhadores.

LoRa é uma técnica de ajuste fino com eficiência de parâmetros que treina um pequeno adaptador em vez de modificar os pesos completos do modelo. Essa abordagem torna o treinamento rápido (15 a 45 minutos em uma única GPU) e o adaptador resultante é portátil e fácil de configurar.

Os pacotes de tarefas usam [difusores](https://github.com/huggingface/diffusers) e bibliotecas [PEFT](https://github.com/huggingface/peft) para treinamento e inferência.

Para concluir este exemplo, siga estas etapas:

1. Concluir os pré-requisitos do .

1. Prepare os dados de treinamento.

1. Envie o trabalho de treinamento.

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

1. Limpe recursos.

## Pré-requisitos
<a name="examples-flux2-prerequisites"></a>

Antes de começar, verifique se você tem o seguinte:
+ Uma fazenda Deadline Cloud com uma frota de GPUs (recomenda-se GPU NVIDIA A10GLinux, 13 GB ou mais de VRAM, 64 GiB ou mais de memória de sistema).
+ Uma fila associada à frota de GPU.
+ A [CLI do Deadline Cloud](https://github.com/aws-deadline/deadline-cloud) instalada em sua estação de trabalho.
+ 20 a 50 imagens de treinamento do seu assunto (`.jpg`, `.png``.jpeg`, ou`.webp`).

## Estrutura do pacote de tarefas
<a name="examples-flux2-structure"></a>

```
flux2_klein_lora/
├── lora_training/
│   ├── template.yaml       # OpenJD job template
│   └── train_lora.py       # Training script
└── image_generation/
    ├── template.yaml       # OpenJD job template
    └── generate_image.py   # Inference script
```

## Prepare os dados de treinamento
<a name="examples-flux2-training-data"></a>

**Para preparar seus dados de treinamento**

1. Crie um diretório contendo imagens do seu assunto. Para obter melhores resultados, use de 20 a 50 imagens com poses, iluminação e planos de fundo variados.

1. Opcionalmente, forneça um arquivo de `.txt` legenda ao lado de cada imagem para um treinamento mais detalhado:

   ```
   training_images/
   ├── IMG_001.jpeg
   ├── IMG_001.txt    # "a photo of ohwx dog sitting on grass"
   ├── IMG_002.jpeg
   ├── IMG_002.txt    # "a photo of ohwx dog running on beach"
   ```

   Se nenhum arquivo de legenda estiver presente, o script de treinamento os gerará automaticamente usando o parâmetro de prompt da instância. As legendas personalizadas produzem resultados de maior qualidade porque ensinam ao modelo associações mais específicas entre sua palavra-gatilho e recursos visuais.

1. Escolha uma palavra de gatilho exclusiva (como`ohwx`). Isso vincula o conceito aprendido a um token que não entra em conflito com o conhecimento existente do modelo.

## Envie o trabalho de treinamento
<a name="examples-flux2-submit-training"></a>

**Para enviar o trabalho de treinamento**

1. Navegue até o `flux2_klein_lora` diretório em seu `deadline-cloud-samples` repositório clonado.

1. Para enviar o trabalho de treinamento com a GUI, execute o seguinte comando:

   ```
   deadline bundle gui-submit ./lora_training
   ```

   Ou, para enviar o trabalho de treinamento diretamente com a CLI, execute o seguinte comando:

   ```
   deadline bundle submit ./lora_training \
     --queue-id {{gpu-queue-id}} \
     --parameter DatasetPath=~/training_images \
     --parameter InstancePrompt="a photo of ohwx dog" \
     --parameter OutputDir=/tmp/lora_output \
     --parameter MaxTrainSteps=1500 \
     --parameter Resolution=512
   ```

1. Monitore o status do trabalho no console do Deadline Cloud ou usando o `deadline job get` comando.

### Parâmetros de treinamento
<a name="examples-flux2-training-params"></a>


**Parâmetros de treinamento**  

| Parâmetro | Description | Padrão | 
| --- | --- | --- | 
| Versão do modelo | flux.2-klein-base-4b ou flux.2-klein-4b | flux.2-klein-base-4b | 
| Caminho do conjunto de dados | Diretório contendo imagens de treinamento | — | 
| Prompt de instância | Texto descrevendo seu assunto | — | 
| Resolução | Resolução de imagem de treinamento em pixels | 512 | 
| Rede Dim | Classificação LoRa (maior = mais capacidade) | 16 | 
| Rede Alpha | Fator de escala LoRa alfa | 16 | 
| Etapas máximas de treinamento | Número de iterações de treinamento | 1500 | 
| Diretório de saída | Onde economizar pesos treinados | — | 

### Resultado de treinamento
<a name="examples-flux2-training-output"></a>

O trabalho de treinamento produz os seguintes artefatos:
+ `flux2_klein_lora.safetensors`— O adaptador LoRa treinado com metadados incorporados.
+ Pontos de verificação salvos a cada 300 etapas.

Para baixar a saída após a conclusão do treinamento, execute o seguinte comando:

```
deadline job download-output \
  --job-id {{training-job-id}} \
  --queue-id {{gpu-queue-id}}
```

## Envie o trabalho de geração de imagens
<a name="examples-flux2-submit-generation"></a>

**Para enviar o trabalho de geração de imagens**

1. Navegue até o `flux2_klein_lora` diretório em seu `deadline-cloud-samples` repositório clonado.

1. Para enviar o trabalho de geração de imagem com a GUI, execute o seguinte comando:

   ```
   deadline bundle gui-submit ./image_generation
   ```

   Ou, para enviar o trabalho de geração de imagem diretamente com a CLI, execute o seguinte comando:

   ```
   deadline bundle submit ./image_generation \
     --queue-id {{gpu-queue-id}} \
     --parameter LoRAPath=/tmp/lora_output/flux2_klein_lora.safetensors \
     --parameter Prompt="a photo of ohwx dog wearing a tuxedo" \
     --parameter OutputDir=/tmp/generated_images \
     --parameter NumImages=4
   ```

1. Monitore o status do trabalho no console do Deadline Cloud ou usando o `deadline job get` comando.

Quando `NumImages` é maior que 1, o Deadline Cloud distribui o trabalho entre vários trabalhadores para uma geração mais rápida.

### Parâmetros de geração
<a name="examples-flux2-generation-params"></a>


**Parâmetros de geração**  

| Parâmetro | Description | Padrão | 
| --- | --- | --- | 
| Caminho LoRa | Caminho para o .safetensors arquivo treinado | — | 
| Prompt | Descrição do texto (inclua sua palavra-gatilho) | — | 
| Número de imagens | Total de imagens a serem geradas | 1 | 
| Largura | Largura de saída em pixels | 1024 | 
| Altura | Altura de saída em pixels | 1024 | 
| Etapas de inferência | Número de etapas de redução de ruído | 50 | 
| Escala de orientação | Classifier-free escala de orientação | 4,0 | 

### Saída de geração
<a name="examples-flux2-generation-output"></a>

As imagens são salvas como `image_0001.png``image_0002.png`, e assim por diante. Para baixá-los, execute o seguinte comando:

```
deadline job download-output \
  --job-id {{generation-job-id}} \
  --queue-id {{gpu-queue-id}}
```

## Variantes do modelo
<a name="examples-flux2-model-variants"></a>


**FLUX.2 Variantes do modelo Klein**  

| Modelo | Parâmetros | Melhor para | 
| --- | --- | --- | 
| flux.2-klein-base-4b | 4B | Fine-tuning, uso comercial | 
| flux.2-klein-4b | 4B | Inferência rápida (4 etapas de redução de ruído) | 

## Recomendações de treinamento
<a name="examples-flux2-recommendations"></a>

As recomendações a seguir podem ajudar você a obter os melhores resultados:
+ **Tamanho do conjunto** de dados — 20 a 50 imagens de alta qualidade funcionam bem para a maioria dos assuntos.
+ **Resolução** — Use 512 para GPUs com 24 GB de VRAM. Resoluções mais altas exigem mais memória.
+ **Etapas de treinamento** — Comece com 1500. Aumente se os resultados não se assemelharem ao seu assunto.
+ **Diminuição da rede** — 16 é um bom padrão. Use 32 para conceitos complexos ou abstratos.
+ **Taxa de aprendizado** — O padrão de 1e-4 funciona bem na maioria dos casos.

## Fazer a limpeza.
<a name="examples-flux2-cleanup"></a>

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

**Para limpar os recursos de exemplo**

1. No console do Deadline Cloud, interrompa ou exclua a frota de GPU que você usou neste exemplo.

1. Exclua qualquer objeto do Amazon Simple Storage Service (Amazon S3) criado por anexos de trabalho se eles não forem mais necessários.

1. Remova os arquivos de saída locais se eles não forem mais necessários:

   ```
   rm -rf /tmp/lora_output /tmp/generated_images
   ```

## Recursos relacionados
<a name="examples-flux2-related"></a>

Os recursos a seguir fornecem informações adicionais:
+ [Exemplo de código-fonte em GitHub](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/flux2_klein_lora)
+ [FLUX.2Klein em Hugging Face](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B)
+ [Especificação do Open Job Description](https://github.com/OpenJobDescription/openjd-specifications)
+ [Documentação de difusores](https://huggingface.co/docs/diffusers)
+ [Orientação sobre arquitetura de nuvem com prazo](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/architecture-guidance.html)