Nodes/ComfyUI_yanc/๐Ÿ˜ผ> RGB Shift
ComfyUI Node

๐Ÿ˜ผ> RGB Shift

Nudge one color channel for a VHS/chromatic-aberration look

By ALatentPlaceยทCreated 2 years agoยทUpdated 2 years agoยท 80
๐Ÿ˜ผ> RGB Shift
  • image
  • image
โ—„channelโ–พโ–บ
โ—„shift_x0โ–บ
โ—„shift_y0โ–บ

The channel-split look you see in old VHS tapes and cheap camera lenses - colors slightly misaligned around edges, red bleeding one way, blue the other. This node does exactly that offset, one channel at a time.

How it works

You pick a single channel (red, green, or blue) and shift it by a pixel amount in x and y, independent of the other two. That's the key thing to understand: each call to this node only touches one channel. For the full split-channel effect - the one where it actually looks like chromatic aberration rather than a color cast - you need to stack two or three of these, each nudging a different channel in a different direction. Shift red a couple pixels right, blue a couple pixels left, leave green alone, and you get real separation. A single instance shifting just one channel, on its own, mostly just tints part of the image toward that channel's edge.

Used subtly (a pixel or two), it reads as a lens artifact. Used aggressively and stacked with this pack's Scanlines and Bloom nodes, it reads as a deliberately trashed, VHS-glitch aesthetic.

The inputs and outputs that matter

  • image (IMAGE) - required.
  • channel - enum, one of red, green, blue. Which channel this instance shifts.
  • shift_x, shift_y (INT, -20 to 20 each, default 0) - the offset in pixels, in either direction.
  • image out.

How to install it

Via ComfyUI Manager: search "yanc" or "ComfyUI_yanc" and install, then restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/ALatentPlace/ComfyUI_yanc

then restart ComfyUI. No extra dependencies or model downloads.

Common issues & troubleshooting

The effect looks barely there. The shift range caps at ยฑ20 pixels, which is plenty on a typical SD-resolution image but can read as subtle-to-invisible on a high-resolution (2K+) render, where 20 pixels is proportionally tiny. Scale your expectations to your output resolution, or apply the shift before any upscaling step.

You only shifted one channel and it just looks tinted, not glitched. That's the expected result of a single instance - chromatic separation needs at least two channels shifted in opposite directions. Chain another RGB Shift node set to a different channel.

The effect looks harsh or unnatural. Big shifts on all three channels at once tend to look like a broken TV rather than a subtle lens artifact. For a believable chromatic-aberration feel rather than an intentional glitch effect, keep shifts to just one or two pixels and only shift two of the three channels, leaving one untouched as an anchor.

CategoryYANC/๐Ÿ˜ผ Image/๐Ÿ˜ผ Post Processing

Inputs (4)

NameTypeDefaultDescription
imageIMAGEโ€”
channelCOMBO3 options: red, green, blue
shift_xINT0-20โ€“20โ€”
shift_yINT0-20โ€“20โ€”

Outputs (1)

NameTypeDescription
imageIMAGEโ€”