ArtificialGuyBR

Home / Blog / ComfyUI

Matriz de versiones de la pila de aceleración de ComfyUI

Matriz de versiones para Triton, SageAttention, FlashAttention y xformers con compilaciones de PyTorch y CUDA para ComfyUI en Windows.

13 sources cited ComfyUI

Matriz de versiones de la pila de aceleración de ComfyUI

TL;DR

  • xformers en Windows: instala desde ruedas de PyPI para PyTorch ≥2.10.0 usando pip install -U xformers --index-url https://download.pytorch.org/whl/cu128 para CUDA 12.8, o cu126 para CUDA 12.6. La afirmación de la fuente de que xformers necesita PyTorch 2.5.1 está desactualizada; las ruedas actuales requieren 2.10.0.
  • Triton en Windows: usa el fork woct0rdho/triton-windows, pip install triton-windows==3.3.1.post19, emparejado con PyTorch 2.9+ y CUDA 12.8. La cadena de herramientas MSVC v143 debe estar en el PATH del sistema.
  • SageAttention vs. FlashAttention: SageAttention requiere torch≥2.3.0 y triton≥3.0.0; FlashAttention 2 requiere torch≥2.2+ y CUDA≥12.0. Ambos pueden coexistir con xformers en el mismo entorno, pero el orden de instalación importa: xformers primero si quieres ruedas, luego SageAttention, y FlashAttention desde fuente al final.

Para guías de configuración relacionadas, consulta ComfyUI en Windows desde cero, PyTorch nightly vs stable y matriz de compatibilidad de controladores NVIDIA.

La matriz de versiones de la pila de aceleración de ComfyUI

El problema central es que cada biblioteca en la pila de aceleración de ComfyUI — Triton, SageAttention, FlashAttention, xformers — incluye sus propias ruedas binarias o requisitos de compilación que fijan versiones específicas de PyTorch y CUDA. Mezclarlas genera fallos silenciosos o errores de compilación que pueden consumir una tarde entera.

¿Qué compilación CUDA de PyTorch necesitas realmente?

BibliotecaPyTorch mín.Versión CUDARuedas WindowsComando de instalaciónFuente
xformers stable (0.0.35)2.10.011.8, 12.6, 12.8, 13.0Sí (PyPI)pip install -U xformers --index-url https://download.pytorch.org/whl/cu128xformers README
xformers 0.0.312.7.111.8, 12.6, 12.8Sí (PyPI)pip install xformers==0.0.31xformers CHANGELOG
Triton Windows2.9+12.8 recomendadoSí (fork)pip install triton-windows==3.3.1.post19Article 17252, Triton Windows releases
SageAttention 2.2.02.3.0≥12.0 (≥12.8 para Blackwell/SageAttention2++)Solo fuentepip install sageattention==2.2.0 --no-build-isolationSageAttention README
FlashAttention 22.2+≥12.0Solo compilación; parches manuales necesarios en WindowsVer sección de errores más abajoFlashAttention README, Issue #595
PyTorch actual stable—11.8, 12.6, 12.8Sípip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128pytorch.org/get-started

Cómo leer la matriz

El canal stable de PyTorch (2.7.0 al momento de escribir) incluye ruedas para CUDA 11.8, 12.6 y 12.8 [1]. El canal nightly añade compilaciones CUDA 12.8 para PyTorch 2.9 [2]. xformers actualmente compila ruedas solo contra PyTorch ≥2.10.0, así que si estás en PyTorch 2.7 stable debes compilar desde fuente o usar una versión antigua de xformers [3]. SageAttention soporta un piso de PyTorch más amplio (≥2.3.0) y es la opción más tolerante para instalaciones antiguas [4].

Qué hace cada biblioteca realmente en ComfyUI

¿Qué hace Triton en la canalización de atención?

Triton provee kernels de GPU escritos en un DSL similar a Python que compilan a PTX personalizado. En ComfyUI, Triton impulsa el backend Triton para SageAttention (sageattn_qk_int8_pv_fp16_triton). En Windows, Triton requiere el fork woct0rdho/triton-windows porque el proyecto upstream no publicó ruedas de Windows para la mayoría de versiones. El fork incluye ruedas precompiladas como triton-windows==3.3.1.post19 [5].

¿Qué reemplaza SageAttention?

SageAttention es un reemplazo plug-and-play para torch.nn.functional.scaled_dot_product_attention (la atención integrada de PyTorch). Cuantiza QKᵀ a INT8 y acumula PV en INT8 o FP8, logrando aceleraciones en GPUs Ampere (RTX 30xx), Ada (RTX 40xx) y Hopper (H100) sin pérdida de precisión. Instala vía pip install sageattention==2.2.0 --no-build-isolation o compila desde fuente con MAX_JOBS definido [4].

ComfyUI lo expone como la bandera de lanzamiento --use-sage-attention, que enruta toda la atención a través del kernel de SageAttention [6].

¿Qué es xformers y por qué necesita su propio índice CUDA?

xformers es una biblioteca de kernels de atención modulares y hackeables (atención exacta eficiente en memoria, atención dispersa, atención dispersa en bloques, capas lineales fusionadas) mantenida por Meta Research. Incluye ruedas precompiladas en PyPI pero apunta a toolkits CUDA específicos mediante el índice de ruedas de PyTorch (cu118, cu126, cu128, cu130). El comando de instalación depende de tu versión de CUDA — usar la URL de índice incorrecta produce un error de dependencia faltante al importar [3].

¿Sigue importando FlashAttention para ComfyUI?

FlashAttention 2 provee el kernel de atención exacta más rápido para GPUs NVIDIA (Ampere y posteriores). Compila desde fuente usando el toolkit NVIDIA CUDA y requiere la herramienta de compilación ninja. En Windows, FlashAttention 2 no tiene soporte oficial hasta la v2.3.2, y aun así la compilación requiere parchear manualmente archivos de plantillas C++ para resolver errores de referencia a constantes en flash_fwd_launch_template.h y flash_bwd_launch_template.h [7][8]. Para la mayoría de usuarios de ComfyUI en Windows, SageAttention o xformers son la opción práctica.

Orden de instalación que funciona realmente

La secuencia de instalación más segura evita las recompilaciones en cascada que ocurren cuando instalas xformers después de que PyTorch ya está fijado a un toolkit CUDA específico, o cuando Triton intenta compilar contra un ABI de PyTorch que no coincide.

1. Instala PyTorch primero, con CUDA 12.8

pip install torch==2.9.0.dev20250716+cu128 torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

Las compilaciones nightly proveen la compatibilidad más reciente con CUDA 12.8. Para stable, usa PyTorch 2.7.0 con --index-url https://download.pytorch.org/whl/cu128 [1].

2. Instala xformers a continuación (si usas ruedas)

pip install -U xformers --index-url https://download.pytorch.org/whl/cu128

Instalar xformers aquí, antes que otras bibliotecas de atención, asegura que el contexto CUDA de PyTorch se establezca correctamente. Si omites este paso e instalas desde fuente después, arriesgas incompatibilidades de ABI [3].

3. Instala el fork Triton Windows

pip install triton-windows==3.3.1.post19

El proyecto oficial de Triton no publica ruedas de Windows; el fork woct0rdho sí lo hace. Este fork es un espejo de Triton upstream con parches de compilación específicos para Windows [5].

4. Instala SageAttention

pip install sageattention==2.2.0 --no-build-isolation

SageAttention compila desde fuente al instalar. La bandera --no-build-isolation evita que pip cree un entorno de compilación aislado que duplicaría el PyTorch que acabas de instalar [4].

5. FlashAttention 2 al final (opcional, Windows)

git clone https://github.com/Dao-AILab/flash-attention
cd flash-attention
pip install ninja
MAX_JOBS=4 pip install flash-attn --no-build-isolation

En Windows, espera fallos de compilación a menos que apliques los parches de plantillas descritos en la sección de errores más abajo [7][8].

Errores comunes y soluciones

Síntoma: ModuleNotFoundError: No module named 'triton' tras pip install en Windows

Causa: el PATH del sistema falta el directorio del compilador MSVC de Visual Studio. La compilación de Triton en Windows requiere C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat en el entorno, o el directorio bin de MSVC añadido al PATH manualmente [5].

Solución: ejecuta vcvars64.bat antes de activar tu entorno virtual de ComfyUI, o añade el directorio MSVC Hostx64\x64 al PATH del sistema y reinicia tu terminal.

Síntoma: FlashAttention 2 falla al compilar en Windows con error C2975 en flash_fwd_launch_template.h

