View a markdown version of this page

FLUX.2 Ajuste fino e geração de imagens do Klein LoRa - Nuvem de prazos

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

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 em. GitHub

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

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

Visão geral do

O exemplo consiste em dois pacotes de tarefas:

  1. lora_training — Fine-tunes FLUX.2Klein em seu conjunto de dados de imagem usando LoRa, produzindo um arquivo adaptador. .safetensors

  2. 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 e bibliotecas PEFT para treinamento e inferência.

Para concluir este exemplo, siga estas etapas:

  1. Concluir os pré-requisitos do .

  2. Prepare os dados de treinamento.

  3. Envie o trabalho de treinamento.

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

  5. Limpe recursos.

Pré-requisitos

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

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

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.

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

  3. Escolha uma palavra de gatilho exclusiva (comoohwx). 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

Para enviar o trabalho de treinamento
  1. Navegue até o flux2_klein_lora diretório em seu deadline-cloud-samples repositório clonado.

  2. 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
  3. Monitore o status do trabalho no console do Deadline Cloud ou usando o deadline job get comando.

Parâmetros de treinamento

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

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

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.

  2. 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
  3. 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

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

As imagens são salvas como image_0001.pngimage_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

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

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.

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.

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

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

    rm -rf /tmp/lora_output /tmp/generated_images

Os recursos a seguir fornecem informações adicionais: