LUMINA2.es
Guía rápida de Lumina2¶
En este ejemplo, entrenaremos un LoRA de Lumina2 o un ajuste fino de modelo completo.
Requisitos de hardware¶
Lumina2 es un modelo de 2B parámetros, lo que lo hace mucho más accesible que modelos más grandes como Flux o SD3. El tamaño más pequeño del modelo implica:
Al entrenar un LoRA de rango 16, usa: - Aproximadamente 12-14GB de VRAM para entrenamiento LoRA - Aproximadamente 16-20GB de VRAM para ajuste fino completo - Aproximadamente 20-30GB de RAM del sistema durante el arranque
Necesitarás: - Mínimo: Una sola RTX 3060 12GB o RTX 4060 Ti 16GB - Recomendado: RTX 3090, RTX 4090 o A100 para entrenamiento más rápido - RAM del sistema: Al menos 32GB recomendados
Requisitos previos¶
Asegúrate de tener python instalado; SimpleTuner funciona bien con 3.10 a 3.12.
Puedes comprobarlo ejecutando:
Si no tienes python 3.12 instalado en Ubuntu, puedes intentar lo siguiente:
Dependencias de la imagen de contenedor¶
Para Vast, RunPod y TensorDock (entre otros), lo siguiente funcionará en una imagen CUDA 12.2-12.8:
Instalación¶
Instala SimpleTuner vía pip:
pip install 'simpletuner[cuda]'
# CUDA 13 / Blackwell users (NVIDIA B-series GPUs)
pip install 'simpletuner[cuda13]' --extra-index-url https://download.pytorch.org/whl/cu130
Para instalación manual o entorno de desarrollo, consulta la documentación de instalación.
Configuración del entorno¶
Para ejecutar SimpleTuner, necesitas configurar un archivo de configuración, los directorios del dataset y del modelo, y un archivo de configuración del dataloader.
Archivo de configuración¶
Copia config/config.json.example a config/config.json:
Allí, necesitarás modificar las siguientes variables:
model_type- Configúralo enlorapara entrenamiento LoRA ofullpara ajuste fino completo.model_family- Configúralo enlumina2.output_dir- Configúralo al directorio donde quieres guardar tus checkpoints y las imágenes de validación. Se recomienda usar una ruta completa aquí.train_batch_size- Puede ser 1-4 según la memoria de tu GPU y el tamaño del dataset.validation_resolution- Lumina2 soporta múltiples resoluciones. Opciones comunes:1024x1024,512x512,768x768.validation_guidance- Lumina2 usa classifier-free guidance. Valores de 3.5-7.0 funcionan bien.validation_num_inference_steps- 20-30 pasos funcionan bien para Lumina2.gradient_accumulation_steps- Puede usarse para simular tamaños de lote mayores. Un valor de 2-4 funciona bien.optimizer- Se recomiendaadamw_bf16.lionyoptimi-stableadamwtambién funcionan bien.mixed_precision- Mantén esto enbf16para mejores resultados.gradient_checkpointing- Configúralo entruepara ahorrar VRAM.learning_rate- Para LoRA:1e-4a5e-5. Para ajuste fino completo:1e-5a1e-6.
Configuración de ejemplo de Lumina2¶
Esto va en config.json
Ver ejemplo de config
{
"base_model_precision": "int8-torchao",
"checkpoint_step_interval": 50,
"data_backend_config": "config/lumina2/multidatabackend.json",
"disable_bucket_pruning": true,
"eval_steps_interval": 50,
"evaluation_type": "clip",
"flow_schedule_auto_shift": true,
"gradient_checkpointing": true,
"hub_model_id": "lumina2-lora",
"learning_rate": 1e-4,
"lora_alpha": 16,
"lora_rank": 16,
"lora_type": "standard",
"lr_scheduler": "constant",
"max_train_steps": 400000,
"model_family": "lumina2",
"model_type": "lora",
"num_train_epochs": 0,
"optimizer": "adamw_bf16",
"output_dir": "output/lumina2",
"push_checkpoints_to_hub": true,
"push_to_hub": true,
"quantize_via": "cpu",
"report_to": "wandb",
"seed": 42,
"tracker_project_name": "lumina2-training",
"tracker_run_name": "lumina2-lora",
"train_batch_size": 4,
"use_ema": true,
"vae_batch_size": 1,
"validation_disable_unconditional": true,
"validation_guidance": 4.0,
"validation_guidance_rescale": 0.0,
"validation_negative_prompt": "ugly, cropped, blurry, low-quality, mediocre average",
"validation_num_inference_steps": 40,
"validation_prompt": "A photo-realistic image of a cat",
"validation_prompt_library": false,
"validation_resolution": "1024x1024",
"validation_seed": 42,
"validation_step_interval": 50
}
Para entrenamiento Lycoris, cambia lora_type a lycoris
Funciones experimentales avanzadas¶
Mostrar detalles experimentales avanzados
SimpleTuner incluye funciones experimentales que pueden mejorar significativamente la estabilidad y el rendimiento del entrenamiento. * **[Scheduled Sampling (Rollout)](../experimental/SCHEDULED_SAMPLING.md):** reduce el sesgo de exposición y mejora la calidad de la salida al permitir que el modelo genere sus propias entradas durante el entrenamiento. > ⚠️ Estas funciones aumentan la sobrecarga computacional del entrenamiento. #### Prompts de validación Dentro de `config/config.json` está el "prompt de validación principal". Además, crea un archivo de biblioteca de prompts:{
"portrait": "a high-quality portrait photograph with natural lighting",
"landscape": "a breathtaking landscape photograph with dramatic lighting",
"artistic": "an artistic rendering with vibrant colors and creative composition",
"detailed": "a highly detailed image with sharp focus and rich textures",
"stylized": "a stylized illustration with unique artistic flair"
}
[
{
"id": "lumina2-training",
"type": "local",
"crop": true,
"crop_aspect": "square",
"crop_style": "center",
"resolution": 1024,
"minimum_image_size": 512,
"maximum_image_size": 2048,
"target_downsample_size": 1024,
"resolution_type": "pixel_area",
"cache_dir_vae": "cache/vae/lumina2/training",
"instance_data_dir": "/datasets/training",
"caption_strategy": "textfile",
"metadata_backend": "discovery"
},
{
"id": "text-embeds",
"type": "local",
"dataset_type": "text_embeds",
"default": true,
"cache_dir": "cache/text/lumina2",
"disabled": false,
"write_batch_size": 128
}
]