SCAIL-2: Character Replacement
Upload 1 reference character image and 1 driving video. Generate an animated video of the character matching the driving video's motion. Ideal for character animation, in-video character replacement, and motion transfer projects.
ワークフローをダウンロードCloudで試す API ドキュメント
00:00
ワークフローの内部
ソーステンプレートの読み取り専用プレビューです。Cloud で開くと、ノードを確認して変更できます。
Loading the graph
Open full-size workflow preview- 出力
- 動画
- 作成者
- ComfyUI
コードからこのモデルを呼び出す
以下のリクエストでは、Playground と同じ準備済みグラフと設定を使用します。送信ごとに有料実行が開始される場合があります。結果が不明な送信を自動的に再試行しないでください。
1 API キーを取得 ↗
What you need
- Runs on
- Comfy Cloud
- キー
- COMFY_API_KEY
- ファイル
- コードによって URL からアップロードされます
有料の Cloud プランとクレジットが必要です。
API JSONをダウンロードAPI ドキュメント ↗
# Python 3.10+: pip install comfy-sdk==0.4.0
import os
from comfy_sdk import Comfy
api_key = os.environ.get("COMFY_API_KEY", "").strip()
if not api_key: raise RuntimeError("Set COMFY_API_KEY")
os.environ.setdefault("COMFY_BASE_URL", "https://cloud.comfy.org")
client = Comfy(api_key=api_key)
workflow = client.workflows.from_json({
"30": {
"class_type": "LoadImage",
"inputs": {
"image": "UPLOADED_image_FILENAME"
},
"_meta": {
"title": "Load Image"
}
},
"155": {
"class_type": "LoadVideo",
"inputs": {
"file": "UPLOADED_video_FILENAME"
},
"_meta": {
"title": "Load Video"
}
},
"201": {
"class_type": "CreateVideo",
"inputs": {
"audio": [
"215",
1
],
"bit_depth": 8,
"codec": "none",
"color_space": "sRGB",
"fps": [
"215",
2
],
"images": [
"213:6",
0
]
},
"_meta": {
"title": "Create Video"
}
},
"202": {
"class_type": "SaveVideo",
"inputs": {
"filename_prefix": "video/ComfyUI",
"format": "auto",
"format.codec": "auto",
"video": [
"201",
0
]
},
"_meta": {
"title": "Save Video (First Segement)"
}
},
"215": {
"class_type": "GetVideoComponents",
"inputs": {
"video": [
"155",
0
]
},
"_meta": {
"title": "Get Video Components"
}
},
"263": {
"class_type": "GetImageSize",
"inputs": {
"image": [
"215",
0
]
},
"_meta": {
"title": "Get Image Size"
}
},
"264": {
"class_type": "ComfyMathExpression",
"inputs": {
"expression": "ceil(a / (81 - 5))",
"values.a": [
"263",
2
]
},
"_meta": {
"title": "Math Expression"
}
},
"265": {
"class_type": "PreviewAny",
"inputs": {
"source": [
"264",
1
]
},
"_meta": {
"title": "Preview as Text ()"
}
},
"269": {
"class_type": "BatchImagesNode",
"inputs": {
"images.image0": [
"213:6",
0
],
"images.image1": [
"262:252",
0
]
},
"_meta": {
"title": "Batch Images"
}
},
"270": {
"class_type": "CreateVideo",
"inputs": {
"audio": [
"215",
1
],
"bit_depth": 8,
"codec": "none",
"color_space": "sRGB",
"fps": [
"215",
2
],
"images": [
"269",
0
]
},
"_meta": {
"title": "Create Video"
}
},
"271": {
"class_type": "SaveVideo",
"inputs": {
"filename_prefix": "video/SCAIL2",
"format": "auto",
"format.codec": "auto",
"video": [
"270",
0
]
},
"_meta": {
"title": "Save Video (Final output)"
}
},
"213:11": {
"class_type": "LoraLoaderModelOnly",
"inputs": {
"lora_name": "lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors",
"model": [
"213:318",
0
],
"strength_model": 0.8
},
"_meta": {
"title": "Load LoRA"
}
},
"213:114": {
"class_type": "WanSCAILToVideo",
"inputs": {
"batch_size": 1,
"clip_vision_output": [
"213:76",
0
],
"height": [
"213:163",
1
],
"length": [
"213:163",
2
],
"negative": [
"213:4",
0
],
"pose_end": 1,
"pose_start": 0,
"pose_strength": 1,
"pose_video": [
"213:156",
0
],
"pose_video_mask": [
"213:197",
0
],
"positive": [
"213:3",
0
],
"previous_frame_count": 5,
"reference_image": [
"30",
0
],
"reference_image_mask": [
"213:197",
1
],
"replacement_mode": [
"213:203",
0
],
"vae": [
"213:7",
0
],
"video_frame_offset": 0,
"width": [
"213:163",
0
]
},
"_meta": {
"title": "WanSCAILToVideo"
}
},
"213:154": {
"class_type": "UNETLoader",
"inputs": {
"unet_name": "wan2.1_14B_SCAIL_2_fp16.safetensors",
"weight_dtype": "default"
},
"_meta": {
"title": "Load Diffusion Model"
}
},
"213:156": {
"class_type": "ResizeImageMaskNode",
"inputs": {
"input": [
"213:177",
0
],
"resize_type": "scale dimensions",
"resize_type.crop": "center",
"resize_type.height": [
"213:182",
1
],
"resize_type.width": [
"213:180",
1
],
"scale_method": "area"
},
"_meta": {
"title": "Resize Image/Mask"
}
},
"213:157": {
"class_type": "GetVideoComponents",
"inputs": {
"video": [
"155",
0
]
},
"_meta": {
"title": "Get Video Components"
}
},
"213:163": {
"class_type": "GetImageSize",
"inputs": {
"image": [
"213:156",
0
]
},
"_meta": {
"title": "Get Image Size"
}
},
"213:165": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 40
},
"_meta": {
"title": "Int (Steps)"
}
},
"213:166": {
"class_type": "PrimitiveFloat",
"inputs": {
"value": 5
},
"_meta": {
"title": "Float (CFG)"
}
},
"213:167": {
"class_type": "PrimitiveFloat",
"inputs": {
"value": 1
},
"_meta": {
"title": "Float (CFG)"
}
},
"213:168": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 6
},
"_meta": {
"title": "Int (Steps)"
}
},
"213:169": {
"class_type": "ComfySwitchNode",
"inputs": {
"on_false": [
"213:318",
0
],
"on_true": [
"213:11",
0
],
"switch": [
"213:172",
0
]
},
"_meta": {
"title": "Switch (Model)"
}
},
"213:170": {
"class_type": "ComfySwitchNode",
"inputs": {
"on_false": [
"213:165",
0
],
"on_true": [
"213:168",
0
],
"switch": [
"213:172",
0
]
},
"_meta": {
"title": "Switch (Steps)"
}
},
"213:171": {
"class_type": "ComfySwitchNode",
"inputs": {
"on_false": [
"213:166",
0
],
"on_true": [
"213:167",
0
],
"switch": [
"213:172",
0
]
},
"_meta": {
"title": "Switch (Steps)"
}
},
"213:172": {
"class_type": "PrimitiveBoolean",
"inputs": {
"value": True
},
"_meta": {
"title": "Boolean (Enable Distill LoRA?)"
}
},
"213:177": {
"class_type": "ImageFromBatch",
"inputs": {
"batch_index": [
"213:184",
1
],
"image": [
"213:157",
0
],
"length": 81
},
"_meta": {
"title": "Get Image from Batch"
}
},
"213:178": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 896
},
"_meta": {
"title": "Int (Width)"
}
},
"213:179": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 512
},
"_meta": {
"title": "Int (Height)"
}
},
"213:18": {
"class_type": "BasicScheduler",
"inputs": {
"denoise": 1,
"model": [
"213:11",
0
],
"scheduler": "simple",
"steps": [
"213:170",
0
]
},
"_meta": {
"title": "BasicScheduler"
}
},
"213:180": {
"class_type": "ComfyMathExpression",
"inputs": {
"expression": "(a // 32) * 32",
"values.a": [
"213:178",
0
]
},
"_meta": {
"title": "Math Expression"
}
},
"213:182": {
"class_type": "ComfyMathExpression",
"inputs": {
"expression": "(a // 32) * 32",
"values.a": [
"213:179",
0
]
},
"_meta": {
"title": "Math Expression"
}
},
"213:183": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 1
},
"_meta": {
"title": "Int (segment index)"
}
},
"213:184": {
"class_type": "ComfyMathExpression",
"inputs": {
"expression": "(b - c) * (a - 1)",
"values.a": [
"213:183",
0
],
"values.b": [
"213:901",
0
],
"values.c": [
"213:902",
0
]
},
"_meta": {
"title": "Math Expression"
}
},
"213:19": {
"class_type": "SamplerCustom",
"inputs": {
"add_noise": True,
"cfg": [
"213:171",
0
],
"latent_image": [
"213:114",
2
],
"model": [
"213:95",
0
],
"negative": [
"213:114",
1
],
"noise_seed": 1,
"positive": [
"213:114",
0
],
"sampler": [
"213:27",
0
],
"sigmas": [
"213:18",
0
]
},
"_meta": {
"title": "SamplerCustom"
}
},
"213:191": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"213:193",
1
],
"text": "human"
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"213:193": {
"class_type": "CheckpointLoaderSimple",
"inputs": {
"ckpt_name": "sam3.1_multiplex_fp16.safetensors"
},
"_meta": {
"title": "Load Checkpoint"
}
},
"213:196": {
"class_type": "SAM3_VideoTrack",
"inputs": {
"conditioning": [
"213:191",
0
],
"detect_interval": 1,
"detection_threshold": 0.5,
"images": [
"213:156",
0
],
"max_objects": 4,
"model": [
"213:193",
0
]
},
"_meta": {
"title": "Run SAM3 Video Track"
}
},
"213:197": {
"class_type": "SCAIL2ColoredMask",
"inputs": {
"driving_track_data": [
"213:196",
0
],
"object_indices": "",
"ref_track_data": [
"213:198",
0
],
"replacement_mode": [
"213:203",
0
],
"sort_by": "left_to_right"
},
"_meta": {
"title": "Create SCAIL-2 Colored Mask"
}
},
"213:198": {
"class_type": "SAM3_VideoTrack",
"inputs": {
"conditioning": [
"213:212",
0
],
"detect_interval": 1,
"detection_threshold": 0.5,
"images": [
"30",
0
],
"max_objects": 4,
"model": [
"213:193",
0
]
},
"_meta": {
"title": "Run SAM3 Video Track"
}
},
"213:203": {
"class_type": "PrimitiveBoolean",
"inputs": {
"value": True
},
"_meta": {
"title": "Boolean (Replace Mode)"
}
},
"213:212": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"213:193",
1
],
"text": "human"
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"213:27": {
"class_type": "KSamplerSelect",
"inputs": {
"sampler_name": "euler"
},
"_meta": {
"title": "KSamplerSelect"
}
},
"213:3": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"213:9",
0
],
"text": "An elderly East Asian man with sleek silver-white hair tucked behind his ears and a calm, dignified face dances with lively rhythm in a bright, sunlit dance studio with tall steel-framed windows and a pale maple floor. He wears an avant-garde color-blocked outfit: an open cobalt-blue and emerald-green wool jacket over a saffron-yellow silk mock-neck tunic, vivid magenta tailored straight-leg trousers with crisp creases and polished oxblood-red leather shoes. The jacket swings open as he turns, the trousers fold naturally at the knees and his shoes squeak lightly on the floor. Soft morning daylight falls through the windows, casting long shadows on the boards. Realistic skin texture, natural fabric movement, consistent clothing and identity throughout, steady lighting, sharp detail and smooth, natural motion."
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"213:318": {
"class_type": "LoraLoaderModelOnly",
"inputs": {
"lora_name": "wan2.1_SCAIL_2_DPO_lora_bf16.safetensors",
"model": [
"213:154",
0
],
"strength_model": 1
},
"_meta": {
"title": "Load LoRA"
}
},
"213:4": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"213:9",
0
],
"text": ""
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"213:6": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"213:19",
1
],
"vae": [
"213:7",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"213:7": {
"class_type": "VAELoader",
"inputs": {
"vae_name": "Wan2_1_VAE_bf16.safetensors"
},
"_meta": {
"title": "Load VAE"
}
},
"213:75": {
"class_type": "CLIPVisionLoader",
"inputs": {
"clip_name": "clip_vision_h.safetensors"
},
"_meta": {
"title": "Load CLIP Vision"
}
},
"213:76": {
"class_type": "CLIPVisionEncode",
"inputs": {
"clip_vision": [
"213:75",
0
],
"crop": "none",
"image": [
"30",
0
]
},
"_meta": {
"title": "CLIP Vision Encode"
}
},
"213:9": {
"class_type": "CLIPLoader",
"inputs": {
"clip_name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
"device": "default",
"type": "wan"
},
"_meta": {
"title": "Load CLIP"
}
},
"213:901": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 81
},
"_meta": {
"title": "Int (segment length)"
}
},
"213:902": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 5
},
"_meta": {
"title": "Int (previous frame count)"
}
},
"213:95": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"213:169",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"262:216": {
"class_type": "LoraLoaderModelOnly",
"inputs": {
"lora_name": "lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors",
"model": [
"262:319",
0
],
"strength_model": 0.8
},
"_meta": {
"title": "Load LoRA"
}
},
"262:217": {
"class_type": "VAELoader",
"inputs": {
"vae_name": "Wan2_1_VAE_bf16.safetensors"
},
"_meta": {
"title": "Load VAE"
}
},
"262:218": {
"class_type": "ResizeImageMaskNode",
"inputs": {
"input": [
"262:235",
0
],
"resize_type": "scale dimensions",
"resize_type.crop": "center",
"resize_type.height": [
"262:239",
1
],
"resize_type.width": [
"262:238",
1
],
"scale_method": "area"
},
"_meta": {
"title": "Resize Image/Mask"
}
},
"262:219": {
"class_type": "GetVideoComponents",
"inputs": {
"video": [
"155",
0
]
},
"_meta": {
"title": "Get Video Components"
}
},
"262:220": {
"class_type": "GetImageSize",
"inputs": {
"image": [
"262:218",
0
]
},
"_meta": {
"title": "Get Image Size"
}
},
"262:221": {
"class_type": "CLIPLoader",
"inputs": {
"clip_name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
"device": "default",
"type": "wan"
},
"_meta": {
"title": "Load CLIP"
}
},
"262:222": {
"class_type": "CLIPVisionLoader",
"inputs": {
"clip_name": "clip_vision_h.safetensors"
},
"_meta": {
"title": "Load CLIP Vision"
}
},
"262:223": {
"class_type": "UNETLoader",
"inputs": {
"unet_name": "wan2.1_14B_SCAIL_2_fp16.safetensors",
"weight_dtype": "default"
},
"_meta": {
"title": "Load Diffusion Model"
}
},
"262:224": {
"class_type": "ModelSamplingSD3",
"inputs": {
"model": [
"262:232",
0
],
"shift": 5
},
"_meta": {
"title": "ModelSamplingSD3"
}
},
"262:225": {
"class_type": "KSamplerSelect",
"inputs": {
"sampler_name": "euler"
},
"_meta": {
"title": "KSamplerSelect"
}
},
"262:226": {
"class_type": "BasicScheduler",
"inputs": {
"denoise": 1,
"model": [
"262:216",
0
],
"scheduler": "simple",
"steps": [
"262:233",
0
]
},
"_meta": {
"title": "BasicScheduler"
}
},
"262:227": {
"class_type": "SamplerCustom",
"inputs": {
"add_noise": True,
"cfg": [
"262:234",
0
],
"latent_image": [
"262:259",
2
],
"model": [
"262:224",
0
],
"negative": [
"262:259",
1
],
"noise_seed": 1,
"positive": [
"262:259",
0
],
"sampler": [
"262:225",
0
],
"sigmas": [
"262:226",
0
]
},
"_meta": {
"title": "SamplerCustom"
}
},
"262:228": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 6
},
"_meta": {
"title": "Int (Steps)"
}
},
"262:229": {
"class_type": "PrimitiveFloat",
"inputs": {
"value": 1
},
"_meta": {
"title": "Float (CFG)"
}
},
"262:230": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 40
},
"_meta": {
"title": "Int (Steps)"
}
},
"262:231": {
"class_type": "PrimitiveFloat",
"inputs": {
"value": 5
},
"_meta": {
"title": "Float (CFG)"
}
},
"262:232": {
"class_type": "ComfySwitchNode",
"inputs": {
"on_false": [
"262:319",
0
],
"on_true": [
"262:216",
0
],
"switch": [
"262:255",
0
]
},
"_meta": {
"title": "Switch (Model)"
}
},
"262:233": {
"class_type": "ComfySwitchNode",
"inputs": {
"on_false": [
"262:230",
0
],
"on_true": [
"262:228",
0
],
"switch": [
"262:255",
0
]
},
"_meta": {
"title": "Switch (Steps)"
}
},
"262:234": {
"class_type": "ComfySwitchNode",
"inputs": {
"on_false": [
"262:231",
0
],
"on_true": [
"262:229",
0
],
"switch": [
"262:255",
0
]
},
"_meta": {
"title": "Switch (Steps)"
}
},
"262:235": {
"class_type": "ImageFromBatch",
"inputs": {
"batch_index": [
"262:241",
1
],
"image": [
"262:219",
0
],
"length": 81
},
"_meta": {
"title": "Get Image from Batch"
}
},
"262:236": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 896
},
"_meta": {
"title": "Int (Width)"
}
},
"262:237": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 512
},
"_meta": {
"title": "Int (Height)"
}
},
"262:238": {
"class_type": "ComfyMathExpression",
"inputs": {
"expression": "(a // 32) * 32",
"values.a": [
"262:236",
0
]
},
"_meta": {
"title": "Math Expression"
}
},
"262:239": {
"class_type": "ComfyMathExpression",
"inputs": {
"expression": "(a // 32) * 32",
"values.a": [
"262:237",
0
]
},
"_meta": {
"title": "Math Expression"
}
},
"262:240": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 2
},
"_meta": {
"title": "Int (segment index)"
}
},
"262:241": {
"class_type": "ComfyMathExpression",
"inputs": {
"expression": "(b - c) * (a - 1)",
"values.a": [
"262:240",
0
],
"values.b": [
"262:901",
0
],
"values.c": [
"262:902",
0
]
},
"_meta": {
"title": "Math Expression"
}
},
"262:242": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"262:243",
1
],
"text": "human"
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"262:243": {
"class_type": "CheckpointLoaderSimple",
"inputs": {
"ckpt_name": "sam3.1_multiplex_fp16.safetensors"
},
"_meta": {
"title": "Load Checkpoint"
}
},
"262:244": {
"class_type": "SAM3_VideoTrack",
"inputs": {
"conditioning": [
"262:242",
0
],
"detect_interval": 1,
"detection_threshold": 0.5,
"images": [
"262:218",
0
],
"max_objects": 4,
"model": [
"262:243",
0
]
},
"_meta": {
"title": "Run SAM3 Video Track"
}
},
"262:245": {
"class_type": "SCAIL2ColoredMask",
"inputs": {
"driving_track_data": [
"262:244",
0
],
"object_indices": "",
"ref_track_data": [
"262:246",
0
],
"replacement_mode": [
"262:247",
0
],
"sort_by": "left_to_right"
},
"_meta": {
"title": "Create SCAIL-2 Colored Mask"
}
},
"262:246": {
"class_type": "SAM3_VideoTrack",
"inputs": {
"conditioning": [
"262:261",
0
],
"detect_interval": 1,
"detection_threshold": 0.5,
"images": [
"30",
0
],
"max_objects": 4,
"model": [
"262:243",
0
]
},
"_meta": {
"title": "Run SAM3 Video Track"
}
},
"262:247": {
"class_type": "PrimitiveBoolean",
"inputs": {
"value": True
},
"_meta": {
"title": "Boolean (Replace Mode)"
}
},
"262:250": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"262:227",
1
],
"vae": [
"262:217",
0
]
},
"_meta": {
"title": "VAE Decode"
}
},
"262:251": {
"class_type": "ImageFromBatch",
"inputs": {
"batch_index": 5,
"image": [
"262:250",
0
],
"length": 4096
},
"_meta": {
"title": "Get Image from Batch"
}
},
"262:252": {
"class_type": "ColorTransfer",
"inputs": {
"image_ref": [
"262:253",
0
],
"image_target": [
"262:251",
0
],
"method": "reinhard_lab",
"source_stats": "per_frame",
"strength": 1
},
"_meta": {
"title": "Transfer Color"
}
},
"262:253": {
"class_type": "ImageFromBatch",
"inputs": {
"batch_index": -1,
"image": [
"213:6",
0
],
"length": 1
},
"_meta": {
"title": "Get Image from Batch"
}
},
"262:255": {
"class_type": "PrimitiveBoolean",
"inputs": {
"value": True
},
"_meta": {
"title": "Boolean (Enable Distill LoRA?)"
}
},
"262:256": {
"class_type": "CLIPVisionEncode",
"inputs": {
"clip_vision": [
"262:222",
0
],
"crop": "none",
"image": [
"30",
0
]
},
"_meta": {
"title": "CLIP Vision Encode"
}
},
"262:257": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"262:221",
0
],
"text": ""
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"262:258": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"262:221",
0
],
"text": "An elderly East Asian man with sleek silver-white hair tucked behind his ears and a calm, dignified face dances with lively rhythm in a bright, sunlit dance studio with tall steel-framed windows and a pale maple floor. He wears an avant-garde color-blocked outfit: an open cobalt-blue and emerald-green wool jacket over a saffron-yellow silk mock-neck tunic, vivid magenta tailored straight-leg trousers with crisp creases and polished oxblood-red leather shoes. The jacket swings open as he turns, the trousers fold naturally at the knees and his shoes squeak lightly on the floor. Soft morning daylight falls through the windows, casting long shadows on the boards. Realistic skin texture, natural fabric movement, consistent clothing and identity throughout, steady lighting, sharp detail and smooth, natural motion."
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"262:259": {
"class_type": "WanSCAILToVideo",
"inputs": {
"batch_size": 1,
"clip_vision_output": [
"262:256",
0
],
"height": [
"262:220",
1
],
"length": [
"262:220",
2
],
"negative": [
"262:257",
0
],
"pose_end": 1,
"pose_start": 0,
"pose_strength": 1,
"pose_video": [
"262:218",
0
],
"pose_video_mask": [
"262:245",
0
],
"positive": [
"262:258",
0
],
"previous_frame_count": 5,
"previous_frames": [
"213:6",
0
],
"reference_image": [
"30",
0
],
"reference_image_mask": [
"262:245",
1
],
"replacement_mode": [
"262:247",
0
],
"vae": [
"262:217",
0
],
"video_frame_offset": 0,
"width": [
"262:220",
0
]
},
"_meta": {
"title": "WanSCAILToVideo"
}
},
"262:261": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": [
"262:243",
1
],
"text": "human"
},
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"262:319": {
"class_type": "LoraLoaderModelOnly",
"inputs": {
"lora_name": "wan2.1_SCAIL_2_DPO_lora_bf16.safetensors",
"model": [
"262:223",
0
],
"strength_model": 1
},
"_meta": {
"title": "Load LoRA"
}
},
"262:901": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 81
},
"_meta": {
"title": "Int (segment length)"
}
},
"262:902": {
"class_type": "PrimitiveInt",
"inputs": {
"value": 5
},
"_meta": {
"title": "Int (previous frame count)"
}
}
})
workflow.set_input("30", "image", client.assets.from_url("https://comfy.org/catalog-media/900853f0-2a62-4dcf-8371-139981ed137a/1d1c8eea-1e24-4669-b06a-ef5b581cd831"))
workflow.set_input("155", "file", client.assets.from_url("https://comfy.org/catalog-media/c8bf6276-8322-4db8-9783-49de11409548/83cee33c-ae9f-445b-9334-b42a9e008f61"))
# run() also passes api_key to the partner nodes in this workflow.
job = client.run(workflow, api_key=api_key)
for output in job.get_outputs("271"):
output.to_file(output.name)例を試す
このワークフローについて
Upload 1 reference character image and 1 driving video. Generate an animated video of the character matching the driving video's motion. Ideal for character animation, in-video character replacement, and motion transfer projects.