SuperAPI AI Directory

video-motion-transfer

Design & creation

View repository

Updated 10-16 06:46

About this skill

Video Motion Transfer

Overview

Call meitu video-motion-transfer to transfer the motion pose from the reference video onto the person in the image, preserving the person's appearance features in the image. Used for dance replication, motion imitation, pose driving, and virtual human driving.

Before execution, the user should be clearly informed that: this Skill will read Meitu credentials, call the local meitu CLI, send the user-provided person image, motion reference video, and generation prompt to the Meitu OpenAPI for processing, and write the results to ./output/ or $VISUAL/output/video-motion-transfer/. When portrait and motion materials are involved, it should be confirmed that authorization to process the people in the materials is held.

Not handled: pure text-to-video, reference video camera movement/style, face swap/person swap, video content editing.

API Mapping

DAG tool backend API
video-motion-transfer video_motion_transfer

Dependencies

  • meitu-cli: >=2.0.6
  • credentials:CONFIG AKSK → meitu tools update; EXEC AKSK → run command
  • environment variables:MEITU_OPENAPI_TOOL_TASK_MODE=command

Path alias:$VISUAL = {OPENCLAW_HOME}/workspace/visual/

Core Workflow

Preflight → Execute → Deliver

Preflight

  1. meitu --version ≥ 2.0.6;meitu auth verify --json
  2. Confirm that the Config Phase has been run;MEITU_OPENAPI_TOOL_TASK_MODE=command
  3. output_dir resolution: openclaw.yaml → ./output/ | else → $VISUAL/output/video-motion-transfer/;mkdir -p {output_dir}

Execute

Trigger signals/routing

Match conditions: provide both an image (person reference image) + a video (motion reference video), and the intent is motion imitation. Signal words: "motion transfer, imitate motion, dance along, pose driving, make this person do this motion".

Decision order:

  1. image_list / reference_video_list missing → ask follow-up
  2. Intent determination: motion imitation → this tool; camera movement/style reference → not this tool
  3. Unique route → video_motion_transfer

Unclear intent (image + video but motion vs. camera movement not clearly stated) → default to this tool (motion transfer).

Parameter definitions

Parameter Type Required Range Default value Description
prompt STRING Yes -- -- Motion/scene description; if missing, a brief description can be automatically generated based on the reference video
image_list ARRAY Yes 1 image -- Person reference image URL
reference_video_list ARRAY Yes 1, ≤15s -- Motion reference video URL
video_duration NUMBER No 3–15 5 Video duration (seconds)
aspect_ratio STRING No 16:9 / 1:1 / 9:16 adaptive Aspect ratio

Tool invocation

meitu video-motion-transfer \
  --skill_name skill_video-motion-transfer \
  --prompt "{prompt}" \
  --image_list '["{person_image_url}"]' \
  --reference_video_list '["{motion_video_url}"]' \
  --video_duration 5 \
  --aspect_ratio adaptive \
  --json --download-dir {output_dir}

Error fallback

Scenario Handling
image_list missing Prompt "Please provide a person reference image"
reference_video_list missing Prompt "Please provide a motion reference video"
video_duration > 15s Clamp to 15s, inform the user
No obvious human motion in the reference video Call normally, inform that the result may be unsatisfactory
prompt missing Automatically generate a brief description based on the reference video content
Image/video URL inaccessible Do not retry, prompt "Please provide a valid link"
No person detected Return error: the reference image must contain a clear person
Call failed Retry once; if it still fails, return an error
Timeout (>600s) Reduce duration and retry once; if it still fails, return an error
Content compliance interception Return the compliance prompt directly without retrying

Deliver

Parse --json → downloaded_files[0].saved_path or media_urls[0]。

mv {file} {output_dir}/{YYYY-MM-DD}_{name}_motion-transfer.mp4

Output

  • Format:MP4
  • Naming:{YYYY-MM-DD}_{descriptive-name}_motion-transfer.mp4
  • Location: Project → ./output/; One-time → $VISUAL/output/video-motion-transfer/

Baseline Task ID

t_mt1a3i5n7b5d0785f3-ea01-42a0-8e22-08a334d81361