ImageDrawEllipse
Draw an ellipse (or circle) with outline and fill
- IMAGE
ImageDrawEllipse draws a filled ellipse with an optional outline on a transparent RGBA canvas. It's the node you reach for when you need a circle, an oval, a lens-shaped overlay, or a soft-color disc to composite under something - and it's the first draw node here with separate fill_* and outline_* controls, which is what makes it actually useful for graphics rather than just lines.
How it works
Same pipeline as the whole Allor draw family: RGBA canvas, PIL ImageDraw.ellipse, supersample by SSAA, downscale with method, output a single IMAGE tensor. The ellipse is fit inside a bounding box you define with normalized coordinates - make the box square and you get a perfect circle.
Inputs that matter:
- width / height - canvas size, default 256×256.
- start_x / start_y, end_x / end_y - the ellipse's bounding box as 0–1 fractions of the canvas. Defaults
0,0 → 1,1draw an ellipse touching all four edges; a square box gives a circle. - outline_size - stroke width for the outline, default 1. Set it to 0 if you want a fill with no edge.
- outline_red / green / blue / alpha - outline color, default black at full opacity.
- fill_red / green / blue / alpha - fill color, default white at full opacity.
- SSAA (default 4) and method (default
lanczos) - anti-aliasing quality, shared across the family.
The gotcha
Output is RGBA with a transparent background - the area outside the ellipse is (0,0,0,0), so in a Preview the shape floats on a checkerboard. That's perfect for compositing a disc over an image, but if you wanted a backdrop, put the ellipse on a container rather than expecting one. Also worth noting: at low outline_size with a big SSAA gap the edge can look softer or thinner than you expect - it's the downscale doing its thing, not a bug.
Why you'd use it
Tonal vignettes, bokeh discs, ring highlights, target/scope overlays, or any circular UI element. Because it outputs real alpha, a white filled circle composites cleanly as a mask-shaped image too - you can feed it into mask-based workflows after converting.
Installing Allor
Part of the Allor Plugin (Nourepide/ComfyUI-Allor), ~90 nodes from early 2024:
cd ComfyUI/custom_nodes
git clone https://github.com/Nourepide/ComfyUI-Allor
cd ComfyUI-Allor
pip install -r requirements.txt
Restart, or search "Allor Plugin" in ComfyUI Manager - the more reliable route given the pack's history of manual-install import errors. Dependencies are rembg + onnx; drawing needs no models.
Gotchas that apply to the whole pack
The repo was rebased to strip images from history (shrank ~344×), so auto-update can occasionally break - the README's update-troubleshooting docs cover it; delete-and-reclone is the blunt fix. [Allor] console lines at startup are the pack writing config.json and checking updates, not an error.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 256 | — |
| height | INT | 256 | — |
| start_x | FLOAT | 0.00 | — |
| start_y | FLOAT | 0.00 | — |
| end_x | FLOAT | 1.00 | — |
| end_y | FLOAT | 1.00 | — |
| outline_size | INT | 1 | — |
| outline_red | INT | 0 | — |
| outline_green | INT | 0 | — |
| outline_blue | INT | 0 | — |
| outline_alpha | FLOAT | 1.00 | — |
| fill_red | INT | 255 | — |
| fill_green | INT | 255 | — |
| fill_blue | INT | 255 | — |
| fill_alpha | FLOAT | 1.00 | — |
| SSAA | INT | 41–16 | — |
| method | COMBO | 6 options: lanczos, bicubic, hamming, bilinear, box, nearest |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |