Nodes/ComfyUI-JakeUpgrade/Load String List From JSON JK๐Ÿ‰
ComfyUI Node

Load String List From JSON JK๐Ÿ‰

A JSON file in, a string out โ€” with caching so it doesn't re-read every run

By jakechaiยทCreated 2 years agoยทUpdated 3 months agoยท 147
Load String List From JSON JK๐Ÿ‰
    • string_output
    โ—„file_pathโ–บ
    โ—„force_reload0โ–บ

    Some nodes generate; this one just remembers. Load String List From JSON JK reads a JSON file off disk and hands its contents to the graph as a single string. It was added to the pack in v1.9.16 for a very specific job: loading ATI trajectory presets into Wan video workflows so you can save a camera path once and replay it whenever you want.

    How it works

    Point it at a file with file_path, and it loads the JSON, then dumps it back out as a JSON string on string_output. What's smart about it is the caching: the node remembers the file's SHA-256 hash, and on subsequent runs it only re-reads the file if the content actually changed. That's a real quality-of-life win, because in a long video workflow you might run the graph dozens of times while tuning other nodes, and you don't want disk I/O and re-parsing on every single queue.

    Two format details worth knowing:

    • It handles both a plain string list (["a", "b", "c"]) and a JSON object - the v2.0.1 changelog explicitly added object support.
    • It even tries to parse each list entry as JSON individually, so entries that are themselves structured survive the round trip.

    The force_reload knob

    There's one optional input, force_reload (an INT, default 0). Changing its value forces the cache to bust and re-read the file. This is the escape hatch for the one annoying case: you edited the file outside the graph and the hash didn't change for some reason, or you just want a guaranteed refresh. Bump it, queue, and the node re-reads. Because it's an INT you can even feed it from another node - a counter that ticks each run - if you want a "reload every time" behavior.

    Pairing it with its opposite

    This node's natural partner is Save String List To JSON JK in the same pack - one writes a preset, the other reads it back. Typical flow: generate a trajectory or prompt list, save it with the save node, then load it in a later session with this node. That's how Jake's ATI trajectory presets travel between workflow runs.

    Install

    Standard pack install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jakechai/ComfyUI-JakeUpgrade
    pip install -r requirements.txt
    

    No models, no heavy deps. The most common "it's not working" cases are a wrong file_path (it prints a warning and returns an empty string - check your terminal log) and forgetting that the path is a filesystem path, not a relative model name. Give it the full path and it behaves.

    Category๐Ÿ‰ JK/๐Ÿ“ฆ Misc

    Inputs (2)

    NameTypeDefaultDescription
    file_pathSTRINGFull path to JSON file for loading
    force_reloadoptINT00โ€“100000Force reload when value changes (useful for triggering reloads)

    Outputs (1)

    NameTypeDescription
    string_outputSTRINGโ€”