Use Worflow Now for Free: https://www.floyo.ai/workflows/scail-2-bf16-loop-fulllength-motion--in4ss5zsvw3r
SCAIL-2 GGUF MOTION TRANSFER Reference Image to Video + MultiGPU
Turn a single character image into a fully animated video that copies the motion of any driving clip — at the **full length** of your input video, not just a fixed 5-second window. Built on the **Wan 2.1 SCAIL-2** model in quantized **GGUF** format so it runs on consumer GPUs, with optional **dual-GPU weight offloading** to keep speeds up.
---
✨ What this workflow does
Feed it **one reference image** (your character) and **one driving video** (the motion). SAM3 automatically tracks and masks the subject, the pose from the driving video drives the animation, and a **real chunked sampling loop** generates the entire clip — stitching sliding windows together with color-matching so there are no harsh seams between chunks.
- **Full-length output** — a sliding-window loop (81-frame initial window + 76-frame continuation windows) covers your whole driving video. No 5-second cap.
- **Motion transfer** — the subject in your reference image performs the exact motion of the driving clip.
- **Automatic subject masking** — SAM3.1 tracking isolates the character; no manual rotoscoping.
- **GGUF quantized model** — Q4_K_M weights fit comfortably in consumer VRAM.
- **Optional 2nd-GPU offload** — push ~10 GB of model weights to a second GPU instead of slow CPU offload.
- **Built-in side-by-side comparison output** — see reference vs. result in one render.
- **Organized & documented** — color-coded node groups and an on-canvas README note with every download link.
---
🎬 How to use it
1. **Reference image** → load your character in the `LoadImage` node (INPUTS group).
2. **Driving video** → load your motion clip in `VHS_LoadVideo` (INPUTS group). Leave `custom_width = 480` — it keeps system RAM low and matches the working resolution.
3. **Prompts** → describe the scene in the positive prompt and what to avoid in the negative (PROMPTS group).
4. **Press Run.** The output appears **only after the loop finishes** — there are no mid-run previews (this is normal, not a freeze). The OUTPUT group holds the final stitched video; the COMPARISON group shows the side-by-side.
**Speed tip:** set `select_every_nth = 2` on `VHS_LoadVideo` to roughly halve render time at half the temporal resolution. You can also lower the sampler steps.
---
🖥️ Single GPU vs. Dual GPU (model switcher built in)
The workflow includes two model loaders feeding an **Any Switch (rgthree)** "Model Switcher":
- **GGUF Loader – MULTI GPU (default)** — offloads ~10 GB of weights to your **second GPU** (`cuda:1`), keeping compute on `cuda:0`. Dramatically faster than CPU offload.
- **GGUF Loader – SINGLE GPU** — standard single-GPU GGUF loading.
**Switching is manual** (ComfyUI can't auto-detect GPU count). Use **Ctrl+B** to bypass the one you don't want — keep **exactly one** active:
- **Two GPUs:** leave as shipped → MultiGPU loader active, single-GPU loader bypassed.
- **One GPU:** bypass the MultiGPU loader and un-bypass the single-GPU loader. (If you leave the MultiGPU loader active with only one GPU, it will error trying to reach the missing `cuda:1`.)
> Tip: on the MultiGPU loader you can tune `virtual_vram_gb` (default 10) — lower it if your 2nd GPU OOMs, raise it if it has spare room. `donor_device` can also be set to `cpu` for a single-GPU fallback without bypassing.
---
📦 Required models & paths
Place these under your ComfyUI `models/` folder:
```
ComfyUI/
└── models/
├── unet/ (or diffusion_models/)
│ └── SCAIL-2-Q4_K_M.gguf ← supply your own GGUF
├── text_encoders/
│ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors
├── clip_vision/
│ └── clip_vision_h.safetensors
├── vae/
│ └── wan_2.1_vae.safetensors
├── loras/
│ └── Wan21_I2V_14B_lightx2v_cfg_step_distill_lora_rank64.safetensors
└── checkpoints/
└── sam3.1_multiplex_fp16.safetensors
```
Download links
1. **Text encoder (UMT5 XXL fp8)** → `models/text_encoders`
https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors?download=true
2. **CLIP Vision H** → `models/clip_vision`
https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/clip_vision/clip_vision_h.safetensors?download=true
3. **Wan 2.1 VAE** → `models/vae`
https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors?download=true
4. **LightX2V I2V rank64 step-distill LoRA** → `models/loras`
https://huggingface.co/lgylgy/Wan21_I2V_14B_lightx2v_cfg_step_distill_lora_rank64/resolve/main/Wan21_I2V_14B_lightx2v_cfg_step_distill_lora_rank64.safetensors?download=true
5. **SAM3.1 multiplex checkpoint** → `models/checkpoints`
https://huggingface.co/Comfy-Org/sam3.1/resolve/main/checkpoints/sam3.1_multiplex_fp16.safetensors?download=true
6. **SCAIL-2 GGUF diffusion model** → `models/unet`
https://huggingface.co/realrebelai/SCAIL-2_GGUF/resolve/main/SCAIL-2-Q4_K_M.gguf?download=true
---
🧩 Required custom nodes
- **ComfyUI-GGUF** — GGUF UNet loading
- **ComfyUI-MultiGPU** — `UnetLoaderGGUFDisTorch2MultiGPU` (2nd-GPU weight offload)
- **ComfyUI-KJNodes** — WanChunkFeedForward, ImageResizeKJv2, KikoPurgeVRAM, SimpleCalculatorKJ, INTConstant, GetImageRangeFromBatch, Set/Get nodes
- **ComfyUI_Swwan** — WanSCAILToVideo, SCAIL2ColoredMask, SAM3_VideoTrack, ImageConcatMulti
- **ComfyUI-easy-use** — forLoopStart/End, compare, ComfySwitchNode, BatchImagesNode, ColorTransfer
- **ComfyUI-VideoHelperSuite** — VHS_LoadVideo, VHS_VideoCombine, VHS_VideoInfo
- **ComfyUI-Resolution-Master** — ResolutionMaster
- **rgthree-comfy** — Any Switch (Model Switcher), Display Int
All of these are installable through **ComfyUI-Manager** ("Install Missing Custom Nodes").
---
⚙️ Requirements & performance
- A recent ComfyUI build with **Wan 2.1 / SCAIL-2** support.
- **~16 GB VRAM** recommended for the main GPU.
- For MultiGPU offload: a **second GPU with ≥ 11 GB free** VRAM.
- **Render time scales with clip length** — each window is a full diffusion pass. A ~500-frame clip runs roughly 7 windows. Use `select_every_nth` or fewer steps to trade quality/length for speed.
---
🗂️ Workflow layout
Nodes are organized into color-coded groups for clarity:
**INPUTS** (image & video) · **MODELS** (diffusion / VAE / CLIP / sampler) · **PROMPTS** · **PREPROCESS** (resolution / pose resize / CLIP vision) · **MASK & TRACKING (SAM3)** · **CHUNK 1** (first window) · **LOOP MATH** (window / count) · **LOOP BODY** (chunk-2 generation & accumulation) · **OUTPUT** (final video) · **COMPARISON OUTPUT** (side-by-side)
---
📺 Tutorial
Watch how to use this workflow:
https://www.youtube.com/@AiMotionStudio
---
📝 Notes & tips
- Output only appears when the full loop completes — longer clips take longer before you see anything. That's expected.
- Keep exactly one model loader active (single- vs. dual-GPU).
- If you hit a system-RAM error on very long/high-res inputs, keep `VHS_LoadVideo` `custom_width = 480` (already set) and/or raise `select_every_nth`.
- Credits: built on Wan 2.1 SCAIL-2, LightX2V distill LoRA, SAM3.1, and the open-source ComfyUI custom nodes listed above.
Description
Version 4.0
FAQ
Comments (13)
so u need more than one gpu?
NO thats optional
@AIMotionStudio oh alright.t..hanks...sidenote: no idea why civitai posts a bunch of gibberish along with the post.
first, thank you for sharing your wf. I've now ran it some times an I am having face consistency issues. Reference face is loosing identity gradually from frame to frame. Anything i can do about that?
after generation run a faceswap then upscale the video to get a final better quality
hello, could it be possible to get your help on how to run this workflow ?? i'm looking for that since a while but i tried everything, and there's nothing i can do, wangp gives extremelt horrible results and the UI is the worst i ever seen
on your workflow, i run it on a 5070ti so 16gb so i took the 10gb model to atleast be sure that i can run it, but no matter what when i try to generate it gets stucks on the sampler node forever
the only error i see on the prompt command tab is ; [WARNING] WARNING SHAPE MISMATCH diffusion_model.patch_embedding.weight WEIGHT NOT MERGED torch.Size([5120, 36, 1, 2, 2]) != torch.Size([5120, 20, 1, 2, 2]), but i can't figure how to fix that myself...
i would like having some hands to help me cuz it's been so long now and i'm loosing it T-T
i finally make it working but only the 3.0, the 4.0 i don't know why but don't want to run, it's still get stuck on process, now my wonder is how to get the background from the reference image instead of the motion reference video
I did everything, it started to generate, 90seconds passed and it gave me only blue screen reference, no new video generated, any way how to solve it?
depending on your GPU and vram you have to wait for the process to complete, for my RTX 5060TI 16GB of Vram it took around 35mins to generate a 18sec video
with 12gb vram it's took me 1 hour to generate a 12s video
I'm sadly getting very very bad quality video... I don't know why with 2 RTX 5090 so really enlight me.....
I've been using this workflow since Version 3. I just successfully completed the first few runs with the new Version 4.
With a few exceptions, the results were always clean. I left select_every_nth set to 1 and didn't reduce the number of steps, but the quality was good.
Personally, I’m happy and grateful that there are people who put in this effort and even offer it for free.
If you happen to come across the “warning shape mismatch” message in the console, I’ve found that it’s safe to ignore it. I think it’s caused by Lora.
SCAIL-2: [5120, 36, 1, 2, 2]
Wan 2.1 I2V: [5120, 20, 1, 2, 2]
It seems that 5120, 1, 2, 2 are patched correctly, since, as mentioned above, I’m getting good results and only the 36 and 20 don’t match. Please correct me if I’m wrong.
Thanks for the workflow AIMotionStudio
my daughter used to like to braid bracelets, she lost interest so she took all the different color strings and put them in a drawer. that was years ago, and after fishing through that drawer for this and that once or twice a week every now and then all the strings have gotten tangled into a rat king of a creature that is hopeless to ever understand, much less ever untangle.
your workflow looks like the inside of that drawer.