Nodes/SDXL Auto Prompter/APNext Split Toning FX
ComfyUI Node

APNext Split Toning FX

Teal-shadow, warm-highlight color grading in one node

By dagthomas·Created 3 years ago·Updated 17 days ago· 285
APNext Split Toning FX
  • images
  • image
highlight_hue0
highlight_saturation0.00
highlight_luminance0.70
shadow_hue240
shadow_saturation0.00
shadow_luminance0.30
balance0.00
midtone_contrast0.00
blend_modecolor
opacity1.00

Split toning is the color-grading trick behind half the "cinematic" looks you've ever admired: push the shadows one hue and the highlights another - classic teal shadows, warm-orange highlights - and a flat image suddenly reads like a movie still. APNext Split Toning FX puts that in a single ComfyUI node so you can grade renders in-graph instead of exporting to a color tool. It's one of the "APNext FX Advanced" effects in dagthomas's "SDXL Auto Prompter" pack, which bundles a whole set of post-processing nodes alongside its prompt builders.

This is the node I'd reach for when a render is technically fine but emotionally flat. A subtle split-tone does more for the mood of an image than another five prompt tokens ever will, and unlike a LUT it's fully parametric - you dial the exact hues and how far into the tones they reach.

How it works

It takes your decoded IMAGE, tints the shadow region toward one hue and the highlight region toward another, blends that tint back over the original, and returns the graded image. It's a pure tensor/color operation - no model, no API key. The defaults already lean cinematic: shadows sit at hue 240 (blue) and highlights are neutral, so the first thing you'll do is give the highlights a hue and raise the saturations off zero to actually see the effect.

The inputs that matter

  • images - the image to grade, from your VAE Decode or upscaler.
  • highlight_hue / shadow_hue (0–360) - the two colors. The cinematic default is warm highlights (around 30–45, orange) against cool shadows (shadow_hue starts at 240, blue).
  • highlight_saturation / shadow_saturation (0–1) - these start at 0, which means no visible tone. This is the "why isn't it doing anything" control; raise them to around 0.1–0.3 for a tasteful grade.
  • highlight_luminance (default 0.7) / shadow_luminance (default 0.3) - where the split falls, i.e. which tones count as "highlight" vs "shadow."
  • balance (−1 to 1) - shifts the split point toward shadows or highlights.
  • midtone_contrast (−1 to 1), blend_mode (color, soft_light, overlay, multiply) and opacity (0–1) control how the tint sits on the image. color blend at reduced opacity is the gentle, natural default.

The single output is image, into a Save Image or the next FX node.

How to install it

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

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

then restart. The pack's requirements.txt includes the imaging libraries these FX nodes use (blend-modes, color_matcher, scipy) plus the heavier openai/anthropic/google-generativeai/transformers/decord stack for the LLM and video nodes in the same repo. decord is the dependency most likely to fail to build; if it does, the FX nodes usually still load once the rest installs.

Where people get burned

  • Saturations at zero = no effect. The number-one confusion. Both saturation values default to 0, so out of the box the node looks broken. Raise them.
  • Overcooking the grade. Push the saturations or drop the opacity too far and you get a heavy Instagram-filter look. Keep saturations low and opacity below 1 for something that reads as color grading rather than a color cast.
  • Blend mode changes everything. color preserves luminance and tints cleanly; overlay and multiply also shift contrast and darkness. If the image gets muddy, switch back to color.
  • Grade at the end. Split-tone after upscaling and sharpening, right before saving, so later passes don't fight your color.
Categorycomfyui_dagthomas/APNext FX Advanced

Inputs (11)

NameTypeDefaultDescription
imagesIMAGE
highlight_hueFLOAT00–360
highlight_saturationFLOAT0.000–1
highlight_luminanceFLOAT0.700–1
shadow_hueFLOAT2400–360
shadow_saturationFLOAT0.000–1
shadow_luminanceFLOAT0.300–1
balanceFLOAT0.00-1–1
midtone_contrastFLOAT0.00-1–1
blend_modeCOMBOcolor4 options: color, soft_light, overlay, multiply
opacityFLOAT1.000–1

Outputs (1)

NameTypeDescription
imageIMAGE