Investigación de 42.uk Research

Escalado de inferencia local: Optimización de Flux y SDXL con...

1.912 palabras 10 min de lectura SS 98

Una guía técnica para maximizar la eficiencia de la GPU en flujos de trabajo de ComfyUI utilizando SageAttention, Tiled VAE y bloque transformer...

Escalado de inferencia local: Optimización de flujos de trabajo de Flux y SDXL

Ejecutar Flux.1 [dev] o SDXL a altas resoluciones suele saturar el hardware de gama media. Una pasada de inferencia estándar de Flux requiere aproximadamente 24 GB de VRAM para pesos de precisión completa, lo que lleva incluso a la 4090 a sus límites si se tiene en cuenta el decodificado VAE y la sobrecarga de telemetría de Windows. Para aquellos de nosotros con tarjetas de 8 GB o 12 GB, el despliegue local no se trata solo de la instalación; se trata de una gestión agresiva de la memoria y optimizaciones arquitectónicas.

¿Qué es la optimización de inferencia local?

La optimización de inferencia local es** el proceso de reducir la huella de memoria y la latencia de los modelos generativos a través de la cuantización (FP8/NF4), mecanismos de atención (SageAttention) y descarga de memoria (Block Swapping). Estas técnicas permiten que modelos masivos como Flux se ejecuten en GPU de consumo sin sacrificar significativamente la calidad de salida.

!https://img.youtube.com/vi/CqoAOhEpikw/hqdefault.jpg"Figura: Panel de Promptus que muestra picos de uso de VRAM durante la inicialización de Flux a las 02:45

Figura: Panel de Promptus que muestra picos de uso de VRAM durante la inicialización de Flux a las 02:45 (Fuente: Vídeo)*

El cuello de botella de la VRAM: Por qué su estación de trabajo tiene dificultades

El principal obstáculo no es solo el tamaño del modelo. Es el consumo máximo de memoria durante la fase de decodificación VAE (Autoencoder Variacional). Aunque el transformador podría caber en 12 GB usando cuantización FP8, el paso final de convertir una representación latente en una imagen de 1024x1024 requiere un búfer de memoria masivo. Si está experimentando errores de "Fuera de memoria" (OOM) al 95% de la finalización, el VAE es el culpable.

Herramientas como Promptus simplifican el despliegue local inicial al manejar el infierno de dependencias que suele acompañar a estas optimizaciones, pero comprender la lógica de nodos subyacente es esencial para cualquier ingeniero que busque construir flujos de producción listos para usar.

---

Registro de laboratorio: Benchmarks de rendimiento (RTX 4090 vs RTX 3060 12GB)

He pasado la última semana ejecutando estos modelos a través de varias pilas de optimización. Las siguientes observaciones se registraron utilizando un entorno ComfyUI limpio.

| Modelo / Config | Hardware | Resolución | VRAM máxima | Iteraciones/s |

| :--- | :--- | :--- | :--- | :--- |

| Flux.1 [dev] FP16 | 4090 | 1024x1024 | 22,4 GB | 1,8 s/it |

| Flux.1 [dev] FP8 | 4090 | 1024x1024 | 11,8 GB | 2,1 s/it |

| Flux.1 [dev] NF4 + Tiled VAE | 3060 (12GB) | 1024x1024 | 9,1 GB | 0,4 s/it |

| SDXL Base + SageAttention | 3060 (12GB) | 1024x1024 | 6,8 GB | 4,2 s/it |

Observación A:** La decodificación VAE en mosaico (Tiled VAE) reduce la memoria máxima en casi un 50% en imágenes de 1024px, pero añade aproximadamente un 15% al tiempo total de generación debido a la sobrecarga de procesar fragmentos de imagen secuencialmente.

Observación B:** SageAttention es una victoria neta para SDXL pero muestra rendimientos decrecientes en Flux. Estimo que la sobrecarga de los kernels de Triton en la implementación actual anula las ganancias de velocidad a menos que se procesen lotes de tamaño 4 o superior.

---

Estrategias avanzadas de optimización de VRAM

1. Decodificación VAE en mosaico: El eliminador de OOM

