AI Toolkit CUDA Out of Memory: solucionar OOM durante carga del modelo, entrenamiento y muestreo
Si tu trabajo de AI Toolkit falla con CUDA out of memory, OOM during training step 3 times in a row o 0 bytes is free, no sigas relanzando el mismo trabajo sin cambios.
En la práctica, la mayoría de los fallos OOM en AI Toolkit vienen de uno de estos cuatro puntos:
- carga del modelo (antes de que comience el entrenamiento real)
- los primeros pasos de entrenamiento
- muestreo de vista previa / generación de sample de referencia
- picos específicos de vídeo por demasiados frames, buckets demasiado grandes, o ambos
Esta guía es el camino rápido de recuperación: identifica qué tipo de OOM tienes, cambia los ajustes correctos en RunComfy AI Toolkit y llega a un reintento exitoso más rápido.
Checklist rápido (empieza aquí)
- ✅ En Training, reduce el Batch Size
- ✅ En Datasets, desactiva el bucket de resolución más alto primero
- ✅ En Sample, reduce Width / Height / Sample Steps o activa temporalmente Disable Sampling
- ✅ Haz clic en Show Advanced y asegúrate de que
gradient_checkpointing: true - ✅ Para modelos de vídeo, reduce Num Frames antes de tocar el learning rate
- ✅ Si el error ocurre incluso con una config muy conservadora, trátalo como un posible problema de estado del worker / GPU, no solo de configuración
1) Confirmar que es el mismo problema
Estás en el lugar correcto si tus logs incluyen mensajes como:
CUDA out of memory
torch.OutOfMemoryError
OOM during training step 3 times in a row
Tried to allocate ...
0 bytes is free
CUBLAS_STATUS_ALLOC_FAILED
Situaciones habituales:
- el trabajo falla antes del paso 1
- el trabajo llega al paso 2–10 y luego entra en OOM repetidamente
- el entrenamiento parece ir bien, pero el crash ocurre al generar samples
- la misma config a veces funciona, a veces no
2) Primero: ¿qué tipo de OOM es?
A. OOM durante la carga del modelo o antes de entrenar
Normalmente significa una de estas cosas:
- el modelo es demasiado pesado para el setup actual de ahorro de memoria
- la generación del sample de referencia / vista previa ya es demasiado cara
- el worker / GPU está en mal estado y no parte de memoria limpia
Señales típicas:
- fallo antes de que empiecen pasos de entrenamiento significativos
- el error ocurre justo después de cargar el modelo o durante el primer sample
- los logs muestran casi nada de VRAM libre o un error CUBLAS de asignación
B. OOM en los primeros pasos de entrenamiento
Es el caso más común causado por configuración.
Causas típicas:
gradient_checkpointingestá desactivado- Batch Size demasiado alto
- el bucket de dataset más grande es demasiado ambicioso
- para vídeo, Num Frames es el verdadero pico de memoria
C. OOM durante muestreo / generación de vista previa
Es una trampa muy común.
Tu config de entrenamiento puede ser casi viable, pero la vista previa es demasiado cara:
- Sample Width / Height demasiado grande
- Sample Steps demasiado alto
- Sample Every demasiado frecuente
- el vídeo de vista previa usa demasiados frames
D. OOM solo a veces
Normalmente es una config límite, no un misterio.
Ejemplos:
- el entrenamiento sobrevive con buckets pequeños pero falla con el bucket más grande
- los entrenamientos de vídeo fallan solo con los clips más pesados
- el entrenamiento cabe, pero la generación de samples lo empuja al límite
3) Fixes más rápidos en RunComfy AI Toolkit
Fix A — Reactivar gradient checkpointing
Es lo primero que comprobar en OOMs de modelos de imagen.
Dónde cambiarlo
- Abre el trabajo fallido
- Haz clic en Show Advanced
- Bajo
train:, asegúrate de que:
gradient_checkpointing: true
Si no estás seguro, déjalo activado.
Fix B — Bajar Batch Size, usar Gradient Accumulation para estabilidad
Dónde cambiarlo
- Abre el editor del trabajo
- En el panel Training:
- reduce el Batch Size
- mantén o sube Gradient Accumulation si quieres un batch efectivo ligeramente mayor sin aumentar el pico de VRAM
Regla de reintento seguro
- Modelos de imagen: si tienes OOM, baja a Batch Size = 1 primero
- Modelos de vídeo: asume Batch Size = 1 como tu valor por defecto salvo que la config ya se haya demostrado estable
No trates el learning rate como tu primera palanca de memoria. Normalmente no lo es.
Fix C — Eliminar primero el bucket de dataset más alto
Dónde cambiarlo
- Ve al panel Datasets
- En Resolutions, desactiva el bucket más alto primero
Orden de rollback seguro
- 1024 / 1536 → eliminar primero
- mantener 512 / 768 mientras verificas estabilidad
- una vez estable, añadir buckets más grandes uno a uno
Es una de las formas más rápidas de convertir un entrenamiento límite en uno reproducible.
Fix D — Hacer barato el muestreo de vista previa, o desactivarlo temporalmente
Si el crash ocurre antes de que el entrenamiento arranque, o cada vez que se ejecuta el muestreo, arregla primero la vista previa.
Dónde cambiarlo
- Abre el panel Sample
Luego haz una o más de estas cosas:
- reduce Width
- reduce Height
- reduce Sample Steps
- aumenta Sample Every
- activa Disable Sampling para un run de validación
Buen primer reintento
Si tu objetivo es "probar que el trabajo puede entrenar", un run temporal sin muestreo está bien.
Una vez estable, reactiva las vistas previas con ajustes más pequeños.
Fix E — Modelos de vídeo: reducir Num Frames antes que nada
Para modelos de vídeo, los frames suelen ser la mayor palanca de memoria.
Dónde cambiarlo
- Panel Datasets → Num Frames
- Panel Sample → Num Frames
Si estás entrenando vídeo y ves OOM, reduce frames primero, luego batch size, luego resolución.
No empieces cambiando el optimizer o el LR.
Fix F — Usar la ruta de baja memoria del modelo
Algunas arquitecturas están diseñadas para entrenarse con ajustes de ahorro de memoria cuando la VRAM es justa.
Dónde cambiarlo
- Haz clic en Show Advanced
- Bajo
model:, busca:
low_vram: true
Para algunos modelos, la ruta correcta también incluye cuantización específica o manejo del text-encoder. Sigue la guía del modelo correspondiente en lugar de adivinar.
4) Diagnóstico rápido por momento del fallo
| Cuándo falla | Causa más probable | Primer cambio |
|---|---|---|
| Antes del paso 1 / durante el sample inicial | vista previa muy pesada, presión en carga de modelo o worker sucio | desactivar muestreo o reducir vista previa |
| Paso 1–10 | GC desactivado, batch muy alto, bucket muy grande | activar GC, batch a 1, eliminar bucket más grande |
| Solo al muestrear | ajustes de vista previa demasiado caros | bajar Width/Height/Sample Steps o desactivar muestreo |
| A veces sí, a veces no | config límite | reducir bucket / frames más grande y estabilizar |
| Config conservadora falla al instante | posible problema de estado GPU / worker | recrear en worker limpio o contactar soporte |
5) Cómo distinguir OOM de config de problemas de entorno / estado de GPU
Trátalo como no solo un problema de config cuando todo esto sea cierto:
- Batch Size = 1
gradient_checkpointing: true- resolución / frames conservadores
- el trabajo aún falla antes de que el entrenamiento comience de forma significativa
- los logs muestran
0 bytes is freeo fallo de asignación CUBLAS
En esa situación:
- dejar de repetir el mismo reintento
- crear un nuevo intento en un worker limpio si es posible
- si la misma config conservadora funcionaba antes y ahora falla al instante, escalar a soporte
Esto importa porque los reintentos repetidos pueden desperdiciar tanto tiempo como presupuesto de GPU.
6) El orden de rollback más seguro
Para modelos de imagen
gradient_checkpointing: true- Batch Size → 1
- eliminar el bucket de resolución más grande
- reducir o desactivar Sample
- activar low_vram o la ruta de baja memoria del modelo
Para modelos de vídeo
- reducir Num Frames
- Batch Size → 1
- eliminar el bucket de resolución más grande
- reducir o desactivar Sample
- activar low_vram o offloading / cuantización específica del modelo
7) Después del primer reintento exitoso
Una vez que tengas un run estable:
- añade de vuelta solo un ajuste más pesado a la vez
- anota qué cambiaste
- no reintroduzcas múltiples ajustes de alto riesgo juntos
Buen orden para escalar:
- mantener los mismos ajustes de memoria estables
- aumentar Steps
- reactivar un bucket más grande
- reactivar muestreo más rico
- solo entonces probar batch más grande o vídeo más largo
Resumen en una línea
Si AI Toolkit da OOM, deja de probar al azar.
Activa gradient_checkpointing, baja el Batch Size, elimina el bucket de resolución más grande y abarata el muestreo de vista previa antes de reintentar.
Guías relacionadas
Ready to start training?
