Comfy-Org / Comfy-Org/workflow_templates
[Template Bug]: LTX-2.3 templates have inactive negative prompts because CFGGuider is set to cfg=1
- Dominant language
- TypeScript
- Stars
- 901
- Forks
- 188
- Avg merge
- 23h 10m
- Merged PRs (30d)
- 86
Description
### Confirmation
- [x] I have confirmed this is a workflow template mistake
### Template Name
LTX-2.3 template family:
- `templates/video_ltx2_3_t2v.json`
- `templates/video_ltx2_3_i2v.json`
- `templates/video_ltx2_3_ia2v.json`
- `templates/video_ltx2_3_flf2v.json`
- `templates/video_ltx2_3_id_lora.json`
Potentially all `*ltx2_3*` templates should be audited.
### Problem Description
The LTX-2.3 templates ship negative prompts (`CLIPTextEncode`, prefilled with terms such as `pc game, console game, video game, cartoon, childish, ugly, ...`) wired through `LTXVConditioning` into the sampler's `CFGGuider`. However the `CFGGuider` nodes are set to **`cfg = 1`**.
At `cfg = 1`, classifier-free guidance reduces to the conditional prediction only:
```text
out = uncond + cfg * (cond - uncond)
out = cond when cfg = 1
```
ComfyUI's `CFGGuider` also skips the uncond pass entirely as an optimization in this case. So the negative prompt is silently ignored: editing it, or editing the prefilled defaults, changes nothing in the output.
This is confusing because the templates present populated negative-prompt boxes, which strongly imply they are active. Users naturally put suppression terms there, such as `text`, `watermark`, or `ugly`, but they have no effect.
Since LTX-2.3 appears intended to run at `cfg = 1`, simply raising `cfg` is probably not the intended fix and tends to degrade quality.
Repro:
1. Load `video_ltx2_3_t2v.json`.
2. Put anything in the negative prompt, for example `text, watermark, ugly`.
3. Generate.
4. The output is identical to leaving the negative prompt empty.
Confirmed so far:
| template | CFGGuider cfg | prefilled negative |
|---|---:|---|
| `video_ltx2_3_t2v.json` | 1, 1 | `pc game, console game, video game, cartoon, childish, ugly, ...` |
| `video_ltx2_3_i2v.json` | 1, 1 | `pc game, console game, video game, cartoon, childish, ugly, ...` |
| `video_ltx2_3_ia2v.json` | 1, 1 | `pc game, console game, video game, cartoon, childish, ugly, ...` |
| `video_ltx2_3_flf2v.json` | 1 | `blurry, out of focus, overexposed, underexposed, low co...` |
| `video_ltx2_3_id_lora.json` | 1, 1 | `pc game, console game, video game, cartoon, childish, ugly, ...` |
Possible fixes:
- Document in the template that the negative prompt is inactive at `cfg = 1`.
- Wire a guidance method that honors negatives at `cfg = 1`, for example an NAG node such as `LTX2_NAG` in ComfyUI-KJNodes.
- Remove the negative-prompt box to avoid the false affordance.
### ComfyUI Mode
Legacy Mode
### Error Message / Logs
```text
No runtime exception is thrown.
This is a template configuration issue confirmed by inspecting the template JSON:
- CFGGuider nodes have cfg = 1
- negative CLIPTextEncode nodes are prefilled
- the negative conditioning is wired via LTXVConditioning
- because cfg = 1, the negative prompt/uncond path is inert
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.