ArtificialGuyBR

Home / Blog / Training LoRAs

Entrenamiento LoRA en SDXL: Colab vs alojados

Compara GPUs T4 gratuitas en Colab y Kaggle para entrenar LoRA en SDXL, entiende los tiempos de sesión y descubre alternativas alojadas.

11 sources cited Training LoRAs

Entrenamiento LoRA en SDXL: Colab vs alojados

TL;DR

  • GPU T4 gratuita: Colab y Kaggle ofrecen NVIDIA T4 (16 GB de VRAM). Kaggle brinda 2× T4 para entrenamiento con dos GPU; Colab da 1× T4.
  • Límites de sesión: Colab se desconecta tras 90 minutos de inactividad y limita a 12 horas. Las sesiones interactivas de Kaggle expiran tras 20 minutos de inactividad y el tiempo máximo de ejecución es de 12 horas.
  • Persistencia: Colab usa montajes de Google Drive (sobreviven al terminar la VM). Kaggle guarda /kaggle/working (20 GB) como salida del notebook; encadena notebooks para reusar archivos.
  • SDXL en T4: Usa --full_fp16 para que los estados del optimizador quepan en VRAM; añade --cache_latents --cache_latents_to_disk para acelerar mucho.
  • Alternativas alojadas: Civitai, Tensor.Art, Replicate y Hugging Face AutoTrain ofrecen entrenamiento de LoRA por web con pago por segundo.

Para más sobre persistencia de notebooks en Kaggle, consulta Guía de encadenamiento de notebooks en Kaggle.

Colab vs. Kaggle: hardware de GPU y cuotas

Tier | GPU Type | VRAM | Session Idle Timeout | Max Session Length | Weekly GPU Hours

|------|----------|------|---------------------|-------------------|------------------

Colab (free) | Tesla T4 | 16 GB | 90 minutes | 12 hours | Varies (no fixed quota) Colab Pro | Tesla T4 | 16–40 GB | 90 minutes | 24 hours | Unlimited compute units Kaggle (free) | 2× Tesla T4 | 16 GB each | 20 minutes | 12 hours | 30 hours / week

Ambas plataformas basan a los usuarios en GPU NVIDIA T4, pero el acelerador "T4 x2" de Kaggle aprovisiona dos tarjetas T4 físicas en un solo contenedor, lo que te da 29 GB de RAM y la capacidad de entrenar con múltiples GPU. El nivel gratuito de Colab ofrece una sola T4. Ninguna plataforma garantiza modelos específicos de GPU: el FAQ de Colab dice que los "tipos de GPU varían" según disponibilidad.

Verificación por teléfono obligatoria: Kaggle exige verificación de número telefónico para desbloquear el acceso a GPU. Las cuentas sin verificar reciben sesiones solo con CPU.

Fuentes de esta sección: Google Colab FAQ, Kaggle Notebooks docs.


Límites de sesión y persistencia

Colab: montaje de Drive sobre el sistema de archivos

El entorno de Colab termina tras 90 minutos de inactividad, pero tus archivos sobreviven mediante Google Drive. Monta tu Drive en /content/drive/MyDrive/ y guarda ahí los checkpoints:

from google.colab import drive
drive.mount('/content/drive')

La siguiente sesión vuelve a montar la misma ruta. Este patrón sirve para cualquier almacenamiento: LoRAs, datos de entrenamiento o pesos del modelo.

Kaggle: directorio de trabajo vs. almacenamiento temporal

Los notebooks de Kaggle ofrecen dos zonas de almacenamiento:

  • /kaggle/working — 20 GB guardados automáticamente. Los archivos aquí se vuelven una salida versionada; adjútalos como entrada a notebooks futuros.
  • /kaggle/temp — hasta 75 GB de espacio temporal, borrado al finalizar la sesión.

Descarga modelos grandes a /kaggle/temp/models/ para ahorrar espacio, pero copia las LoRAs finales a /kaggle/working/ antes de que expire la sesión.

Encadenamiento de notebooks para continuidad

La función de "encadenar notebooks" de Kaggle permite adjuntar la salida /kaggle/working de cualquier notebook como entrada de dataset. Es la única forma de conservar archivos grandes entre sesiones. Guarda tu checkpoint de LoRA y crea un notebook nuevo que lo importe como datos.


