Nodes/LCS/LCS Sharpness Intervene
ComfyUI Node

LCS Sharpness Intervene

Sharpen or soften a generation while it's still in the latent

By facok·Created 6 months ago·Updated 2 months ago· 160
LCS Sharpness Intervene
  • model
  • sharpness_data
  • mask
  • model
strength0.0
start_step5
end_step15

The latent-space sharpener that doesn't drag your colors sideways

Sharpening usually means a post-pass - unsharp mask on the decoded image, or a hires pass that fights your sampler. LCS Sharpness Intervene does it during sampling, in latent space, using a "sharpness subspace" the pack's author discovered with PCA on blurred noise stimuli. Positive strength sharpens, negative blurs, zero changes nothing. And because the sharpness direction is calibrated orthogonal to the color subspace, you can sharpen without shifting the color balance. That orthogonality is the whole trick - most sharpening either muddies or tints.

The part people miss: you need a calibration node first

Sharpness Intervene takes sharpness_data, and that does not come from LCS Load Data. It comes from its sibling, LCS Sharpness Calibrate, the pack's second calibration node. The README's chain:

LCS Load Data → LCS Sharpness Calibrate → LCS Sharpness Intervene → KSampler

Wire your VAE into Sharpness Calibrate (it auto-calibrates and caches, exactly like LCS Load Data does for color). The step that matters: connect lcs_data from LCS Load Data into Calibrate's optional input, and it strips the color component during calibration so the sharpness direction stays color-orthogonal. PC1 of that PCA captures ~97% of the sharpness variance, which is why a single direction is enough to steer it.

Inputs that matter

  • strength (-5 to 5, default 0) - positive = sharper, negative = blurrier. Start small: 0.5–1.5 is far more visible in latent space than the numbers suggest.
  • start_step / end_step (defaults 5–15) - the intervention window. On step-distilled models (z-image-turbo etc.) start earlier, even step 0.
  • Optional mask - localized sharpness/blur, e.g. keep faces crisp while the background stays soft.
  • Output is a model, straight into your KSampler.

Where you'd actually use it

FLUX-family models trend soft. Instead of a blanket post sharpener that also crunches grain, nudge sharpness mid-generation and let the model adapt to it in later steps. Negative strength is the underrated direction: a gentle -0.5 gives a shallow-depth-of-field feel with no blur pass. The README lists the pack as tested on FLUX, FLUX2.klein, z-image, Wan (qwen-image), and LTX2.3 - calibration is per-VAE, so it adapts to whatever you throw at it.

Install & gotchas

cd ComfyUI/custom_nodes
git clone https://github.com/facok/ComfyUI-LCS.git

Then restart. Only einops + safetensors required, both almost certainly already installed. Gotchas: don't forget the Calibrate node or Sharpness Intervene has nothing to work with; and remember this runs during sampling, so it can't rescue a generation already decoded soft - it has to sit in the chain before the KSampler.

CategoryLCS/intervention

Inputs (6)

NameTypeDefaultDescription
modelMODEL
sharpness_dataSHARPNESS_DATACalibration data from LCSSharpnessCalibrate
strengthFLOAT0.0-5–5Sharpness strength (>0 = sharper, <0 = blurrier, 0 = no change)
start_stepINT50–50First step to apply sharpness intervention
end_stepINT150–50Last step to apply sharpness intervention
maskoptMASKOptional mask for localized sharpness control

Outputs (1)

NameTypeDescription
modelMODEL