Nodes/ComfyUI-DreamCube/Validate Cubemap Seams
ComfyUI Node

Validate Cubemap Seams

Stop eyeballing your seams — measure them

By cedarconnor·Created 10 months ago·Updated 9 months ago· 2
Validate Cubemap Seams
  • cubemap
  • is_valid
  • max_error
  • report
threshold0.05

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.

CategoryDreamCube/Utility

Inputs (2)

NameTypeDefaultDescription
cubemapCUBEMAP
thresholdFLOAT0.050–1Maximum allowed seam error; lower = stricter

Outputs (3)

NameTypeDescription
is_validBOOLEAN
max_errorFLOAT
reportSTRING