Nodes/Symbiotica/Symbiotica Slice Cells
ComfyUI Node

Symbiotica Slice Cells

Cut the generated sheet on the grid it was packed to

By symbiotica-ai·Created 6 months ago·Updated about 13 hours ago· 2
Symbiotica Slice Cells
  • image
  • cells
  • roles
  • stitched
cell_boxes
inset1
output_size0

Generate a sheet of game assets and the work isn't done - you have one image that's really a dozen, and each one needs to be edited or delivered separately. Symbiotica Slice Cells cuts a generated sheet back into one image per asset, on the grid the dataset was packed to. Wire the Dataset Reference node's cell_boxes in and every asset type cuts itself: a food sheet gives prep/ready/serving, a chair sheet gives its four rotations. No crop coordinates to type, nothing to rewire when the run changes type.

That last part is the whole trick. The grid isn't guessed - it's asked for. The boxes describe the layout the render was supposed to hit, so the cut always matches the pack, whatever the asset type.

How it works

cell_boxes is the JSON from Dataset Reference - the same packing record the render was built to. The node crops each box out of the sheet, applying inset pixels of shrink. The inset matters because the boxes are the grid the render was asked to hit, and a render lands slightly off sometimes: a pixel or two of slack keeps background out of a cell. Each cell also gets a role - what it holds, prep, serving, a rotation - so an edit downstream can address "serving" rather than "the third one."

The inputs

  • image (required) - the generated sheet to cut.
  • cell_boxes (required) - the Dataset Reference node's cell_boxes output. This is a wire, not a type-this field.
  • inset - pixels to shrink every cell by, default 1.
  • output_size - resize each cell to this square, or 0 to keep its cut size. Uses Lanczos, the same resampler an Upscale Image node uses.

The outputs

  • cells - one IMAGE per cell, in reading order. This is the main one; wire it into the edit or save lanes.
  • roles - what each cell holds, index-aligned with cells. Let an edit address the role.
  • stitched - every cell in one image, side by side left to right in cells order (shorter cells padded at the bottom). Handy for a contact-sheet preview or a save without a stitcher node.

Install

Standard pack install - search Symbiotica in ComfyUI Manager, or:

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

Restart after. No API key, no model - pure tensor crops.

Gotchas

Wire cell_boxes from the same Dataset Reference node that produced the sheet. Paste a stale or hand-typed box list and the node will happily cut the wrong places - or raise "none of the N cells fall inside this image," which is the friendlier failure and means the boxes describe a different size sheet than the one you fed it. Also keep inset modest: it's there to shave render wobble, and cranking it eats into the art. And mind the ordering contract - cells and roles are index-aligned, so if you ever shuffle one list, you've broken the mapping. The paired Reconstruct Cells node is the inverse: it puts edited cells back onto the same boxes, so a sheet survives a per-asset edit intact.

Categorysymbiotica/pipeline

Inputs (4)

NameTypeDefaultDescription
imageIMAGEThe generated sheet to cut.
cell_boxesSTRINGThe Dataset Reference node's `cell_boxes` output.
insetINT10–256Pixels to shrink every cell by. The boxes are the grid the render was ASKED to hit, so a pixel or two of slack keeps the background out of a cell when the render lands slightly off.
output_sizeINT00–8192Resize each cell to this square, or 0 to keep it at its cut size. Lanczos, the same resampler an Upscale Image node uses.

Outputs (3)

NameTypeDescription
cellsIMAGEOne image per cell, in reading order.
rolesSTRINGWhat each cell holds — 'prep', 'serving', a rotation — index-aligned with `cells`.
stitchedIMAGEEvery cell in one image, side by side left to right in the same order `cells` counts them. A shorter cell is padded at the bottom to the tallest one.