Practical research · explicit evidence

SDXL con poca VRAM: diagnosticar errores y comparar cambios en ComfyUI

Empieza por identificar dónde falla el flujo: carga del modelo, muestreo, decodificación o ampliación. Después compara una sola modificación con una configuración de referencia. Una reducción de memoria no implica automáticamente más velocidad.

Published 2026-01-22 ·

Primero, localiza el fallo

SíntomaPrimera comprobaciónLímite de la conclusión
El modelo no termina de cargarComprueba el archivo, su arquitectura y el mensaje exacto del registro.Un error de formato o dependencia no se soluciona necesariamente con más VRAM.
Fallo durante el muestreoPrueba un lote de una imagen sin cambiar el modelo ni la resolución.Que este lote funcione no demuestra que un lote mayor vaya a caber.
El muestreo acaba, pero no aparece la imagenIdentifica si está fallando el VAE, un ampliador o el guardado.No atribuyas todos los fallos al muestreador.
El proceso termina, pero tarda muchoSepara la primera ejecución de las repeticiones con el modelo ya cargado.El tiempo de arranque no equivale al tiempo de generación sostenida.

Cierra otras tareas que utilicen la GPU cuando quieras comparar condiciones. Anota también la RAM disponible: una configuración que desplaza trabajo fuera de la GPU puede trasladar la presión a la memoria del sistema.

Una prueba pequeña que puedas repetir

  1. Guarda el flujo de referencia. Fija modelo, prompt, semilla, dimensiones, lote, pasos, sampler y scheduler.
  2. Anota GPU, controlador, sistema operativo, versiones de Python y PyTorch, revisión de ComfyUI y revisiones de los nodos personalizados.
  3. Separa el arranque en frío. Realiza un calentamiento y cinco intentos medidos, conservando los fallos.
  4. Cambia una sola condición. Reinicia entre configuraciones de lanzamiento y repite con los mismos límites de tiempo.
  5. Compara mediana, rango, tasa de éxito y calidad del resultado. No presentes solo el intento más rápido.

En una instalación manual, puedes comprobar estas opciones documentadas con la ayuda de tu versión instalada. Son condiciones alternativas para comparar; no hay que ejecutar ambas aplicaciones a la vez.

python main.py --lowvram
python main.py --preview-method none

Si reduces la resolución, ya no estás midiendo exactamente el mismo trabajo. Esa solución puede ser válida para tu objetivo, pero debes declararlo. Tampoco conviene instalar varias bibliotecas de atención y cambiar el controlador en el mismo experimento: perderías la explicación del resultado.

Registra medidas que puedas interpretar

El consumo del dispositivo y el pico del asignador de PyTorch son medidas distintas. nvidia-smi observa el dispositivo; su máximo depende del intervalo de muestreo y puede incluir otros procesos. El pico de PyTorch debe obtenerse dentro del proceso que ejecuta el flujo. Una consola Python independiente no mide el pico de ComfyUI.

nvidia-smi --query-gpu=timestamp,name,memory.used,utilization.gpu --format=csv -l 1

El ejemplo toma una muestra por segundo en sistemas NVIDIA compatibles. Guarda el registro junto al flujo y detén la consulta al terminar. No sumes ambas medidas de memoria como si fueran capacidades independientes.

Descargar plantilla CSV vacía

La plantilla contiene encabezados en inglés para facilitar comparaciones: condition es la condición; end_to_end_seconds, el tiempo total; device_peak_sampled_mib, el máximo observado del dispositivo; y quality_accepted, la aceptación visual. No contiene resultados medidos.

Ejemplo de decisión, sin cifras inventadas

Si una configuración termina las cinco veces y otra falla durante la decodificación, registra esa diferencia antes de comparar tiempos. Si ambas terminan, revisa que produzcan resultados aceptables con el mismo criterio. Una imagen más pequeña o visiblemente distinta no demuestra por sí sola una mejora del flujo original.

Consultar el protocolo completo de medición · Diagnóstico de RTX por etapas, en inglés

Fuentes primarias