SKEBA H3 Seam Exposure Match
Kill the brightness jump at a chained-clip join without touching the look
- images
- accumulation
- images
Chain a few H3 clips and you'll start noticing the same thing: even when the motion and audio join cleanly, the new clip sometimes opens noticeably brighter or darker than the previous one ended. That's a luminance step, and it reads as a cut even when nothing else moved. SKEBA H3 Seam Exposure Match is a conservative fix - it measures the exposure difference at the join and fades a luminance-only correction back to neutral over the first second or so. It doesn't regrade the clip, it just removes the step.
It's part of the ComfyUI-H3-Reference-Library pack (a.k.a. ComfyUI-Minimax-H3-Reference-Library), under Skeba AI Nodes - Motion Context.
How it works
The node compares the mean luminance of the previous clip's last six frames against the new clip's first six frames (via the loop's accumulation, so it can see the previous clip at all). It computes the exposure difference in EV, clamps it to a modest ±0.25 EV so it can't overcorrect, applies your strength, and multiplies the new clip's first frames by that gain using a cosine fade across fade_frames (default 24 - one second at H3's 24fps). By the end of the fade, the correction is back to neutral and the rest of the clip is untouched.
The settings:
- strength (default 0.75) - how much of the correction to apply. 0 disables matching entirely (useful as a permanent off-switch for graphs where you want a hard cut preserved). Lower values keep more of the new clip's generated exposure.
- fade_frames (default 24) - frames over which the correction fades out. 24 = one second at H3's standard rate.
- accumulation - the loop's previously accepted VIDEO clips. Leave it unwired and the node passes your images through bit-identical (it's also what makes a pure disabled path free). The source treats a missing accumulation as "no matching to do."
Output is a single images stream - same frames, exposure-adjusted at the head.
Where it fits
The README's placement is specific: after the final image upscaler, before Create Video, in the decoded-clip chain. It's aimed at continuous shots - a character walking, a camera holding, a scene that's supposed to read as one take. If the lighting change between clips is deliberate - a hard cut to a different room or time of day - leave it off. Matching there would fight your edit.
Installing it
ComfyUI Manager - search "Skeba" or "H3-Reference-Library" - or:
cd ComfyUI/custom_nodes
git clone https://github.com/nikaskeba/ComfyUI-H3-Reference-Library
Restart ComfyUI. No extra dependencies, no model files.
Where people get burned
- Wire the accumulation. Without it, the node has no previous clip to compare against and does nothing - silently. If you're sure you have brightness jumps and the node isn't touching them, the accumulation wire is the first thing to check.
- Resolutions must agree. It refuses (loudly) if the previous clip's frames don't match the new clip's dimensions. Same constraint as the latent path in Motion Context, for the same reason.
- It's a step remover, not a grade. The ±0.25 EV clamp is deliberate - big corrections are better handled by regenerating or fixing the source, not by slamming a gain onto the head of a clip.
- This is the decoded path. If you're using the latent path end-to-end, the latent slicing already preserves the model's exact color, so there's no decoded seam to hide - the node is for graphs that decode and re-encode at the join.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| strength | FLOAT | 0.750–1 | 0 disables matching. Lower values preserve more of the new clip's generated exposure. |
| fade_frames | INT | 241–240 | Fade the correction back to neutral across this many frames. 24 frames is one second at the standard H3 frame rate. |
| accumulationopt | ACCUMULATION | Previously accepted VIDEO clips from the loop accumulation. Leave unwired for a bit-identical pass-through. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |