ComfyUI Node

Load Description

Keep Your Character Sheets Out of the Workflow JSON

By Ferocit·Created about a year ago·Updated 4 days ago· 0
Load Description
    • description_text
    • description_name
    file_pathexamples/example.txt

    The Load Description node is the answer to a very specific kind of annoyance: you have a character sheet, a lore block, or a style paragraph you paste into your prompt on every single workflow, and you're tired of digging it out of the workflow JSON when you want to tweak it. It reads a .txt file from the pack's own descriptions folder and hands you back its contents as a string, ready to wire into your prompt. No model, no API, no key. It's a file reader with a dropdown.

    If you do any character work - and character consistency is the classic unsolved problem in this hobby - you've probably got a paragraph-long description you reuse everywhere. Sticking it in a text file instead of a prompt node means one source of truth: edit the file, every workflow that uses it picks up the change. That's the whole pitch, and it's a genuinely good one for a tiny utility.

    How it works

    On the surface it's dead simple, but there are two details worth knowing.

    First, the dropdown is populated at load time: the node walks the plugin's descriptions/ directory recursively, picks up every .txt file, and sorts them into the file_path list. So you can organize with subfolders - characters/lyraniel_stormweaver.txt, styles/ink.md - and each entry shows its path. Subfolders are supported, not just flat files.

    Second, it has a smart IS_CHANGED: it fingerprints the file by modification time and size, so when you edit a description and run the workflow again, the node actually re-executes with the new text instead of serving you a cached string. That's the kind of thing small packs often get wrong, and this one doesn't.

    Inputs and outputs

    There's exactly one input and two outputs, so there's not much to learn:

    • file_path (dropdown) - pick which .txt file to load. The list only refreshes when ComfyUI reloads node definitions, so a file you just dropped in won't appear until you restart (or hit refresh in Manager). If the folder is empty, the node helpfully creates descriptions/examples/example.txt so you have a placeholder.
    • description_text (STRING) - the full contents of the file, line breaks and all. Wire this into your positive prompt, or into a text-concat node if you want it combined with other bits.
    • description_name (STRING) - just the filename without the extension. Handy as a label, or as a key for something like a LoRA stacker that wants a name per entry.

    Installing it

    It ships in the comfyui-feroccustomnodes pack, which is a pure-Python, no-dependency affair - no requirements.txt, no models, no CUDA shenanigans. Easiest path is ComfyUI Manager: search "comfyui-feroccustomnodes" and install. Or the manual route:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/Ferocit/comfyui-feroccustomnodes.git
    

    Then restart ComfyUI and drop your files in:

    ComfyUI/custom_nodes/comfyui-feroccustomnodes/descriptions/
    

    Gotchas

    One real trap: your text files live inside custom_nodes/, which means an uninstall of the pack (via Manager) takes your descriptions with it. Keep a copy elsewhere, or git-init the folder. Also remember the dropdown needs a node-definition refresh to see new files - don't panic when your brand-new file is missing; restart and it'll be there.

    CategoryFeroc

    Inputs (1)

    NameTypeDefaultDescription
    file_pathCOMBOexamples/example.txt1 options: examples/example.txt

    Outputs (2)

    NameTypeDescription
    description_textSTRING
    description_nameSTRING