Validate Cubemap Seams
Stop eyeballing your seams — measure them
- cubemap
- is_valid
- max_error
- report
Validate Cubemap Seams is the quality gate for the whole pack's reason to exist. When you estimate depth on six independent faces, the seams - the twelve edges where adjacent faces meet - are where the inconsistency shows up as a visible step. This node computes a numeric error for every seam and tells you, as a boolean, whether your depth is continuous enough to trust.
Here's the concrete workflow: run Batch Cubemap Depth, run Enforce Depth Consistency, and then validate. If is_valid comes back false, your blending settings weren't aggressive enough - raise boundary_width or add iterations and re-check. Because it outputs a real BOOLEAN, you can wire is_valid into a conditional switch and automatically pick between "use this depth" and "re-process it," which is a genuinely nice automation if you're iterating on a lot of panoramas.
The mechanism is exactly what you'd hope: for each pair of adjacent faces it samples the depth along the shared edge on both sides and takes the maximum absolute difference as that seam's error. The overall max_error is the worst seam across the whole cubemap, and it's compared against your threshold to produce the verdict. The default threshold of 0.05 means "the worst seam disagrees by no more than 5% of the depth range" - a reasonable starting point, though you may want it stricter for smooth gradients or looser for noisy indoor scenes.
Inputs and outputs
cubemap- a cubemap with depth (it returns an immediate failure flag if there's none).threshold- the max acceptable seam error, 0.0–1.0, default 0.05. Lower is stricter.
Three outputs:
is_valid(BOOLEAN) - pass/fail against the threshold.max_error(FLOAT) - the worst single seam's error.report(STRING) - a text dump with mean and median error, seam count, and PASS/FAIL.
How to install it
ComfyUI Manager, search "DreamCube", install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/cedarconnor/ComfyUI-DreamCube.git
cd ComfyUI-DreamCube
pip install -r requirements.txt
No models, no keys - it's a handful of NumPy comparisons.
Gotchas
The error is computed on depth values, which only mean something if the faces are on a comparable scale - run Normalize Cubemap Depth first if you mixed models per face, or the validator will measure your normalization problem instead of your seam problem. And keep the honest limit in mind: a passing seam check means the boundary depths agree, not that the depth is correct. Garbage depth that's smoothly continuous still passes, so validate after you've already eyeballed the faces in Cubemap Preview.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| cubemap | CUBEMAP | — | |
| threshold | FLOAT | 0.050–1 | Maximum allowed seam error; lower = stricter |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| is_valid | BOOLEAN | — |
| max_error | FLOAT | — |
| report | STRING | — |