Nodes/IAMCCS-nodes/IAMCCS SCAIL Identity Seeder
ComfyUI Node

IAMCCS SCAIL Identity Seeder

Stop SCAIL-2 from merging two people into one tracked blob

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
IAMCCS SCAIL Identity Seeder
  • model
  • image
  • bboxes
  • initial_masks
modepoints
refine_iterations2
points

SCAIL-2's whole selling point is that it dropped the skeleton and takes support masks directly - which is why it can do multi-character and animal driving at all. But the auto-detector that builds those masks has a bad habit: when two people are close together, their masks overlap and merge into one tracked object, and then your "two characters" shot silently becomes "one character with two halves". IAMCCS_ScailIdentitySeeder exists to stop that. You tell it where each person is with a click or a box, and it hands SCAIL-2's tracker exactly one clean mask per subject.

How it works

It's a thin, well-targeted wrapper around SAM3 (the same SAM3 model feeding SAM3_VideoTrack). You give it a model and an image - the first frame of your pose video, or the resized reference image, at the resolution the tracker actually runs on - plus either:

  • mode: points - one positive click per person, as a JSON list like [{"x":120,"y":210},{"x":480,"y":205}]. Order sets identity order.
  • mode: boxes - one bounding box per person, wired from a boxes editor. Again, order = identity order.

refine_iterations (default 2) runs that many SAM decoder refinement passes per object; 0 gives you the raw prompt mask. Out the other side comes a single initial_masks output (type MASK) that plugs directly into SAM3_VideoTrack.initial_mask. The author's instructions are explicit: leave SAM3_VideoTrack's conditioning disconnected and let these seed masks do the tracking.

The mechanism that makes it work is the guarantee behind it: one prompt per person, so one tracked object per person, so no overlap-merging. If the auto-detector can't decide where one person ends and the next begins, you decide for it.

Why this is the node you reach for

Multi-identity is SCAIL-2's marquee feature and also its fiddliest setup. Anyone who has watched two characters melt into each other mid-shot knows the auto-mask path isn't reliable when bodies overlap. Seeding masks by hand costs you a few seconds per subject and buys you stable identity through the whole chunked clip - and since identity drift across chunks is already SCAIL-2's known failure mode, you don't want to stack a bad initial track on top of it.

One practical note from the tooltips: feed it the image at the resolution the tracker runs on, not your full 4K render. Segmenting the same frame at two different scales gives the tracker a different mask than the one it expects, and the drift shows up at the seam.

Install

Part of IAMCCS-nodes:

  • ComfyUI Manager → search "IAMCCS" → install → restart.
  • Or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

Restart ComfyUI after. The pack wants ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8. You'll also need the SAM3 model itself loaded (same one your SAM3_VideoTrack node uses) and a SAM2/SAM3-compatible points or boxes source upstream - the node doesn't bring its own point editor, it just reads the JSON or BOUNDING_BOX you hand it.

CategoryIAMCCS/video/SCAIL-2

Inputs (6)

NameTypeDefaultDescription
modelMODELSAM3 model (same one feeding SAM3_VideoTrack).
imageIMAGEFrame to segment, at the resolution the tracker runs on (resized reference image, or pose video's first frame).
modeCOMBOpointspoints: one positive click per person (from a PointsEditor). boxes: one bounding box per person.
refine_iterationsINT20–5SAM decoder refinement passes per object (0 = raw prompt mask).
pointsoptSTRINGpoints mode: JSON list, one positive point per person, e.g. [{"x":120,"y":210},{"x":480,"y":205}]. Order sets identity order.
bboxesoptBOUNDING_BOXboxes mode: one bounding box per person. Order sets identity order.

Outputs (1)

NameTypeDescription
initial_masksMASK