Nodes/ComfyUI-LTX-FDG/LTXV FDG Parameters
ComfyUI Node

LTXV FDG Parameters

FDGParameters explained

By siraxe·Created 6 months ago·Updated 6 months ago· 25
LTXV FDG Parameters
  • parameters
  • GUIDER_PARAMETERS
modalityVIDEO
cfg1.5
fdg_enabledtrue
w_low1.5
w_high5.0
frequency_levels2
decomposition_methodlaplacian
use_projectionfalse
projection_weight1.00
stg1.00
perturb_attntrue
rescale0.70
modality_scale0.00
skip_step0
cross_attntrue

High CFG buys you prompt adherence and charges you for it in burned colors and oversaturated video. That tradeoff is the whole reason LTXV people live at CFG 1–1.5, and it's also why "sharp details" and "low guidance" usually refuse to coexist. FDGParameters splits that one dial in two, so you can keep CFG low and still pull detail out of the high frequencies.

It implements Frequency-Decoupled Guidance, from the paper "Guidance in the Frequency Domain Enables High-Fidelity Sampling at Low CFG Scales" (arXiv:2506.19713), as a drop-in for the standard CFG step inside Lightricks' own ComfyUI-LTXVideo workflow. No weights to download, no API key, no training run. Pure torch math - which makes it cheap to try and easy to forget exists.

Where it fits

This is a parameters node, not a sampler. You don't feed images into it; you feed the thing that configures the sampler:

FDGParameters ──> GUIDER_PARAMETERS ──> MultimodalGuider (LTXV) ──> SamplerCustomAdvanced

The one output, GUIDER_PARAMETERS, wires straight into the MultimodalGuider that ships with ComfyUI-LTXVideo. For LTXAV (audio+video) models you use two nodes, one with modality: VIDEO and one with modality: AUDIO. Chain the first node's output into the second's optional parameters input so a single guider gets both - that's exactly what the optional input exists for.

How it actually works

Standard CFG runs the model twice per step and amplifies the whole difference by a single scale. FDG instead takes both predictions (conditional and unconditional), decomposes each into a Laplacian pyramid - blur, downscale, subtract, repeat - applies a different scale per band, and reconstructs. In fdg_utils.py you can read the whole thing: high-frequency levels (edges, texture, sharpness) get w_high, the low-frequency base (structure, color, composition) gets w_low. The node's calculate() swaps this guided component in for plain CFG, then still stacks the LTX standard STG and modality terms on top.

The knobs that matter

  • w_low (default 1.5) - global structure and color. Lower it toward 1.0–1.5 to keep diversity and avoid oversaturation; raise it for stricter condition alignment.
  • w_high (default 5.0) - fine detail. This is where LTXV is usually starved, and the reason you're here. 4–7 is a sane band; the paper's own tables go to 10–12.
  • frequency_levels (default 2) - pyramid depth. 2 is the sweet spot; each extra level costs real time.
  • cfg (default 1.5) - the base scale, used when FDG is off. Keep it above 1.0: at exactly 1 ComfyUI skips the unconditional prediction, and the code just falls back to the positive pass, so FDG silently switches itself off.
  • fdg_enabled - the master switch, on by default.

Everything else - use_projection/projection_weight (an APG-style color projection, off by default), decomposition_method, and the passthroughs stg, perturb_attn, rescale, modality_scale, skip_step, cross_attn - leave alone until you know you need it.

Installing it

ComfyUI Manager → search ComfyUI-LTX-FDG → install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/siraxe/ComfyUI-LTX-FDG

Restart ComfyUI and the node appears under lightricks/LTXV. The pack itself only hard-depends on ComfyUI - but the MultimodalGuider that consumes these parameters lives in ComfyUI-LTXVideo, so install that too or the output has nowhere to go.

Troubleshooting

  • Oversaturated → drop w_low to 1.0–1.5.
  • Blurry, soft details → raise w_high to 5–10.
  • Flicker between frames → lower both scales.
  • "It's doing nothing" → check fdg_enabled, check the wire into MultimodalGuider, and check cfg is above 1.
  • Slower than plain CFG → expected: about 1.3–1.5x at 2 levels. Drop to 1 level or disable FDG to claw it back.
  • The wavelet option → the author's own comment in the source admits it's a simplified gaussian high-pass approximation, not a real DWT. If that distinction matters, stay on laplacian.

One last thing: the README is upfront that this is "vibecoded" off the paper, credit to dorpxam and a musubi-tuner issue thread. So treat it as a sharp little experiment, not a Lightricks product - a good starting point is cfg 1.5, w_low 1.0–1.5, w_high 4–7, 2 levels, then seed-hunt like you always do.

Categorylightricks/LTXV

Inputs (16)

NameTypeDefaultDescription
modalityCOMBOVIDEO2 options: VIDEO, AUDIO
cfgFLOAT1.50–100Base CFG scale (used when FDG is disabled or for other guidance types)
fdg_enabledBOOLEANtrueEnable Frequency-Decoupled Guidance
w_lowFLOAT1.50–100Low-frequency guidance scale (controls global structure). Lower values = better diversity, higher values = better condition alignment
w_highFLOAT5.00–100High-frequency guidance scale (controls details). Higher values = sharper details
frequency_levelsINT21–5Number of frequency decomposition levels. 2 is recommended
decomposition_methodCOMBOlaplacianMethod for frequency decomposition
use_projectionBOOLEANfalseUse APG-style orthogonal projection for better color composition
projection_weightFLOAT1.000–2Weight for parallel component in APG projection
stgFLOAT1.000–100
perturb_attnBOOLEANtrue
rescaleFLOAT0.700–100
modality_scaleFLOAT0.000–100
skip_stepINT00–100
cross_attnBOOLEANtrue
parametersoptGUIDER_PARAMETERS

Outputs (1)

NameTypeDescription
GUIDER_PARAMETERSGUIDER_PARAMETERS