La decodificación VAE estándar intenta procesar todo el tensor latente a la vez. Para una imagen de 1024x1024, esto es un latente de 128x128. La sobrecarga matemática de las capas de escalado en el VAE es donde ocurre el pico de memoria.

Análisis técnico:**

Al usar los nodos VAEEncodeTiled o VAEDecodeTiled, ComfyUI divide el latente en fragmentos más pequeños (por ejemplo, mosaicos de 512px) con un solapamiento específico (normalmente 64px) para evitar costuras visibles.

Tamaño del mosaico:** 512 es el punto ideal.

Solapamiento:** 64 píxeles aseguran que los kernels de convolución tengan suficiente contexto para mantener la consistencia de los bordes.

2. SageAttention: Kernels de atención eficientes

SageAttention es un mecanismo de atención de 8 bits que reemplaza la atención de producto escalar escalado estándar en el KSampler. Reduce significativamente la huella de memoria de la matriz de puntuación de atención, que crece cuadráticamente con la longitud de la secuencia.

Regla de oro:** Use SageAttention para el escalado de alta resolución (2K+) donde la longitud de la secuencia es masiva. Para la generación estándar de 1024px, el ahorro de VRAM es insignificante en comparación con el potencial de artefactos de textura a escalas CFG altas.

!https://img.youtube.com/vi/CqoAOhEpikw/hqdefault.jpg"Figura: Comparación de atención estándar frente a artefactos de SageAttention a CFG 7.0 a las 08:30

Figura: Comparación de atención estándar frente a artefactos de SageAttention a CFG 7.0 a las 08:30 (Fuente: Vídeo)*

3. Intercambio de bloques y capas (Block and Layer Swapping)

Esta es la forma más efectiva de ejecutar modelos de 24 mil millones de parámetros en tarjetas de 8 GB. En lugar de cargar todo el modelo en la VRAM, cargamos solo los bloques del transformador que se están calculando actualmente.

Lógica del grafo de nodos:**

  1. Conecte el nodo ModelPatcher a la entrada Model.
  2. Establezca offloadtocpu en True.
  3. Especifique el número de capas a mantener en la GPU (normalmente 3-5 para una tarjeta de 8 GB).

La contrapartida es un golpe masivo a la velocidad. Está efectivamente limitado por el ancho de banda de su PCIe a medida que los pesos se intercambian entre la RAM del sistema y la VRAM en cada paso.

---

Implementación de Flux.1 [dev] localmente: Paso a paso

Bien, veamos la implementación real. Para que Flux funcione en un equipo de gama media, debe alejarse de los checkpoints FP16 estándar.

La pila de cuantización

La forma más eficiente de ejecutar Flux actualmente es usando los formatos GGUF o NF4. NF4 (NormalFloat de 4 bits) proporciona un nivel de fidelidad sorprendentemente alto mientras reduce el tamaño del modelo a menos de 12 GB.

📄 Flujo de trabajo / Datos
{
  "node_id": "1",
  "class_type": "CheckpointLoaderSimple",
  "inputs": {
    "ckpt_name": "flux1-dev-fp8.safetensors"
  },
  "outputs": [
    "MODEL",
    "CLIP",
    "VAE"
  ]
}

Sin embargo, la carga simple no es suficiente. Debe parchear el modelo para manejar la escala de guía correctamente. Flux no usa CFG de la misma manera que SDXL; usa un valor de "Guía" (Guidance), normalmente establecido entre 3,5 y 5,0.

Integración del flujo de trabajo

Las capas de orquestación como Promptus permiten un prototipado más rápido de estos complejos grafos de nodos al proporcionar plantillas preconfiguradas para entornos de baja VRAM. Cuando esté construyendo un flujo de trabajo personalizado, asegúrese de que sus nodos CLIPTextEncode estén configurados con los codificadores T5XXL y CLIP-L específicos de Flux.

  1. Cargador CLIP dual: Cargue t5xxlfp8e4m3fn.safetensors y clip_l.safetensors.
  2. Guía de Flux: Inserte un nodo FluxGuidance entre la codificación CLIP y el KSampler.
  3. Ajustes del Sampler: Use euler con el planificador beta para obtener los resultados más estables.

