Motion transfer
Transfer the motion of a source video onto a character image (face swap style).
source.urlmedia.provided[] with 1 image (the target character)Build your request
Only the parameters that apply to motion-transfer are shown. Set values on the left, copy the payload on the right.
source.urlrequiredThe source content URL: audio file, video file, YouTube link, Spotify track, article page, or PDF depending on the workflow. http(s) is enforced; bare domains get https:// prepended.
media.typeThe visual engine for the video.
media.qualityConvenience profile that picks imageModel + videoModel for you. Explicit media.imageModel / media.videoModel override it.
media.densityHow many distinct visuals per minute of video. More visuals = livelier video and higher generation cost.
media.animationHow still images are animated. Ignored for other media types.
media.mediaPresetVisual style preset slug (e.g. DEFAULT, ANIME, PIXAR, GHIBLI, REALISM, ...). See the preset list in the docs. A preset can override media.imageModel when it requires a specific model.
media.providedrequiredYour own media items. Used as the only visuals when media.type = custom or media.useOnlyProvided = true; otherwise used as references/anchors. Items: { url (required), type, title, ... }.
{
"workflow": "motion-transfer",
"source": {
"url": "https://cdn.revid.ai/uploads/1772035872439-video.mp4"
},
"media": {
"provided": [
{
"url": "https://cdn.revid.ai/uploads/1772035882827-image.jpg",
"type": "image"
}
]
}
}Good to know
- →media.provided[] must contain the target character image. The server does not reject a missing image upfront, but generation fails without it.
- →metadata.duration (seconds of the source video) speeds up processing.