Load String List From JSON JK๐
A JSON file in, a string out โ with caching so it doesn't re-read every run
- string_output
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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| file_path | STRING | Full path to JSON file for loading | |
| force_reloadopt | INT | 00โ100000 | Force reload when value changes (useful for triggering reloads) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| string_output | STRING | โ |