Nodes/ComfyUI_FMJ_LLMP/⚡ FMJ-LLM-Prompt
ComfyUI Node

⚡ FMJ-LLM-Prompt

It says LLM, but there's no LLM here — FMJ-LLM-Prompt is a prompt picker

By bulldog68·Created 3 months ago·Updated 2 months ago· 1
⚡ FMJ-LLM-Prompt
    • prompt
    • debug_info
    toggle_visibilityfalse
    reset_allfalse
    extra_prompt
    txt_Animadisabled
    txt_Ideogramdisabled
    txt_Promptdisabled
    txt_Visiondisabled

    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 to disabled, 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 to disabled. Self-resets to false after 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.txt structure has to be exact, .txt lowercase, 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. Read debug_info.
    • Garbage characters in output - save your .txt files 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.

    Category🌀FMJ

    Inputs (7)

    NameTypeDefaultDescription
    toggle_visibilityBOOLEANfalse
    reset_allBOOLEANfalse
    extra_promptSTRING
    txt_AnimaCOMBOdisabled3 options: disabled, Anima-vision, Anima
    txt_IdeogramCOMBOdisabled3 options: disabled, Deno-Vision, Deno
    txt_PromptCOMBOdisabled19 options: disabled, LTX-Video, Zimage, Zimagestructure, add image, album, +13
    txt_VisionCOMBOdisabled9 options: disabled, art_style, characters, composition, cyberpunk, detailed, +3

    Outputs (2)

    NameTypeDescription
    promptSTRING
    debug_infoSTRING