View a markdown version of this page

FLUX.2 Ajuste fino y generación de imágenes de Klein LoRa - Nube de plazos

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

FLUX.2 Ajuste fino y generación de imágenes de Klein LoRa

En este ejemplo se muestra cómo ajustar un modelo de generación de imágenes de FLUX.2 Klein mediante LoRa (Low-Rank Adaptation) y cómo generar imágenes a escala en Deadline Cloud. El flujo de trabajo entrena un adaptador ligero a partir de un conjunto de datos de imágenes pequeño. A continuación, utiliza ese adaptador para generar nuevas imágenes a partir de mensajes de texto, todo ello organizado como tareas de Deadline Cloud en una flota de GPU.

El código fuente de este ejemplo está disponible en el repositorio deadline-cloud-samples en. GitHub

El siguiente vídeo muestra el flujo de trabajo de FLUX.2 Klein LoRa en Deadline Cloud.

Tiempo estimado: 30 a 60 minutos (incluidos 15 a 45 minutos para el entrenamiento).

Descripción general de

El ejemplo consta de dos paquetes de tareas:

  1. lora_training: Fine-tunes FLUX.2Klein utiliza LoRa para crear un archivo adaptador en su conjunto de datos de imágenes. .safetensors

  2. image_generation: carga el modelo base con su adaptador entrenado y genera imágenes a partir de instrucciones de texto. Al generar varias imágenes, el trabajo se paraleliza entre los trabajadores.

LoRa es una técnica de ajuste preciso y eficiente en cuanto a parámetros que utiliza un adaptador pequeño en lugar de modificar todos los pesos del modelo. Este enfoque hace que el entrenamiento sea rápido (de 15 a 45 minutos en una sola GPU) y que el adaptador resultante sea portátil y fácil de versionar.

Los paquetes de tareas utilizan los difusores y las bibliotecas left para el entrenamiento y la inferencia.

Para completar este ejemplo, siga estos pasos:

  1. Cumplir los requisitos previos de .

  2. Prepara los datos de entrenamiento.

  3. Envíe el trabajo de formación.

  4. Envíe el trabajo de generación de imágenes.

  5. Eliminación de recursos.

Requisitos previos

Antes de comenzar, asegúrese de que dispone de lo siguiente:

  • Una granja de Deadline Cloud con una flota de GPU (Linuxse recomienda una GPU NVIDIA A10G, más de 13 GB de VRAM y una memoria de sistema de 64 GiB o más).

  • Una cola asociada a la flota de GPU.

  • La CLI de Deadline Cloud instalada en su estación de trabajo.

  • De 20 a 50 imágenes de entrenamiento del sujeto (.jpg, .png.jpeg, o). .webp

Estructura del paquete de trabajos

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 los datos de entrenamiento

Para preparar los datos de entrenamiento
  1. Crea un directorio que contenga imágenes de tu tema. Para obtener los mejores resultados, utiliza entre 20 y 50 imágenes con diferentes poses, luces y fondos.

  2. Si lo desea, puede incluir un archivo de .txt subtítulos junto a cada imagen para obtener un entrenamiento más matizado:

    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"

    Si no hay ningún archivo de subtítulos, el script de entrenamiento los genera automáticamente mediante el parámetro instance prompt. Los subtítulos personalizados producen resultados de mayor calidad porque enseñan al modelo asociaciones más específicas entre la palabra clave y las características visuales.

  3. Elige una palabra clave única (por ejemplo,). ohwx Esto vincula el concepto aprendido a un elemento que no entra en conflicto con el conocimiento existente sobre el modelo.

Envíe el trabajo de formación

Para enviar el trabajo de formación
  1. Navegue hasta el flux2_klein_lora directorio del deadline-cloud-samples repositorio clonado.

  2. Para enviar el trabajo de formación con la GUI, ejecute el siguiente comando:

    deadline bundle gui-submit ./lora_training

    O bien, para enviar el trabajo de formación directamente con la CLI, ejecute el siguiente 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. Supervise el estado del trabajo en la consola de Deadline Cloud o mediante el deadline job get comando.

Parámetros de entrenamiento

