Nodes/SDXL Auto Prompter/APNext Cross Processing FX
ComfyUI Node

APNext Cross Processing FX

Fake the wrong-chemistry film look

By dagthomas·Created 3 years ago·Updated 13 days ago· 283
APNext Cross Processing FX
  • images
  • image
process_typeE6_in_C41
intensity1.00
contrast1.20
saturation1.30
red_in_red1.00
green_in_red0.00
blue_in_red0.00
red_in_green0.00
green_in_green1.00
blue_in_green0.00
red_in_blue0.00
green_in_blue0.00
blue_in_blue1.00

Cross-processing is the old darkroom trick of developing film in the wrong chemistry on purpose - slide film in C-41, or negative film in E-6 - to get those punchy, shifted, slightly toxic colors: cyan shadows, yellow-green highlights, blown contrast. It's the look all over 2000s indie photography and a lot of music videos. APNext Cross Processing FX recreates it as a post-processing pass, with presets for the common recipes and a full channel mixer if you want to build your own.

Image in, image out, run after VAE decode. No model, no API key.

How it works

At the simple end you pick a process_type preset - E6_in_C41 and C41_in_E6 are the two real cross-process recipes, plus stylized ones like Vintage_Warm, Cold_Blue, and Green_Magenta. The node then remaps colors, boosts contrast and saturation, and hands back the shifted image.

Under that sits a proper 3×3 channel mixer: nine controls (red_in_red, green_in_red, blue_in_red, and so on) that decide how much of each input channel feeds each output channel. That's the actual engine of a color shift - bleeding a bit of blue into the red channel, say, is how you get those characteristic crossed-color casts. Set process_type to Custom and these become your playground.

Inputs and outputs that matter

  • images - your decoded image.
  • process_type - start here. The two *_in_* presets are the authentic looks; the named ones are stylized shortcuts.
  • intensity (0–2) - how far to push the whole effect. This is your safety dial.
  • contrast (default 1.2) and saturation (default 1.3) - cross-processing is high-contrast and saturated by nature; these come pre-boosted.
  • The channel mixer (red_in_redblue_in_blue) - only when you want to hand-build a shift under Custom. The defaults are an identity matrix (each channel maps to itself), so start from there and nudge one cross-term at a time.

The single output is image.

Installing it

ComfyUI Manager: search comfyui_dagthomas, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/dagthomas/comfyui_dagthomas
cd comfyui_dagthomas
pip install -r requirements.txt

Uses the pack's image-processing dependencies. No API key, no model files.

Common issues

This effect is loud by default - intensity 1.0 with the pre-boosted contrast and saturation can look like a bad Instagram filter on the wrong image. Pull intensity down to 0.4–0.6 for a tasteful version; save the full push for when you actually want the trashy-cool look.

If you dive into the channel mixer and the image goes neon or inverts, you've pushed a cross-term too far or driven a channel negative - reset to the identity defaults (the diagonal terms at 1, the rest at 0) and change one value at a time. And like the other film-look nodes here, this reads as color grading, so run it before grain and halation, not after.

Categorycomfyui_dagthomas/APNext FX Advanced

Inputs (14)

NameTypeDefaultDescription
imagesIMAGE
process_typeCOMBOE6_in_C416 options: E6_in_C41, C41_in_E6, Custom, Vintage_Warm, Cold_Blue, Green_Magenta
intensityFLOAT1.000–2
contrastFLOAT1.200.5–3
saturationFLOAT1.300–3
red_in_redFLOAT1.00-2–2
green_in_redFLOAT0.00-2–2
blue_in_redFLOAT0.00-2–2
red_in_greenFLOAT0.00-2–2
green_in_greenFLOAT1.00-2–2
blue_in_greenFLOAT0.00-2–2
red_in_blueFLOAT0.00-2–2
green_in_blueFLOAT0.00-2–2
blue_in_blueFLOAT1.00-2–2

Outputs (1)

NameTypeDescription
imageIMAGE