Choke
Matte choker / spread — erodes an alpha edge inward (choke) or grows it outward (spread) by a signed pixel amount, with optional edge softening and corner rounding. A standard matte choke/spread operation.
Category: Effects Menu path: Effects > Choke
Ports
| Port | Type | Direction | Description |
|---|---|---|---|
in | imageRgba16f | input | Input image (the matte / alpha edge to choke or spread) |
out | imageRgba16f | output | Choked / spread result |
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
amount | scalar | 0.0 | Signed edge offset in comp pixels. Negative = choke (edge pulls inward / erodes), positive = spread (edge grows outward / dilates). 0 = no edge move. Keyframeable. |
softness | scalar | 0.0 | Edge feather + corner rounding in comp pixels. 0 = crisp edge. Larger values feather the edge and round off sharp corners. Keyframeable. |
Expose Channels
When enabled (E button on node header), adds input ports that override params via edge connections:
| Port | Type | Overrides |
|---|---|---|
amount_in | scalar | amount |
How It Works
Choke uses the standard real-time matte-choke technique: blur, then re-threshold. First the input alpha is blurred by a radius of abs(amount) + softness + 1 comp pixels (reusing the engine's Blur, which premultiplies internally so spread doesn't pick up a dark fringe). A second pass then re-thresholds the blurred alpha around 0.5: a positive amount lowers the threshold so more of the blurred alpha survives and the edge grows outward (spread); a negative amount raises it so the edge pulls inward (choke). The blur is what rounds corners, and softness widens the threshold band to feather the edge (and, with amount at 0, round corners while leaving the edge roughly in place). RGB is preserved crisply where the original is opaque and uses the color-bled blurred RGB where the matte has grown into transparent areas. All quantities are comp pixels and the blur is comp-aware, so the result is identical across Draft / Preview / Full quality. When both amount and softness are ~0 the node is a pure passthrough and the GPU passes are skipped.
Usage Examples
Basic: Tighten a key
- Pull a key (Keying) or build a matte that has a slightly soft, fringey edge
- Add a Choke node after it
- Set
amountto a small negative value (e.g. -2) to pull the matte edge inward and eat the fringe
Basic: Grow a matte
- Add a Choke node after a matte or shape
- Set
amountto a positive value (e.g. +4) to dilate the alpha edge outward — useful for adding a bit of bleed before compositing
Creative: Round and soften corners
- Leave
amountat 0 and raisesoftness(e.g. 8) - Sharp corners round off and the edge feathers while staying roughly in place — a quick way to soften hard graphic shapes
Tips
- Treat
amountlike a signed "grow/shrink": negative chokes, positive spreads. - Use a small
softnessalongside a choke to avoid an aliased / stair-stepped edge after tightening. - Choke operates on the alpha channel — feed it a matte or any image with a meaningful alpha edge. On a fully opaque, edge-free input there is nothing to choke.
- This is a per-pixel effect treated as a spatial passthrough in the layer's bounds/overscan walk, so a very large spread can in theory grow slightly toward the layer's content bounds — keep a little padding around tight content if you spread heavily.