Nodes/ComfyUI-LTXVideo/πŸ…›πŸ…£πŸ…§ STG Guider Advanced
ComfyUI Node Runs on cloud

πŸ…›πŸ…£πŸ…§ STG Guider Advanced

Per-sigma CFG and STG scheduling

By LightricksΒ·Created 2 years agoΒ·Updated about a month agoΒ· 3,956
πŸ…›πŸ…£πŸ…§ STG Guider Advanced
  • model
  • positive
  • negative
  • preset
  • GUIDER
β—„skip_steps_sigma_threshold0.998β–Ί
β—„cfg_star_rescaletrueβ–Ί
β—„sigmas1.0, 0.9933, 0.9850, 0.9767, 0.9008, 0.6180β–Ί
β—„cfg_values8, 6, 6, 4, 3, 1β–Ί
β—„stg_scale_values4, 4, 3, 2, 1, 0β–Ί
β—„stg_rescale_values1, 1, 1, 1, 1, 1β–Ί
β—„stg_layers_indices[29], [29], [29], [29], [29], [29]β–Ί
β—„apply_apgfalseβ–Ί
β—„apg_cfg_scale1.00β–Ί
β—„eta1.00β–Ί
β—„norm_threshold0.00β–Ί

This is the guider you graduate to when the plain STG Guider stops giving you enough control. Instead of one CFG value and one STG value for the whole denoise, STG Guider Advanced lets you draw a curve - different guidance at the start of sampling than at the end. On LTX video that matters more than it sounds, because the early high-noise steps decide composition and motion while the late steps only clean up detail, and they want very different amounts of push.

It ships with ComfyUI-LTXVideo, the official node pack from Lightricks (the Facetune company that also makes the LTX video models). STG itself - Spatiotemporal Skip Guidance - is a training-free trick from the LTXV 0.9.6 era: you run the model a second time with certain attention layers skipped, and steer away from that degraded prediction to sharpen motion and structure. The "Advanced" node is what the community reached for once distilled models made blanket CFG counterproductive.

How it works

The core idea is a mapping from sigma (the noise level at each step) to a set of guidance parameters, independent of step count. You give it a list of sigma breakpoints and, for each range, the CFG scale, STG scale, STG rescale, and which transformer layers to skip. The guider looks up the current sigma, finds which bucket it falls in, and applies those numbers. Same sigma always gets the same treatment, whatever step number it lands on - so your schedule survives changing the step count.

The node's own example: sigmas [1.0, 0.9, 0.85, 0.6] with CFG [4, 3, 2, 1] means CFG 4 while noise is highest, tapering to CFG 1 as the video resolves. That taper is the whole point.

The inputs that matter

You wire model, positive, and negative in as usual. Then the five parallel strings that define the schedule:

  • sigmas - the noise breakpoints, high to low. Default 1.0, 0.9933, 0.9850, 0.9767, 0.9008, 0.6180.
  • cfg_values - one CFG per range. Default 8, 6, 6, 4, 3, 1 - heavy early, off by the end.
  • stg_scale_values - STG strength per range (default 4, 4, 3, 2, 1, 0).
  • stg_rescale_values and stg_layers_indices - the rescale factor and which layers to skip per range (default all [29]).

The lists must line up: each position across all five strings describes one sigma band. There's also cfg_star_rescale (on by default - CFG-Zero* rescaling that damps the negative prediction) and skip_steps_sigma_threshold, which zeroes the noise prediction above a set sigma. Optional preset loads a canned schedule, and apply_apg / eta / norm_threshold add adaptive projected guidance for the brave. The single output is a GUIDER, which plugs straight into an LTXV sampler (Base, Tiled, or Looping) in place of the KSampler's built-in guidance.

Installing it

Easiest path: open ComfyUI Manager, hit Install Custom Nodes, search LTXVideo, install, restart. Manual way: cd ComfyUI/custom_nodes && git clone https://github.com/Lightricks/ComfyUI-LTXVideo, then restart ComfyUI. The node appears under lightricks/LTXV. No separate download for the node itself - but you'll need an LTX checkpoint and, on LTX-2, the Gemma text encoder, which download on first use and are large.

Where people get burned

  • Over-cooking STG. The community's clearest warning about STG is that too much of it makes hair and skin look exaggerated and unnatural. If faces go plasticky, pull the stg_scale_values down, especially in the late (low-sigma) bands.
  • Mismatched list lengths. All five schedule strings need the same number of entries as your sigmas list. A stray comma throws an error or silently misaligns your ranges.
  • Using it on a distilled model that wants CFG 1. Distilled LTX checkpoints are trained to run at CFG 1 with few steps; layering aggressive CFG on top can wash out or overcook the result. This node earns its keep on the dev (non-distilled) checkpoints where guidance actually helps.
  • Blown-out highlights. If lights overcook on a single-stage T2V, tuning the early CFG bands down into the 1.1–2.0 range is the reported fix.
Categorylightricks/LTXV

Inputs (15)

NameTypeDefaultDescription
modelMODELβ€”
positiveCONDITIONINGβ€”
negativeCONDITIONINGβ€”
skip_steps_sigma_thresholdFLOAT0.9980–100Steps with sigma greater than this values will be skipped.
cfg_star_rescaleBOOLEANtrueIf true, applies the cfg star rescale, scales the negative prediction according to dot product between positive and negative.
sigmasSTRING1.0, 0.9933, 0.9850, 0.9767, 0.9008, 0.6180Comma-separated list sigmas, the actual parameters will be selected according to the closest sigma from this list to current timestep sigma.
cfg_valuesSTRING8, 6, 6, 4, 3, 1Comma-separated list of cfg values. Should be same length as sigmas list.
stg_scale_valuesSTRING4, 4, 3, 2, 1, 0Comma-separated list of stg scale values. Should be same length as sigmas list.
stg_rescale_valuesSTRING1, 1, 1, 1, 1, 1Comma-separated list of stg rescale values. Should be same length as sigmas list.
stg_layers_indicesSTRING[29], [29], [29], [29], [29], [29]Comma-separated list of list of layer indices. Should be same length as sigmas list.
presetoptSTG_ADVANCED_PRESETPreset resolution and frame count. Custom allows manual input.
apply_apgoptBOOLEANfalseIf true, applies the APG (Adaptive Projections Guidance) to the STG.
apg_cfg_scaleoptFLOAT1.000–100β€”
etaoptFLOAT1.000–100β€”
norm_thresholdoptFLOAT0.000–100β€”

Outputs (1)

NameTypeDescription
GUIDERGUIDERβ€”