Nodes/Symbiotica/Symbiotica Compare Sheet
ComfyUI Node

Symbiotica Compare Sheet

References on Top, Results Below — Read a Batch at a Glance

By symbiotica-ai·Created 6 months ago·Updated about 13 hours ago· 2
Symbiotica Compare Sheet
  • references
  • results
  • reference_masks
  • result_masks
  • sheet
cell_size0
spacing16
background#808080
mask_is_transparencytrue
padding_color#000000
reference_scale1.00

Symbiotica Compare Sheet is the "did we match the reference" review node: it lays a row of reference images over a row of results in one image, so an asset and the art it was drawn from can be read in a glance instead of flipped between tabs. The pack's pitch is the whole story: "Lays a row of references over a row of results as one image... takes whole batches, unlike a two-image stitch."

The batch part is what separates it from the two-image compare nodes everyone's seen. You wire a whole batch of references into the top row (Asset Refs' images) and the matching batch of results into the bottom (Slice Cells' cells), and each result lands under the reference it belongs to - index-aligned, in one sheet. For reviewing a production run, that's the difference between eyeballing a contact sheet and eyeballing forty pairs individually.

How it works

references and results are both IMAGE inputs (whole batches); the node pairs them by index, fits each into a square cell, and emits one sheet image. The knobs are all about how the cells read:

  • cell_size - 0 takes the largest edge among the images so nothing is enlarged into softness (the default, and the right default: upscaling a small sprite just to fill a cell adds blur, not information).
  • spacing - the gutter between cells, and the sheet's own border.
  • background - what sits behind each sprite, and what fills an empty cell. Grey #808080 default, matching the pack's packed sheets.
  • padding_color - what sits outside the cells (gutters and border) so the sheet reads like the packed ones, every cell ringed in the matte. Set it to the same colour as background for a plain sheet with no outlines.
  • mask_is_transparency - the classic alpha gotcha, and the tooltip is the best explanation you'll get: "ON for ComfyUI's own Load Image, whose mask is 1 where the picture is SEE-THROUGH. OFF for a straight alpha channel, where 1 is where the art is - which is what this pack's Asset Refs masks hands out. Wrong way round and every sprite is cut out instead of its background."
  • reference_scale - draws the top row smaller inside its own cells (0.05–1.0). The cells and columns don't move, and each reference stays centred over the result below it - so a reference that dwarfs the finished asset stops reading as "the bigger of the two."
  • reference_masks / result_masks - optional MASK inputs for transparency. The warning: a loader hands pixels on with alpha already flattened - over black, for these sprites - so without the mask a transparent PNG lands as a black rectangle instead of the background.

The single output is sheet (IMAGE): references on top, results beneath, aligned by column.

Install

ComfyUI Manager → search Symbiotica → install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
pip install -r symbiotica/requirements.txt

Restart ComfyUI. No keys, no models - pure image compositing. Zero cost.

Common issues

  • Every sprite looks cut out / inverted - mask_is_transparency is wrong for your source. ComfyUI's Load Image wants ON; this pack's Asset Refs masks want OFF. Flip it.
  • Transparent PNGs land as black rectangles - no mask wired, so the pre-flattened alpha (over black) is all the node has. Wire reference_masks/result_masks in.
  • Columns don't line up - the two input batches must be index-aligned. If you wired whole batches from nodes that reorder (or dedupe), the pairing shifts. Wire from Asset Refs and Slice Cells directly and they stay in step.
  • Small references blow up into mush - cell_size is set explicitly instead of 0. Let the node take the largest edge among the images; that's what 0 means.

The honest take: this is a review tool, not a render tool - the output goes to your eyeballs (and your client's), not back into the generator. Use it as the last node in an iteration lane and it makes "does this match" a one-look question.

Categorysymbiotica/pipeline

Inputs (10)

NameTypeDefaultDescription
referencesIMAGEThe top row — the client's reference art, e.g. Asset Refs' `images`.
resultsIMAGEThe bottom row — what was made from it, e.g. Slice Cells' `cells`.
cell_sizeINT00–4096Square each image is fitted into, or 0 to take the largest edge among them so nothing is enlarged into softness.
spacingINT160–512Gutter between cells, and the sheet's own border.
backgroundSTRING#808080What sits behind each sprite, and what fills a cell with no sprite in it.
mask_is_transparencyBOOLEANtrueON for ComfyUI's own Load Image, whose mask is 1 where the picture is SEE-THROUGH. OFF for a straight alpha channel, where 1 is where the art is — which is what this pack's Asset Refs `masks` hands out. Wrong way round and every sprite is cut out instead of its background.
padding_colorSTRING#000000What sits OUTSIDE the cells — the gutters and the border — so the sheet reads like the packed ones, every cell ringed in the matte. Set it to the same colour as the background for a plain sheet with no outlines.
reference_scaleFLOAT1.000.05–1Draws the top row smaller inside its own cells. The cells and the columns do not move, and each reference stays centred over the result below it — so a reference that dwarfs the finished asset stops reading as the bigger of the two. 1.0 leaves it alone.
reference_masksoptMASKTransparency for the top row. A loader hands the pixels on with alpha already flattened — over black, for these sprites — so without the mask a transparent PNG lands as a black rectangle instead of the background.
result_masksoptMASKTransparency for the bottom row.

Outputs (1)

NameTypeDescription
sheetIMAGEOne image: references on top, results beneath, aligned by column.