SCAIL-2 SAM3 Dependency Check
Run this node before you chase a SAM3 import error
- status
SCAIL-2 dropped the stick figure, which is exactly why it's good at motion transfer. But it also means the conditioning masks have to come from somewhere real - in this pack, that somewhere is SAM3 video tracking. And SAM3 is the optional, fragile part of the stack.
This node is a zero-input canary. Run it first, and you'll know in one second whether your Colored Mask node is even going to load, instead of discovering it mid-workflow.
What it does
SCAIL2SAM3DependencyCheck has no inputs and one STRING output called status. When you run it, it tries to import the SAM3 predictor classes and returns either "SAM3 preprocessing dependencies are available." or raises an error explaining what's missing.
Why does this need a dedicated node at all? Because the pack is deliberately lazy about SAM3. ComfyUI-SCAIL-Pose2 imports SAM3-specific code only when a SAM3 execution path actually runs, so ComfyUI starts fine even if you've never installed the optional stack. The flip side is that the failure shows up at runtime, deep inside a big workflow, where it's easy to mistake for a node bug. This node surfaces the real cause up front.
Under the hood it's a one-liner: require_sam3_predictors() tries from ultralytics.models.sam import SAM3SemanticPredictor, SAM3VideoSemanticPredictor. If that import fails, you get a clear message telling you SAM3 needs an ultralytics build with those two classes plus local model weights - and, notably, that the node will never auto-download gated weights.
Install
The pack itself is light. ComfyUI Manager: search for ComfyUI-SCAIL-Pose2, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/rookiestar28/ComfyUI-SCAIL-Pose2.git
cd ComfyUI-SCAIL-Pose2
python -m pip install -r requirements.txt
Note what's not in requirements.txt: no ultralytics, no SAM3 weights. The pinned deps are just numpy, opencv-python, pillow, safetensors, scipy, and tqdm. The SAM3 stack is your responsibility, and it's the one genuinely heavy part - an ultralytics build with SAM3 predictors and the model weights themselves, which are gated, so this node refuses to grab them for you.
When you'd bother
Honestly? Mostly once, when you're setting up. But it's also the right first move when a SCAIL-2 workflow suddenly starts erroring after a ComfyUI update - an environment change can silently break the optional SAM3 import, and this node tells you whether the problem is upstream of your graph entirely. If status isn't the happy string, go fix the SAM3 installation (per the SAM3 project's own instructions, since this pack deliberately doesn't pin that dependency) rather than poking at mask settings.
It's a diagnostic, not a workhorse. Wire it into a text preview if you like, or just run it once and remember the answer. One node, one output, zero ambiguity.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| status | STRING | — |