KJNodes/experimentalgenerated

Optimisations Ideogram4 KJ(Ideogram4OptimizationsKJ)

EXPÉRIMENTAL ET PEUT MODIFIER LA SORTIE DU MODÈLE ! Réduit la mémoire VRAM de pointe de la transmission avant d’Ideogram4. chunk_ffn divise les activations SwiGLU sur la dimension des tokens ; bf16_rope applique RoPE dans le dtype du modèle au lieu de le convertir en fp32. Les deux ciblent les deux plus grands tenseurs transitoires du bloc.

Ideogram4 Optimizations KJ

model
model
chunk_ffn
ffn_chunks
2
ffn_seq_threshold
1024
bf16_rope
KJNodes

Ce nœud applique deux optimisations expérimentales de réduction de la mémoire VRAM à la transmission avant du modèle Ideogram4. Il fait partie de la catégorie "KJNodes/expérimental" et peut altérer les sorties du modèle — ne l’utilisez que lorsque la mémoire VRAM de pointe est un facteur limitant et après avoir vérifié la qualité de la sortie.

Description

Le nœud Optimisations Ideogram4 KJ patche le modèle Ideogram4 pour réduire la mémoire GPU de pointe pendant l’inférence en ciblant les deux plus grands tenseurs transitoires de chaque bloc de transformeur : les activations SwiGLU et le calcul RoPE. Les deux optimisations sont contrôlées par des entrées booléennes et entières discrètes, permettant un contrôle fin entre économies de mémoire et surcharge de calcul.

Entrées

  • model (MODÈLE, Requis) – Le modèle de base Ideogram4 auquel les optimisations seront appliquées.

  • chunk_ffn (BOOLÉEN, défaut True) – Lorsqu’il est activé, les activations du feedforward (SwiGLU) sont divisées sur la dimension de la séquence de tokens, limitant la taille intermédiaire du tenseur à (B, chunk_size, hidden) au lieu de (B, L, hidden). Cela réduit la mémoire de pointe au prix d’une légère augmentation du calcul.

  • ffn_chunks (ENTIER, défaut 2, plage 1–64, pas 1) – Le nombre de morceaux de séquence dans lesquels diviser le feedforward. Des valeurs plus élevées donnent une mémoire de pointe plus faible mais augmentent la surcharge (plus de lancements de noyaux). Une valeur de 1 désactive effectivement le découpage. Commencez par 2 et augmentez si la mémoire VRAM est toujours insuffisante.

  • ffn_seq_threshold (ENTIER, défaut 1024, plage 256–65536, pas 256) – Le découpage n’est appliqué que lorsque la longueur de la séquence de tokens d’entrée dépasse cette valeur. Pour les séquences courtes (par exemple, moins de 1024 tokens), la mémoire de base est déjà suffisamment faible pour que le découpage ajoute une surcharge inutile. Définissez ce seuil en fonction de votre longueur de génération typique.

  • bf16_rope (BOOLÉEN, défaut True) – Lorsqu’il est activé, l’Embedding de Position Rotative (RoPE) est appliqué dans le dtype de travail du modèle (généralement bfloat16 ou float16) au lieu d’être converti en float32. Cela réduit de moitié environ la mémoire d’activation RoPE et correspond à la précision utilisée dans les implémentations de référence Hugging Face. La qualité de la sortie peut différer légèrement du chemin RoPE fp32 par défaut.

Sorties

  • MODÈLE – Le même modèle avec les optimisations sélectionnées patchées. Il est destiné à être utilisé comme remplacement direct du modèle non patché d’origine dans un flux de travail ComfyUI.

Notes d’utilisation

  • Les deux optimisations sont expérimentales. Testez toujours la qualité de la sortie et comparez avec le modèle non patché avant de déployer dans un flux de travail de production.
  • Les optimisations chunk_ffn et bf16_rope sont indépendantes ; activez uniquement ce dont vous avez besoin. Pour des économies de mémoire maximales, activez les deux.
  • Lors de l’utilisation de chunk_ffn, commencez avec la valeur par défaut ffn_chunks = 2 et n’augmentez que si le débordement de mémoire VRAM persiste, car plus de morceaux introduisent une surcharge plus importante.
  • Le ffn_seq_threshold est surtout utile lorsque votre flux de travail traite à la fois des séquences très courtes et très longues (par exemple, conditionnement d’image vs génération d’image complète). Réglez-le pour éviter une surcharge sur les invites courtes.
  • Ces optimisations sont conçues spécifiquement pour Ideogram4 ; elles n’auront aucun effet sur d’autres architectures de modèle et peuvent provoquer des erreurs si elles sont appliquées. Assurez-vous que le modèle d’entrée est une variante Ideogram4.

Commentaires

Connectez-vous avec GitHub pour rejoindre la discussion.

Chargement des commentaires…
Optimisations Ideogram4 KJ (Ideogram4OptimizationsKJ) - ComfyUI-KJNodes | ComfyUI Wiki