Tools / AI Video Edit
AI Video Edit icon

AI Video Edit

Transform videos with AI — swap characters, restyle, transfer motion

Transform videos with AI. EDIT: swap characters, change environments. RESTYLE: style transfer (anime, painting). MOTION CONTROL: transfer motion onto a character image (put yourself in a movie). Powered by Kling O1/V3.

4 skillsv0.01
Edit Video

Targeted AI edits on an existing video — swap characters, change environments, modify objects — while preserving original motion and camera angles. Reference elements with @Element1 and style images with @Image1 in the prompt. Powered by Kling O1. Input: 3-10s video. ⏱ Takes ~60-120s, runs async.

Returns: Edited video download URL, file metadata, request ID, and estimated cost
Parameters
prompt *stringNatural language edit instruction. Use @Element1, @Element2 to reference elements and @Image1, @Image2 to reference style images.
video_url *stringSource video URL (.mp4/.mov/.webm/.gif). 3-10s, 720-2160px, max 200 MB. Always pass the URL directly.
image_urlsarrayStyle reference images. Referenced in the prompt as @Image1, @Image2, etc. Max 4 combined with elements.
elementsarrayCharacter/object elements to include. Reference in prompt as @Element1, @Element2, etc. Max 4 combined with image_urls.
keep_audiobooleanPreserve original audio from the source video. Default: false (silent output).
estimated_durationnumberEstimated duration of the input video in seconds (for cost estimation). Default: 5.
Example
Swap a character in a video using a reference photo
curl -H "Authorization: Bearer $TOOLROUTER_API_KEY" \
  -d '{
  "tool": "video-edit",
  "skill": "edit_video",
  "input": {
    "prompt": "Replace the main character with @Element1, keeping the same movements and camera angles",
    "video_url": "https://example.com/movie-clip.mp4",
    "elements": [
      {
        "frontal_image_url": "https://example.com/my-photo.jpg"
      }
    ]
  }
}' \
  https://api.toolrouter.com/v1/tools/call
Restyle Video

Broad style transformation of a video — anime, painting, weather changes, time-of-day shifts — using the original as a motion/structure reference. Regenerates the video in a new style while preserving movement and composition. Powered by Kling O1. Input: 3-10s video. ⏱ Takes ~60-120s, runs async.

Returns: Restyled video download URL, file metadata, request ID, and estimated cost
Parameters
prompt *stringStyle transformation instruction. Use @Image1, @Image2 for style reference images and @Element1, @Element2 for character elements.
video_url *stringSource video URL (.mp4/.mov/.webm/.gif). 3-10s, 720-2160px, max 200 MB. Always pass the URL directly.
image_urlsarrayStyle reference images. Referenced in the prompt as @Image1, @Image2, etc. Max 4 combined with elements.
elementsarrayCharacter/object elements to include. Reference in prompt as @Element1, @Element2, etc. Max 4 combined with image_urls.
keep_audiobooleanPreserve original audio from the source video. Default: false (silent output).
aspect_ratiostringOutput aspect ratio. Default: auto (matches input).
durationnumberOutput video duration in seconds (3-10). Default: matches input.
estimated_durationnumberEstimated duration of the input video in seconds (for cost estimation). Default: 5.
Example
Transform a video into anime style
curl -H "Authorization: Bearer $TOOLROUTER_API_KEY" \
  -d '{
  "tool": "video-edit",
  "skill": "restyle_video",
  "input": {
    "prompt": "Transform this video into a Studio Ghibli-style anime animation with soft watercolor textures",
    "video_url": "https://example.com/real-footage.mp4"
  }
}' \
  https://api.toolrouter.com/v1/tools/call
Motion Control

Transfer motion from a reference video onto a character image — put yourself in a movie scene or make a photo dance. Provide character photo (image_url) + motion video (video_url). Kling V3 Pro. ⏱ ~60-120s, async.

Returns: Generated video download URL, file metadata, request ID, and estimated cost
Parameters
image_url *stringCharacter/appearance image URL — the person or character to animate. Always pass the URL directly.
video_url *stringMotion reference video URL — the movements to transfer onto the character (.mp4, .mov).
character_orientation *stringOutput orientation. "image" = matches the reference image orientation (max 10s). "video" = matches the reference video orientation (max 30s).
promptstringOptional text description to guide the generation.
keep_original_soundbooleanRetain audio from the reference video. Default: true.
elementsarrayOptional element for facial consistency binding (max 1). Requires character_orientation="video".
estimated_durationnumberEstimated duration of the input video in seconds (for cost estimation). Default: 5.
Example
Put yourself into a movie scene
curl -H "Authorization: Bearer $TOOLROUTER_API_KEY" \
  -d '{
  "tool": "video-edit",
  "skill": "motion_control",
  "input": {
    "image_url": "https://example.com/my-photo.jpg",
    "video_url": "https://example.com/movie-scene.mp4",
    "character_orientation": "video",
    "prompt": "The character walks confidently through the scene"
  }
}' \
  https://api.toolrouter.com/v1/tools/call
Check Video

Check the status of a pending video edit/restyle/motion-control job and retrieve the result if complete. Use this when a previous call returned a pending status with a fal_request_id.

Returns: Job status (completed/running/queued/failed) and video URL if complete
Parameters
fal_request_id *stringThe fal.ai request ID returned by a previous edit_video, restyle_video, or motion_control call
fal_model_idstringThe fal.ai model ID from the pending response. Defaults to the edit endpoint if omitted.
Example
Check on a pending video edit
curl -H "Authorization: Bearer $TOOLROUTER_API_KEY" \
  -d '{
  "tool": "video-edit",
  "skill": "check_video",
  "input": {
    "fal_request_id": "abc123-def456"
  }
}' \
  https://api.toolrouter.com/v1/tools/call
Loading reviews...
Loading activity...
v0.012026-03-25
  • Initial release — edit_video, restyle_video, motion_control, check_video

Quick Start

MCP (Claude Code)
claude mcp add --transport stdio \
  --env TOOLROUTER_API_KEY=YOUR_API_KEY \
  toolrouter -- npx -y toolrouter-mcp
REST API
curl -H "Authorization: Bearer $TOOLROUTER_API_KEY" \
  -d '{"tool":"video-edit","skill":"edit_video","input":{}}' \
  https://api.toolrouter.com/v1/tools/call

Frequently Asked Questions

What is the difference between edit, restyle, and motion control?

`edit_video` makes targeted changes inside an existing clip, `restyle_video` transforms the overall visual style, and `motion_control` transfers motion from a source clip onto a character image. They solve different kinds of video transformation rather than repeating the same workflow.

What kind of source video works best?

Pass a direct video URL for a short clip, typically 3 to 10 seconds, in a common format like MP4, MOV, or WebM. The manifest also calls out a practical resolution range of roughly 720 to 2160 pixels.

Can I preserve the original audio?

Yes. The edit and restyle flows include audio-preservation options, and motion control can keep the original sound from the reference video when that helps the final result.

How do I know when a video edit is finished?

These edits run asynchronously. Start the job, keep the returned request ID, and use `check_video` to poll the status until the output video is ready.