Scail

Scail

Playground

Try it on WavespeedAI!

SCAIL enables high-fidelity character animation using reference images. It handles large motion variations, stylized characters, and multi-character interactions without explicit per-frame structural guidance. Ready-to-use REST inference API, no coldstarts, affordable pricing.

Features

SCAIL — Studio-Grade Character Animation

SCAIL (Studio-Grade Character Animation with In-context Learning) is an open-source framework enabling high-fidelity character animation across diverse and challenging conditions.
Unlike traditional methods, it handles large motion variations, stylized characters, and multi-character interactions without explicit per-frame structural guidance.


Key Features

  • Diverse Character Support
    Works with realistic humans, stylized characters, and anime — despite minimal anime training data.

  • Large Motion Handling
    Handles challenging motions like flipping and turning that break traditional pose-based methods.

  • Multi-Character Interactions
    Performs spatiotemporal reasoning across entire motion sequences for complex multi-character scenes.

  • Identity Preservation
    Uses 3D-consistent pose representations to prevent identity leakage while retaining rich motion details.

  • Easy Setup
    Works with a single reference image and a driving video — no complex preprocessing required.


Pricing

ResolutionPrice per 5sPrice per secondMax Length
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 (2 minutes)

How to Use

  1. Upload image — A clear reference image of the character (recommended formats: JPG / PNG, avoid WEBP).
  2. Upload video — The motion source; SCAIL extracts pose and motion dynamics from this clip.
  3. Add prompt (optional) — Guide the output with descriptive text. Long, detailed prompts work best.
  4. Select resolution — Choose between 480p or 720p.
  5. Generate — Wait while SCAIL processes the animation.
  6. Review & Iterate — Fix a seed to reproduce results, or vary it for different outputs.

Tips for Best Results

  • Use Detailed Prompts: SCAIL benefits from long, descriptive prompts for optimal results.
  • Match Pose & Composition: Keep your reference image’s camera angle and framing close to the target video.
  • Keep Aspect Ratios Consistent: Use the same aspect ratio between your input image and video.
  • Experiment with Stylized Content: The model handles anime and stylized characters surprisingly well.
  • Multi-Character Scenes: SCAIL can handle complex multi-character interactions.

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" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
    "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-The image for generating the output.
videostringYes-The video for generating the output.
promptstringNo-The positive prompt for the generation.
resolutionstringNo480p480p, 720pThe resolution of the output video.
seedintegerNo-1-1 ~ 2147483647The random seed to use for the generation. -1 means a random seed will be used.

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.has_nsfw_contentsarrayArray of boolean values indicating NSFW detection for each output
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.