SCAIL-Pose2 WanVideo SCAIL-2 Adapter
The translator that hands your condition to WanVideoWrapper
- condition
- condition
Every good pack has a boring node that makes the interesting ones work. This is that node. SCAILPose2WanVideoSCAIL2Adapter doesn't generate anything, doesn't inspect anything, and takes two minutes to understand - but if you're running SCAIL-2 through ComfyUI-WanVideoWrapper, it's the last step before your condition actually reaches the model.
It converts the validated SCAIL2_CONDITION from SCAILPose2SCAIL2Condition into this pack's versioned SCAIL2_WANVIDEO_PAYLOAD - the format downstream WanVideoWrapper nodes expect. That's the whole job: translate, don't invent.
The one confusing thing
The output is named condition, same as the input. Don't let that fool you - the ComfyUI type has changed. Input is SCAIL2_CONDITION, output is SCAIL2_WANVIDEO_PAYLOAD. They're different types, and the output is what you wire into a consumer like WanVideoAddSCAIL2ConditionEmbeds. If you're staring at a graph wondering why a wire won't connect, this naming is probably why.
The payload is also versioned, which is this repo's answer to the SCAIL-1 → SCAIL-2 transition. The older standalone v1 image adapter is no longer a public node, but its validation logic survives internally as the fallback path.
The degradation switches
Two booleans, and they're deliberately boring:
degrade_to_v1- requests lossy v1 fallback metadata when the payload can't be expressed natively.allow_degradation- must be on together withdegrade_to_v1for any fallback data to be retained. One without the other does nothing.
The README is explicit that this path is compatibility metadata, not full SCAIL-2 parity. Think of it as a graceful-degradation switch for older wrappers, not a quality feature. If you don't have a reason to use it, leave both off - that's the sane default.
Wiring it in
The chain is short and linear:
SCAILPose2ColoredMask→pose_video_maskSCAILPose2SCAIL2Condition→condition- this node →
condition(theSCAIL2_WANVIDEO_PAYLOAD) - into your WanVideoWrapper SCAIL-2 embedding consumer
From there, context windows and overlap are the wrapper's responsibility - the pack explicitly doesn't claim SCAIL-2 clean-history continuation across chunks. If you're going past SCAIL-2's ~81-frame native context, that's downstream chunking territory, not something this node handles.
A note on model contracts
One subtle trap the README flags: this repo's restored NLF pose loader returns NLF_MODEL, while WanVideoWrapper's NLF family may expose NLFMODEL through its own loaders. Those contracts aren't wire-compatible - this repo wants local .safetensors assets, wrapper loaders may manage .torchscript downloads. If your graph blends both, that mismatch shows up here as a frustrating type error. Keep the loaders on the same side of the graph.
It's a short node with a short explanation. Wire it, forget it, and let it quietly do the translating.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| condition | SCAIL2_CONDITION | — | |
| degrade_to_v1 | BOOLEAN | false | — |
| allow_degradation | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| condition | SCAIL2_WANVIDEO_PAYLOAD | — |