Three Antialias
The effect that puts the smooth edges back (put it last)
- input
- effects
Here's the thing nobody tells you about post-processing chains in the WAS Three.js suite: the moment you add any effect - a bloom, a depth of field - Three App quietly turns off its own antialiasing. The passes draw into their own buffers, so the built-in smoothing can't apply. That's what Three Antialias exists for: it's the pass that puts the smooth edges back after every other effect has had its way with the frame.
So the practical rule is simple. No effects chain? Don't use this node; just leave the antialias checkbox on in Three App. Added a bloom or a focus blur? Then chain Three Antialias last, after the glow and the blur, and your silhouettes stop looking like they were cut with a bread knife.
Mechanically it's the tail of an effect chain, not a standalone effect. It has no parameters of its own - nothing to tune, nothing to get wrong. Its optional input socket takes the effect before it (left unwired, it simply becomes the first pass after the scene is drawn), and its effects output hands the whole chain so far to the next effect, or to Three App's effects socket. A typical stack reads: Three Bloom → Three Depth Of Field → Three Antialias → App's effects. Think of the chain as a line you assemble left to right, and this node is the last word.
Installing it
Part of WAS Node Suite v3 - install the pack and the whole Three menu appears. ComfyUI Manager: search WAS Node Suite v3. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui.git
Restart after. Requires ComfyUI 0.14.0+ and Python 3.10+. v3 pulls in zero pip dependencies and the Three nodes need no model files - three.js itself ships bundled inside the pack. If the WAS Suite/Three category is missing from the Add Node menu, check features.threejs is true under <ComfyUI user dir>/was-node-suite/config.yaml and restart.
If it looks wrong
You can't really mis-tune a node with no dials, but two confusions do come up. First, if your frame is jaggy with no effects chain at all, the problem is in Three App, not here - you've switched its antialias off, or you're rendering at a low pixel_ratio_limit. Second, order matters: antialias before the bloom and the bloom re-introduces harsh edges over your nice smooth pass. Last in the chain, always.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| inputopt | THREE_EFFECT | The effect before this one, if any. Left unwired this is the first pass after the scene is drawn. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| effects | THREE_EFFECT | The chain so far, for the next effect or for Three App's effects socket. |