Nodes/isekai-comfy-node/Chromatic Aberration
ComfyUI Node

Chromatic Aberration

Fake lens flaws for a real lens feel

By isekai-sh·Created 9 months ago·Updated 8 months ago· 3
Chromatic Aberration
  • image
  • image
strength5.0
angle0

Chromatic aberration is the red/blue fringe you see on photos shot with cheap lenses - the color channels don't quite land on top of each other at the edges of the frame. Most people spend their lives trying to get rid of it. This node adds it back on purpose, because a tiny bit of fringing makes a generated image read as "photographed" instead of "rendered." It's the kind of imperfection that sells realism, and it's a one-node job here.

How it works

The mechanism is dead simple and a little crude, which is fine. The image converts to a numpy array, then the red channel gets rolled in one direction and the blue channel in the opposite direction (green stays put). That directional shift is what separates colored edges into fringes. strength controls the pixel offset - 0 to 50, default 5. angle (0–360, default 0) picks the direction the channels slide. Default 0 pushes horizontally, which is the classic "left side red, right side blue" look you see on phone-camera photos.

The honest take: this is the flat, whole-image version of the effect. Real chromatic aberration is stronger at frame edges and weaker in the center, because real lenses bend light more off-axis. This node shifts every pixel equally, so at high strength it starts looking like a 3D anaglyph render rather than a lens. Keep strength in the 2–8 range and it reads as lens imperfection; crank it to 30+ and you're in deliberate glitch territory. Both are legitimate, just know which one you're buying.

The inputs

  • image - the image to fringe.
  • strength - pixel offset, 0–50, default 5. 0 disables the effect and passes the image through.
  • angle - direction in degrees, 0–360, default 0. Optional; skip it unless you want diagonal fringing.

Output is a single image tensor. It's a finishing node - wire it late in the graph, after color grading and right before save, so the fringe sits on top of everything.

Installing it

It's part of isekai-comfy-node, so one install gets you all the image nodes:

ComfyUI Manager: search "isekai" → install isekai-comfy-node → restart.

Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/isekai-sh/isekai-comfy-node
cd isekai-comfy-node
pip install -r requirements.txt

Restart ComfyUI and it appears under Isekai → Image/Effects. Dependencies are just Pillow and requests; torch and numpy are already in ComfyUI. Nothing to download, no models.

Where people get burned

Same batch caveat as the other image nodes in the pack: only the first frame of a batch gets processed, so don't route an animation or image sequence through it expecting per-frame treatment.

The other gotcha is subtle: because the channels are rolled via np.roll, pixels wrap around from one edge to the other. At small strengths you'll never notice. At big strengths, look at the image border - colors bleed in from the opposite edge. If that bothers you, keep the strength moderate or crop the result afterward. That's really the whole list of failure modes; the node is too thin to break in interesting ways.

CategoryIsekai/Image/Effects

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
strengthFLOAT5.00–50
angleoptFLOAT00–360

Outputs (1)

NameTypeDescription
imageIMAGE