Atlas Open Real Plate π
Open a photograph's evidence file without loading the photograph
- plate
- episode_json
- report
Every other Atlas node that touches a photo is about pixels. This one is about the record of a photo. AtlasOpenRealPlate takes a serialized RealPlateEpisode - the evidence-first JSON ledger Atlas writes for a photographed plate - and turns it into a typed ATLAS_REAL_PLATE you can wire through the graph. Crucially, it does this without opening the actual image file. It's the front door to the evidence lane: nothing about the World pipeline starts until an episode is open.
How it works
Think of a RealPlateEpisode as a passport for one photograph. It tracks the source artifact (the file itself, content-addressed), every derived artifact, every processing attempt, every export, and every locked plan bound to that plate - an append-only history of what was done to the image and what was produced from it. This node is the thin boundary that reads that document off disk (or out of a JSON string) and materializes it as a typed object the rest of the evidence nodes can validate against.
The source is explicit about the design: "it opens a serialized episode without opening its media artifact." No image decode, no model load - the report even states observed_pixels_loaded: false. If you just want to look at a photo, use a LoadImage. This node exists so an episode can enter the graph, get validated, get plans locked against it, and get handed to the export chain - all without dragging tens of megabytes of pixels around for no reason.
The input and the outputs
One required input: episode (STRING, multiline) - either the episode JSON itself or a path to the file containing it. The node accepts both.
Outputs: plate (ATLAS_REAL_PLATE) - the typed object everything downstream wants; episode_json (STRING) - the canonical serialized form, handy for peeking at what's in the record; and report (STRING) with the plate id and source artifact id. From there, the plate feeds AtlasReadLockedPlatePlan, AtlasRecordPlateAttempt, AtlasExportPlateHandoff, or AtlasRealPlateToScene.
Installing
Part of the mikejamesvfx/atlas-camera pack - Manager search "atlas-camera", or:
cd <ComfyUI>/custom_nodes
git clone https://github.com/mikejamesvfx/atlas-camera.git
Restart, done. But here's the honest caveat, same as every node in the Atlas/11 Β· Evidence Plate lane: the episode schema lives in the private atlas-world distribution, which does not ship with the public pack. The node will be in your menu and will fail at runtime with a precise install hint (pip install -e path/to/atlas-world) if you haven't got it. If you don't have episodes to open, you don't need this node yet - the public solve/geometry/export path (AtlasInput β DCC exports) is fully self-contained.
Where people get burned
- "episode is invalid" - the JSON is malformed or isn't a RealPlateEpisode. The validator is strict; a hand-edited ledger that drifted out of schema gets rejected loudly, which is the point of evidence.
- "episode path could not be read" - you passed a path that doesn't exist. Note the node tries the path first: a string that happens to look like a file path will be read as one.
- The node returns a plate but no image comes out - correct, and by design. There's no image output to wire to a preview. Don't go looking for pixels here.
This is a utility node for a specific workflow, not a daily driver. When the evidence pipeline is your workflow, it's the thing every other evidence node assumes happened first.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| episode | STRING | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| plate | ATLAS_REAL_PLATE | β |
| episode_json | STRING | β |
| report | STRING | β |