ComfyUI Extension: FMJ-LLM
Advanced nodes for interaction with Olama (text, vision, image editing), with dynamic management of prompts via CSV.
Custom Nodes (0)
README
đŠ Package : ComfyUI_FMJ_LLM
Auteur : FMJ
<img width="1163" height="1209" alt="Capture dâĂ©cran du 2025-11-10 13-50-10" src="https://github.com/user-attachments/assets/91e2b3b6-f1b8-42bb-829c-d06b63daa545" />
Description : NĆuds avancĂ©s pour lâinteraction avec Ollama (texte, vision, Ă©dition dâimage), avec gestion dynamique des prompts via CSV.
đ§ ComfyUI FMJ LLM â IntĂ©gration Ollama native dans ComfyUI
GĂ©nĂ©rez, amĂ©liorez, analysez et dĂ©crivez vos prompts avec lâIA locale â directement dans ComfyUI.
Ce pack de nĆuds personnalisĂ©s permet dâintĂ©grer Ollama (modĂšles comme llama3, qwen3, moondream, llava, etc.) directement dans vos workflows ComfyUI, sans dĂ©pendance externe ni service cloud. Tout reste 100 % local.
đ FonctionnalitĂ©s principales
đč 1. GĂ©nĂ©ration de prompts textuels avancĂ©s (đŠFMJ Ollama Prompt Generator)
GĂ©nĂ©rez des rĂ©ponses avancĂ©es Ă partir de nâimporte quel modĂšle Ollama (notamment Qwen3, Llama 3.2, Mistral, etc.) en combinant un texte dâentrĂ©e avec un prompt systĂšme personnalisĂ© chargĂ© depuis un fichier CSV ou saisi manuellement. IdĂ©al pour automatiser des tĂąches comme la réécriture, le rĂ©sumĂ©, la traduction, lâanalyse de texte, ou toute interaction structurĂ©e avec un LLM.
â Compatible avec tous les modĂšles chat-based via lâendpoint
/api/chatdâOllama
â OptimisĂ© pour Qwen3 (y compris les modĂšles thinking models)
â Supporte les prompts systĂšme dynamiques via CSV
â IntĂ©gration transparente dans ComfyUI
đ„ EntrĂ©es
| Nom | Type | Description |
|-----|------|-------------|
| text (obligatoire) | STRING | Le texte Ă traiter par le modĂšle (ex: un paragraphe Ă rĂ©sumer, une phrase Ă corriger, une question Ă rĂ©pondre). Doit ĂȘtre connectĂ© depuis un nĆud en amont. |
| prompt_style | LIST | Sélectionnez un style de prompt prédéfini depuis vos fichiers CSV (dossier csv/). Chaque style correspond à une instruction systÚme spécifique (ex: "résumé", "correction", "création de scénario"). |
| model_name | STRING | Nom du modĂšle Ollama Ă utiliser. Ex: qwen3:2b, llama3.2, mistral, phi3, etc. Doit ĂȘtre prĂ©sent localement (ollama list). |
| ollama_url | STRING | URL de lâAPI Ollama. Par dĂ©faut : http://localhost:11434. Modifiez si Ollama tourne sur une autre machine ou un port personnalisĂ©. |
| max_tokens | INT | Nombre maximum de tokens Ă gĂ©nĂ©rer. Valeur typique : 256 Ă 2048. Pour Qwen3, des valeurs Ă©levĂ©es (jusquâĂ 16384) sont possibles. |
| temperature | FLOAT | ContrÎle la créativité de la réponse. 0.0 = déterministe, 0.7 = équilibré, 1.0+ = trÚs créatif. |
| seed | INT | Graine aléatoire pour la reproductibilité. 0 = aléatoire à chaque appel. |
| keep_alive | INT | Durée (en minutes) pendant laquelle le modÚle reste en mémoire aprÚs utilisation. -1 = toujours chargé, 0 = décharger immédiatement. |
| request_timeout | INT | (Nouveau) DĂ©lai maximal dâattente (en secondes) avant dâabandonner la requĂȘte. Crucial pour Qwen3 (mode raisonnement lent). Valeur recommandĂ©e : 300 (5 min). |
| override_prompt (facultatif) | STRING | Remplace entiĂšrement le prompt systĂšme sĂ©lectionnĂ©. Si ce champ nâest pas vide, il ignore prompt_style. Utile pour des instructions ponctuelles. |
| disable_thinking (facultatif) | BOOLEAN | (Nouveau) Si activé (ON), désactive la trace de raisonnement intermédiaire de Qwen3 (think: false). Recommandé pour obtenir une réponse directe sans balises <think>...<think>. |
đ€ Sorties
| Nom | Type | Description |
|-----|------|-------------|
| response | STRING | La rĂ©ponse gĂ©nĂ©rĂ©e par le modĂšle, prĂȘte Ă ĂȘtre utilisĂ©e dans dâautres nĆuds (ex: sauvegarde, affichage, traitement ultĂ©rieur). |
| debug_info | STRING | Informations de débogage : statut, modÚle utilisé, timeout, style de prompt. Utile pour diagnostiquer les erreurs (ex: réponse vide, modÚle non trouvé, timeout). |
đ Configuration : Fichiers CSV
Le nĆud charge automatiquement tous les fichiers .csv dans le sous-dossier csv/ situĂ© au mĂȘme niveau que ce script.
Chaque fichier CSV doit avoir exactement deux colonnes :
prompt_style: nom unique du style (affiché dans le menu déroulant)system_prompt: instruction systÚme complÚte envoyée au LLM
Exemple de fichier : csv/writing_prompts.csv
prompt_style,system_prompt
qwen_edit,Tu es un éditeur expert. Corrige, améliore et reformule le texte suivant pour plus de clarté, de fluidité et de professionnalisme. Ne rajoute rien.
qwen_summary,Résume le texte suivant en 2-3 phrases maximum, en français, en conservant les idées essentielles.
creative_story,Ăcris une courte histoire crĂ©ative (50 mots) basĂ©e sur le thĂšme suivant :
đĄ Ajoutez autant de fichiers CSV que vous voulez (
seo.csv,code.csv, etc.). Le nĆud les fusionne automatiquement.
â ïž Remarques importantes
- Qwen3 est lent : Augmentez
request_timeoutsi vous obtenez des erreurs de timeout. - Pas de réponse ? Vérifiez :
- Que le modÚle est bien installé (
ollama list) - Que le CSV contient bien le
prompt_stylesélectionné - Que
disable_thinkingest activé (ON) pour éviter les sorties vides dues au parsing de<think>
- Que le modÚle est bien installé (
- Le nĆud utilise
/api/chat, pas/api/generateâ il ne fonctionne pas avec des modĂšles non-chat (ex: anciens modĂšles GGUF sans template de chat).
đ§Ș Exemple dâutilisation dans ComfyUI
- Connectez un nĆud Text Ă
text. - Sélectionnez
qwen_editdansprompt_style. - Laissez
model_name = qwen3:2b. - Activez
disable_thinking = ON. - Réglez
request_timeout = 300. - La sortie
responsecontiendra le texte édité par Qwen3.
đč 2. Analyse dâimage par IA vision (đïž FMJ Llm Ollama Vision)
Analysez des images avec des modĂšles multimodaux dâOllama (Qwen3-VL, Llava, BakLLaVA, etc.) en combinant une image dâentrĂ©e avec une instruction systĂšme personnalisĂ©e chargĂ©e depuis un fichier CSV ou saisie manuellement. GĂ©nĂ©rez des descriptions dĂ©taillĂ©es, du texte alternatif, des analyses artistiques, ou toute autre interprĂ©tation visuelle pilotĂ©e par LLM.
â Compatible avec tous les modĂšles multimodaux via
/api/chat
â OptimisĂ© pour Qwen3-VL (y compris son mode raisonnement)
â Supporte les instructions systĂšme dynamiques via CSV
â IntĂ©gration transparente dans ComfyUI
đ„ EntrĂ©es
| Nom | Type | Description |
|-----|------|-------------|
| image (obligatoire) | IMAGE | Lâimage Ă analyser, provenant dâun nĆud dâimage en amont (ex: Load Image, KSampler, etc.). |
| description_type | LIST | SĂ©lectionnez un type dâanalyse prĂ©dĂ©fini depuis vos fichiers CSV (dossier csvv/). Chaque type correspond Ă une instruction systĂšme spĂ©cifique (ex: "description dĂ©taillĂ©e", "texte alternatif"). |
| model_name | STRING | Nom du modĂšle multimodal Ollama. Ex: qwen3-vl:2b, llava, bakllava, etc. Doit ĂȘtre installĂ© localement (ollama list). |
| ollama_url | STRING | URL de lâAPI Ollama. Par dĂ©faut : http://localhost:11434. Modifiez en cas dâhĂ©bergement distant. |
| max_tokens | INT | Nombre maximum de tokens Ă gĂ©nĂ©rer. Valeur typique : 256â1024. Qwen3-VL supporte jusquâĂ 16384. |
| temperature | FLOAT | ContrÎle la créativité. 0.0 = déterministe, 0.7 = équilibré. |
| seed | INT | Graine aléatoire pour la reproductibilité. 0 = aléatoire. |
| keep_alive | INT | Durée (en minutes) de mise en cache du modÚle. -1 = toujours en mémoire, 0 = décharger aprÚs usage. |
| request_timeout | INT | (Nouveau) DĂ©lai maximal dâattente (en secondes). TrĂšs important pour Qwen3-VL (peut ĂȘtre lent). Valeur recommandĂ©e : 300 (5 min). |
| override_prompt (facultatif) | STRING | Remplace lâinstruction systĂšme sĂ©lectionnĂ©e. Si non vide, ignore description_type. |
| disable_thinking (facultatif) | BOOLEAN | (Nouveau) Si ON, désactive la trace de raisonnement de Qwen3-VL (think: false). Fortement recommandé pour obtenir une réponse directe sans balises \<think>. |
đ€ Sorties
| Nom | Type | Description |
|-----|------|-------------|
| description | STRING | Le texte gĂ©nĂ©rĂ© par le modĂšle Ă partir de lâimage et de lâinstruction. PrĂȘt pour affichage, sauvegarde ou traitement ultĂ©rieur. |
| debug_info | STRING | Informations de diagnostic : statut, modĂšle utilisĂ©, type dâanalyse, timeout. Utile en cas dâerreur ou de rĂ©ponse vide. |
đ Configuration : Fichiers CSV
Le nĆud charge automatiquement tous les fichiers .csv du sous-dossier csvv/ situĂ© au mĂȘme niveau que ce script.
Chaque fichier doit contenir exactement deux colonnes :
description_type: nom du type dâanalyse (affichĂ© dans le menu dĂ©roulant)system_prompt: instruction systĂšme complĂšte pour guider lâanalyse visuelle
Exemple : csvv/vision_prompts.csv
description_type,system_prompt
detailed_vision,Donne une description détaillée, objective et complÚte de l'image. Mentionne les objets, les couleurs, les actions, le contexte et l'humeur.
alt_text,GénÚre un texte alternatif concis (max 120 caractÚres) pour l'accessibilité web.
art_analysis,Analyse cette Ćuvre comme un critique d'art : style, composition, Ă©motion, Ă©poque possible.
product_caption,Ăcris une lĂ©gende marketing engageante pour ce produit (max 20 mots).
đĄ Vous pouvez crĂ©er plusieurs fichiers (
accessibility.csv,art.csv, etc.). Le nĆud les fusionne automatiquement.
â ïž Remarques importantes
- Qwen3-VL est lent : Augmentez
request_timeoutsi vous obtenez des erreurs de timeout. - Pas de description ? Vérifiez :
- Que le modÚle est bien installé (
ollama list) - Que le fichier CSV contient le
description_typesélectionné - Que
disable_thinkingest activĂ© (ON) â câest essentiel pour Ă©viter les rĂ©ponses vides dues au mode reasoning.
- Que le modÚle est bien installé (
- Ce nĆud utilise
/api/chat, pas/api/generateâ il ne fonctionne pas avec des modĂšles non-chat ou non-multimodaux.
đ§Ș Exemple dâutilisation dans ComfyUI
- Connectez une image Ă
image. - Sélectionnez
alt_textdansdescription_type. - Utilisez
model_name = qwen3-vl:2b. - Activez
disable_thinking = ON. - Réglez
request_timeout = 300. - La sortie
descriptioncontiendra un texte alternatif prĂȘt pour le web.
đč 3. Gestion centralisĂ©e dâOllama (âïž FMJ Llm Config)
- SĂ©lectionnez lâURL dâOllama (par dĂ©faut :
http://localhost:11434) - Liste dynamique des modĂšles installĂ©s â choisissez celui Ă utiliser
- Branchez la sortie vers les autres nĆuds â configuration unifiĂ©e et modulaire
đč 4. Nettoyage mĂ©moire Ă la demande (đ§č FMJ Unload All LLM)
- DĂ©charge tous les modĂšles dâOllama de la mĂ©moire â libĂšre la RAM/VRAM
- Idéal avant un long workflow ou pour changer de modÚle lourd
- Aucun risque de rechargement automatique
đŠ CompatibilitĂ©
- â Ollama â„ v0.13 (testĂ© sur Linux, Windows)
đĄ Tout tourne en local. Vos images, vos prompts, vos donnĂ©es restent sur votre machine. đĄ **Installer Ollama avant le node. https://ollama.com/