Nodes/TrentNodes/Black Bar Cinema Scope
ComfyUI Node

Black Bar Cinema Scope

Making your renders look like they escaped from a cinema

By TrentHunter82·Created 9 months ago·Updated 4 days ago· 36
Black Bar Cinema Scope
  • image
  • image
  • bar_mask
aspect_ratio16:9 (HD/UHD)
custom_ratio_width0.00
custom_ratio_height0.00

There's nothing AI about adding letterbox bars, but that doesn't stop people from wanting them on every AI render - because a 2.39:1 crop with black bars reads "cinema" instantly, even when the footage is a diffusion video with a wobbling lamp. Black Bar Cinema Scope is the deterministic post step: it takes any image or video frame batch and pads it out to a target widescreen aspect ratio with black bars, letterboxing (bars top/bottom) or pillarboxing (bars left/right) as needed. Zero model, zero invention, milliseconds per frame - the correct tool for a job that a diffusion pass would be the wrong tool for.

The math is the boring, reliable part. You give it an aspect ratio; it figures out which axis is short, adds black to reach the target ratio, and composites. Because it runs across a whole batch on the GPU, every frame of a video gets identical bars - no jitter, no varying bar widths, which is the thing you'd fight if you did this per-frame by hand in an editor.

The knobs

aspect_ratio is a dropdown of the standards that actually matter:

  • 16:9 (HD/UHD) - the baseline.
  • 1.85:1 (Flat Widescreen) - theatrical standard.
  • 2.00:1 (Univisium) and 2.20:1 (Todd-AO).
  • 2.35:1 (Scope/Cinemascope) and 2.39:1 (Anamorphic) - the classic widescreen look most people mean by "cinema."
  • 2.76:1 (Ultra Panavision) and 21:9 (Ultrawide) - the aggressive ones.

If none of those fit, custom_ratio_width and custom_ratio_height override the preset - set both above 0 and the preset is ignored. (The tooltip is explicit about that: "set both width and height > 0 to override preset.")

Outputs: image (the letterboxed/pillarboxed batch) and bar_mask - a mask marking exactly where the bars are. That mask is the sleeper feature. Wire it to a compositing or inpainting step and you can place captions, safe-area graphics, or even generative content strictly inside the visible frame, or mask the bars out of a later effect. If you're building a "cinematic trailer" template, the bar_mask is how you keep everything else aligned.

Gotchas

Two things trip people. First, this pads - it does not change the resolution of the visible area. A 1:1 square at 2.39:1 gets tall pillarbox bars and a tiny visible strip, which is usually not what you wanted. If your source is square, crop or resize toward the target ratio first (BlackBarCrop in the same pack does the reverse direction - it detects and removes bars). Second, feeding it a 4K batch is fine but remember the bars are part of the output pixels, so your effective visible resolution drops. That's inherent to letterboxing, not a bug.

It's part of TrentNodes, so: ComfyUI Manager (search "Trent Nodes"), or

cd ComfyUI/custom_nodes
git clone https://github.com/TrentHunter82/TrentNodes.git
cd TrentNodes && pip install -r requirements.txt

No models, no downloads, GPU-accelerated compositing. For "add the bars" this is the whole pack's simplest honest win.

CategoryTrent/Image

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
aspect_ratioCOMBO16:9 (HD/UHD)Target cinematic aspect ratio
custom_ratio_widthoptFLOAT0.000–10Custom aspect width (set both width and height > 0 to override preset)
custom_ratio_heightoptFLOAT0.000–10Custom aspect height

Outputs (2)

NameTypeDescription
imageIMAGE
bar_maskMASK