Seedream 5.0 Pro 提供開始 | 画像ジェネレーターで試す →

HappyHorse 1.1 Video Extend API

alibaba /

Alibaba HappyHorse 1.1 Video Extend extends existing videos with seamless AI-generated continuation, supporting 720P / 1080P output while preserving visual continuity and motion consistency. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

video-extend
入力

ドラッグ&ドロップまたはクリックでアップロード

待機中

$0.71回あたり·~14 / $10

サンプルすべて表示

A black cat wearing a tiny detective collar, sitting at the entrance of a narrow London alley, with wet cobblestones, warm window light, fog, a cinematic mystery atmosphere, realistic animal photography.

関連モデル

README

Alibaba Happy Horse 1.1 Video Extend

Alibaba Happy Horse 1.1 Video Extend continues an existing video clip with new AI-generated footage, seamlessly extending the scene from where the original ends. Upload a source video, describe how the video should continue, and generate a coherent continuation in 720p or 1080p.

Why Choose This?

  • Seamless video continuation
    Extend an existing clip with newly generated footage that picks up naturally from the original ending.

  • Prompt-guided scene progression
    Describe how the action, camera movement, atmosphere, or story should continue using natural language.

  • Cinematic motion
    Generate smooth, expressive motion while preserving the overall feel and flow of the source video.

  • Flexible resolution options
    Choose 720p for lower-cost iteration or 1080p for higher-resolution output.

  • Production-ready API
    Access the model through a REST inference API for scalable integration into creative workflows.

Parameters

ParameterRequiredDescription
videoYesSource video to extend.
promptYesText description of the desired continuation.
resolutionNoOutput resolution: 720p default or 1080p.
durationNoTotal output duration in seconds. Range: 3–15, default 5.
seedNoRandom seed for reproducibility. Range: 0–2147483647.

How to Use

  1. Upload your source video — Provide the clip you want to continue.
  2. Write your prompt — Describe how the scene, subject, camera, or atmosphere should progress after the original ending.
  3. Choose resolution — Use 720p for lower-cost iteration or 1080p for higher-resolution output.
  4. Set duration — Choose the total output duration between 3 and 15 seconds.
  5. Set a seed optional — Use a fixed seed if you want more reproducible results.
  6. Submit — Generate and download the extended video.

Example Prompt

Continue the scene with a slow forward camera movement, the subject walking deeper into the alley, soft rain beginning to fall, stronger reflections on the ground, and a cinematic moody nighttime atmosphere.

Pricing

Per 5 Seconds

ResolutionCost
720p$0.70
1080p$0.945

Per Second

ResolutionCost
720p$0.14
1080p$0.189

Example Costs

Resolution3s5s10s15s
720p$0.42$0.70$1.40$2.10
1080p$0.567$0.945$1.89$2.835

Best Use Cases

  • Scene continuation — Extend cinematic clips with natural motion and coherent progression.
  • Storyboarding and concept work — Explore how a shot or sequence might continue without manual video production.
  • Ad creative development — Expand short promo clips into longer variations for campaigns and testing.
  • Social media content — Create longer edits from short source footage for platform-specific needs.
  • Atmospheric scene building — Continue motion, lighting, and mood from an existing clip into a richer sequence.
  • Creative prototyping — Quickly test alternate continuations before investing in full production.

Pro Tips

  • Use a source video with a clear ending frame for smoother continuation.
  • Be explicit about what should happen next, including subject action, camera motion, lighting, and atmosphere.
  • Keep prompts visually concrete, such as “camera slowly pushes in,” “the subject turns and walks away,” or “fog begins to roll in.”
  • Use 720p for quick testing, then switch to 1080p for higher-resolution output.
  • Reuse the same seed when you want more reproducible generations.
  • Start with shorter durations to validate continuity before generating longer clips.

Related Models

注記:本サイトは第三者が提供するAIモデルを使用しています。

Happyhorse 1.1 Video Extend API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/alibaba/happyhorse-1.1/video-extend with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Happyhorse 1.1 Video Extend below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
    "resolution": "720p",
    "duration": 5
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/alibaba/happyhorse-1.1/video-extend" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
  RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/alibaba/happyhorse-1.1/video-extend";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "prompt": "A cinematic shot of a city at sunset, soft golden light",
        "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
        "resolution": "720p",
        "duration": 5
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
    "resolution": "720p",
    "duration": 5
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/alibaba/happyhorse-1.1/video-extend", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Happyhorse 1.1 Video Extend API — Frequently asked questions

What is the Happyhorse 1.1 Video Extend API?

Happyhorse 1.1 Video Extend is a Alibaba model for video extension, exposed as a REST API on WaveSpeedAI. Alibaba HappyHorse 1.1 Video Extend extends existing videos with seamless AI-generated continuation, supporting 720P / 1080P output while preserving visual continuity and motion consistency. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Happyhorse 1.1 Video Extend API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/alibaba/alibaba-happyhorse-1.1-video-extend.

How much does Happyhorse 1.1 Video Extend cost per run?

Happyhorse 1.1 Video Extend starts at $0.70 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Happyhorse 1.1 Video Extend accept?

Key inputs: `prompt`, `video`, `resolution`, `duration`, `seed`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/alibaba/alibaba-happyhorse-1.1-video-extend.

How long does Happyhorse 1.1 Video Extend take to generate?

Average end-to-end generation time on WaveSpeedAI is around 241 seconds per request — measured across recent runs. Queue time scales with global demand; live status is visible in the prediction record.

Can I use Happyhorse 1.1 Video Extend outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (Alibaba). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

HappyHorse 1.1 Video Extend API | WaveSpeedAI