Nodes/Allor Plugin/ImageDrawEllipse
ComfyUI Node

ImageDrawEllipse

Draw an ellipse (or circle) with outline and fill

By Nourepide·Created 3 years ago·Updated 2 years ago· 297
ImageDrawEllipse
    • IMAGE
    ◄width256►
    ◄height256►
    ◄start_x0.00►
    ◄start_y0.00►
    ◄end_x1.00►
    ◄end_y1.00►
    ◄outline_size1►
    ◄outline_red0►
    ◄outline_green0►
    ◄outline_blue0►
    ◄outline_alpha1.00►
    ◄fill_red255►
    ◄fill_green255►
    ◄fill_blue255►
    ◄fill_alpha1.00►
    ◄SSAA4►
    ◄method▾►

    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,1 draw 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.

    Categoryimage/draw

    Inputs (17)

    NameTypeDefaultDescription
    widthINT256—
    heightINT256—
    start_xFLOAT0.00—
    start_yFLOAT0.00—
    end_xFLOAT1.00—
    end_yFLOAT1.00—
    outline_sizeINT1—
    outline_redINT0—
    outline_greenINT0—
    outline_blueINT0—
    outline_alphaFLOAT1.00—
    fill_redINT255—
    fill_greenINT255—
    fill_blueINT255—
    fill_alphaFLOAT1.00—
    SSAAINT41–16—
    methodCOMBO6 options: lanczos, bicubic, hamming, bilinear, box, nearest

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE—