Nodes/atlas-camera/Atlas Open Real Plate πŸ““
ComfyUI Node

Atlas Open Real Plate πŸ““

Open a photograph's evidence file without loading the photograph

By mikejamesvfxΒ·Created 2 months agoΒ·Updated a day agoΒ· 1
Atlas Open Real Plate πŸ““
    • plate
    • episode_json
    • report
    β—„episodeβ–Ί

    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.

    CategoryAtlas/11 Β· Evidence Plate

    Inputs (1)

    NameTypeDefaultDescription
    episodeSTRINGβ€”

    Outputs (3)

    NameTypeDescription
    plateATLAS_REAL_PLATEβ€”
    episode_jsonSTRINGβ€”
    reportSTRINGβ€”