Nodes/NH-Nodes/NH Large Image Preview
ComfyUI Node

NH Large Image Preview

Zoom into an 8K render in your browser without freezing the canvas

By jetthuangai·Created 5 months ago·Updated 21 days ago· 6
NH Large Image Preview
  • image
  • image
  • manifest
preview_megapixels1.00
preview_formatjpg
preview_quality90
viewer_modemodal
titleNH Large Image Preview
tile_size512
tile_formatjpg
tile_quality90
cache_policytemp

The bigger your upscales get, the dumber ComfyUI's default preview feels. It renders the full image to the canvas, and once you're past a few megapixels the browser starts lagging on every scroll, zoom, and node drag. NH Large Image Preview (class NH_LargeImagePreview) exists for exactly that moment: it previews a lightweight proxy and lets you inspect the real pixels in a proper viewer, instead of wedging the whole image onto the canvas.

What it actually does

Same mechanism as its sibling NH Large Image Compare: the node builds a tiled preview cache - a thumbnail plus a pyramid of tiles (512px JPEG by default) under ComfyUI/temp/nh_large_preview. The canvas only ever shows the thumbnail, so the graph stays responsive. Click it and you get a viewer that loads tiles on demand as you pan and zoom, which means you can inspect a genuinely huge render at 100% without the UI choking.

It's an output node (OUTPUT_NODE = True), so it functions like Preview Image, but with a useful extra: it passes the original image through untouched, plus a manifest string describing what got cached. That passthrough matters - you can drop it mid-pipeline as a visual checkpoint and keep wiring the same tensor forward.

The inputs that matter

  • viewer_mode - modal, side_panel, or new_tab. Modal is the default and it's the right one for most people. new_tab is handy when you're comparing several outputs across tabs.
  • preview_megapixels (default 1) - the resolution of the interactive preview. This is the "how much do I actually need to see at once" dial. Start at 1; go to 2–4 only when you're scrutinizing fine detail.
  • preview_format / preview_quality - JPEG at 90 by default, which is a good speed/size trade. Drop to WebP if your browser handles it better.
  • title - labels the viewer so you can tell outputs apart in a batch.

The optional tile_size, tile_format, and tile_quality control the pyramid internals. Leave them alone unless panning feels laggy - smaller tiles load faster but mean more requests.

Installing

From ComfyUI Manager, search NH-Nodes, install, restart. Manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/jetthuangai/NH-Nodes.git
cd NH-Nodes
pip install -r requirements.txt

Restart ComfyUI, and refresh the browser tab if the node looks cached. The heavy dependencies in requirements.txt (onnxruntime, transformers) serve the pack's Vision/VTON nodes - this preview node only needs the common image libraries.

Where people get burned

The cache is temp-storage by design, so it's not a save mechanism - don't rely on it for anything you can't regenerate. And because it's an output node, ComfyUI will rebuild the cache every run. If you leave a batch of these in a long workflow, the nh_large_preview folder grows; that's what NH Large Preview Cache Manager is for. Minor gripe: there's no "open folder" affordance, so when you do want the full-res file, you'll still want a Save node in the graph. As a viewing tool, though, this is the one I reach for over the built-in preview.

CategoryNH-Nodes/Image

Inputs (10)

NameTypeDefaultDescription
imageIMAGE
preview_megapixelsFLOAT1.000.05–8
preview_formatCOMBOjpg3 options: jpg, webp, png
preview_qualityINT901–100
viewer_modeCOMBOmodal3 options: modal, side_panel, new_tab
titleSTRINGNH Large Image Preview
tile_sizeoptINT512128–2048
tile_formatoptCOMBOjpg2 options: jpg, webp
tile_qualityoptINT901–100
cache_policyoptCOMBOtemp1 options: temp

Outputs (2)

NameTypeDescription
imageIMAGE
manifestSTRING