seedinteger
Random seed for reproducibility (0-2147483647).
alibaba/happy-horse/video-editHappy Horse Video Edit by Alibaba - AI-powered video editing and transformation. Apply style transfer, motion control, lip-sync, and visual effects to existing videos with natural language instructions.
Try the model
Customize your input with more control.
PNG, JPEG, WebP, or GIF · 20 MiB maximum each
What would you like to do next?
Select an example to load its inputs and result into the playground.
{
"prompt": "Make the scene snowy",
"resolution": "720p",
"video": "https://static.sandbase.ai/examples/d40d74d4-3ccc-4e10-8d82-cb6d7040edc4/input/19f9589e-def6-4f7b-a519-2d17f8de3364.mp4"
}Edit an existing clip with Happy Horse: restyle it, change objects or wardrobe, or rework the scene with an instruction. Optional reference images show the target look; the source motion and length are kept.
| Field | Type | Default | Notes |
|---|---|---|---|
prompt | string, required | — | Text instruction. |
video | video URL, required | — | Source clip, Video 1 in the prompt. |
resolution | 720p / 1080p | 720p | Sets the per-second rate. |
seed | integer | random | Fix it to compare prompt changes. |
reference_image_urls | image URL[] | — | Optional reference images for the new look. |
audio_setting | auto / origin | auto | auto regenerates audio to match the edit; origin keeps the source track. |
Alibaba bills the source and the edited output, which are the same length, so each source second bills twice: $0.28 at 720p and $0.48 at 1080p. The quote before submission assumes a 5-second source; the final charge uses the measured length.
| Source clip | 720p | 1080p |
|---|---|---|
| 3s | $0.84 | $1.44 |
| 5s | $1.40 | $2.40 |
| 10s | $2.80 | $4.80 |
| 15s | $4.20 | $7.20 |
Failed runs are not charged.
Other Happy Horse endpoints: alibaba/happy-horse/text-to-video, alibaba/happy-horse/image-to-video, alibaba/happy-horse/reference-to-video, alibaba/wan/2.7/video-edit (Wan alternative, bills output only).
Start building
Submit this model through the SandBase Unified Run API.
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
-X POST "https://api.sandbase.ai/v1/run" \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'SANDBASE_JSON'
{
"model": "alibaba/happy-horse/video-edit",
"video": "https://static.sandbase.ai/examples/alibaba/happy-horse/video-edit/input_video_0.mp4",
"prompt": "Recolor the sky to a deep purple sunset.",
"resolution": "720p",
"audio_setting": "auto"
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
status=$(printf '%s' "$result" | jq -r .status)
case "$status" in completed|failed|timeout) break ;; esac
sleep 2
result=$(curl --fail-with-body --silent \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
"https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"Create a SandBase API key and set it in your server environment. All requests use Bearer authentication.
export SANDBASE_API_KEY="YOUR_API_KEY"Keep the key on your server. Do not expose it in browser code or commit it to a repository.
POST to /v1/run with this model ID and its inputs. The request example above includes submission and polling.
Use the returned run ID to poll until the status is completed, failed or timeout. Read output only after completed.
curl "https://api.sandbase.ai/v1/run/$RUN_ID" \
-H "Authorization: Bearer $SANDBASE_API_KEY"Pass a publicly accessible file URL in the model’s image, video or audio field. Supported formats and limits are shown beside each Playground input.
Use the upload or replace control on supported image fields in the Playground. Video URL fields accept a hosted driving video; they do not imply video-upload support.
seedintegerRandom seed for reproducibility (0-2147483647).
videostringrequiredURL of the source video to edit. Formats: MP4, MOV (H.264 recommended). Duration: 3-60 s. Longer side ≤ 2160 px, shorter side ≥ 320 px. Aspect ratio between 1:2.5 and 2.5:1. Frame rate > 8 fps. Max 100 MB. The output video preserves the source aspect ratio. Output duration matches the input video, capped at 15 s (longer inputs are truncated to the first 15 s). Max file size: 100.0MB, Min duration: 3s, Max duration: 60s, Timeout: 30.0s
promptstringrequiredText prompt describing the desired edit. Reference any supplied reference images using @Image1, @Image2, ... up to @Image5. Max 2500 characters.
resolutionstringOutput video resolution tier.
Default: "720p"
Possible values: "720p", "1080p"
audio_settingstringAudio handling. 'auto': model decides whether to regenerate audio. 'origin': preserve the original audio from the input video.
Default: "auto"
Possible values: "auto", "origin"
reference_image_urlsarrayOptional reference images used to guide the edit (up to 5). Formats: JPEG, JPG, PNG, WEBP. Dimensions must be at least 300px. Aspect ratio between 1:2.5 and 2.5:1. Max 10 MB each.
{
"model": "alibaba/happy-horse/video-edit",
"video": "https://static.sandbase.ai/examples/alibaba/happy-horse/video-edit/input_video_0.mp4",
"prompt": "Recolor the sky to a deep purple sunset.",
"resolution": "720p",
"audio_setting": "auto"
}A completed run exposes its result in output. The following is the model’s saved example, not a new generation.
[
{
"poster": "https://static.sandbase.ai/examples/posters/a38c83680a6fc0c43e91.jpg",
"source": "Self organization completed prediction",
"source_url": "https://www.sandbase.ai",
"url": "https://static.sandbase.ai/examples/d40d74d4-3ccc-4e10-8d82-cb6d7040edc4/output/ef651f94-d7df-4be7-a000-d972e67a32bb.mp4"
}
]