Nodes/DA_Nodes/NAG (LTX2)
ComfyUI Node

NAG (LTX2)

Negative prompts that actually work at CFG 1 (DA_Nag for LTX2)

By dauncle2026·Created 3 days ago·Updated 3 days ago· 0
NAG (LTX2)
  • model
  • nag_cond
  • MODEL
nag_scale11.000
nag_alpha0.250
nag_tau2.500

NAG (LTX2) - class DA_Nag - exists for one very specific, very common pain: your LTX video comes out clean, then the upscale pass runs on the distilled model at CFG 1, and suddenly there are subtitles plastered over the frame again. Your negative prompt did nothing, because at CFG 1 there is no negative guidance to speak of. This node fixes that. It's a port of Normalized Attention Guidance - the real technique from mid-2025 that lets you steer attention away from an unwanted concept without paying for full classifier-free guidance - tuned for LTX2 models.

Why you'd reach for it

LTX's two-stage workflow is the culprit. Stage one runs the dev model with CFG and your negatives do their job. Stage two upscales with the distilled model (or distilled LoRA) at CFG 1 for speed, and with no CFG, negatives are mostly ignored - so text, watermarks, and logos sneak back in. The community fix that keeps circulating is exactly this: use NAG to restore negative guidance on that CFG-1 stage. It's also handy if you just want your negatives respected on a single CFG-1 pass.

How it works

You give it a model and a conditioning that encodes what you don't want - a CLIP Text Encode of something like subtitles, text, watermark, logo, blurry into the nag_cond input. The node clones your LTX2 model and patches the forward pass of the cross-attention layer (attn2) in every transformer block. On each of those layers it runs your positive context and your nag context through attention with the same query, then does three things:

  1. Extrapolates past the positive embedding and away from the nag one (nag_scale controls how far).
  2. Normalizes the result with an L1-norm clamp so it can't drift wildly off course (nag_tau sets the leash).
  3. Blends it back with the original positive attention (nag_alpha decides how much of the push survives).

If your sampler is running actual CFG (batch of two), it splits the batch, applies NAG only to the positive half, and leaves the CFG half untouched - so NAG stacks on top of regular CFG instead of fighting it.

The inputs that matter

  • model - your LTX2 checkpoint (dev, distilled, whatever). Non-LTX2 models raise a clear error: "DA_Nag only supports LTX2 models."
  • nag_cond - the negative prompt conditioning, after CLIP Text Encode. This is the list of things to push away from.
  • nag_scale - guidance strength, default 11. Higher pushes further from the nag text.
  • nag_alpha - blend with the original positive attention, default 0.25. 1.0 is full NAG.
  • nag_tau - L1 clamp on how far the guided attention can deviate, default 2.5.

The only output is a patched MODEL - wire it into the LTX2 sampler where you'd normally put your model. A nag_scale of 0 makes the node return the model untouched, so that's your bypass switch.

Installing it

It ships in the DA_Nodes pack - ComfyUI Manager, search "DA_Nodes", or:

cd ComfyUI/custom_nodes
git clone https://github.com/dauncle2026/DA_Nodes

Restart after. No extra dependencies and no model downloads; the pack is pure ComfyUI-core glue. Because it uses the newer extension entrypoint, update ComfyUI if the nodes don't appear.

Tuning and gotchas

Start with the defaults and move nag_alpha first - it's the gentlest dial. If subtitles are still returning, raise it toward 0.5 before touching scale, because cranking nag_scale hard without raising alpha mostly means the attention gets confused, not cleaner. And remember the standard LTX advice that pairs with this: the negative prompt itself matters, so describe exactly what you want gone - the tooltip examples (subtitles, text, watermark) are a solid template. It patches cross-attention only, and it needs the LTX2 multimodal connector modules, which it moves on and off the GPU per run - normal, not a leak. One real limit: this is LTX2-specific. It won't help your Wan or Hunyuan workflow, and it won't pretend otherwise.

CategoryDA_Nodes

Inputs (5)

NameTypeDefaultDescription
modelMODEL
nag_condCONDITIONINGNegative prompt after CLIP Text Encode.
nag_scaleFLOAT11.0000–100Guidance strength. Higher pushes farther from nag_cond.
nag_alphaFLOAT0.2500–1Blend with original positive attention. 1.0 = full NAG.
nag_tauFLOAT2.5000–10L1 clamp; limits how far guided attention can deviate.

Outputs (1)

NameTypeDescription
MODELMODEL