Configuración de entrenamiento SDXL con VRAM limitada

Para afinación detallada de hiperparámetros, consulta Guía de entrenamiento de SDXL.

Por qué --full_fp16 es necesario

La UNet de SDXL tiene ~2.6 mil millones de parámetros. En fp32, los pesos necesitan solo 10.4 GB. Suma activaciones y los estados del optimizador AdamW (8 bytes/param) y superas los 16 GB de VRAM.

--full_fp16 guarda los estados del optimizador en fp16 (2 bytes/param), reduciendo la memoria máxima aproximadamente a la mitad. El notebook de Kohya activa esto automáticamente para sesiones en T4.

Caché de latentes en disco

Las flags --cache_latents --cache_latents_to_disk precalculan y almacenan los embeddings latentes en disco en lugar de recalcularlos cada paso de entrenamiento. El notebook indica que esto da un "huge speed up" (gran aceleración). Setting | Effect

|---------|--------

--cache_latents | Mantiene los latentes en RAM (más rápido) --cache_latents_to_disk | Descarga los latentes al SSD (ahorra RAM) Usa ambas juntas en T4 para evitar OOM manteniendo una velocidad razonable.

El parche --lowram

Cuando el notebook detecta una GPU T4, parchea library/model_util.py para cambiar cuda→cpu durante la carga del modelo. Esto habilita el descargado a CPU para la carga inicial, evitando OOM antes de que empiece el entrenamiento.


Tipos de LoRA: qué soporta realmente el entrenador

El menú desplegable network_category (v14.6) de Kohya ofrece cuatro opciones:

Type | Description | Typical Use

|------|-------------|-------------

LoRA | Capas lineales + conv 1×1 | Por defecto; compatible con la mayoría de interfaces web LoCon | Agrega LoRA conv 3×3 | Mejor para rasgos espaciales LoCon_Lycoris | Variante LoCon de LyCORIS | Experimental LoHa | Representación por producto de Hadamard | Entrenamiento más lento

Tipos adicionales (IA³, LoKR, DyLoRA-Lycoris) existen en el ecosistema Kohya, pero requieren configuración manual de network_module + network_args y no están en el menú desplegable de la interfaz.


Entrenadores alojados: alternativas basadas en web

Cuando las sesiones en la nube expiran por tiempo, considera entrenadores alojados que gestionan el cómputo por ti.

Para análisis profundos de arquitectura, lee Detalles de implementación de LoRA.

Civitai: entrenamiento en el sitio

Civitai ofrece un entrenador de LoRA integrado. Desde cualquier página de modelo, pulsa el botón "Train" para lanzar un trabajo de entrenamiento en el pool de GPU de Civitai. Pagas con créditos de cómputo.

Tensor.Art: entrenamiento en línea

Tensor.Art ofrece cuota diaria gratuita para entrenamiento de LoRA/LoCon. Sube tu dataset, ajusta los parámetros y la plataforma entrena en GPU dedicadas. Los resultados se descargan automáticamente.

API de Replicate

El modelo ostris/sdxl-lora-trainer en Replicate permite entrenar mediante API. Pago por segundo de uso de GPU (A100/H100). Ideal para automatización o integración en pipelines.

Hugging Face AutoTrain

AutoTrain Advanced soporta entrenamiento de LoRA en SDXL en los clusters de GPU de HF. Apúntalo a tu dataset, elige hiperparámetros y deja que HF gestione el cómputo.

Fuentes de esta sección: Civitai Train, Tensor.Art, Replicate ostris/sdxl-lora-trainer, Hugging Face AutoTrain.


Errores comunes y soluciones

Síntoma | Causa | Solución

|---------|-------|-----

CUDA out of memory | Los estados de fp32 del optimizador superan 16 GB | Activa --full_fp16 ValueError: fp16 mixed precision requires a GPU | La configuración de Accelerate no ve GPU | En Q6 responde 0 (no all) El modelo no carga en T4 | Por defecto carga en GPU antes de entrenar | Aplica el parche lowram (sed -i 's@cpu@cuda@' library/model_util.py) La sesión de Kaggle muere y se pierde /kaggle/working | Se usó /kaggle/temp para salidas | Escribe checkpoints en /kaggle/working; encadena notebooks El montaje de Drive en Colab falla | OAuth bloqueado o scope incorrecto | Usa drive.mount('/content/drive', force_remount=True)

