Nodes/atlas-camera/Atlas Export Scene Package (.atlas)
ComfyUI Node

Atlas Export Scene Package (.atlas)

Export the whole scene, not just the camera

By mikejamesvfx·Created 2 months ago·Updated a day ago· 1
Atlas Export Scene Package (.atlas)
  • solve
  • project
  • package_dir
output_diratlas_scenes
scene_idstreet_001
plate_path
relief_mesh_path
cleanplate_path
cleanplate_mesh_path
observation_id
cleanplate_observation_idobs_cleanplate

Most of the exporters in this pack hand a camera to Maya or Nuke and the conversation ends there. AtlasExportScenePackage is different: it writes the entire solve - camera, planes, geometry, plates, mattes, and the solve JSON itself - into a single self-contained .atlas package designed to come back edited. It's the "save the scene file" of the Atlas world, and it's the last node in the chain that starts with a solved photograph and ends with an editable 3D scene.

How it works

A .atlas package is a folder (or single archive) where every asset the scene names is copied in and referenced by package-relative path - never by whatever temp location the plate was in when the solve ran. That's a deliberate rule from the writer's source: "a package pointing at the plate's original location is not a scene, it is a note about one." Evidence is copied, never converted - mattes that live as base64 PNGs in the solve are written as the same PNG bytes, so nothing re-encodes and changes your pixels. The solve JSON travels along in an atlas/ directory so the package can show where its camera came from.

Two things it refuses to do: it never invents a completion policy (a plane the occlusion graph hasn't classified licenses none, and the editor will refuse to extrude on it - run AtlasOcclusionGraph upstream to fix), and it never writes a package that would fail its own format checklist. A bad export stops here with a complaint, not later in someone else's editor.

The inputs that matter

solve is the required one, plus output_dir (default atlas_scenes) and scene_id (default street_001 - the package lands at output_dir/<scene_id>.atlas).

The optional inputs are where the quality lives:

  • plate_path - overrides the solve's own image_path, which routinely points at a temp file that has since vanished. Set this to the real plate location.
  • relief_mesh_path - the GLB from AtlasExportReliefMesh. Without it the package has a camera and planes but no geometry to edit. The single most common reason a package opens as a skeleton.
  • cleanplate_path + cleanplate_mesh_path - both together, from a second relief-mesh run on the cleanplate/depth branch; they build a separately editable cleanplate relief behind the foreground.
  • project - an ATLAS_PROJECT from AtlasProject routes the export into the project tree's scenes/ lane and supersedes output_dir.

Output is one thing: package_dir (STRING) - where the package was written.

Installing

Same pack install as everything else - Manager search "atlas-camera", or:

cd <ComfyUI>/custom_nodes
git clone https://github.com/mikejamesvfx/atlas-camera.git

Restart. This node is in the fully public, self-contained export path - no atlas-world, no GPU, no extra pip packages for the package writer itself. If you're coming from AtlasInput, this is the natural endpoint: solve, derive geometry, merge, export.

Where people get burned

  • The package opens with no editable geometry - you skipped relief_mesh_path. The tooltip says it plainly: without the GLB you get camera and planes, not a scene to sculpt.
  • Complaints in the export note - the node reports what it couldn't include right on the node. A quietly-dropped plate produces a scene whose missing features nobody can explain; read the note before you hand the package to anyone.
  • Planes refuse to extrude in the editor - no occlusion classification. Run AtlasOcclusionGraph before exporting.

The practical flow is AtlasInput → AtlasDeriveWalls → AtlasExportReliefMesh → AtlasExportScenePackage → open in the Atlas editor, and this node is the handoff that makes the whole loop worthwhile - you can edit, re-export, and compare against the photograph you started from.

CategoryAtlas/10 · Export

Inputs (10)

NameTypeDefaultDescription
solveATLAS_SOLVE
output_dirSTRINGatlas_scenes
scene_idSTRINGstreet_001
plate_pathoptSTRINGOverrides the solve's own image_path, which names wherever the plate was when the solve ran and is routinely a temp file that has since gone.
relief_mesh_pathoptSTRINGThe GLB from AtlasExportReliefMesh. Without it the package has a camera and planes but no geometry to edit.
cleanplate_pathoptSTRINGOptional scene-linear cleanplate EXR. When paired with cleanplate_mesh_path, Atlas Camera writes a separately editable cleanplate_relief behind the foreground relief.
cleanplate_mesh_pathoptSTRINGOptional GLB from a second AtlasExportReliefMesh run using the cleanplate/depth branch. Both cleanplate inputs are required together.
observation_idoptSTRINGWhich photograph this is. Part of every plane's identity, so the same wall shot twice stays two pieces of evidence.
cleanplate_observation_idoptSTRINGobs_cleanplateEvidence identity for the cleanplate projection. Defaults to obs_cleanplate when left blank.
projectoptATLAS_PROJECTOptional delivery project from AtlasProject — routes this export into the project tree's scenes/ lane and supersedes output_dir.

Outputs (1)

NameTypeDescription
package_dirSTRING