Nodes/Allor Plugin/ImageDrawArc
ComfyUI Node

ImageDrawArc

Draw a curve — the arc node with proper anti-aliasing

By Nourepide·Created 3 years ago·Updated 2 years ago· 295
ImageDrawArc
    • IMAGE
    width256
    height256
    size1
    start_x0.00
    start_y0.00
    end_x1.00
    end_y1.00
    start0
    end180
    red255
    green255
    blue255
    alpha1.00
    SSAA4
    method

    Need an arc - part of a circle's outline - as an image, without leaving ComfyUI? ImageDrawArc draws one on a fresh RGBA canvas and hands you a real IMAGE tensor. It's the building block for rings, brackets, speedometer ticks, loading-spinner arcs, or any curved line you'd otherwise be fighting to make with mask math.

    How Allor draws

    All the ImageDraw* nodes share one pipeline: create an RGBA canvas, draw with PIL's ImageDraw, then convert to a tensor. Two details matter across the whole family.

    First, SSAA (supersampling). The node renders at SSAA × the target resolution, then downscales - that's what gives you smooth edges instead of staircase jaggies. Default is 4, which is a good balance; crank it to 8 or 16 for poster-quality edges on big canvases, at the cost of a much larger intermediate image. On huge outputs the memory hit is real, so don't leave it at 16.

    Second, method - the resampler used for that downscale: lanczos, bicubic, hamming, bilinear, box, nearest. Default (first in the list) is lanczos, and honestly you can leave it there; drop to nearest only if you want crisp pixel-art-style edges.

    Inputs that matter

    • width / height - canvas size, default 256×256.
    • start_x / start_y and end_x / end_y - the bounding box of the arc, as 0–1 fractions of the canvas. 0,0 → 1,1 (the defaults) fills the whole canvas; a smaller box shrinks the ellipse the arc traces.
    • start / end - the arc's angle range in degrees (0–360), following PIL's convention: measured from 3 o'clock, increasing clockwise. Defaults of 0 → 180 give you a half-circle.
    • size - stroke width in pixels, default 1.
    • red / green / blue / alpha - stroke color. Draw nodes default alpha to 1 (opaque), unlike the container nodes.
    • SSAA and method - as above.

    Output is a single RGBA IMAGE, transparent everywhere except the stroke.

    The gotcha

    Every draw node outputs a transparent background - the canvas starts as RGBA (0,0,0,0). Wire it straight into a Preview and you'll see the curve floating on a checkerboard. That's a feature if you're compositing (it pastes cleanly onto anything), but if you expected a solid backdrop, composite the result onto an ImageContainer first.

    Installing Allor

    This ships in 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 (15)

    NameTypeDefaultDescription
    widthINT256
    heightINT256
    sizeINT1
    start_xFLOAT0.00
    start_yFLOAT0.00
    end_xFLOAT1.00
    end_yFLOAT1.00
    startINT0
    endINT180
    redINT255
    greenINT255
    blueINT255
    alphaFLOAT1.00
    SSAAINT41–16
    methodCOMBO6 options: lanczos, bicubic, hamming, bilinear, box, nearest

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE