β Shape Combiner
Bundle up to four shapes into one before you render
- SHAPE
- SHAPE2
- SHAPE3
- SHAPE4
- SHAPE
A scene is rarely one shape. It's a rectangle behind a star behind a ring, and Dream Painter's Draw Shape As Bitmap renders one SHAPE object at a time. Shape Combiner is the node that lets you compose: it takes up to four shapes and merges them into a single SHAPE, so one render pass draws the whole scene instead of you juggling four renders and four boolean merges.
In the pack's example graphs this is everywhere - rays_of_color and butterfly both feed multiple generated shapes into a Combiner before the render step. The pattern is: generate a bunch of geometry, combine it, render once. That single render gives you one bitmap, and one bitmap is one clean guide for the ControlNet.
How it works
Under the hood it's almost trivially simple: a Shape in this pack is a list of sub-shapes, and combining just appends those lists into one. All four inputs are optional, and any that are left unwired are skipped - so you can use it with two shapes, or three, or one. What you get back is a single SHAPE containing everything, drawn in the order the inputs are wired (which matters when shapes overlap and you care about which one paints over which).
The composition is purely additive: it doesn't union or subtract geometry, it stacks it. If you want boolean effects on the pixels, that's what the Bitmap AND / OR / XOR nodes are for, after rendering. Combiner is the "package it up" step, not the "booleanize it" step.
Inputs and outputs
- SHAPE, SHAPE2, SHAPE3, SHAPE4 - all optional; wire however many you have.
Output:
- SHAPE - the combined shape.
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
Two gotchas. First, the output shape's bounds are the union of all inputs' bounds - so a scene spread across the 0β1 space combined with another scene at a different location will have a wide bounding box, and rendering with the default viewport might clip parts. Run the result through Shape Center & Fit to normalize before rendering. Second, you can't chain unlimited shapes through one Combiner (it stops at four) - but Combiner outputs are themselves shapes, so stacking two Combiners gives you up to eight. Just be aware draw order follows input order, so keep the "back" shapes in the lower inputs.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| SHAPEopt | SHAPE | β | |
| SHAPE2opt | SHAPE | β | |
| SHAPE3opt | SHAPE | β | |
| SHAPE4opt | SHAPE | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SHAPE | SHAPE | β |