View a markdown version of this page

FLUX.2 Perfeccionamiento y generación de imágenes de Klein LoRa - Deadline Cloud

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 Perfeccionamiento y generación de imágenes de Klein LoRa

Este ejemplo demuestra cómo ajustar un modelo de generación de imágenes de FLUX.2 Klein mediante LoRa (Low-Rank adaptación) y generar imágenes a escala en Deadline Cloud. El flujo de trabajo entrena un adaptador ligero a partir de un pequeño conjunto de datos de imágenes. 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 https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/flux2_klein_lora 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 trabajos:

  1. lora_training: Fine-tunes FLUX.2 Klein en tu conjunto de datos de imágenes usando LoRa y produce un archivo adaptador. .safetensors

  2. image_generation: carga el modelo base con tu adaptador entrenado y genera imágenes a partir de indicaciones de texto. Al generar varias imágenes, el trabajo se realiza de forma paralela entre los trabajadores.

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

Los paquetes de trabajo utilizan los difusores y las bibliotecas peft para el entrenamiento y la inferencia.

Para completar este ejemplo, sigue estos pasos:

  1. Cumplir los requisitos previos de .

  2. Prepara los datos de entrenamiento.

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

  4. Envía 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 más de 64 GiB de memoria de sistema).

  • 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 de su asignatura (.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 tus datos de entrenamiento
  1. Crea un directorio que contenga imágenes de tu asignatura. Para obtener mejores resultados, usa de 20 a 50 imágenes con poses, iluminación y fondos variados.

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

    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 símbolo que no entra en conflicto con el conocimiento existente sobre el modelo.

Envía el trabajo de formación

Para enviar el trabajo de formación
  1. Navega hasta el flux2_klein_lora directorio de tu 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 capacitación directamente con la CLI, ejecute el siguiente comando:

    deadline bundle submit ./lora_training \ --queue-id gpu-queue-id \ --parameter DatasetPath="$HOME/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 Ninguno
Símbolo de instancia Texto que describe su tema Ninguno
Resolución Resolución de imágenes de entrenamiento en píxeles 512
Red Dim Rango LoRa (más alto = más capacidad) 16
Red Alpha Factor de escalado alfa de LoRa 16
Pasos máximos de entrenamiento Número de iteraciones de entrenamiento 1500
Directorio de salida ¿Dónde guardar las pesas entrenadas Ninguno

Salida del entrenamiento

El trabajo de entrenamiento produce los siguientes artefactos:

  • flux2_klein_lora.safetensors— El adaptador LoRa capacitado con metadatos integrados.

  • 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. Navega hasta el flux2_klein_lora directorio de tu 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 superior a 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 Ninguno
Petición Descripción textual (incluye tu palabra clave) Ninguno
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, ejecuta 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 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.

  • La atenuación de red: 16 es un buen valor predeterminado. 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, borra 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 mediante archivos adjuntos de trabajos si ya no los necesita.

  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: