WaveSpeedAI APIWavespeed AIWan 2.1 Synthetic To Real Ditto

Wan 2.1 Synthetic To Real Ditto

Wan 2.1 Synthetic To Real Ditto

Playground

Try it on WavespeedAI!

WAN 2.1 Synthetic To Real Ditto mirrors motion and facial expressions in video-to-video synthetic-to-real conversion. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

WAN 2.1 Synthetic-To-Real Ditto — Video-to-Video Model

WAN 2.1 Synthetic-To-Real Ditto converts stylized or synthetic videos (3D, anime, game footage, VTuber-style avatars, etc.) into realistic, live-action–like footage. It mirrors the original motion and facial expressions while replacing the look with a more natural, photographic style. The model is exposed through a ready-to-use REST inference API with fast warm-starts and affordable pricing.

What it does

  • Takes a source video with a synthetic or stylized character.
  • Tracks body motion, facial expressions, and timing.
  • Generates a new realistic human version of the same performance.
  • Preserves framing and pacing so you can swap footage without re-editing your timeline.

This makes it ideal for:

  • Upgrading animated storyboards into realistic previews
  • Turning VTuber or game-style performances into semi-realistic actors
  • Rapid prototyping of live-action shots from synthetic previz

Key Capabilities

  • High-fidelity motion mirroring Copies head turns, eye blinks, lip movements, and body motion from the input clip with tight temporal alignment.
  • Synthetic-to-real translation Transforms toon, 3D, or heavily stylized characters into natural-looking humans while keeping their core identity and staging.
  • Consistent lighting and shading Adapts the original scene’s lighting so the new actor feels anchored in the same environment.
  • Resolution flexibility Supports both 480p and 720p output for different production needs.

Inputs and Controls

  • video (required) Upload or paste the URL of the source video.

  • resolution

    • 480p
    • 720p

Pricing

ResolutionPrice per secondMin billed secondsMin total priceMax billed secondsMax total price
480p$0.045 s$0.20120 s$4.80
720p$0.085 s$0.40120 s$9.60

How to Use

  1. Upload your synthetic or stylized video in the video field. (up to 120s)
  2. Select the desired resolution (480p or 720p).
  3. Make sure Enable Safety Checker is checked.
  4. Click Run.
  5. After processing, preview the real-style output in the right panel and download it for editing or further post-production.

Tips for Best Results

  • Use clips with clear, front-facing characters and stable framing to get the best facial detail.
  • Avoid heavy motion blur or rapid strobing; clean animation yields more faithful translations.
  • Keep clips short when iterating (around 3–5 seconds) to explore different looks quickly and control costs.
  • Once you find a look you like, batch-convert key shots from your project to build a consistent, realistic version of your synthetic footage.

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/wan-2.1/synthetic-to-real-ditto" \
--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
videostringYes-URL to the video to use as the input 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

© 2025 WaveSpeedAI. All rights reserved.