π Shape Copycat Tool
Stamp out a trail of transformed copies from one shape
- SHAPE
- SHAPE
One shape is a motif. A row of them, shrinking as they go, is a pattern - and that's what Shape Copycat Tool is for. It takes a single shape and produces a chain of copies, each one transformed relative to the one before it: translated, rotated, and scaled by the amounts you set. Feed it a star and it can scatter a trail of stars across the canvas. Feed it a leaf and you get a vine.
It's the pack's "one-to-many" shape node, and it sits in the shape category alongside Grid (the regular grid-maker). Where Shape Grid lays copies out in neat rows and columns, Copycat is the freeform version: each copy derives from the previous one, so the transformation accumulates into an arc, a spiral, or a tapering line depending on how you combine translation, rotation, and scale.
How it works
The output keeps your original shape, then generates copies more, each a copy of the previous one. On each step it applies:
- copy_translation_x / copy_translation_y - the offset per copy.
- copy_rotation_degrees - rotation per copy.
- copy_scale_factor - scaling per copy (0.25 to 4).
The two "apply to translation" toggles change how the trail behaves:
- apply_scale_to_translation -
yesmakes the step distance grow with the copies (a widening fan);nokeeps spacing constant. - apply_rotation_to_translation -
yesrotates the direction of travel each step, which is how you get arcs and spirals instead of straight lines.
With rotation and scale both on and translation following them, one seed shape becomes a curving, tapering sequence. Turn them off and it's a clean linear scatter.
Inputs and outputs
- SHAPE, copies, copy_translation_x, copy_translation_y, copy_rotation_degrees, copy_scale_factor, apply_scale_to_translation, apply_rotation_to_translation.
Output:
- SHAPE - the original plus all copies.
Installing
From the Dream Painter pack (comfyui-dream-painter, alt-key-project). ComfyUI Manager β Install Custom Nodes β search Dream Painter β install β restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/alt-key-project/comfyui-dream-painter
cd comfyui-dream-painter
pip install -r requirements.txt
No models, no downloads.
Common issues
Because each copy is based on the previous one, small settings compound fast - a modest rotation per copy becomes a full spin after a dozen copies, and a trail that wanders off-canvas is common. The bounds also explode: a long trail has a huge bounding box, so the default render viewport will clip it. Run the result through Shape Center & Fit before Draw Shape As Bitmap to bring the whole trail back on-screen. And if copies is 0, you get your original shape back untouched - which is sometimes exactly what you want when toggling a branch on and off.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| SHAPE | SHAPE | β | |
| copies | INT | 20β1000 | β |
| copy_translation_x | FLOAT | 0.00-3β3 | β |
| copy_translation_y | FLOAT | 0.00-3β3 | β |
| copy_rotation_degrees | FLOAT | 0-360β360 | β |
| copy_scale_factor | FLOAT | 1.0000.25β4 | β |
| apply_scale_to_translation | COMBO | 2 options: yes, no | |
| apply_rotation_to_translation | COMBO | 2 options: yes, no |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SHAPE | SHAPE | β |