Parámetros de entrenamiento
Parámetro Description (Descripción) Predeterminado
Versión del modelo flux.2-klein-base-4b o flux.2-klein-4b flux.2-klein-base-4b
Ruta del conjunto de datos Directorio que contiene imágenes de entrenamiento
Instance Prompt Texto que describe el tema
Resolución Resolución de la imagen de entrenamiento en píxeles 512
Network Dim Rango LoRa (más alto = más capacidad) 16
Red Alpha Factor de escalado alfa de LoRa 16
Pasos de entrenamiento máximos Número de iteraciones de entrenamiento 1500
Directorio de salida ¿Dónde guardar las pesas entrenadas

Salida del entrenamiento

El trabajo de entrenamiento produce los siguientes artefactos:

  • flux2_klein_lora.safetensors— El adaptador LoRa entrenado con metadatos incrustados.

  • Los puntos de control se guardan cada 300 pasos.

Para descargar el resultado una vez finalizado el entrenamiento, ejecuta el siguiente comando:

deadline job download-output \ --job-id training-job-id \ --queue-id gpu-queue-id

Envíe el trabajo de generación de imágenes

Para enviar el trabajo de generación de imágenes
  1. Navegue hasta el flux2_klein_lora directorio del deadline-cloud-samples repositorio clonado.

  2. Para enviar el trabajo de generación de imágenes con la GUI, ejecute el siguiente comando:

    deadline bundle gui-submit ./image_generation

    O bien, para enviar el trabajo de generación de imágenes directamente con la CLI, ejecute el siguiente 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. Supervise el estado del trabajo en la consola de Deadline Cloud o mediante el deadline job get comando.

Cuando NumImages es mayor que 1, Deadline Cloud distribuye el trabajo entre varios trabajadores para una generación más rápida.

Parámetros de generación

Parámetros de generación
Parámetro Description (Descripción) Predeterminado
Ruta LoRa Ruta al archivo entrenado .safetensors
Petición Descripción del texto (incluye la palabra clave)
Número de imágenes Total de imágenes a generar 1
Ancho Ancho de salida en píxeles 1024
Alto Altura de salida en píxeles 1024
Pasos de inferencia Número de pasos de eliminación de ruido 50
Escala orientativa Classifier-free escala de orientación 4.0

Salida de generación

Las imágenes se guardan como image_0001.pngimage_0002.png, y así sucesivamente. Para descargarlas, ejecute el siguiente comando:

deadline job download-output \ --job-id generation-job-id \ --queue-id gpu-queue-id

Variantes del modelo

FLUX.2 Variantes del modelo Klein
Modelo Parameters Lo mejor para
flux.2-klein-base-4b 4B Fine-tuning, uso comercial
flux.2-klein-4b 4B Inferencia rápida (4 pasos de eliminación de ruido)

Recomendaciones de formación

Las siguientes recomendaciones pueden ayudarle a obtener los mejores resultados:

  • Tamaño del conjunto de datos: entre 20 y 50 imágenes de alta calidad funcionan bien para la mayoría de los sujetos.

  • Resolución: utilice 512 para las GPU con 24 GB de VRAM. Las resoluciones más altas requieren más memoria.

  • Pasos de entrenamiento: comience con 1500. Aumente si los resultados no se parecen a los del sujeto.

  • Atenuación de red: 16 es un valor predeterminado válido. Utilice 32 para conceptos complejos o abstractos.

  • Tasa de aprendizaje: el valor predeterminado de 1e-4 funciona bien en la mayoría de los casos.

Limpieza

Para evitar cargos continuos, limpia los recursos que creaste para este ejemplo:

Para limpiar los recursos de ejemplo
  1. En la consola de Deadline Cloud, detenga o elimine la flota de GPU que utilizó para este ejemplo.

  2. Elimine todos los objetos de Amazon Simple Storage Service (Amazon S3) creados por los adjuntos de trabajo si ya no son necesarios.

  3. Elimine los archivos de salida locales si ya no los necesita:

    rm -rf /tmp/lora_output /tmp/generated_images

Los siguientes recursos proporcionan información adicional: