Skip to content

Native NAG node (Normalized Attention Guidance) not applying negative prompt despite double inference time #12707

@fappaz

Description

@fappaz

Custom Node Testing

Expected Behavior

When using the native Normalized Attention Guidance node with default values (scale: 5, alpha: 0.5, tau: 1.5), the negative prompt should affect the output.

Actual Behavior

The output is exactly the same as if there was no negative prompt, despite the inference taking twice as long.

Tested with both Flux.2 Klein 4B (example below) and 9B, same issue.

Image

Negative prompt with NAG was: trees, grass

Steps to Reproduce

  • Generate an image with this workflow for Flux.2 Klein 4B (or any txt2img workflow), which contains native NAG with default parameters and a negative prompt:
{"id":"92112d97-bb64-4b44-86f2-ea5691ef8f6e","revision":0,"last_node_id":367,"last_link_id":773,"nodes":[{"id":341,"type":"CLIPLoader","pos":[-680,360],"size":[340,106],"flags":{},"order":0,"mode":0,"inputs":[],"outputs":[{"name":"CLIP","type":"CLIP","links":[770,771]}],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"CLIPLoader"},"widgets_values":["qwen3_4b_fp8_scaled.safetensors","flux2","default"],"color":"#432","bgcolor":"#653"},{"id":343,"type":"VAELoader","pos":[-680,580],"size":[340,58],"flags":{},"order":1,"mode":0,"inputs":[],"outputs":[{"name":"VAE","type":"VAE","links":[773]}],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"VAELoader"},"widgets_values":["flux2-vae.safetensors"],"color":"#322","bgcolor":"#533"},{"id":8,"type":"VAEDecode","pos":[980,560],"size":[140,46],"flags":{},"order":8,"mode":0,"inputs":[{"name":"samples","type":"LATENT","link":750},{"name":"vae","type":"VAE","link":773}],"outputs":[{"name":"IMAGE","type":"IMAGE","slot_index":0,"links":[709]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.75","Node name for S&R":"VAEDecode"},"widgets_values":[],"color":"#323","bgcolor":"#535"},{"id":344,"type":"SaveImage","pos":[1240,0],"size":[520,600],"flags":{},"order":9,"mode":0,"inputs":[{"name":"images","type":"IMAGE","link":709}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"SaveImage"},"widgets_values":["Simplesmente IA/flux-2-klein"],"color":"#2a363b","bgcolor":"#3f5159"},{"id":340,"type":"UNETLoader","pos":[-680,20],"size":[340,82],"flags":{},"order":2,"mode":0,"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[769]}],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"UNETLoader"},"widgets_values":["flux-2-klein-4b-fp8.safetensors","default"],"color":"#223","bgcolor":"#335"},{"id":330,"type":"EmptyImage","pos":[100,-180],"size":[300,130],"flags":{},"order":3,"mode":0,"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[759]}],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"EmptyImage"},"widgets_values":[896,1152,1,0],"color":"#2a363b","bgcolor":"#3f5159"},{"id":6,"type":"CLIPTextEncode","pos":[-140,180],"size":[540,220],"flags":{"collapsed":false},"order":4,"mode":0,"inputs":[{"name":"clip","type":"CLIP","link":770}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","slot_index":0,"links":[756]}],"title":"CLIP Text Encode (Positive Prompt)","properties":{"cnr_id":"comfy-core","ver":"0.3.75","Node name for S&R":"CLIPTextEncode"},"widgets_values":["photo of a puppy walking outdoor"],"color":"#232","bgcolor":"#353"},{"id":359,"type":"1eb7ed83-dad4-4ff5-90a5-f7ce2800182f","pos":[620,0],"size":[280,520],"flags":{},"order":7,"mode":0,"inputs":[{"name":"image","type":"IMAGE","link":759},{"name":"model","type":"MODEL","link":763},{"name":"positive","type":"CONDITIONING","link":756},{"name":"negative","type":"CONDITIONING","link":766}],"outputs":[{"name":"output","type":"LATENT","links":[750]}],"properties":{"proxyWidgets":[["357","noise_seed"],["357","control_after_generate"],["355","steps"],["354","cfg"],["356","sampler_name"],["353","batch_size"]],"cnr_id":"comfy-core","ver":"0.13.0"},"widgets_values":[],"color":"#323","bgcolor":"#535"},{"id":365,"type":"NAGuidance","pos":[100,20],"size":[300,106],"flags":{},"order":6,"mode":0,"inputs":[{"name":"model","type":"MODEL","link":769}],"outputs":[{"name":"MODEL","type":"MODEL","links":[763]}],"properties":{"cnr_id":"comfy-core","ver":"0.15.1","Node name for S&R":"NAGuidance"},"widgets_values":[5,0.5,1.5],"color":"#223","bgcolor":"#335"},{"id":366,"type":"CLIPTextEncode","pos":[-140,460],"size":[540,100],"flags":{"collapsed":false},"order":5,"mode":0,"inputs":[{"name":"clip","type":"CLIP","link":771}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","slot_index":0,"links":[766]}],"title":"CLIP Text Encode (Positive Prompt)","properties":{"cnr_id":"comfy-core","ver":"0.3.75","Node name for S&R":"CLIPTextEncode"},"widgets_values":["trees, grass"],"color":"#322","bgcolor":"#533"}],"links":[[709,8,0,344,0,"IMAGE"],[750,359,0,8,0,"LATENT"],[756,6,0,359,2,"CONDITIONING"],[759,330,0,359,0,"IMAGE"],[763,365,0,359,1,"MODEL"],[766,366,0,359,3,"CONDITIONING"],[769,340,0,365,0,"MODEL"],[770,341,0,6,0,"CLIP"],[771,341,0,366,0,"CLIP"],[773,343,0,8,1,"VAE"]],"groups":[],"definitions":{"subgraphs":[{"id":"1eb7ed83-dad4-4ff5-90a5-f7ce2800182f","version":1,"state":{"lastGroupId":0,"lastNodeId":367,"lastLinkId":773,"lastRerouteId":0},"revision":0,"config":{},"name":"Klein Sampler","inputNode":{"id":-10,"bounding":[500,259,120,120]},"outputNode":{"id":-20,"bounding":[1560,280,120,60]},"inputs":[{"id":"6163fb6b-dddc-46e5-83ed-cdc0112388d0","name":"image","type":"IMAGE","linkIds":[685],"localized_name":"image","pos":[600,279]},{"id":"37182bf5-0ce5-4d82-919d-dcaf34a40629","name":"model","type":"MODEL","linkIds":[742],"localized_name":"model","pos":[600,299]},{"id":"f2cf81f5-c30c-4390-9739-418cb7fb7486","name":"positive","type":"CONDITIONING","linkIds":[743],"localized_name":"positive","pos":[600,319]},{"id":"72d41ddc-be7c-4bf8-a75e-6d64af447603","name":"negative","type":"CONDITIONING","linkIds":[744],"localized_name":"negative","pos":[600,339]}],"outputs":[{"id":"ee5ae631-bb73-4f5c-aa81-8e46c5e801f2","name":"output","type":"LATENT","linkIds":[745],"localized_name":"output","pos":[1580,300]}],"widgets":[],"nodes":[{"id":354,"type":"CFGGuider","pos":[980,-20],"size":[220,100],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":742},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":743},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":744}],"outputs":[{"localized_name":"GUIDER","name":"GUIDER","type":"GUIDER","links":[734]}],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"CFGGuider"},"widgets_values":[1]},{"id":357,"type":"RandomNoise","pos":[980,-160],"size":[210,82],"flags":{},"order":0,"mode":0,"inputs":[],"outputs":[{"localized_name":"NOISE","name":"NOISE","type":"NOISE","links":[733]}],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"RandomNoise"},"widgets_values":[98491897113364,"fixed"]},{"id":353,"type":"EmptyFlux2LatentImage","pos":[980,320],"size":[220,106],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":738},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":740}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[737]}],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"EmptyFlux2LatentImage"},"widgets_values":[896,1152,1],"color":"#323","bgcolor":"#535"},{"id":355,"type":"Flux2Scheduler","pos":[980,480],"size":[220,106],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":739},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":741}],"outputs":[{"localized_name":"SIGMAS","name":"SIGMAS","type":"SIGMAS","links":[736]}],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"Flux2Scheduler"},"widgets_values":[4,896,1152]},{"id":326,"type":"GetImageSize","pos":[680,460],"size":[160,124],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":685}],"outputs":[{"localized_name":"width","name":"width","type":"INT","links":[738,739]},{"localized_name":"height","name":"height","type":"INT","links":[740,741]},{"localized_name":"batch_size","name":"batch_size","type":"INT","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"GetImageSize"},"widgets_values":[],"color":"#2a363b","bgcolor":"#3f5159"},{"id":358,"type":"SamplerCustomAdvanced","pos":[1280,40],"size":[212.3638671875,326],"flags":{},"order":6,"mode":0,"inputs":[{"localized_name":"noise","name":"noise","type":"NOISE","link":733},{"localized_name":"guider","name":"guider","type":"GUIDER","link":734},{"localized_name":"sampler","name":"sampler","type":"SAMPLER","link":735},{"localized_name":"sigmas","name":"sigmas","type":"SIGMAS","link":736},{"localized_name":"latent_image","name":"latent_image","type":"LATENT","link":737}],"outputs":[{"localized_name":"output","name":"output","type":"LATENT","links":[745]},{"localized_name":"denoised_output","name":"denoised_output","type":"LATENT","links":[]}],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"SamplerCustomAdvanced"},"widgets_values":[],"color":"#323","bgcolor":"#535"},{"id":356,"type":"KSamplerSelect","pos":[980,140],"size":[220,58],"flags":{},"order":1,"mode":0,"inputs":[],"outputs":[{"localized_name":"SAMPLER","name":"SAMPLER","type":"SAMPLER","links":[735]}],"properties":{"cnr_id":"comfy-core","ver":"0.9.2","Node name for S&R":"KSamplerSelect"},"widgets_values":["euler"]}],"groups":[],"links":[{"id":738,"origin_id":326,"origin_slot":0,"target_id":353,"target_slot":0,"type":"INT"},{"id":740,"origin_id":326,"origin_slot":1,"target_id":353,"target_slot":1,"type":"INT"},{"id":739,"origin_id":326,"origin_slot":0,"target_id":355,"target_slot":0,"type":"INT"},{"id":741,"origin_id":326,"origin_slot":1,"target_id":355,"target_slot":1,"type":"INT"},{"id":733,"origin_id":357,"origin_slot":0,"target_id":358,"target_slot":0,"type":"NOISE"},{"id":734,"origin_id":354,"origin_slot":0,"target_id":358,"target_slot":1,"type":"GUIDER"},{"id":735,"origin_id":356,"origin_slot":0,"target_id":358,"target_slot":2,"type":"SAMPLER"},{"id":736,"origin_id":355,"origin_slot":0,"target_id":358,"target_slot":3,"type":"SIGMAS"},{"id":737,"origin_id":353,"origin_slot":0,"target_id":358,"target_slot":4,"type":"LATENT"},{"id":685,"origin_id":-10,"origin_slot":0,"target_id":326,"target_slot":0,"type":"IMAGE"},{"id":742,"origin_id":-10,"origin_slot":1,"target_id":354,"target_slot":0,"type":"MODEL"},{"id":743,"origin_id":-10,"origin_slot":2,"target_id":354,"target_slot":1,"type":"CONDITIONING"},{"id":744,"origin_id":-10,"origin_slot":3,"target_id":354,"target_slot":2,"type":"CONDITIONING"},{"id":745,"origin_id":358,"origin_slot":0,"target_id":-20,"target_slot":0,"type":"LATENT"}],"extra":{"workflowRendererVersion":"LG"}}]},"config":{},"extra":{"frontendVersion":"1.41.7","VHS_latentpreview":false,"VHS_latentpreviewrate":0,"VHS_MetadataImage":true,"VHS_KeepIntermediate":true,"workflowRendererVersion":"LG","ds":{"scale":0.7682123190779837,"offset":[665.55660119324,361.0221052620578]}},"version":0.4}
  • Disable the NAG node, then run the workflow again.

Notice how the output is the same, despite the it/s taking longer when NAG is enabled.

Debug Logs

When NAG is enabled:

got prompt
Requested to load Flux2TEModel_
Unloaded partially: 891.00 MB freed, 729.04 MB remains loaded, 405.00 MB buffer reserved, lowvram patches: 0
loaded completely; 4717.33 MB usable, 4207.26 MB loaded, full load: True
Requested to load Flux2
loaded completely; 5246.23 MB usable, 3882.02 MB loaded, full load: True
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:10<00:00,  2.60s/it]
Requested to load AutoencoderKL
Unloaded partially: 2262.02 MB freed, 1620.04 MB remains loaded, 324.00 MB buffer reserved, lowvram patches: 0
loaded completely; 517.90 MB usable, 160.31 MB loaded, full load: True
Prompt executed in 23.54 seconds

When NAG is disabled, keeping same workflow/seed/prompt:

got prompt
Prompt executed in 0.01 seconds
got prompt
loaded completely; 5246.23 MB usable, 3882.02 MB loaded, full load: True
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:04<00:00,  1.12s/it]
Requested to load AutoencoderKL
Unloaded partially: 2262.02 MB freed, 1620.04 MB remains loaded, 324.00 MB buffer reserved, lowvram patches: 0
loaded completely; 517.90 MB usable, 160.31 MB loaded, full load: True
Prompt executed in 10.04 seconds

Other

Specs

ComfyUI: 0.15.1
ComfyUI_frontend: v1.41.7
OS: win32
Python Version: 3.11.6 (tags/v3.11.6:8b6ee5b, Oct 2 2023, 14:57:12) [MSC v.1935 64 bit (AMD64)]
Embedded Python: true
Pytorch Version: 2.9.0+cu128
Arguments: ComfyUI\main.py --windows-standalone-build --disable-all-custom-nodes
RAM Total: 31.36 GB
Device Name: cuda:0 NVIDIA GeForce RTX 3080 Laptop GPU : cudaMallocAsync
VRAM Total: 8 GB

Metadata

Metadata

Assignees

No one assigned

    Labels

    Potential BugUser is reporting a bug. This should be tested.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions