Nodes/Allor Plugin/ImageDrawArcByContainer
ComfyUI Node

ImageDrawArcByContainer

Draw an arc sized to an existing image

By Nourepide·Created 3 years ago·Updated 2 years ago· 296
ImageDrawArcByContainer
  • container
  • IMAGE
size1
start_x0.00
start_y0.00
end_x1.00
end_y1.00
start0
end180
red255
green255
blue255
alpha1.00
SSAA4
method

ImageDrawArc needs you to type width and height. ImageDrawArcByContainer doesn't - you hand it an image and it draws an arc at that image's exact dimensions. Same curve, same SSAA anti-aliasing, same angle math; the only difference is where the canvas size comes from.

How it works

The node reads the width and height of the first frame of the container input and forwards them into ImageDrawArc, which does the actual drawing: RGBA canvas, PIL ImageDraw.arc, supersample by SSAA, downscale with method. Everything else is identical to the non-ByContainer version.

One thing worth being precise about: the container defines the size, but the arc is drawn on a fresh transparent canvas - the container's own pixels don't show through, and nothing is composited onto it. So wiring in a colored ImageContainer won't give you a colored background; you'll get a transparent canvas the same size. If you want the arc on top of the container's content, draw it, then composite the two images yourself.

Inputs that matter:

  • container - any IMAGE; its size sets the canvas.
  • size - stroke width (default 1).
  • start_x / start_y, end_x / end_y - the arc's bounding box as 0–1 fractions of the canvas; defaults 0,0 → 1,1 span the whole thing.
  • start / end - angle range in degrees (0–360), PIL-style (from 3 o'clock, clockwise). Defaults 0 → 180 = a half-circle.
  • red / green / blue / alpha - stroke color (alpha defaults to 1 here).
  • SSAA (default 4) and method (default lanczos) - quality controls, same as the whole draw family.

Why you'd use it

When the canvas size should track an existing image instead of being a number you maintain. Build a 1024×1024 container once, and any arc drawn through it is automatically 1024×1024; swap the container and the drawing follows. It slots into template workflows where the ByContainer composite nodes are already reading the same container for placement.

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 (reinstall via Manager was the repeated community fix). 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 git pull/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 (14)

NameTypeDefaultDescription
containerIMAGE
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