Este nodo aplica dos optimizaciones experimentales de reducción de VRAM al pase directo del modelo Ideogram4. Es parte de la categoría "KJNodes/experimental" y puede alterar las salidas del modelo: úselo solo cuando la VRAM máxima sea un factor limitante y después de verificar la calidad de la salida.
Descripción
El nodo Ideogram4 Optimizations KJ parchea el modelo Ideogram4 para reducir la memoria máxima de GPU durante la inferencia, apuntando a los dos tensores transitorios más grandes en cada bloque transformer: las activaciones SwiGLU y el cálculo RoPE. Ambas optimizaciones se controlan mediante entradas booleanas y enteras discretas, lo que permite un control detallado entre el ahorro de memoria y la sobrecarga computacional.
Entradas
| Nombre | Tipo | Descripción |
|---|---|---|
| model | MODEL | El modelo base Ideogram4 al que se aplicarán las optimizaciones. |
| chunk_ffn | BOOLEANO | Cuando está habilitado, las activaciones feedforward (SwiGLU) se dividen en la dimensión de la secuencia de tokens, limitando el tamaño del tensor intermedio a (B, chunk_size, oculto) en lugar de (B, L, oculto). Esto reduce la memoria máxima a costa de un pequeño aumento en el cómputo. |
| ffn_chunks | ENTERO | El número de fragmentos de secuencia en los que dividir el feedforward. Valores más altos producen una memoria máxima más baja pero aumentan la sobrecarga (más lanzamientos de kernel). Un valor de 1 desactiva efectivamente la división en fragmentos. Comience con 2 y aumente si la VRAM aún es insuficiente. |
| ffn_seq_threshold | ENTERO | La división en fragmentos solo se aplica cuando la longitud de la secuencia de tokens de entrada supera este valor. Para secuencias cortas (por ejemplo, por debajo de 1024 tokens), la memoria base ya es lo suficientemente pequeña como para que la división en fragmentos añada una sobrecarga innecesaria. Establezca este umbral según la longitud típica de su generación. |
| bf16_rope | BOOLEANO | Cuando está habilitado, la incrustación de posición rotatoria (RoPE) se aplica en el dtype de trabajo del modelo (típicamente bfloat16 o float16) en lugar de ser convertida a float32. Esto aproximadamente reduce a la mitad la memoria de activación de RoPE y coincide con la precisión utilizada en las implementaciones de referencia de Hugging Face. La calidad de la salida puede diferir ligeramente de la ruta predeterminada de RoPE en fp32. |
Salidas
| Nombre | Tipo | Descripción |
|---|---|---|
| MODEL | MODEL | El mismo modelo con las optimizaciones seleccionadas aplicadas. Está destinado a ser utilizado como un reemplazo directo del modelo original sin parches en un flujo de trabajo de ComfyUI. |
Notas de uso
- Ambas optimizaciones son experimentales. Siempre pruebe la calidad de la salida y compare con el modelo sin parches antes de implementarlo en un flujo de trabajo de producción.
- Las optimizaciones
chunk_ffnybf16_ropeson independientes; habilite solo lo que necesite. Para obtener el máximo ahorro de memoria, habilite ambas. - Al usar
chunk_ffn, comience con el valor predeterminadoffn_chunks = 2y solo aumente si persiste el desbordamiento de VRAM, ya que más fragmentos introducen una mayor sobrecarga. - El
ffn_seq_thresholdes más útil cuando su flujo de trabajo procesa secuencias muy cortas y muy largas (por ejemplo, acondicionamiento de imagen vs. generación de imagen completa). Ajústelo para evitar la sobrecarga en indicaciones cortas. - Estas optimizaciones están diseñadas específicamente para Ideogram4; no tendrán efecto en otras arquitecturas de modelo y pueden provocar errores si se aplican. Asegúrese de que el modelo de entrada sea una variante de Ideogram4.
Comentarios
Inicia sesión con GitHub para unirte a la conversación.