Load Model Snapshot
The JSON reader that feeds the whole Pseudocomfy graph
- json_data
Every Pseudocomfy workflow starts the same way: with a JSON file that describes the whole render - the scene prompt, the style, the negative, and a list of material prompts each with its own mask and optional reference image. That file is a "model snapshot," and Load Model Snapshot is the front door. It reads one of those JSON files and hands it to the rest of the graph as a single json_data DICT.
It's not a checkpoint loader and it doesn't touch any .safetensors. The name throws people - "model" here means the scene model (the 3D-design intent) as captured in a snapshot, not a diffusion model. Once you're past that, the node is pleasantly simple: one input, one output.
The one input: string_path
Give it a path and it decides what to do based on what the path looks like:
- A URL (anything starting
httporhttps) - it does an HTTP GET and parses the response as JSON. Handy when your snapshots live on a server or in cloud storage. - A local directory - it lists every
*.jsonin the folder, sorts by modification time, and loads the most recently modified one. Drop new snapshots into a folder, re-run the graph, and it picks up the newest without you editing anything.
The pack ships an example at custom_nodes/Pseudocomfy/snapshots/example-farmhouse-txt-only.json, so pointing string_path there is the fastest way to see the whole pipeline move.
What it outputs and what it's for
The single json_data output (a DICT) is meant to plug directly into PseudoUnpackModelSnapshot, which tears the snapshot into lists of material texts, images, and masks plus the environment prompts. The pair is the pipeline's entry point: Load brings the JSON in, Unpack turns it into things ComfyUI's conditioning nodes can eat.
Two behaviors are worth knowing before you blame the node for strange results:
- It re-runs every time. The node's
IS_CHANGEDreturns a fresh hash on every execution, so ComfyUI never caches its output. That's deliberate - snapshots are meant to change - but it means anything downstream recomputes on every queue run, even if you changed nothing. - It does zero validation. Garbage in, garbage out: a malformed JSON raises whatever Python's
json.loadthrows, and a folder with no JSON files raisesFileNotFoundErrorwith a clear message.
Install is the pack standard - git clone https://github.com/Pseudotools/Pseudocomfy into custom_nodes and restart, or search "Pseudocomfy" in ComfyUI Manager. If you're coming from a plain ComfyUI habit of hardcoding prompts, this node (and its Unpack sibling) is the entire reason the workflow is reproducible: swap the snapshot, re-run, get the new scene.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| string_path | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| json_data | DICT | — |