Nodes/Skoogeer-Noise/KSampler (LoRA Sigma Inverse)
ComfyUI Node

KSampler (LoRA Sigma Inverse)

A LoRA That Ramps In While You Sample

By ttulttul·Created 9 months ago·Updated 3 months ago· 14
KSampler (LoRA Sigma Inverse)
  • model
  • positive
  • negative
  • latent_image
  • LATENT
seed0
steps20
cfg8.0
sampler_name
scheduler
lora_name
min_lora_strength0.00
max_lora_strength1.00
min_lora_step-1
max_lora_step-1
denoise1.00
scale_cfgfalse
clamp_cfg_after-1

Here's a scenario you've probably met: a LoRA that's great for fine detail but wrecks composition at full strength, or a distilled-model LoRA that goes unstable if you run CFG too high. The usual fix is a fixed reduced strength and a shrug. KSampler (LoRA Sigma Inverse) is the no-shrug version: a KSampler with the LoRA loader built in, where LoRA strength ramps up over the course of sampling as sigma falls. Composition gets settled early without the LoRA, then the LoRA's influence fades in for the detail work.

The strength at each step follows an explicit schedule: min_lora_strength + (max_lora_strength - min_lora_strength) * (1 - sigma[i] / max_sigma). In plain terms: at high sigma (noisy start), LoRA runs at min_lora_strength; at low sigma (fine detail), it's at max_lora_strength; in between, it eases from one to the other. If you want the LoRA to only appear mid-run, the min_lora_step/max_lora_step gates let you zero it out outside a step window.

How it works

Everything else is a standard KSampler: model, positive, negative, latent_image, steps, cfg, sampler_name, scheduler, denoise, seed. The LoRA is loaded from your loras folder by name and injected via ComfyUI's bypass path when possible (injected once, strength updated per step with multipliers - no per-step repatching), falling back to hook-based scheduling for non-bypass-compatible LoRAs. The clever extras: scale_cfg pulls CFG toward 1.0 as LoRA strength climbs - aimed at distilled-model LoRAs that destabilize at high CFG - and clamp_cfg_after snaps CFG to 1.0 after a given step.

The inputs that matter

  • lora_name - pick from your installed LoRAs.
  • min_lora_strength / max_lora_strength - the ramp endpoints (defaults 0 → 1, so the LoRA is off at the start and fully on at the end).
  • min_lora_step / max_lora_step - step gating; -1 means no bound.
  • scale_cfg - enable for distilled-model LoRAs that hate high CFG.
  • Everything else - standard KSampler behavior.

Output is a LATENT.

Installing it

Part of Skoogeer-Noise. Manager → search "Skoogeer-Noise", or:

cd ComfyUI/custom_nodes
git clone https://github.com/ttulttul/Skoogeer-Noise

Restart ComfyUI. Deps are torch, numpy>=1.26, einops, pyyaml>=6.0.3 - no extra models.

Common gotchas

Two things trip people. First, this is model-only - there's no CLIP input, so you still need a normal CLIP Text Encode node upstream to produce your conditioning; the sampler just doesn't encode text itself. Second, the defaults ramp from 0 to 1, so if you expected the LoRA to be active the whole time, you're effectively running with it off until mid-run - set min_lora_strength to your usual strength if you want a floor. And remember the LoRA has to be in the folder ComfyUI scans (ComfyUI/models/loras); an empty lora_name dropdown means the file isn't where the node looks.

Categorysampling

Inputs (17)

NameTypeDefaultDescription
modelMODELThe model used for denoising the input latent.
seedINT00–18446744073709550000The random seed used for creating the noise.
stepsINT201–10000The number of denoising steps.
cfgFLOAT8.00–100Classifier-Free Guidance scale.
sampler_nameCOMBOSampling algorithm.
schedulerCOMBOSigma scheduler.
positiveCONDITIONINGPositive conditioning.
negativeCONDITIONINGNegative conditioning.
latent_imageLATENTThe latent image to denoise.
lora_nameCOMBOLoRA file to load and schedule over sampling.
min_lora_strengthFLOAT0.00-100–100Starting LoRA strength at the beginning of sampling (highest sigma).
max_lora_strengthFLOAT1.00-100–100Target LoRA strength at the end of sampling when sigma reaches its minimum.
min_lora_stepINT-1-1–10000Minimum step index where LoRA is enabled. -1 means no minimum bound.
max_lora_stepINT-1-1–10000Maximum step index where LoRA is enabled. -1 means no maximum bound.
denoiseFLOAT1.000–1How much of the schedule to run.
scale_cfgBOOLEANfalseScale CFG toward 1.0 as LoRA strength increases during active LoRA steps.
clamp_cfg_afterINT-1-1–10000Sets the CFG value to 1.0 after the given sampling step.

Outputs (1)

NameTypeDescription
LATENTLATENT