---

Generación de vídeo: Optimización de LTX-2 y Wan 2.2

Los modelos de vídeo son un orden de magnitud más exigentes que los modelos de imagen. LTX-2, por ejemplo, requiere una consistencia temporal que consume mucha VRAM.

Feedforward fragmentado (Chunked Feedforward)

Para ejecutar LTX-2 en una tarjeta de 12 GB, debe habilitar el feedforward fragmentado. Esto procesa los fotogramas temporales en pequeños lotes (por ejemplo, 4 fotogramas a la vez) en lugar de la secuencia completa de 16 o 24 fotogramas.

Ventaja:** Requisitos de VRAM drásticamente menores.

Desventaja:** Posible "vibración" (jitter) entre fragmentos si el programa de ruido no está perfectamente sincronizado.

Despliegue de Hunyuan en baja VRAM

Los modelos Hunyuan se benefician significativamente de la cuantización FP8 de los bloques del transformador. En mis pruebas, la conversión del modelo HunyuanVideo a FP8 permitió la generación a 720p en una 3060, lo cual era anteriormente imposible sin una descarga significativa a la CPU.

---

Análisis técnico de la degeneración de la calidad

Al optimizar, eventualmente llegará a un muro donde la calidad disminuye.

Cuantización NF4:** Se pierde la "microtextura" (poros de la piel, tejidos de tela).

Alto solapamiento de mosaicos:** Puede causar artefactos "en bloques" si el VAE no está perfectamente alineado con los mosaicos latentes.

SageAttention:** Con CFG > 5,0, puede ver "halos" alrededor de los bordes de alto contraste.

Siempre pruebe primero su flujo de trabajo base a precisión completa para establecer una "verdad absoluta" antes de aplicar estas optimizaciones.

---

Preguntas y respuestas: Inteligencia comunitaria

"¿Por qué recibo un error de la carpeta 'models/checkpoints'?"

Este es un problema común de rutas en ComfyUI. Si ha creado manualmente la carpeta pero la aplicación no la ve, verifique su archivo extramodelpaths.yaml. ComfyUI espera una jerarquía específica. Asegúrese de que sus checkpoints estén en ComfyUI/models/checkpoints/ y no en una subcarpeta que el cargador no esté escaneando.

"¿Puedo ejecutar Flux en un Mac Mini (M2/M3)?"

Sí, pero no usará CUDA. Dependerá de Metal (MPS). La memoria unificada de 16 GB es su aliada aquí, pero el rendimiento será significativamente más lento que una GPU dedicada de la serie 30 o 40. Asegúrese de usar los indicadores --force-fp16 o --force-fp8 dependiendo de su RAM total.

"¿Por qué mis imágenes están 'derretidas' o borrosas?"

Esto suele suceder cuando el VAE no coincide con el modelo. Flux requiere un VAE de Flux específico. Si intenta usar un VAE de SDXL con un modelo de Flux, obtendrá ruido colorido o un efecto de "cara derretida". Verifique dos veces su nodo cargador de VAE.

"¿Vale la pena la aplicación de escritorio por los créditos?"

Si está ejecutando localmente, no está usando "créditos". Está usando su propia electricidad y hardware. La plataforma Promptus sirve como el punto de integración final para los usuarios que desean conectar el hardware local con el escalado basado en la nube cuando su equipo local no es suficiente para renderizados de vídeo 4K.

---

La pila tecnológica de 2026: Mi configuración recomendada

Para un entorno local de grado de producción, recomiendo lo siguiente:

  1. Hardware: Mínimo RTX 3060 (12 GB) o idealmente una RTX 4070 Ti Super (16 GB) para el margen extra de VRAM.
  2. Software: ComfyUI + Promptus para la gestión del flujo de trabajo.
  3. Formato del modelo: GGUF (Q4KM o Q5KM) para Flux.1 [dev].
  4. Optimizaciones: Tiled VAE (siempre activado), SageAttention (para resoluciones > 1536px).

