Nodes/ComfyUI Ino Nodes/Ino Save Text
ComfyUI Node

Ino Save Text

Write any string to disk — the logging node ComfyUI forgot

By nobandegani·Created about a year ago·Updated 2 months ago· 6
Ino Save Text
    • success
    • message
    • rel_path
    • abs_path
    enabledtrue
    text
    parent_folder
    folder
    filenameoutput.txt

    ComfyUI happily saves images, but there's no built-in "write this string to a file" node. Want a copy of the exact prompt and seed that produced a batch? Want a workflow to drop a JSON config next to its outputs? You're writing a Python node or hunting for a utility pack. Ino Save Text is that utility: give it a string and a destination, and it writes the file. That's the whole job, and it's genuinely useful more often than you'd expect.

    It belongs to the ComfyUI Ino Nodes pack and uses the same file pattern as its siblings: parent_folder + folder + filename in, success / message / rel_path / abs_path out. Where Ino Save Images saves PNGs, this saves plain text - which makes it the natural logging node for pipeline-style workflows. Concat your prompt, seed, and settings into one string, save it beside the images, and every run leaves an audit trail behind. In a community where the whole reproducibility culture runs on "workflow included," writing the parameters next to the output is the obvious next step.

    Inputs

    Four of the five are straightforward:

    • enabled - an on/off toggle, on by default. Turn it off and the node passes through its outputs without writing anything.
    • text - the string to write. Multiline, so multi-line prompts or JSON blobs are fine.
    • parent_folder - the dropdown choosing input, output, or temp as the root.
    • folder - optional subfolder.
    • filename - the file name, default output.txt. Want JSON? Type config.json; the node doesn't care about extensions, it just writes the text.

    Outputs

    success (boolean) and message (string) report the outcome - "saved" on a good run, the Python exception text if something went wrong. rel_path and abs_path give you both the ComfyUI-relative and absolute path, so you can hand abs_path to an upload or zip node downstream. Unlike the image saver there's no counter and no timestamp output; this is a plain, deterministic write.

    The one thing that will bite you

    This node overwrites the target file every run. There's no auto-incrementing counter here - that's a deliberate design for log/config use, but it means you can't just leave the filename at output.txt across many runs and expect a history. If you're logging per-batch, build the filename dynamically (a datetime node in the filename input does the trick) or accept that you get the latest run only. A small thing, but it's the difference between "why is my log only one line" and a working setup.

    Install

    Install the pack, not the node:

    # ComfyUI Manager: search "ComfyUI Ino Nodes", install, restart
    # or manually:
    cd ComfyUI/custom_nodes
    git clone https://github.com/nobandegani/ComfyUI-InoNodes.git
    cd ComfyUI-InoNodes
    pip install -r requirements.txt
    

    Restart ComfyUI afterward. requirements.txt handles inopyutils and friends; there are no model downloads for this node. Note the pack targets the modern ComfyUI V3 schema, so keep ComfyUI reasonably current (v0.18.1+), and ignore the README's cd comfyui_ino_nodes typo - the cloned folder is ComfyUI-InoNodes.

    The write itself is async and off the main thread, so even big text dumps won't stall the canvas. If the file doesn't appear, check the success output - a bad parent_folder choice or a permission issue shows up there as False plus an error message, which beats a silent no-op.

    CategoryInoStringHelper

    Inputs (5)

    NameTypeDefaultDescription
    enabledBOOLEANtrue
    textSTRING
    parent_folderCOMBO3 options: input, output, temp
    folderSTRING
    filenameSTRINGoutput.txt

    Outputs (4)

    NameTypeDescription
    successBOOLEAN
    messageSTRING
    rel_pathSTRING
    abs_pathSTRING