Black Bar Cinema Scope
Making your renders look like they escaped from a cinema
- image
- image
- bar_mask
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)and2.20:1 (Todd-AO).2.35:1 (Scope/Cinemascope)and2.39:1 (Anamorphic)- the classic widescreen look most people mean by "cinema."2.76:1 (Ultra Panavision)and21: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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| aspect_ratio | COMBO | 16:9 (HD/UHD) | Target cinematic aspect ratio |
| custom_ratio_widthopt | FLOAT | 0.000–10 | Custom aspect width (set both width and height > 0 to override preset) |
| custom_ratio_heightopt | FLOAT | 0.000–10 | Custom aspect height |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| bar_mask | MASK | — |