本文へ移動
cccskills
無料GitHub で公開

wan-scail-replacement

SCAIL-2 in-video character replacement on WAN 2.1. WanSCAILToVideo + SCAIL2ColoredMask + SAM3, the reference-image framing→scale rule, and the tuning/compositing pitfalls

インストール方法を見る

含まれるファイル(1)

  • SKILL.md4.6 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

SCAIL-2 In-Video Character Replacement (WAN 2.1)

SCAIL-2 (zai-org, on WAN 2.1 14B) replaces the person in a driving video with a character you supply as a reference image, end-to-end, with no pose maps, and with multi-character support. It is the successor to WAN Animate / motion transfer for the "swap the subject, keep the motion" job. The official ComfyUI template is video_wan21_scail2_character_replacement_int8, built around WanSCAILToVideo (+ SCAIL2ColoredMask) with a SAM3 mask driving where the character goes.

This skill documents the non-obvious behaviours that cost a full multi-minute render to discover. It is not a from-scratch graph. Start from the official template and apply the guidance below.

The one rule that costs a re-render: reference framing controls SCALE

In replacement_mode: true, the reference image's FRAMING controls the output character's SIZE as well as its appearance. The SAM3 mask controls where the character is placed; the reference image controls how large.

Measured on a 720x1280 driving clip where the subject occupied ~30% of frame height (subject bbox 363 px):

Reference framingPerson bbox in outputvs driving subject
Full-bleed portrait (person ~93% of frame)621 px1.71x oversized
Reframed (person ~34% of frame)364 px1.003x — correct

After reframing, top/bottom registration matched the driving subject within 1 px (the character stands on the same ground plane at the same height). Pose transfer was correct in both cases. Only the scale was wrong, which makes it easy to misread as "the model works" until you A/B against the source.

Guidance: pad or reframe the reference before you render.

Pad/reframe the reference image onto a canvas at the working resolution so the person occupies roughly the same fraction of frame height as the subject in the driving video. A full-bleed portrait reference against a wide-shot driving clip renders the character oversized in proportion to the framing mismatch.

It is a trap because the template's on-canvas notes do not state it, and it does not show up in the popular Civitai motion-transfer workflows. Those run animation mode, where the reference legitimately fills the frame.

Tuning trade-off: distill LoRA strength / shift leaks driving-subject detail

Running the lightx2v distill LoRA at 0.8 with ModelSamplingSD3 shift 5 (the settings the popular Civitai workflow uses) improves colour and detail versus 1.0 / shift 8. It also increases adherence to the driving video enough that original-subject details bleed onto the replacement character. In one run the original golfer's neon-yellow shoe appeared on a replacement character who wears white shoes in the reference (same seed, same reference, only those two params changed). If you see source details you didn't ask for, raise the LoRA strength / shift back toward 1.0 / shift 8.

Don't "fix" colour with post-hoc compositing — it's a regression

The raw SCAIL-2 output shows a measurable colour error (background ~-5 per channel from the VAE round-trip; the character loses red ~2.4x faster than green, which reads as a slight green cast). It is tempting to composite the generated character back over the original plate through the SAM3 mask to "correct" it. Don't. It measures better but looks worse:

  • The mask boundary produces an obvious halo.
  • Layering the original plate's props (e.g. a golf club) over generated hands severs the grip relationship the model had solved coherently.

SCAIL-2 resolves colour, edges, grip and occlusion jointly; correcting any one of them in isolation breaks the others. Leave the raw output alone.

Models (reference set)

The template's int8 build was exercised with:

  • wan2.1_14B_SCAIL_2_int8_convrot, the SCAIL-2 model
  • wan2.1_SCAIL_2_DPO_lora_bf16, the DPO LoRA
  • lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16, the distill LoRA (see tuning note)
  • Wan2_1_VAE_bf16
  • umt5_xxl_fp8_e4m3fn_scaled, the text encoder
  • clip_vision_h
  • sam3.1_multiplex_fp16, the SAM3 mask model

VRAM: ~22.2 GB peak at 576x1024 / 81-frame chunks on a 24 GB card.

See also

  • wan-t2v-video, wan-flf-video for other WAN 2.x video pipelines
  • director for multi-shot scene direction for video pipelines

Sources

  • Official: none found.
  • Empirical: sampler values, wiring, and prompt notes from working graphs in packs/ and observed renders; not a vendor prompting guide.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Train custom LoRAs with ostris AI-Toolkit. Covers WAN 2.2/2.1 (people, styles, video motion) and Z-Image (Turbo & Base, low-VRAM image LoRAs). Use when the user wants to train a WAN or Z-Image LoRA; covers local + RunPod setup, dataset prep, key params, and using the result in a ComfyUI workflow.

日本語の概要は準備中です。原文の説明を表示しています。

artokun/comfyui-mcp8172026年10月5日 更新

Anime/illustration text-to-image (ANIMA 1.0, ~2B Cosmos DiT). Use for anime, manga, illustrated characters; accepts Danbooru tags + natural language; runs/trains on <6GB VRAM; includes anime inpainting via Anima-LLLite ControlNet

日本語の概要は準備中です。原文の説明を表示しています。

artokun/comfyui-mcp8172026年10月5日 更新

Train a custom anime LoRA on the ANIMA base model with Citron's local Gradio trainer (kohya sd-scripts), <6GB VRAM, character/style LoRAs; covers setup, dataset prep, training params, and using the result in the anima-base workflow

日本語の概要は準備中です。原文の説明を表示しています。

artokun/comfyui-mcp8172026年10月5日 更新

civitai

無料

Discover Civitai models with the BUILT-IN download_model action:"search_civitai" and install/generate them locally. Find a checkpoint/LoRA/embedding on Civitai, download it into ComfyUI, and use its trigger words. Optionally pair the official Civitai MCP for community features (images browsing, posting, collections).

日本語の概要は準備中です。原文の説明を表示しています。

artokun/comfyui-mcp8172026年10月5日 更新

Diagnose and fix video/image color OBJECTIVELY with the get_image (action:"analyze_color") tool (scopes/stats such as black/white points, contrast, saturation, clipping, cast) instead of eyeballing a contact sheet. Covers the "washed out" signature, why reference color-match (mkl/ColorMatch/ColorMatchAdobe) CAN'T add contrast a flat source lacks, the levels/contrast-stretch fix (core AdjustContrast / CurveEditor), the measure→fix→re-measure loop, the side-by-side sandbox pattern, and where to place the fix in a render graph (after decode, before save). Use when a render looks washed out / flat / dull / over-saturated / color-cast, or when deciding between a color-match and a contrast/levels fix.

日本語の概要は準備中です。原文の説明を表示しています。

artokun/comfyui-mcp8172026年10月5日 更新

Core ComfyUI knowledge covering workflow format, node types, pipeline patterns, and MCP tool usage

日本語の概要は準備中です。原文の説明を表示しています。

artokun/comfyui-mcp8172026年10月5日 更新

artokun のスキルをすべて見る

このスキルの問題を報告する