KJNodes/experimentalgenerated

Optimizaciones KJ para Ideogram4(Ideogram4OptimizationsKJ)

EXPERIMENTAL Y PUEDE CAMBIAR LA SALIDA DEL MODELO. Reduce la VRAM máxima del pase directo de Ideogram4. chunk_ffn divide las activaciones SwiGLU en la dimensión de tokens; bf16_rope aplica RoPE en el dtype del modelo en lugar de convertirlo a fp32. Ambas apuntan a los dos tensores transitorios más grandes en el bloque.

Ideogram4 Optimizations KJ

model
model
chunk_ffn
ffn_chunks
2
ffn_seq_threshold
1024
bf16_rope
KJNodes

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

NombreTipoDescripción
modelMODELEl modelo base Ideogram4 al que se aplicarán las optimizaciones.
chunk_ffnBOOLEANOCuando 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_chunksENTEROEl 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_thresholdENTEROLa 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_ropeBOOLEANOCuando 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

NombreTipoDescripción
MODELMODELEl 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_ffn y bf16_rope son independientes; habilite solo lo que necesite. Para obtener el máximo ahorro de memoria, habilite ambas.
  • Al usar chunk_ffn, comience con el valor predeterminado ffn_chunks = 2 y solo aumente si persiste el desbordamiento de VRAM, ya que más fragmentos introducen una mayor sobrecarga.
  • El ffn_seq_threshold es 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.

Cargando comentarios…
Optimizaciones KJ para Ideogram4 (Ideogram4OptimizationsKJ) - ComfyUI-KJNodes | ComfyUI Wiki