Fuentes de esta sección: sd-scripts README: naming de LoRA, Linaqruf/kohya-trainer README, kohya-LoRA-trainer-XL.ipynb, FurkanGozukara SDXL tutorial, FurkanGozukara A1111 tutorial.


Preguntas frecuentes (FAQ)

¿Por qué se desconecta mi Colab tras 90 minutos? La capa gratuita de Colab mata las sesiones inactivas tras 90 minutos. Activa "Keep alive" en el menú o usa una extensión del navegador para hacer ping al entorno. Para trabajos largos, divide el entrenamiento en partes pequeñas y guarda checkpoints con frecuencia.

¿Cómo conservo mis checkpoints de LoRA tras terminar una sesión de Kaggle? Guarda checkpoints en /kaggle/working/ en lugar de /kaggle/temp/. Tras la sesión, los archivos persisten como salida del notebook. Adjunta esa salida a un notebook nuevo como dataset para seguir entrenando.

¿Por qué Kohya muestra el doble de épocas que configuré? El mecanismo exacto no está documentado. La interfaz puede registrar pasos del optimizador en lugar de épocas, o contar los pases del codificador de texto y de la UNet. Revisa el registro de entrenamiento para ver el número real de pasos.

¿Puedo entrenar tipos IA³ o LoKR en el Colab de Linaqruf? No mediante el menú desplegable network_category. Estos tipos requieren configuración manual de network_module y network_args. El sd-scripts subyacente puede soportarlos, pero el notebook de Colab no los expone.

¿SDXL 0.9 sigue disponible en Hugging Face? SDXL 0.9 (stabilityai/stable-diffusion-xl-base-0.9) está deprecado. Los modelos base actuales son SDXL 1.0 (stabilityai/stable-diffusion-xl-base-1.0) y ajustes de la comunidad como AnimagineXL.

¿Qué diferencia hay entre --cache_latents y --cache_latents_to_disk? --cache_latents mantiene todos los latentes en RAM (más rápido, usa VRAM). --cache_latents_to_disk los escribe en SSD, liberando RAM. Usa ambos juntos en GPU T4 de 16 GB para evitar OOM.

¿Cuánto espacio de disco necesito para entrenar en Kaggle? /kaggle/working da 20 GB guardados automáticamente. Usa /kaggle/temp para hasta 75 GB de espacio temporal. Descarga modelos grandes a /kaggle/temp/models/, pero guarda las LoRAs finales en /kaggle/working/.


Sources

Source | What It Contributed

|--------|---------------------

Google Colab FAQ | Tiempo de inactividad de sesión (90 min), vida máxima de VM (12 h), límites Pro/Pro+ (24 h) Kaggle Notebooks docs | Inactividad 20 min, tiempo máximo 12 h, cuota 30 h/semana con dos T4, /kaggle/working 20 GB, /kaggle/temp espacio temporal kohya-ss/sd-scripts README | Nomenclatura LoRA-LierLa y LoRA-C3Lier, corrección accelerate fp16, contexto lowram Linaqruf/kohya-trainer README | Opciones del menú network_category (LoRA, LoCon, LoCon_Lycoris, LoHa), parche automático T4 Linaqruf/kohya-trainer XL notebook | URLs de modelo por defecto, lógica de carga diffusers, detección de hardware FurkanGozukara SDXL tutorial | Reclamo de 30 h/semana, --full_fp16, --cache_latents, temp frente a working dir FurkanGozukara A1111 tutorial | Patrón de persistencia de Drive y Dataset, configuración ControlNet Civitai Train page | Entrenador LoRA alojado existente, usa créditos de cómputo Tensor.Art | Función Online Training, cuota diaria gratuita Replicate ostris/sdxl-lora-trainer | Entrenamiento por API con pago por segundo Hugging Face AutoTrain | Soporte SDXL LoRA en clusters GPU de HF