💀 FoW - Static Category Light
Tick 'blurry, low quality, watermark' instead of typing it
- clip
- Static Conditioning
- Static Text
The quality-negative menu everyone ends up using
FoW - Static Category Light (the "Static Villain") is the negative node for the boring-but-essential stuff: low quality, blurry, out of focus, text, logo, bad composition, bad lighting, surreal. It's the bucket that carries the SD1.5-era boilerplate negative, packaged as a tickable catalog instead of a wall of text. If you use exactly one FoW negative node, it'll probably be this one.
It's part of SirWillance's FoW_Suite_LIGHT, the free Light tier of the "Force of Will" suite - a self-taught dev's two-month first project, MIT-licensed, built for beginners. The catalog groups into Quality Issues, Unwanted Artefacts, Composition & Framing, Lighting Issues, Obscuration & Clarity, Style & Aesthetic Issues, and Poses & Reflections, each token with a tooltip explaining its actual effect ("Brightens the image" for underexposed, "Adds dynamism to stiff poses" for static poses).
How it works
Same encode-only engine as every agent/villain in the pack:
tokens = clip.tokenize(user_input)
cond = clip.encode_from_tokens_scheduled(tokens)
return (cond, user_input)
The frontend hides the raw text widget and gives you an "Open Static Catalogue" button; tick tokens in the grouped modal and they're written into user_input, then CLIP encodes them. Selections persist on the node across saves. No filtering, no removal - this writes a negative prompt, structured.
The inputs that matter
- clip (CLIP) - the text encoder from your checkpoint.
- user_input (STRING, multiline) - hidden; filled by the modal.
- default_catalogue (STRING) - hidden; the embedded catalog JSON.
Outputs are Static Conditioning (CONDITIONING) and Static Text (STRING). The conditioning feeds a negative Fusion node or a KSampler.
Installing it
One install, whole suite:
cd ComfyUI/custom_nodes
git clone https://github.com/SirWillance/FoW_Suite_LIGHT
Restart ComfyUI, nodes appear under "🧿 FoW - Light". ComfyUI Manager has it too - search "Force of Will Suite Light". No dependencies, no model downloads.
Where people get burned
This is where the community's negative-prompt wisdom bites hardest. The old advice was "stack forty keywords" - and the KB's prompt-engineering essay spends real time showing that the forty-keyword boilerplate mostly fails an A/B test on a fixed seed. So: don't tick the whole Static catalog. The tokens here that reliably do something are the specific ones (text, logo, watermark when you're chasing artifacts), not the generic low quality, blurry pile. And the big rule you cannot escape: none of it works at CFG 1. Distilled/turbo checkpoints ignore the negative prompt entirely at their designed settings, so a Static Villain feeding those is decoration. On SDXL-lineage models at CFG 4–9 it's the most genuinely useful negative node in the suite - pick three or four specific tokens and leave the rest of the menu alone.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | CLIP model for encoding | |
| user_input | STRING | — | |
| default_catalogue | STRING | {"catalogue": {"FoW - Static": [{"id": "static_quality_001", "category": "Static Quality", "name": "Quality Issues", "tokens": [{"value": "low quality", "enabled": true, "tooltip": "Overall inferior image quality."}, {"value": "blurry", "enabled": true, "tooltip": "Image lacks sharpness and detail."}, {"value": "out of focus", "enabled": true, "tooltip": "The subject is not sharply defined."}]}, {"id": "static_artifacts_001", "category": "Static Artefacts", "name": "Unwanted Artefacts", "tokens": [{"value": "text", "enabled": true, "tooltip": "Removes any text present in the image."}, {"value": "logo", "enabled": true, "tooltip": "Removes logos from the image."}]}, {"id": "static_composition_001", "category": "Static Composition", "name": "Composition & Framing", "tokens": [{"value": "bad composition", "enabled": true, "tooltip": "Corrects a poorly arranged scene."}, {"value": "bad framing", "enabled": true, "tooltip": "Corrects poorly framed shots."}]}, {"id": "static_lighting_001", "category": "Static Lighting", "name": "Lighting Issues", "tokens": [{"value": "bad lighting", "enabled": true, "tooltip": "Corrects overall lighting issues."}, {"value": "underexposed", "enabled": true, "tooltip": "Brightens the image."}, {"value": "overexposed", "enabled": true, "tooltip": "Darks the image."}]}, {"id": "static_obscuration_001", "category": "Static Obscuration", "name": "Obscuration & Clarity", "tokens": [{"value": "obscured by elements", "enabled": true, "tooltip": "Removes elements blocking the view of the main subject."}, {"value": "blurry background", "enabled": true, "tooltip": "Sharpens an unwanted blurry background."}]}, {"id": "static_aesthetics_001", "category": "Static Aesthetics", "name": "Style & Aesthetic Issues", "tokens": [{"value": "surreal", "enabled": true, "tooltip": "Removes surreal styles to make the image more grounded."}, {"value": "cartoonish", "enabled": true, "tooltip": "Correct cartoon like image into a more realistic."}]}, {"id": "static_poses_001", "category": "Static Poses", "name": "Poses & Reflections", "tokens": [{"value": "static poses", "enabled": true, "tooltip": "Adds dynamism to stiff poses."}]}]}} | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| Static Conditioning | CONDITIONING | — |
| Static Text | STRING | — |