Causa: el código de plantillas C++ referencia una variable Headdim que el compilador MSVC rechaza como parámetro de plantilla no-tipo en ciertos contextos [8].

Solución: reemplaza los identificadores Headdim en instanciaciones de plantilla con sus valores enteros concretos (p. ej., Flash_bwd_kernel_traits<128, 64, 128, ...> en lugar de Flash_bwd_kernel_traits<Headdim, ...>). Los archivos parcheados completos están en GitHub issue #595 [8].

Síntoma: Triton falla en tiempo de ejecución con un conflicto de setuptools

Causa: versiones recientes de setuptools usan pkg_resources de forma que entra en conflicto con el sistema de compilación de Triton en Windows [9].

Solución: degrada setuptools: pip uninstall -y setuptools && pip install setuptools==78.1.1.

Síntoma: torch.cuda.is_available() devuelve False tras instalar una compilación CUDA 12.8

Causa: el controlador NVIDIA de tu GPU es demasiado antiguo para soportar CUDA 12.8, o la versión del toolkit CUDA en tu PATH no coincide con la compilación de PyTorch.

Solución: verifica que tu GPU soporte CUDA 12.8 (RTX 30xx y posteriores sí; GTX 10xx no), y asegura que nvcc --version reporte una versión compatible del toolkit CUDA. Las ruedas de PyTorch incluyen su propio runtime de CUDA, pero algunas operaciones de Triton requieren el toolkit en el PATH del sistema [1][5].

FAQ

¿Qué versión de PyTorch funciona con FlashAttention en Windows?

FlashAttention 2 requiere PyTorch 2.2 o posterior y CUDA 12.0 o posterior. En Windows, FlashAttention no tiene soporte oficial hasta la v2.3.2, y reportes de la comunidad confirman compilación en Windows 11 con PyTorch 2.2+cu121 y CUDA 12.2, pero solo tras aplicar parches de plantillas para compatibilidad con MSVC [7][8].

¿Puedo usar Triton, SageAttention y xformers juntos?

Sí, pero cumplen roles distintos y ComfyUI enruta la atención a través de un solo backend a la vez. SageAttention (--use-sage-attention) y FlashAttention (--use-flash-attention) son mutuamente excluyentes en la CLI. xformers puede operar junto a cualquiera pero se desactiva con --disable-xformers [6]. La recomendación práctica es elegir un backend de atención principal (SageAttention para Windows, xformers para Linux) y usar Triton como capa de compilación de kernels solo para SageAttention.

¿Qué versión de xformers funciona con mi versión de PyTorch?

xformers incluye ruedas precompiladas para PyTorch ≥2.10.0 con CUDA 11.8, 12.6, 12.8 y 13.0 [3][10]. Versiones antiguas de xformers soportan PyTorch antiguos — por ejemplo, xformers 0.0.31 requiere PyTorch 2.7.1, y xformers 0.0.30 requiere PyTorch ≥2.7 [10]. Si estás en PyTorch 2.7 stable, debes compilar xformers desde fuente o fijar una versión antigua. Usar la versión incorrecta de PyTorch con ruedas de xformers resulta en un error de dependencia faltante al importar [3].

¿Qué GPU necesito para la pila de aceleración completa?

GPUs NVIDIA a partir de la serie RTX 30xx (Ampere) son el mínimo práctico. SageAttention logra sus mejores aceleraciones en RTX 40xx (Ada) y H100/H20 (Hopper). FlashAttention 2 soporta GPUs Ampere, Ada y Hopper. GPUs Turing (RTX 20xx, T4) no son soportadas por SageAttention, pero FlashAttention mantiene un repositorio separado flash-attention-turing con un subconjunto de características para Turing [7]. GTX 10xx (Pascal) no es soportado ni por FlashAttention 2 ni por SageAttention.

¿Qué hace realmente --fast fp16_accumulation en ComfyUI?

Activa la característica de rendimiento fp16_accumulation, que usa fp16 en lugar de fp32 para la acumulación intermedia en nodos de atención y multiplicación de matrices. Esto reduce el uso de VRAM y mejora el rendimiento en GPUs NVIDIA, a costa de una precisión numérica menor. La CLI de ComfyUI lo define como una optimización no probada bajo --fast [6].

Sources