Diffusion Model Loader KJ(DiffusionModelLoaderKJ)
Cargador de modelos de difusión con control de precisión (FP8/FP16/BF16) y parches de optimización como sage_attention para ComfyUI.
Diffusion Model Loader KJ
El nodo Diffusion Model Loader KJ proporciona un control detallado sobre los tipos de datos de los pesos y los tipos de datos de cálculo al cargar modelos, admitiendo varios formatos de precisión desde fp8 hasta fp32.
Diffusion Model Loader KJ es un nodo utilizado para cargar y configurar modelos de difusión (como Stable Diffusion). Su función principal es cargar archivos de modelo desde una ruta especificada y permitir a los usuarios ajustar la precisión numérica y el comportamiento de cálculo del modelo durante la ejecución, con el fin de optimizar el rendimiento o la compatibilidad.
Funcionalidad del Nodo
Este nodo proporciona un control detallado sobre los tipos de datos de los pesos y los tipos de datos de cálculo al cargar modelos, admitiendo varios formatos de precisión desde fp8 hasta fp32. Sus características técnicas clave incluyen un parche opcional de CublasLinear para aprovechar bibliotecas de aceleración de GPU específicas, la capacidad de integrar el mecanismo de atención SageAttention, y soporte para fusionar o mejorar la funcionalidad del modelo mediante diccionarios de estado adicionales (por ejemplo, agregar el módulo VACE a un modelo de video).
Explicación de los Parámetros del Nodo - Diffusion Model Loader KJ
Entradas de Conexión (Inputs)
| Nombre del Parámetro | Tipo de Dato | Obligatorio | Valor por Defecto | Rango de Valores/Opciones | Descripción |
|---|---|---|---|---|---|
model_name | COMBO | Sí | - | - | Selecciona el archivo del modelo de difusión a cargar. Este parámetro lista todos los modelos disponibles desde los directorios gestionados por ComfyUI. |
Parámetros de Control (Parameters)
| Nombre del Parámetro | Tipo de Dato | Obligatorio | Valor por Defecto | Rango de Valores/Opciones | Descripción |
|---|---|---|---|---|---|
weight_dtype | COMBO | Sí | default | default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2, fp16, bf16, fp32 | Se utiliza para equilibrar el uso de memoria y la precisión del cálculo. |
compute_dtype | COMBO | Sí | default | default, fp16, bf16, fp32 | Afecta la velocidad de cálculo y la estabilidad numérica. |
patch_cublaslinear | BOOLEAN | Sí | False | - | Habilitar o deshabilitar el argumento cublas_ops. |
sage_attention | COMBO | Sí | False | false, true | Parchea la atención de comfy para usar sageattn. |
enable_fp16_accumulation | BOOLEAN | Sí | False | - | Habilita torch.backends.cuda.matmul.allow_fp16_accumulation, requiere pytorch 2.7.0 nightly. |
extra_state_dict | STRING | No | - | - | La ruta completa a un diccionario de estado adicional para cargar. Este se fusionará con el diccionario de estado principal. Útil, por ejemplo, para agregar el módulo VACE a un WanVideoModel. Puedes usar DiffusionModelSelector para obtener fácilmente la ruta. |
Salidas (Outputs)
| Nombre del Parámetro | Tipo de Dato | Descripción |
|---|---|---|
| MODEL | MODEL | Salida del modelo cargado y configurado, listo para ser utilizado por nodos posteriores. |
Casos de Uso
Este nodo es muy útil en flujos de trabajo donde se necesita cargar un modelo base y aplicar optimizaciones específicas o extensiones de funcionalidad. Por ejemplo, puedes usar primero este nodo para cargar un WanVideoModel y luego, a través del parámetro extra_state_dict, fusionarle un diccionario de estado de un módulo VACE, construyendo así un modelo de generación de video con funcionalidad mejorada.
Consideraciones
Este nodo pertenece a la categoría experimental. Algunas funciones (como enable_fp16_accumulation) requieren versiones específicas de PyTorch (como 2.7.0 nightly) para funcionar correctamente. Antes de usar tipos de datos avanzados (como fp8) o funciones de parcheo, asegúrate de que tu entorno de hardware y software los admita.
Instalación (SageAttention)
Esta opción requiere la biblioteca SageAttention instalada en el entorno Python de tu ComfyUI:
- Repositorio oficial (Linux): thu-ml/SageAttention -
pip install sageattention(requierepython>=3.9,torch>=2.3.0,triton>=3.0.0, CUDA>=12.0; consulta el README para los requisitos de versión) - Windows: woct0rdho/SageAttention - wheels precompilados para Windows; instala primero triton-windows y luego elige un wheel de la página de releases que coincida con tu versión de PyTorch (consulta el README)
Para la aceleración global integrada de ComfyUI (sin necesidad de nodo), inicia ComfyUI con --use-sage-attention. Si algunos modelos (p. ej. Wan, Qwen-Image) producen salida negra o con ruido por desbordamiento de cuantización, usa sageattn_qk_int8_pv_fp16_cuda (el que menos probabilidad de desbordar tiene), o ajusta pv_accum_dtype.
Enlace al Código Fuente del Nodo Diffusion Model Loader KJ
El nodo Diffusion Model Loader KJ proviene del paquete de nodos ComfyUI-KJNodes.
Comentarios
Inicia sesión con GitHub para unirte a la conversación.