Nodes/ComfyUI-ZoeyTool/Zoey - 多功能画布
ComfyUI Node

Zoey - 多功能画布

A five-layer compositor you can drag, rotate, flip and cut out — all inside one node

By liangzoey·Created about a year ago·Updated 3 days ago· 5
Zoey - 多功能画布
  • image1
  • image2
  • image3
  • image4
  • image5
  • 合成图像
layer_config{}
bg_modelu2net
bg_remove_1false
bg_remove_2false
bg_remove_3false
bg_remove_4false
bg_remove_5false

ZoeyMultiCanvas is the mini-Photoshop node: up to five images composited onto one canvas, each with its own position, scale, rotation, opacity, and flip - arranged by dragging them around inside the node body rather than typing coordinates. Need a subject cut out and dropped onto a scene with the cutout floating at the right angle? This is the node. It's the kind of thing you'd otherwise build with half a dozen image-paste, resize, and rotate nodes that fight each other, or export to an external editor and lose the workflow connection entirely.

It ships in comfyui-ZoeyTool's image family (Zoey Tool/图像处理), which leans heavily on this same interactive pattern - drag handles, live preview, JSON state. The layer config is persisted as a JSON blob (layer_config), so your arrangement survives save/load and stays reproducible.

How it works

Wire up to five images into image1image5 (only image1 is required; every layer is optional). Then arrange them in the node's canvas view - the frontend writes position, scale, rotation, opacity, flip, and visibility into layer_config, and the Python composite() function reads it back and does the actual alpha compositing. Layers paste in order, later inputs on top, each with its own per-layer opacity. Layer 1's dimensions set the output canvas size, which is worth remembering when layers are very different resolutions.

Two capabilities beyond plain pasting:

  • Native alpha and background removal. A layer with an RGBA/alpha channel keeps its transparency automatically. And each layer has a bg_remove_N toggle - turn it on and the node runs background removal on that layer before compositing, so you can drop a foreground cutout onto a scene without pre-cutting anything.
  • bg_model lets you pick the removal backend from the rembg model shelf - u2net (default), u2netp, u2net_human_seg, the isnet series, and the BiRefNet family (birefnet-general, -lite, -dis, -massive). This is where the KB's background-removal honesty applies: no single model wins every image. BiRefNet is sharper on hair edges but heavier; u2net is the fast default. Flyaway hair or thin structures are where you'll feel the difference and want to try a different model.

The output is 合成图像 - one composited image. Total node, no other outputs.

Installing it

Standard pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/liangzoey/comfyui-ZoeyTool.git
cd comfyui-ZoeyTool
pip install -r requirements.txt

Restart ComfyUI (or ComfyUI Manager → comfyui-ZoeyTool). Here's the catch worth flagging: the pack's requirements install rembg unconditionally, and background removal is the feature this node leans on most - first run with a bg_remove toggle downloads the chosen model into rembg's cache (internet required, then offline). The u2net default is a small-ish download; the BiRefNet models are chunkier.

Where people get burned

The canvas-size rule (output takes layer 1's dimensions) is the classic surprise - if your composite comes out tiny or crops oddly, your base layer isn't the size you thought. Second, background removal that looks great in the preview can still show fringe in the final composite: if hair or thin structures look wrong, switch bg_model rather than accepting it - the isnet/BiRefNet options exist for exactly that failure. Third, layer_config JSON and the per-layer widgets can disagree if you edit both - pick one place to adjust (the interactive canvas) and let it own the state, or you'll fight your own settings.

CategoryZoey Tool/图像处理

Inputs (12)

NameTypeDefaultDescription
image1IMAGE
image2optIMAGE
image3optIMAGE
image4optIMAGE
image5optIMAGE
layer_configoptSTRING{}
bg_modeloptCOMBOu2net12 options: u2net, u2netp, u2net_human_seg, isnet-general-use, isnet-anime, silueta, +6
bg_remove_1optBOOLEANfalse
bg_remove_2optBOOLEANfalse
bg_remove_3optBOOLEANfalse
bg_remove_4optBOOLEANfalse
bg_remove_5optBOOLEANfalse

Outputs (1)

NameTypeDescription
合成图像IMAGE