!https://img.youtube.com/vi/CqoAOhEpikw/hqdefault.jpg"Figura: Grafo del flujo de trabajo final que muestra la conexión entre Flux GGUF y Tiled VAE a las 18:50

Figura: Grafo del flujo de trabajo final que muestra la conexión entre Flux GGUF y Tiled VAE a las 18:50 (Fuente: Vídeo)*

[DESCARGAR: "Flujo de trabajo de Flux optimizado para baja VRAM" | ENLACE: https://cosyflow.com/workflows/flux-optimization-guide]

---

Conclusión

La IA local ya no es el dominio exclusivo de aquellos con clústeres A100. Al implementar la decodificación Tiled VAE, SageAttention y aprovechar la cuantización optimizada como NF4, podemos ejecutar modelos de vanguardia en hardware de consumo. El ecosistema "Cosy" (CosyFlow + CosyCloud + CosyContainers) proporciona la infraestructura necesaria para escalar estos descubrimientos locales en resultados de grado profesional.

La clave es mantener el escepticismo ante las soluciones "mágicas". Cada optimización es un equilibrio entre memoria, velocidad y precisión matemática. Pruebe sus equipos, supervise su VRAM y mantenga sus controladores actualizados.

Saludos.

Preguntas frecuentes técnicas

P1: Recibo un error 'CUDA Out of Memory' durante la mitad de una generación de Flux. ¿Cómo lo soluciono?**

R:** Es probable que sea la fase de decodificación VAE. Reemplace su nodo VAEDecode estándar por VAEDecodeTiled. Establezca el tile_size en 512. Si sigue fallando, es probable que su sistema esté intercambiando al disco (archivo de paginación), lo cual es increíblemente lento. Cierre todas las pestañas del navegador (Chrome consume mucha VRAM) e inténtelo de nuevo.

P2: ¿Cuál es la mejor cuantización para Flux en una tarjeta de 12 GB?**

R:** Use FP8 (e4m3fn) si desea el mejor equilibrio entre velocidad y calidad. Si tiene problemas de espacio, NF4 es más pequeño pero puede introducir un ligero ruido en las áreas oscuras de la imagen. GGUF también es una excelente alternativa si tiene instalados los nodos especializados.

P3: ¿Funciona SageAttention con todos los samplers?**

R:** Funciona con la mayoría de los samplers estándar (Euler, Heun, DPM++). Sin embargo, puede causar problemas con samplers más exóticos o personalizados que dependen de cálculos de gradiente precisos. Quédese con Euler para Flux cuando use SageAttention.

P4: Mi velocidad de generación bajó de 2 s/it a 40 s/it. ¿Qué pasó?**

R:** Se ha quedado sin VRAM y el sistema ahora está "descargando" pesos a su RAM del sistema (DDR4/DDR5). Este es un cuello de botella masivo. Reduzca su resolución o use una cuantización más agresiva (como la de 4 bits) para mantener el modelo completamente en la GPU.

P5: ¿Cómo actualizo mi entorno local de Promptus para incluir los últimos nodos?**

R:** Use el administrador integrado para buscar actualizaciones de nodos personalizados. Para el motor principal, asegúrese de estar obteniendo los últimos commits del repositorio. Muchas de las optimizaciones como SageAttention requieren dependencias de Python específicas (como triton) que deben instalarse en el entorno virtual.

Más lecturas

Continúe su viaje (Recursos internos de 42.uk Research)

/blog/comfyui-workflow-basics - Guía fundamental de arte generativo basado en nodos.

/blog/vram-optimization-guide - Inmersión profunda en la gestión de memoria para tarjetas RTX.

/blog/flux-model-comparison - Benchmarking de Pro vs Dev vs Schnell.

/blog/production-ai-pipelines - Escalado de flujos de trabajo locales para uso comercial.

/blog/gpu-performance-tuning - Overclocking y undervolting para un renderizado de IA estable.

/blog/advanced-controlnet-techniques - Dominando el control espacial en SDXL.

Creado: 28 de enero de 2026

📚 Explorar más artículos

Descubra más tutoriales de IA, flujos de trabajo de ComfyUI y conocimientos de investigación

Explorar todos los artículos →
Views: ...