Tile ColorFix+Sharp Patcher
ColorFix with the A1111 sharp variant's CFG trick
- model
- ref_latent
- model
This is Tile ColorFix Patcher's sharper sibling - the same low-frequency color swap, plus detail enhancement. In A1111 this was the "tile_colorfix+sharp" preprocessor, and the sharpening there is a genuinely clever hack: it works through CFG.
Here's the trick. Instead of sharpening the image directly, the node computes two versions of the color-fixed latent - the full detail version for the conditional path, and a deliberately softened version for the unconditional path. CFG then amplifies the difference between them, and the difference is the detail. Result: the model's texture gets boosted without you having to babysit a separate sharpening step.
Concretely, from the A1111 source:
detail_weight = sharpness * 0.01
neg = detail_weight * blur(x0, k) + (1 - detail_weight) * x0
x0 = cond_mark * x0 + (1 - cond_mark) * neg
The sharpness input maps to detail_weight via the ×0.01 scale, so the range is small and meaningful: 0.0 = no sharpening, 1.0 = a subtle detail boost, 2.0 = aggressive.
The inputs that matter
sharpness- 0–2, default 1.0. This is the "A1111 Sharpness" parameter. Unlike the Flux variant, which sharpens directly, this one is a no-op at CFG 1.0 because there's no gap to amplify.ref_latent- the VAE-encoded reference, source of the color palette. Use the VAE that matches your checkpoint.blur_k- frequency split, default 8, range 3–32. Larger = more aggressive color transfer.weight- 0–1 color fix strength, default 1.blur_mode- box (A1111 original) for exact match, gaussian (smoother) if you hit patchy color artifacts standalone.
Output is the patched model, straight into your KSampler.
Install
Pure Python, no requirements.txt, no models:
cd ComfyUI/custom_nodes
git clone https://github.com/ihorpankin/comfyui-colorfix-v3.git
Restart ComfyUI; it's under colorfix-v3. ComfyUI Manager: search "comfyui-colorfix-v3".
Where people get burned
The CFG dependency is the big one. This node's sharpening only exists if you're running CFG above 1.0 - at CFG 1.0 the cond and uncond paths are the same, there's no difference to amplify, and you've effectively paid for a color fix with a useless sharpness knob. If you're a low-CFG or distilled-model user, you want the Flux-style direct sharpening instead, or just the base patcher. Second: don't crank sharpness to 2.0 as a starting point. Subtle first; the CFG trick amplifies fast, and the failure mode is harsh, crunchy detail. Start at 1.0 or below and let the color fix do the heavy lifting.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| ref_latent | LATENT | VAE-encoded control/reference image. Connect from VAE Encode node. This provides the color palette to transfer. | |
| blur_k | INT | 83–32 | Blur kernel radius (A1111 'Variation'). Controls frequency split point. Larger = more aggressive color transfer. |
| weight | FLOAT | 1.000–1 | Color fix strength. 0.0 = no correction, 1.0 = full color replacement. |
| sharpness | FLOAT | 1.000–2 | Detail enhancement strength (A1111 'Sharpness'). Internally mapped to detail_weight = sharpness * 0.01. 0.0 = no sharpening, 1.0 = subtle detail boost, 2.0 = more aggressive sharpening. |
| blur_mode | COMBO | box (A1111 original) | Blur algorithm for frequency split. Box = A1111 exact match, sharp cutoff. Gaussian = smoother falloff, reduces patchy artifacts. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |