Video Head Swap

Video Head Swap

Playground

Try it on WavespeedAI!

Instant online AI head & face swap for videos with no watermark, delivering realistic, shareable results in seconds. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

WaveSpeedAI Video Head Swap

WaveSpeedAI Video Head Swap is an advanced AI model for replacing the entire head (face + hair + outline) of a person in video using a reference portrait. It keeps body, pose, and background intact while rebuilding a new, realistic head that matches the scene’s lighting and perspective.


🎬 What this model does

  • Replaces the full head region of the subject (face, hair, silhouette, accessories)
  • Preserves body pose, clothing, background, and overall composition
  • Adapts the new head to scene lighting, color tone, and camera angle
  • Produces clean, watermark-free outputs ready for editing or publication

⚙️ Why it looks realistic

  • Full-head geometry replacement Swaps the entire head contour instead of only facial features, avoiding mismatched hairlines or skull shape.

  • Pose and expression preservation Uses the base video to keep head angle, gaze direction, and expression consistent with the original shot.

  • Lighting and color matching Automatically adjusts skin tone, shadows, and highlights so the new head sits naturally in the scene.

  • High-resolution blending Smooth edges around neck, hair, and accessories, minimizing visible artifacts across frames.


💰 Pricing

ResolutionPrice per secondMin charge (5 s)Max charge (120 s)
480p$0.040$0.200$4.800
720p$0.080$0.400$9.600
  • Minimum billed duration: 5 seconds
  • Maximum billed duration: 120 seconds (longer clips are capped at 120 s per run)

🔧 Input Parameters

video (required)

The source video whose head you want to replace. This defines body motion, framing, and background.

face_image / head_image (required)

A clear portrait of the target identity. Frontal or three-quarter views with good lighting work best.

resolution

Output resolution for the processed video, for example:

  • 480p – more affordable drafts or quick previews
  • 720p – higher-quality output suitable for most publishing workflows

seed (optional)

Controls stochastic variation in the generation:

  • -1 or empty → random seed each run
  • Any positive integer → reproducible results for the same inputs

(Exact field name may differ slightly between Playground and API, but the behavior is the same.)


🎯 Designed For

  • Creators & influencers – Turn one performance into many “identities” without reshooting the whole video.
  • Marketing & brands – Rapidly localize or personalize talking-head content while keeping the same body and scene.
  • Film, TV & post-production – Quick mockups and concept tests for head replacement shots.
  • Privacy & compliance – Replace real heads with synthetic or authorized identities while preserving context.

▶️ How to Use

  1. Upload or paste the URL of the video to edit.
  2. Upload a face/head reference image for the identity you want to swap in.
  3. Choose the desired resolution (480p or 720p).
  4. (Optional) Set a seed if you need reproducible results.
  5. Click Run to generate the swapped video.
  6. Review the result; if needed, adjust the reference portrait or seed and re-run.

📌 Tips & Notes

  • Use sharp, well-lit videos where the face is not heavily occluded or motion-blurred.
  • For the reference portrait, keep expression and angle reasonably close to the shot you’re editing for the cleanest match.
  • Avoid mixing very different lighting conditions (e.g., dark blue stage lighting in video vs. warm daylight in the portrait) unless you want stylized results.
  • Always ensure you have the legal right and consent to use all input videos and portraits.

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/video-head-swap" \
--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-The video that contains the face to be replaced.
face_imagestringYes--The face image as reference.
promptstringNo-The prompt to guide the model's behavior.
resolutionstringNo480p720p, 480pThe resolution of the output video.
seedintegerNo-1-1 ~ 2147483647The seed used for the prediction.

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.