Nodes/Jakkanna/Jakkanna SCAIL-2 Validate Prepared Track
ComfyUI Node

Jakkanna SCAIL-2 Validate Prepared Track

The gate that stops a bad SCAIL-2 run before it costs you an hour

By teenu·Created 2 months ago·Updated 2 months ago· 6
Jakkanna SCAIL-2 Validate Prepared Track
  • source_images
  • driving_mask_images
  • registered_reference
  • reference_mask
  • source_initial_mask_report
  • track_report
  • validated_frames
  • input_report
  • width
  • height
  • fps
preprocess_report
maximum_area_step_ratio2.0
maximum_centroid_jump0.15
minimum_adjacent_iou0.10
minimum_border_margin0.005
minimum_registration_iou0.35
expected_frames

JakkannaSCAIL2PreparedTrackValidate is the stricter sibling of JakkannaSCAIL2TrackValidate, and you hit it on the prepared image/FBX path - the "Registered Image + FBX Animation" workflow where SAM 3D Body fits the mannequin to your photograph, renders an 81-frame driver, and hands you a batch plus a preprocess report instead of a raw SAM track.

Where TrackValidate inspects a live SAM 3.1 track, this node validates a whole prepared run: the source frames, the driving masks, the registered reference, the reference mask, and the preprocess report that describes all of it. It's the difference between discovering your mannequin was fitted at the wrong depth after an 81-frame SCAIL-2 generation, versus before. Given SCAIL-2's cost - minutes per clip on consumer hardware, per the KB's collected numbers - that check is worth a lot.

The gates, in rough order:

  • Source must be exactly 704x1280 or 1280x704 (SCAIL-2's expected canvases), and the driving masks must match the source batch frame-for-frame.
  • Driving masks may contain only black and RGB blue - the prepared path encodes the subject as pure blue, and anything else is rejected.
  • The preprocess_report must be valid JSON under the jakkanna.image_fbx_animation.v1 schema, with the camera preset provenance intact (no silent preset substitution).
  • Source frames, driving masks, and the registered reference must SHA-256-match what the preprocess report says was saved. This catches a corrupted or swapped batch.
  • The star input, minimum_registration_iou (default 0.35), is a floor for the frame-zero silhouette overlap between the fitted mannequin and the photographed subject - measured only over the region the photo actually shows. The tooltip says it plainly: well-registered runs measure 0.85 or better; clothing, occlusion, and intentional cropping lower it legitimately, so the default is deliberately loose. Set it to 0 to record the value without gating.
  • Then the same track-continuity checks as TrackValidate - area step ratio, centroid jump, adjacent IoU, border margin - plus the report's frames/fps/width/height must match what's actually in the batch.

That last part is subtle and worth appreciating: the node cross-checks the preprocess report's claimed frame count, FPS, and resolution against the real tensors, and reconciles the auto-timing and root-motion decisions the preparation resolved on its own. Nothing is taken on faith.

Outputs are the full set the manifest needs: source_initial_mask_report, track_report, validated_frames, input_report, width, height, and fps. Wire the report strings into JakkannaSCAIL2ProductionManifest and you get a reproducibility chain where every number is either measured or hash-verified.

Install: part of the Jakkanna pack - ComfyUI Manager, search "Jakkanna", or:

cd ComfyUI/custom_nodes
git clone https://github.com/teenu/ComfyUI-VNCCS-Utils-Maintained
cd ComfyUI-VNCCS-Utils-Maintained
pip install -r requirements.txt

Restart. Don't run it alongside upstream vnccs-utils in the same instance. Model files - SCAIL-2, SAM 3.1, Krea 2, and friends - aren't downloaded by the pack; the loaders just name them.

The trap: the registration-IoU failure tells you exactly where to look - the error points at review/driver_frame0_over_reference.jpg in the prepared run directory, the overlay that shows whether the mismatch is a bad fit or just clothing. Read it before lowering the floor. And no, you can't hand-type a preprocess report to skip the schema check - this node exists to keep honest runs honest.

CategoryJakkanna/SCAIL-2

Inputs (11)

NameTypeDefaultDescription
source_imagesIMAGE
driving_mask_imagesIMAGE
registered_referenceIMAGE
reference_maskMASK
preprocess_reportSTRING
maximum_area_step_ratioFLOAT2.01–100
maximum_centroid_jumpFLOAT0.150–2
minimum_adjacent_iouFLOAT0.100–1
minimum_border_marginFLOAT0.0050–0.25
minimum_registration_iouFLOAT0.350–1Floor for the frame-zero silhouette overlap between the fitted mannequin and the photographed subject, measured only over the region the photograph actually shows. Catches a body fit at the wrong depth, scale, or orientation before generation runs. Well-registered runs measure 0.85 or better; clothing, occlusion, and intentional cropping lower it legitimately, so the default is deliberately loose. Set to 0 to record the value without gating.
expected_framesoptINTOptional external frame count to cross-check. A prepared run already carries its own frame count, which is checked against the batch either way, so this is only useful when an independent source of truth exists.

Outputs (7)

NameTypeDescription
source_initial_mask_reportSTRING
track_reportSTRING
validated_framesINT
input_reportSTRING
widthINT
heightINT
fpsFLOAT