Nodes/Symbiotica/Symbiotica Dataset Reference
ComfyUI Node

Symbiotica Dataset Reference

One Seeded Style Reference Per Asset Type — So the Batch Stays Consistent

By symbiotica-ai·Created 6 months ago·Updated about 13 hours ago· 2
Symbiotica Dataset Reference
  • order
  • images
  • names
  • cell_boxes
  • save_path
seed0
subfolderdataset
project_path
categories

Symbiotica Dataset Reference is the style-reference node of the order pipeline. It draws one existing piece of game art per asset type from <project>/dataset/<Asset Type>/ - the catalog's house style - and hands it to your image model as the "make it look like this" reference. The trick that makes it production-worthy is in the first line of its description: the draw is per type, not per asset. Every food item in a run shares one food reference, so the batch comes out consistent instead of each sprite vaguely resembling a different piece of catalog art.

That consistency decision is the whole design. If it drew per asset, you'd get the variety you asked for in a bad way - five food sprites each anchored to a different reference, and the set looks like five different artists. Drawing per type is the pack saying "consistency of a run beats per-item novelty," which for a client deliverable is usually the right call. And because it's seeded, the same seed reproduces the exact same references - which is what lets you say "that food reference was great, run it again" and get the identical pick.

How it works

For each asset type in the order, the node picks a reference file from that type's dataset folder, seeded by the (seed, category) pair. The key property: a type keeps its own pick when another type joins the order. Adding decorations to a food order doesn't reshuffle the food reference you already approved - which is exactly what you want when you're iterating toward a client sign-off and the order keeps growing.

The outputs go beyond the reference itself:

  • images - the reference for asset i, index-aligned with Order Assets. Wire into the LLM/Gemini image input.
  • names - the filename drawn for asset i, so a good draw can be traced back to its file.
  • cell_boxes - where each asset sits inside this type's packed sheet, as JSON. Wire into Slice Cells to cut a generated sheet back into one image per role. It comes from the same dataset folder the reference was drawn from, so it describes the grid the render was asked to reproduce.
  • save_path - the type folder asset i's reference came from. Wire it into a Pick node's save_path to see every reference of that type in a grid and tick the ones you want instead of taking the seeded draw.

The inputs that matter

  • seed - which reference each type draws. Same seed = same references; bump it to draw again.
  • subfolder - dataset by default; the subfolder under the project holding the per-type reference folders (same sense as Save Render's subfolder).
  • project_path - the client project folder; filled in from the order when one is wired.
  • categories - asset type per asset (Order Assets' categories or Asset Focus's category). Leave unwired when the order comes from Asset Focus - the focused order carries each asset's type already.

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 or downloads - it reads local dataset folders. Zero cost per run; the cost is only what your downstream image node charges.

Common issues

  • Every run pulls a new reference even with the same seed - check the seed actually matches between runs. Also: if a type's folder gained files, adding a type reshuffles new picks but kept types hold theirs; the per-category seeding means only new categories draw fresh.
  • No reference for a type - the dataset folder for that type is empty or missing. The node needs <project>/dataset/<Type>/ populated with at least one image.
  • The batch looks inconsistent - you wired categories from the wrong list (Order Assets' deduped categories vs per-asset). Make sure the categories input is per-asset, index-aligned.
  • Trying to pick references by eye instead of by seed - that's a workflow choice the node supports: wire save_path into a Pick node's save_path, leave the picker's stage empty (these are source art with no steps under them), and focus one asset when the order carries several types.

The one thing to know before you lean on it: this is the catalog's house style, not the client's brief art. Wire this into the style socket and Asset Refs into the brief socket, and you've got both halves of "right look, right subject."

Categorysymbiotica/pipeline

Inputs (5)

NameTypeDefaultDescription
seedINT00–1152921504606847000Which reference each type draws. Same seed = same references; bump it to draw again. A type keeps its own pick when another type joins the order.
subfolderSTRINGdatasetSubfolder under the project holding the per-type reference folders — the same sense as Save Render's subfolder.
project_pathSTRINGClient project folder. Filled in from the order when one is wired.
categoriesoptSTRINGAsset type per asset — Order Assets' `categories` or Asset Focus's `category`. Leave unwired when the order comes from Asset Focus: the focused order carries each asset's type already.
orderoptSYMBIOTICA_ORDER

Outputs (4)

NameTypeDescription
imagesIMAGEThe reference for asset i — index-aligned with Order Assets. Wire into the LLM/Gemini image input.
namesSTRINGFilename of the reference drawn for asset i, so a good draw can be traced back to its file.
cell_boxesSTRINGWhere each asset sits inside this type's packed sheet, as JSON — wire into Slice Cells to cut a generated sheet back into one image per role. Comes from the same dataset folder the reference was drawn from, so it describes the grid the render was asked to reproduce.
save_pathSTRINGThe type folder asset i's reference was drawn from. Wire it into a Pick node's `save_path` to see every reference of that type in a grid and tick the ones you want, instead of taking the seeded draw — leave the picker's `stage` empty, since these are source art with no steps under them. A picker reads the first folder handed to it, so focus one asset (Asset Focus's `category`) when the order carries several types.