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.
Primero, localiza el fallo
| Síntoma | Primera comprobación | Límite de la conclusión |
|---|---|---|
| El modelo no termina de cargar | Comprueba 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 muestreo | Prueba 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 imagen | Identifica si está fallando el VAE, un ampliador o el guardado. | No atribuyas todos los fallos al muestreador. |
| El proceso termina, pero tarda mucho | Separa 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
- Guarda el flujo de referencia. Fija modelo, prompt, semilla, dimensiones, lote, pasos, sampler y scheduler.
- Anota GPU, controlador, sistema operativo, versiones de Python y PyTorch, revisión de ComfyUI y revisiones de los nodos personalizados.
- Separa el arranque en frío. Realiza un calentamiento y cinco intentos medidos, conservando los fallos.
- Cambia una sola condición. Reinicia entre configuraciones de lanzamiento y repite con los mismos límites de tiempo.
- 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 noneSi 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 1El 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.
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