API docs/workflows/motion-transfer

Motion transfer

Transfer the motion of a source video onto a character image (face swap style).

Requiressource.urlmedia.provided[] with 1 image (the target character)
media: moving-imagevoice-over: off by defaultmusic: on by defaultcaptions: on by defaultratio: 9:16 by default

Build your request

Only the parameters that apply to motion-transfer are shown. Set values on the left, copy the payload on the right.

View as Markdown (for LLMs)
source.urlrequired

The 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.type

The visual engine for the video.

media.quality

Convenience profile that picks imageModel + videoModel for you. Explicit media.imageModel / media.videoModel override it.

media.density

How many distinct visuals per minute of video. More visuals = livelier video and higher generation cost.

media.animation

How still images are animated. Ignored for other media types.

media.mediaPreset

Visual 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.providedrequired

Your 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"
      }
    ]
  }
}
Free, no API key needed.

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.