Nodes/Mickmumpitz-Nodes/Batch Color Corrector
ComfyUI Node

Batch Color Corrector

One click of color grading across every frame of a video

By mickmumpitz·Created 8 months ago·Updated 9 days ago· 47
Batch Color Corrector
  • images
  • reference_image
  • mask
  • images
  • palette_data
  • histogram
  • palette_image
  • frame_count
modeAuto
frames_per_batch16
use_gputrue
ai_analysistrue
presetNatural
effect_strength0.4
enhancement_strength0.8
adjust_for_skin_tonetrue
white_balance_strength0.0
warmth0.0
vibrancy0.0
brightness0.0
contrast0.0
tint0.0
lift0.0
gamma0.0
gain0.0
noise0.0
extract_palettefalse
reference_strength0.5

The tell that a video was generated frame-by-frame instead of in one shot is usually color: each segment has its own white balance and saturation, and the cuts are visible. Batch Color Corrector exists to kill that flicker. It processes an entire frame sequence at once with the same correction applied consistently, so your iterative video looks like it was shot by one camera instead of fifteen.

Despite the "AI-powered" in its description, don't expect a neural network drop-in. It's a statistical color engine - histogram and percentile analysis, HSV-space adjustments - implemented in torch, which means it can run on GPU and batch-process frames efficiently. That's actually a good thing: it's fast, deterministic, and needs no model download.

How it works

You feed it images (a batch, e.g. your accumulated video frames) and pick a mode:

  • Auto - analyzes each batch's brightness and saturation statistics and derives corrections automatically (percentile-based midtone analysis, saturation/contrast heuristics). The fastest path to "less ugly, more consistent."
  • Preset - applies one of 30 named looks (Natural, Warm, Teal & Orange, Film Noir, Golden Hour, Cyberpunk…), blended by effect_strength.
  • Manual - full control: white_balance_strength, warmth, vibrancy, brightness, contrast, tint, lift, gamma, gain, noise. All run -1.0 to 1.0 except noise (0 to 1).

The two that matter most for a beginner are frames_per_batch and use_gpu. The tooltip spells the trade-off out: 1–4 frames per batch is best quality but slow; 8–16 is the recommended balance; 32–64 is fastest but eats VRAM. use_gpu trades VRAM for speed, CPU uses system RAM instead.

The reference-image trick

The underrated feature is reference_image + reference_strength. Feed it a frame you like - from a previous generation you want to match, or a real shot you're matching against - and the correction leans toward that reference's color character. That's the workflow-saver for keeping later iterations consistent with your first segment: grab frame 0 of the first pass as the reference and every subsequent batch gets pushed toward it.

Outputs

  • images - the corrected batch (this is the one you use).
  • palette_data / palette_image / histogram - extracted palette and histogram of the middle frame, handy when extract_palette is on.
  • frame_count (INT) - how many frames went through.

It's marked as an output node, so it can stand at the end of a branch.

Where it fits

This is squarely aimed at the pack's iterative video workflows - run it per iteration with IterationSwitch so correction only kicks in after the first pass, and use the reference-image match to keep each segment locked to the first. It's also a decent one-stop for batch color-grading a folder of stills before training.

Installing

Same pack, same story - ComfyUI Manager, search "Mickmumpitz", install, restart:

cd ComfyUI/custom_nodes
git clone https://github.com/mickmumpitz/ComfyUI-Mickmumpitz-Nodes

Needs numpy, Pillow, opencv-python (cv2 is optional and only used if present - the torch path works without it). No models to download.

One honest caveat: "Auto" is a heuristic, not a film-grade colorist. For subtle corrections it's great; for a scene that needs real grading you'll want Preset or Manual. And keep frames_per_batch at 8–16 on a mid-range card - cranking it to 64 to save time is exactly when the VRAM spike bites.

Categoryimage/color

Inputs (23)

NameTypeDefaultDescription
imagesIMAGE
modeCOMBOAuto3 options: Auto, Preset, Manual
frames_per_batchINT161–64Batch Size Guide: 1-4: Best Quality but Slow 8-16: Balanced (recommended) 32-64: Fastest but Resource Heavy
use_gpuBOOLEANtrueGPU: Faster but uses VRAM. CPU: Slower but uses system RAM.
ai_analysisoptBOOLEANtrue
presetoptCOMBONatural30 options: Natural, Warm, Cool, High Key, Dramatic, Epic Fantasy, +24
effect_strengthoptFLOAT0.40–1
enhancement_strengthoptFLOAT0.80–1.5
adjust_for_skin_toneoptBOOLEANtrue
white_balance_strengthoptFLOAT0.0-1–1
warmthoptFLOAT0.0-1–1
vibrancyoptFLOAT0.0-1–1
brightnessoptFLOAT0.0-1–1
contrastoptFLOAT0.0-1–1
tintoptFLOAT0.0-1–1
liftoptFLOAT0.0-1–1
gammaoptFLOAT0.0-1–1
gainoptFLOAT0.0-1–1
noiseoptFLOAT0.00–1
extract_paletteoptBOOLEANfalse
reference_imageoptIMAGE
reference_strengthoptFLOAT0.50–1
maskoptMASK

Outputs (5)

NameTypeDescription
imagesIMAGE
palette_dataSTRING
histogramIMAGE
palette_imageIMAGE
frame_countINT