⚡ FMJ-LLM-Prompt
It says LLM, but there's no LLM here — FMJ-LLM-Prompt is a prompt picker
- prompt
- debug_info
The name is a lie, in the best way
⚡ FMJ-LLM-Prompt looks like it should be spinning up a local model or dialing some API. It does neither. There's no Ollama, no OpenAI, no key, no network call - grep the source and you'll find nothing but os.listdir and a ", ".join(). It's a categorized prompt picker: dropdowns full of pre-written prompt chunks, and the node stitches your selections into one string. That's the whole job, and for that it's genuinely handy.
It comes from a French ComfyUI user (bulldog68) who clearly built it for their own workflow - the readme is in French, the UI labels are too, and the shipped .txt files are tuned for the models they run: Anima and Z-Image (both LLM-encoder models that want instructions, not tag soup - the KB's prompt-engineering doc is the background here), plus Ideogram, LTX-Video, and a set of qwen_edit_* prompts for image-editing chores. If you run any of that stack, the presets are usable as-is; if you don't, you'll replace them in ten minutes.
How it works
The node scans a txt/ folder inside the pack install at load time. Every subfolder becomes a dropdown, and every non-empty .txt file inside becomes an option. So the shipped txt/Prompt/ folder turns into the txt_Prompt dropdown, with 19 choices from LTX-Video to Zimagestructure. Pick one from each category and the node concatenates the file contents with ", ", appends whatever you typed in extra_prompt, and hands you the finished prompt. Each .txt holds exactly one prompt, one idea per file - that's the design rule.
One honest gotcha: the dropdowns are baked at load time. Add a new .txt and you need to restart ComfyUI (or hit Refresh in Manager) before the option shows up.
The inputs that matter
Most of the node is just the txt_ dropdowns (txt_Anima, txt_Ideogram, txt_Prompt, txt_Vision in the stock install), and the default is disabled - meaning that category is skipped. The three global widgets:
toggle_visibility- flips on a little frontend script that hides every dropdown currently set todisabled, collapsing the node down to just the categories you're using. It's the nicest touch in the pack; the node otherwise grows one dropdown per category forever.reset_all- snaps every dropdown back todisabled. Self-resets tofalseafter firing, so you don't have to toggle it off yourself.extra_prompt- a free-text field appended to the final prompt, handy for the actual subject ("a cat sitting on a fence") while the dropdowns supply the style.
Outputs and wiring
Two STRING outputs. prompt is the one you want - feed it into a CLIP Text Encode node's positive text input (for SDXL-lineage checkpoints) or straight into an LLM-encoder model's prompt slot. debug_info lists what was selected per category; if you get an empty prompt and your dropdowns look right, check it first.
Installing
No dependencies, no model downloads, pure Python stdlib plus one JS file. The README's official route:
cd ComfyUI/custom_nodes
git clone https://github.com/bulldog68/ComfyUI_FMJ_LLMP
Restart ComfyUI and it'll be under the 🌀FMJ menu (or search "FMJ-LLM-Prompt"). ComfyUI Manager can usually find it by the repo name too.
Troubleshooting
- Dropdowns missing - the
txt/Category/file.txtstructure has to be exact,.txtlowercase, and the file non-empty (empty files are silently skipped). Then restart. - Empty prompt output - every category is still on
disabled, or all your files are empty. Readdebug_info. - Garbage characters in output - save your
.txtfiles as UTF-8, no BOM. - Slow to load - the README warns that one category with 100+ files will drag things down; spread prompts across more categories.
Is this the node that'll change your life? No. But it's a tidy, zero-weight way to keep a personal library of prompt chunks clickable instead of pasted - and the only node you'll ever use where "LLM" in the title means less work, not more.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| toggle_visibility | BOOLEAN | false | — |
| reset_all | BOOLEAN | false | — |
| extra_prompt | STRING | — | |
| txt_Anima | COMBO | disabled | 3 options: disabled, Anima-vision, Anima |
| txt_Ideogram | COMBO | disabled | 3 options: disabled, Deno-Vision, Deno |
| txt_Prompt | COMBO | disabled | 19 options: disabled, LTX-Video, Zimage, Zimagestructure, add image, album, +13 |
| txt_Vision | COMBO | disabled | 9 options: disabled, art_style, characters, composition, cyberpunk, detailed, +3 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| debug_info | STRING | — |