Nodes/ComfyUI-SCAIL-Pose2/SCAIL-Pose2 WanVideo SCAIL-2 Adapter
ComfyUI Node

SCAIL-Pose2 WanVideo SCAIL-2 Adapter

The translator that hands your condition to WanVideoWrapper

By rookiestar28·Created 3 months ago·Updated 14 days ago· 13
SCAIL-Pose2 WanVideo SCAIL-2 Adapter
  • condition
  • condition
degrade_to_v1false
allow_degradationfalse

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 with degrade_to_v1 for 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:

  1. SCAILPose2ColoredMaskpose_video_mask
  2. SCAILPose2SCAIL2Conditioncondition
  3. this nodecondition (the SCAIL2_WANVIDEO_PAYLOAD)
  4. 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.

CategorySCAIL-Pose2/WanVideoWrapper

Inputs (3)

NameTypeDefaultDescription
conditionSCAIL2_CONDITION
degrade_to_v1BOOLEANfalse
allow_degradationBOOLEANfalse

Outputs (1)

NameTypeDescription
conditionSCAIL2_WANVIDEO_PAYLOAD