NAG (LTX2)
Negative prompts that actually work at CFG 1 (DA_Nag for LTX2)
- model
- nag_cond
- MODEL
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:
- Extrapolates past the positive embedding and away from the nag one (
nag_scalecontrols how far). - Normalizes the result with an L1-norm clamp so it can't drift wildly off course (
nag_tausets the leash). - Blends it back with the original positive attention (
nag_alphadecides 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.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| nag_cond | CONDITIONING | Negative prompt after CLIP Text Encode. | |
| nag_scale | FLOAT | 11.0000–100 | Guidance strength. Higher pushes farther from nag_cond. |
| nag_alpha | FLOAT | 0.2500–1 | Blend with original positive attention. 1.0 = full NAG. |
| nag_tau | FLOAT | 2.5000–10 | L1 clamp; limits how far guided attention can deviate. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |