Nodes/CRT-Nodes/Batch Brightness Curve (U-Shape) (CRT)
ComfyUI Node

Batch Brightness Curve (U-Shape) (CRT)

A U-shaped fade across an image batch

By PGCRT·Created 2 years ago·Updated 7 days ago· 129
Batch Brightness Curve (U-Shape) (CRT)
  • images
  • IMAGE
start_level0.00
mid_level1.00
end_level0.00
q_factor2.0

If you're generating video frame-by-frame in ComfyUI - a Wan or LTX batch, an AnimateDiff sequence, anything that comes out as a stack of IMAGE tensors rather than a single picture - you eventually want to fade brightness in and out across that stack rather than leaving every frame flat. This node does exactly that in one pass: brightness starts at one level, eases toward a different level at the exact center of the batch, and eases back out toward a third level by the last frame.

What it's for

Think fade-from-black-into-a-scene-then-fade-back-out, applied as a brightness curve across a whole batch rather than something you'd otherwise fake with a dozen separate ImageBlend nodes and manual per-frame masks. It's built for video/animation batches specifically - the "U-shape" in the display name refers to the curve's classic parabolic dip (or peak) at the midpoint, not a one-directional fade.

The node treats your batch as a timeline: frame 0 gets start_level, the middle frame gets mid_level, the last frame gets end_level, and everything in between is interpolated along a curve whose steepness you control.

The inputs and outputs that matter

  • images - required IMAGE batch input.
  • start_level (default 0, range 0–5) - "Brightness at the very first frame," per the node's own tooltip.
  • mid_level (default 1, range 0–5) - "Brightness at the exact center of the video."
  • end_level (default 0, range 0–5) - "Brightness at the very last frame."
  • q_factor (default 2, range 0.1–10) - the curve shape. Per the node's tooltip: "1.0=Linear, 2.0=Parabolic (Smooth). Higher values = Stays closer to Mid Level longer." In practice, low q_factor gives you a sharp, quick fade in and out; high q_factor holds the mid-brightness plateau for most of the clip and only fades right at the edges.

Note the levels default to 0/1/0 - a fade-from-black-to-normal-back-to-black - which is the classic use case, but nothing stops you from setting start_level and end_level to something above 1 for a flash/overexposure effect instead.

Output: a single IMAGE batch, same shape as the input.

Installing it

One of twelve nodes in CRT-Nodes' CRT/Image category (alongside things like Chroma Key Overlay and Percentage Crop Calculator), part of PGCRT's broader CRT-Nodes pack.

ComfyUI Manager - search CRT-Nodes, install, restart.

Manual:

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

Restart ComfyUI. This is batch-tensor math on top of the pack's base numpy/opencv stack - nothing extra to install specifically for it.

Common issues

  • Fade looks too abrupt or too gradual - that's q_factor, not the level values. If your fade snaps in too fast at the start and end, raise q_factor so the curve holds the mid-level plateau longer; lower it for a more even, linear fade across the whole clip.
  • No visible change at all - double-check images is actually a multi-frame batch and not a single image; a batch of one frame has no "start," "middle," and "end" to interpolate between, so the curve has nothing to do.
  • Brightness clips or washes out at the peak - mid_level (or start_level/end_level if you've pushed them above 1) can genuinely overexpose the frame since the range goes up to 5, well past a normal 0–1 brightness multiplier. Keep values near 1 unless you're deliberately going for a blown-out flash effect.
  • Applied to a batch that isn't actually sequential/temporal - this node assumes "first frame, middle frame, last frame" means something in time. If you're running it on a batch of unrelated images (say, four different seeds of the same prompt), the U-shape will still apply mechanically by index, but it won't read as a meaningful fade since there's no real timeline underneath it.
CategoryCRT/Image

Inputs (5)

NameTypeDefaultDescription
imagesIMAGE
start_levelFLOAT0.000–5Brightness at the very first frame.
mid_levelFLOAT1.000–5Brightness at the exact center of the video.
end_levelFLOAT0.000–5Brightness at the very last frame.
q_factorFLOAT2.00.1–10Curve Shape. 1.0=Linear, 2.0=Parabolic (Smooth). Higher values = Stays closer to Mid Level longer.

Outputs (1)

NameTypeDescription
IMAGEIMAGE