Scail 2

Scail 2

Playground

Try it on WavespeedAI!

SCAIL-2 is a fast AI character animation and subject replacement model that preserves identity and motion from a single reference image and a driving video. It supports both Animation mode and Replacement mode at 480p or 720p. Ready-to-use REST inference API for character animation, motion transfer, subject replacement, social media clips, creative video editing, and professional image-to-video workflows with simple integration, no coldstarts, and affordable pricing.

Features

SCAIL-2 — End-to-End Character Animation

SCAIL-2 generates character animation from a single reference image and a driving video. Upload a character image, provide a driving video, choose a generation mode, and create an animated or replacement-style video result.

SCAIL-2 supports two modes:

  • Animation Mode — animate the reference character using the driving video’s motion.
  • Replacement Mode — replace the driving video’s subject with the reference character while preserving the original scene.

Key Features

  • Image-to-video character animation Animate a reference character image using motion from an input driving video.

  • Subject replacement Swap the subject in the driving video with the reference character while preserving the original scene structure.

  • Two generation modes Use animate for motion-driven character animation or replace for subject replacement.

  • Long-video support Supports input video duration up to 120 seconds for billing calculation.

  • Audio passthrough The driving video’s audio track is preserved in the output.


Parameters

ParameterRequiredDescription
imageYesReference character image. JPG or PNG is recommended; avoid WEBP.
videoYesDriving video that provides the motion.
promptNoOptional positive prompt describing the desired output. Default: empty string.
modeNoGeneration mode: animate or replace. Default: animate.
resolutionNoOutput resolution tier: 480p or 720p. Default: 480p.
seedNoRandom seed. Use -1 for a random seed. Default: -1.

How to Use

  1. Upload image — Provide a clear reference image of the character. JPG or PNG is recommended.
  2. Upload video — Provide the driving video that contains the motion.
  3. Add prompt (optional) — Describe the desired output, such as style, character details, or scene quality.
  4. Choose mode — Select animate to animate the reference character, or replace to swap the video subject with the reference character.
  5. Select resolution — Choose 480p for the default output or 720p for higher resolution.
  6. Generate — Create the final video result.

Pricing

ResolutionPrice per 5 sPrice per secondMax billed duration
480p$0.20$0.04 / s120 s
720p$0.40$0.08 / s120 s

Billing Rules

  • Minimum charge: 5 seconds. Any video shorter than 5 seconds is billed as 5 seconds.
  • Maximum billed duration: 120 seconds.
  • 720p costs 2x the 480p price.
  • Billing is based on the input video duration after applying the 5-second minimum and 120-second maximum cap.

Best Use Cases

  • Character animation — Animate a reference character using motion from a driving video.
  • Dance and gesture transfer — Transfer body movement, gestures, and performance motion to a reference character.
  • Subject replacement — Replace the main subject in a video with a reference character.
  • Avatar content creation — Generate character videos for social media, entertainment, and creative projects.
  • Video variation — Recreate the same motion with different character references.

Pro Tips

  • Use a clear reference image with the character visible.
  • JPG or PNG is recommended; avoid WEBP.
  • Use a driving video with a clearly visible main subject.
  • Keep the reference image’s camera angle close to the driving video’s framing when possible.
  • Use animate when you want to drive the reference character with the video motion.
  • Use replace when you want to swap the video subject with the reference character.
  • Use 480p for testing and 720p for higher-resolution output.
  • Add a prompt when you want more control over the style or visual details.

Notes

  • image and video are required fields.
  • prompt, mode, resolution, and seed are optional.
  • Default mode is animate.
  • Default resolution is 480p.
  • Default seed is -1, which uses a random seed.
  • Minimum billing duration is 5 seconds.
  • Maximum billed duration is 120 seconds.
  • Ensure uploaded image and video URLs are publicly accessible.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result


# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/scail-2" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
    "prompt": "",
    "mode": "animate",
    "resolution": "480p",
    "seed": -1
}'

# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
imagestringYes-Reference character image (JPG/PNG recommended; avoid WEBP).
videostringYes-Driving video providing the motion.
promptstringNo-Optional positive prompt describing the desired output.
modestringNoanimateanimate, replaceGeneration mode. animate: drive the reference character with the input video's motion. replace: swap the input video's subject with the reference character.
resolutionstringNo480p480p, 720pOutput resolution tier (the reference image is rescaled to ~0.5 MP for 480p or ~1.0 MP for 720p).
seedintegerNo-1-1 ~ 2147483647Random seed. -1 for a random seed.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayArray of URLs to the generated content (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction, the ID of the prediction to get
data.modelstringModel ID used for the prediction
data.outputsstringArray of URLs to the generated content (empty when status is not completed).
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2025 WaveSpeedAI. All rights reserved.