Nodes/ComfyUI-Dream-Interpreter/Validate Dream Panorama
ComfyUI Node

Validate Dream Panorama

The 5-second health check for your panorama

By gokayfem·Created 2 years ago·Updated about a month ago· 85
Validate Dream Panorama
  • panorama
  • validated_panorama
  • report_json
repair_aspectfalse
target_width2048

Before you project a panorama into a camera view or a little planet, you want to know it's actually a valid panorama. Validate Dream Panorama (DreamPanoramaValidate) is the cheap sanity check that tells you whether your image is a proper 2:1 equirectangular, how bad the wrap seam is, how the poles look, and - if you ask - repairs the aspect ratio so it is a proper 2:1. It's meant to sit at the front of your pipeline, one hop before the seam repair and the projections.

How it works

All CPU, all deterministic, no models. It measures three things on your image:

  • Geometry: is the width exactly twice the height? True equirectangulars are 2:1, and everything downstream quietly assumes that.
  • Seam energy (seam_mae): the mean absolute difference between the first and last columns. That's the same seam the pack's Repair Panorama Seam node fixes, so a high number here tells you to run that node next.
  • Pole variance: the average variance of the top and bottom rows. Equirectangulars legitimately compress the poles to a point, so a high value means the very top and bottom rows are churning with detail - usually a sign of distorted content that'll look bad when projected.

If repair_aspect is on and the image isn't 2:1, it LANCZOS-resizes to target_width × target_width/2 and reports aspect_repaired: true.

Inputs and outputs

  • panorama - your IMAGE.
  • repair_aspect (default off) - flip this to actually resize non-2:1 images into proper equirect shape.
  • target_width (256…8192, default 2048) - the width to resize to when repairing. The height follows automatically as half of it.

Outputs are validated_panorama (the IMAGE - passed through unchanged if no repair happened) and report_json, a structured report with source/output resolutions, is_2_to_1, aspect_repaired, seam_mae, pole_variance, and a short guidance string.

Installing it

Shared pack, one install for all nodes - ComfyUI Manager (search ComfyUI-Dream-Interpreter) or:

cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI-Dream-Interpreter.git
python -m pip install -r requirements.txt

Restart ComfyUI. Dependencies: numpy and Pillow, nothing else. Find it under panorama/dream toolkit.

Where people get burned

The README says it plainly and it's worth repeating: repair can fix dimensions, it can't invent missing 360° content. If you feed it a flat illustration that happens to be 2:1, you'll get a validated, reshaped image that still isn't a panorama - the geometry is right and the scene is wrong. The seam_mae number is your friend here: a genuinely seamless 360 render or capture should score low; a flat image stretched into 2:1 will score weirdly and look wrong when viewed. Use this node as the tripwire at the start of a pipeline - wire its report_json to a text preview, glance at it, and let it tell you whether to proceed to seam repair or go back and regenerate.

Categorypanorama/dream toolkit

Inputs (3)

NameTypeDefaultDescription
panoramaIMAGE
repair_aspectBOOLEANfalse
target_widthINT2048256–8192

Outputs (2)

NameTypeDescription
validated_panoramaIMAGE
report_jsonSTRING