Nodes/Atlas Camera/Atlas Export Blender Scene
ComfyUI Node

Atlas Export Blender Scene

Get your solved scene into Blender without leaving ComfyUI

By mikejamesvfx·Created 3 months ago·Updated a day ago· 1
Atlas Export Blender Scene
  • solve
  • output_profile
  • project
  • script_path
output_diratlas_exports

Atlas's whole pitch is "one photo in, a metric pinhole camera and a colour-managed projection setup out - for Nuke, Maya, USD and Blender." AtlasExportBlender is the Blender end of that promise: it takes the solved scene and writes a build_scene.py script you run inside Blender to rebuild it there. Camera, plate, and ground - as code, not as a fragile mesh drop.

It's the simplest of the export family, and that's deliberate. Where the Maya export writes a full .ma with projection networks and the USD export writes a time-sampled camera path, this one hands Blender a Python script. Blender is the most scriptable of the DCCs, so the pack leans into it: script in, build_scene.py out, you run it with Blender's bpy and your scene appears.

What it does

Required inputs: solve (the ATLAS_SOLVE - the thing carrying the recovered camera and geometry) and output_dir (default atlas_exports). The node writes build_scene.py there and returns the path as its script_path output, so you can see exactly where it landed and feed it onward if you want.

Two optional inputs give it context:

  • output_profile - optional OCIO-style output/profile metadata to include in the exported solve context. Wire it if you're colour-managing the handoff.
  • project - an optional ATLAS_PROJECT delivery project, which routes the export into the project tree's blender/ lane and supersedes output_dir. This is the pack's "delivery project" pattern - one project definition, every export landing in its own lane (blender/, usd/, maya/, ...).

One output: script_path (STRING), and the node is marked as an output node - it's a terminal step, not something you wire mid-graph.

What it's not

Worth saying clearly so you don't go looking for the wrong thing: this is not the experimental headless-Blender bridge. The pack has a separate, gated node (AtlasBlenderMassing) that drives a real Blender ≥ 4.2 installation headlessly for massing and mesh import - that one is behind ATLAS_EXPERIMENTAL=1, needs a Blender install, and is a much bigger machine. This export node is the lightweight, always-available path: write the script, run it in your own Blender, done. Everything else in the pack works without the experimental tier.

Install

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

Restart (or Manager → "atlas-camera"). Here's the nicest part about this particular node: the core export tier is dependency-free - no GPU, no torch, no neural stack required. The README's dependency table is explicit that schema, solve JSON, and DCC exporters run on pure Python. You only need the [neural] tier upstream if you want a learned solve or depth-driven geometry feeding the export; a vanishing-point solve plus this node is a fully CPU path.

Run the script it writes in Blender - the exporter handles the coordinate conversion at the boundary (Blender is Z-up, Atlas core is Y-up) so the camera and plate land where they should - and your scene assembles. One honest limitation from the docs: this export writes the camera + plate + ground scene-builder, and hasn't yet been extended to the per-layer ProjectionSource model - the layered story is currently Nuke + Maya. If you need per-layer projections in Blender specifically, that's the experimental headless bridge's territory, not this node's.

It's a brand-new pack with no community war stories yet, so if something looks off, the script itself is the documentation - it's plain Python you can read.

CategoryAtlas/10 · Export

Inputs (4)

NameTypeDefaultDescription
solveATLAS_SOLVE
output_dirSTRINGatlas_exports
output_profileoptATLAS_OUTPUT_PROFILEOptional OCIO-style output/profile metadata to include in the exported solve context.
projectoptATLAS_PROJECTOptional delivery project from AtlasProject — routes this export into the project tree's blender/ lane and supersedes output_dir.

Outputs (1)

NameTypeDescription
script_pathSTRING