Nodes/ComfyUI_DAO_master/Clone Circular
ComfyUI Node

Clone Circular

Mandalas and radial patterns without the trigonometry

By orion4d·Created about a year ago·Updated 12 months ago· 11
Clone Circular
  • image
  • mask
  • image
  • mask
canvas_width1024
canvas_height1024
use_backgroundfalse
background_hex#00000000
radius300
count12
rotate0.0
object_rotation0.0
scale1.00
opacity1.00

Ever wanted to take one sprite - a petal, a flame, a logo - and ring it around a center point a dozen times? That's a for loop with some cos/sin, which in ComfyUI means a pile of math nodes and a bad time. Clone Circular does it with one node: repeat a single input image around a ring, with per-clone rotation, scaling, and opacity, and get the composited result plus a union mask.

It's part of orion4d/ComfyUI_DAO_master, the French-authored vector-and-image utility pack, and it's the radial sibling of the pack's Clone Grid (X/Y). Where the grid makes walls of repeating tiles, this makes mandalas, rosettes, gears, daisy-chain frames, and any radial motif you'd otherwise build in a vector editor.

How it works

The node places clones of your single input image on a circle centered in the canvas. radius (default 300) is the distance from center to each clone; count (default 12) is how many; rotate is a global phase shift of the whole ring in degrees; object_rotation spins each clone around its own center - combine the two for classic "all petals pointing in" versus "all facing up" looks. scale and opacity apply to every clone uniformly.

The canvas is sized by canvas_width/canvas_height (defaults 1024×1024). With use_background off you get transparency; flip it on and background_hex fills the canvas - it accepts #RGB, #RRGGBB, #RRGGBBAA, and even names like white or transparent. An optional input mask crops the source sprite; the output mask is the union of every placed clone, so you can use it to key or composite the result.

Outputs: image (RGBA, ready to composite) and mask.

The settings that matter

  • count and radius - the shape of your ring. Count up to 20,000 if you're feeling ambitious; the node will happily comply, your GPU preview won't.
  • object_rotation - this is the one people miss. Leave it at 0 and every clone keeps its original orientation; set it and clones turn to face the center or align to a pattern.
  • rotate - spins the whole arrangement, useful for lining a motif up with a seam.

Installing

Via ComfyUI Manager (search ComfyUI_DAO_master) or:

cd ComfyUI/custom_nodes
git clone https://github.com/orion4d/ComfyUI_DAO_master.git

Restart and you're done - this node is pure Pillow/numpy, no extra packages.

Where people get burned

Mostly it's the count × large-canvas combo: thousands of full-size clones composited onto a big canvas is genuinely slow in pure Python. If your preview crawls, drop count or downscale your source sprite first. And remember the output mask is the union of clones - if you need individual masks per clone, this isn't the node for that.

CategoryDAO_master/Images/Clone

Inputs (12)

NameTypeDefaultDescription
imageIMAGE
maskoptMASK
canvas_widthoptINT10241–32768
canvas_heightoptINT10241–32768
use_backgroundoptBOOLEANfalse
background_hexoptSTRING#00000000
radiusoptFLOAT3000–100000
countoptINT121–20000
rotateoptFLOAT0.0-1440–1440
object_rotationoptFLOAT0.0-1440–1440
scaleoptFLOAT1.000.01–10
opacityoptFLOAT1.000–1

Outputs (2)

NameTypeDescription
imageIMAGE
maskMASK