Configure USD Stage
Fix a stage's up axis and units before it lands sideways in Blender
- USD
- USD
Every USD stage carries two pieces of metadata that decide whether your scene looks right when it leaves ComfyUI: the up axis (which way is "up") and the unit scale (how big one unit is). Get them wrong and your carefully-composed scene lands on its side in Blender, or a character you built at head-height shows up the size of a planet. Configure USD Stage is the node that fixes both, after the fact.
This is the sibling of Create USD Stage, which sets the same two values at stage birth. Configure exists because you won't always create the stage - often it comes out of Load USD, or out of Convert USD with whatever convention the source happened to use. glTF and most game tooling are Y-up and meters; Blender and much of the film world work in Z-up and centimeters. This node is your "translate" step between those worlds.
How it works
Mechanically it's two function calls on the stage: UsdGeom.SetStageUpAxis(stage, axis) and UsdGeom.SetStageMetersPerUnit(stage, meters). Both are stage-level opinions written into the root layer's metadata - nothing about the geometry itself is touched. That's the key mental model: it's a declaration of convention, not a transform. The geometry stays where it is; you're just telling every downstream tool how to interpret those coordinates.
Three inputs:
- USD - the stage. The one input you can't skip.
- up_axis -
YorZ, defaultY. - meters_per_unit - float, default
1.0.
On that last one, a note: 1.0 means one unit = one meter, which lines up with glTF and Convert USD output. USD's own fallback default is 0.01 (centimeters), so if you're heading toward a pipeline that assumes cm, set 0.01. If things come out 100x too big or small when you open them elsewhere, this value is the first thing to suspect.
Output is the same USD stage with the metadata stamped.
Install & troubleshooting
Whole-pack install: ComfyUI Manager → search "ComfyUI-OpenUSD", or
cd ComfyUI/custom_nodes
git clone https://github.com/cjhosken/ComfyUI-OpenUSD
then restart. Deps: usd-core==26.5 (the big wheel), numpy==2.5.0, trimesh.
One gotcha worth knowing: stage metadata composes like everything else in USD, so if your stage has a sublayer or a reference that declares its own up axis, the conflict can produce surprises in downstream tools even though this node reports success. In practice that's rare for ComfyUI-built stages, but if a stage still looks misaligned after configuring it, check whether the content itself carries transforms - configuring the stage doesn't rotate the mesh.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| USD | USD | — | |
| up_axis | COMBO | Y | 2 options: Y, Z |
| meters_per_unit | FLOAT | 1.000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| USD | USD | — |