PicadabraPicadabraa1d

Motion Control

Installs

33

Category

video

Recreate any Motion
with Your Image

Copy motion from any video and place your character into the same movement

Motion control preview

What is Motion Control

Two inputs → one output:

  1. Character image — the person/character you want to animate
  2. Motion reference video — the movements to copy

Output: a video where the character performs the movements from the reference.

Use cases: dance videos, UGC content, product demos, character animation, meme generation.

Models

ModelQualityWhen to use
fal:fal-ai/kling-video/v3/standard/motion-controlGoodTesting, iteration, drafts
fal:fal-ai/kling-video/v3/pro/motion-controlBestFinal output, commercial use

V3.0 significantly improves facial consistency — stable features and smooth expressions even in complex, multi-angle, long-duration motions.

Check exact model IDs before use:

pica model search "kling motion control"

If you need the exact current search flags, use pica --schema=.model. Treat search as discovery, then confirm the chosen model with pica model info.

Key Concepts

Character Orientation (Scene Control)

The most important creative decision. Controls where the output's background, framing, and camera come from.

ModeAPI valueWhat happensBest forMax duration
Matches Video"video"Everything follows motion reference — movements, expressions, camera, background. Prompt controls extra details.Complex motions: dance, sports, gestures, martial arts30s
Matches Image"image"Movements and expressions follow motion reference, but background and framing come from the character image. Camera customizable via prompt.Preserving character's scene, adding camera moves10s

Default to "video" — best motion fidelity. Switch to "image" when the character image's background matters, or you want independent camera control.

Camera movements available in "image" mode (via prompt): Zoom In, Zoom Out, Camera Up, Camera Down, Fixed Position.

Element Binding (Facial Consistency)

Binds a facial element to maintain character identity across the video — critical for multi-angle and long-duration motions.

How it works: upload facial references (images or short video) → create an "element" → the model preserves that facial identity during generation.

Constraints:

  • Only works with character_orientation: "video"
  • Captures facial identity only — not clothing, hairstyle, makeup, or props
  • One element per generation (multiple people → largest face is auto-selected)
  • Large face difference between element and motion reference may degrade quality

Best facial references for elements:

ScenarioWhat to upload
Head turnsFront-facing + side views (left/right)
Expressions (smiling)Neutral front-facing + smiling front-facing
360° rotationFront smile, left-profile, right-profile, upward, downward
Complex emotions + head movementFront-facing + each expression + side views

For highest identity accuracy, upload a video — richer, more continuous facial data than static images.

Workflow

1. Prepare inputs

This skill assumes you are already following the base pica workflow. Do not jump straight to generate after reading this file — let pica generate preflight inspect the local media first, then fix any blocking issues before dispatch.

Character image:

  • Clear visible face and body, no heavy occlusion
  • Match body framing with motion reference (half-body ↔ half-body, full-body ↔ full-body)
  • Short edge ≥ 340px, long edge ≤ 3850px
  • Resize to ≤1080px — very large images may cause failures

Motion reference video:

  • Single person, visible head and body (real human recommended)
  • Single continuous shot — no cuts, no shot changes, no camera movement
  • Duration 3–30s (model extracts valid continuous action, minimum 3s)
  • Moderate speed — avoid overly fast motions
  • For large motions, leave enough space in frame for movement

Preflight can catch the mechanical constraints above, especially image dimensions, media type mismatches, and reference duration. It cannot reliably verify semantic quality requirements like "single person", "no cuts", or "no camera movement" — check those manually.

Example motion reference:

2. Choose orientation

Default "video" unless the user specifically needs:

  • The character image's background preserved
  • Custom camera movement (zoom, pan)

Orientation changes the allowed duration:

  • "video" → up to 30s
  • "image" → up to 10s

If preflight reports that the motion reference is too long for "image", trim the clip or switch orientation instead of retrying the same command.

3. Generate

pica generate \
  --model fal:fal-ai/kling-video/v3/standard/motion-control \
  --kind video_generation \
  --input '{
    "prompt": "A person dancing",
    "image_url": "file://character.png",
    "video_url": "file://motion-reference.mp4",
    "character_orientation": "video"
  }'

The prompt is optional but guides style/context. In "video" mode it controls background details; in "image" mode it also drives camera movement.

Treat these preflight outcomes as blocking:

  • image_url is not an image
  • video_url is not a video
  • Character image short edge < 340px
  • Character image long edge > 3850px
  • Reference video < 3s
  • Reference video exceeds the orientation-specific max duration
  • elements is used while character_orientation !== "video"
  • More than one element is attached

Treat these as warnings to review before continuing:

  • Character image long edge > 1080px for a first-pass render
  • Dimensions or duration could not be probed
  • Semantic quality concerns that preflight cannot prove automatically

4. Iterate

Generation takes 5–10 minutes (standard). If results miss expectations:

  • Switch character_orientation between "video" and "image"
  • Match body framing between character image and motion reference
  • Use a cleaner character image (less background clutter)
  • Trim the reference video to the most expressive segment
  • Add Element Binding for better facial consistency
  • Adjust prompt for style/camera guidance

When a run fails preflight, fix the asset first. Do not keep resubmitting the same broken input and hope the provider is lenient.

5. Final render

Once satisfied with standard, re-run with pro:

pica generate \
  --model fal:fal-ai/kling-video/v3/pro/motion-control \
  --kind video_generation \
  --input '{
    "prompt": "A person dancing gracefully, cinematic lighting",
    "image_url": "blob://...",
    "video_url": "blob://...",
    "character_orientation": "video"
  }' \
  --output ./final-output{i}{ext}

Reuse blob:// refs from previous runs to skip re-uploading.

Parameters

ParameterDefaultDescription
character_orientation"video"Scene control: "video" follows motion ref, "image" follows character
keep_original_soundtrueKeep audio from the reference video
elementsnoneFacial element for identity preservation (only with "video" orientation)

References

  • Kling Official Guide — Showcase examples with input/output comparisons for Element Binding, camera movements, and scene control