Cómo entrenar un modelo LoRA para Stable Diffusion

Los modelos LoRA (Low-Rank Adaptation) permiten entrenar adaptaciones personalizadas de Stable Diffusion con menos recursos computacionales. Esta técnica te permite crear estilos únicos o generar imágenes de objetos específicos sin necesidad de entrenar un modelo completo desde cero.

  1. Instala las dependencias necesarias. Clona el repositorio kohya_ss desde GitHub y ejecuta `git clone https://github.com/bmaltais/kohya_ss.git`. Instala Python 3.10.6 y ejecuta `pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118` para CUDA 11.8. Navega al directorio clonado y ejecuta `python setup.py` para completar la instalación.
  2. Prepara tu dataset de imágenes. Crea una carpeta con 15-50 imágenes de alta calidad (mínimo 512x512 píxeles) del concepto que quieres entrenar. Renombra las imágenes usando el formato `numero_concepto.extensión` (ej: `1_perro.jpg`). Las imágenes deben mostrar el objeto desde diferentes ángulos y con variaciones en iluminación y contexto.
  3. Configura la estructura de directorios. Crea la carpeta `train_data/100_concepto` dentro del directorio de kohya_ss, donde `100` es el número de repeticiones y `concepto` es tu palabra clave. Coloca todas tus imágenes preparadas en esta carpeta. Crea también las carpetas `output` y `log` en el directorio principal para guardar los resultados.
  4. Genera los captions automáticamente. Ejecuta `python finetune/tag_images_by_wd14_tagger.py --batch_size 4 train_data` para generar etiquetas automáticas. Luego ejecuta `python finetune/prepare_buckets_latents.py train_data output/model.safetensors --batch_size 4 --max_resolution 768,768` para pre-procesar las imágenes y crear los buckets de resolución.
  5. Configura los parámetros de entrenamiento. Crea un archivo `config.toml` con los parámetros: `learning_rate = 1e-4`, `train_batch_size = 1`, `max_train_steps = 1000`, `save_every_n_epochs = 10`, `network_dim = 32`, `network_alpha = 32`. Ajusta `max_train_steps` según tu dataset: multiplica el número de imágenes por repeticiones y divide por batch_size.
  6. Inicia el proceso de entrenamiento. Ejecuta `python train_network.py --config_file config.toml --pretrained_model_name_or_path runwayml/stable-diffusion-v1-5 --train_data_dir train_data --output_dir output --network_module networks.lora`. El entrenamiento comenzará y verás el progreso en la consola. Los modelos se guardarán automáticamente según la configuración establecida.
  7. Prueba y ajusta el modelo entrenado. Carga el archivo `.safetensors` generado en tu interfaz de Stable Diffusion (Automatic1111, ComfyUI). Usa prompts que incluyan tu palabra clave de entrenamiento con un peso de 0.7-1.0 (ej: `<lora:modelo:0.8>`). Experimenta con diferentes prompts y ajusta el peso según los resultados obtenidos.

Related

  • Cómo transcribir reuniones usando inteligencia artificial
  • Cómo usar IA para traducir voz en tiempo real
  • Cómo generar narración con IA para audiolibros
  • Cómo generar narración con IA para YouTube
  • Cómo limpiar audio con la IA de Adobe Podcast
  • Cómo editar audio con inteligencia artificial usando Descript