Skip to content

HappyHorse / Wan Video Model ​

happyhorse-1.0 and wan2.7 use the common MoonNexAI video-task API for text-to-video, image-to-video and reference-based video. Call POST /v1/videos, save the task ID, then query status and result URLs.

Model List ​

ModelsUsual Moderesolutiondurationaspect ratio
happyhorse-1.0Text-to-video, first-frame image-to-video and reference images720P, 1080P5, 10, 15 seconds16:9, 9:16, 1:1, 4:3, 3:4
wan2.7text-to-video, first frame, last frame, reference images, reference video720P, 1080P5, 10, 15 sec16:9, 9:16, 1:1, 4:3, 3:4

Actual available parameters and prices are based on MoonNexAI console, price page and GET /v1/models.

text-to-video ​

bash
curl https://moonnexai.com/v1/videos \
  -H "Authorization: Bearer <MOONNEXAI_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "happyhorse-1.0",
    "prompt": "A warm cinematic shot of a handcrafted wooden music box opening on a desk, slow camera push-in.",
    "duration": 5,
    "resolution": "720P",
    "ratio": "16:9",
    "watermark": false,
    "callback_url": "https://example.com/moonnexai/webhook"
  }'

image-to-video ​

For first-frame generation, provide first_frame_url or mark the image's role in images[].

json
{
  "model": "happyhorse-1.0",
  "prompt": "Animate the product with a slow rotating camera and soft studio light.",
  "first_frame_url": "https://example.com/product.png",
  "duration": 5,
  "resolution": "720P",
  "ratio": "1:1",
  "watermark": false
}

Compatible arrays:

json
{
  "model": "wan2.7",
  "prompt": "Keep the character appearance, subtle smile, natural head movement.",
  "images": [
    {
      "url": "https://example.com/first-frame.png",
      "role": "first_frame"
    }
  ],
  "duration": 5,
  "resolution": "1080P",
  "ratio": "9:16"
}

last frame and reference video ​

wan2.7 supports last frame and reference video. reference video total duration recommends no more than 5 seconds, and the total number of media assets references for pictures and videos recommends no more than 5.

json
{
  "model": "wan2.7",
  "prompt": "Transition from the first frame to the final frame with smooth camera movement.",
  "first_frame_url": "https://example.com/first.png",
  "last_frame_url": "https://example.com/last.png",
  "duration": 5,
  "resolution": "720P",
  "ratio": "16:9"
}

Video-reference example:

json
{
  "model": "wan2.7",
  "prompt": "Follow the reference motion while keeping the new product design consistent.",
  "videos": [
    {
      "url": "https://example.com/reference-motion.mp4",
      "role": "reference_video"
    }
  ],
  "duration": 5,
  "resolution": "720P",
  "ratio": "16:9"
}

happyhorse-1.0 does not currently support last frame, reference video or independent audio. Select a model that explicitly supports the ability to respond if these inputs are required.

Query task ​

bash
curl https://moonnexai.com/v1/tasks/task_xxx \
  -H "Authorization: Bearer <MOONNEXAI_API_KEY>"

You can also use compatible query portals:

bash
curl https://moonnexai.com/v1/videos/task_xxx \
  -H "Authorization: Bearer <MOONNEXAI_API_KEY>"

Successful responses often include the result URL in several fields for different SDKs:

json
{
  "id": "task_xxx",
  "task_id": "task_xxx",
  "object": "video",
  "model": "wan2.7",
  "status": "succeeded",
  "url": "https://example.com/result.mp4",
  "video_url": "https://example.com/result.mp4",
  "output": {
    "url": "https://example.com/result.mp4"
  }
}

The client should first check status, read URLs only when succeeded; submitted, queued, running, failed or cancelled are not considered successful outcomes.

Common field ​

fieldhappyhorse-1.0wan2.7Annotations
modelSupportSupportVideo model name.
promptSupportSupportVideo description.
duration5, 10, 155, 10, 15Video duration, in seconds.
resolution720P, 1080P720P, 1080Presolution.
ratio / aspect_ratioSupportSupport16:9, 9:16, 1:1, 4:3, 3:4.
first_frame_urlSupportSupportfirst frame picture URL.
last_frame_urlNot supportedSupportlast frame picture URL.
images[]SupportSupportPicture media assets, recommended maximum of five.
videos[]Not supportedSupportreference video, it is recommended that the total duration should not exceed 5 seconds.
audios[]Not supportedNot supportedNot currently as an independent audio media assets portal.
watermarkSupportSupportAdd watermarks.
callback_urlSupportedSupportedTask-completion callback URL.

Recommendation media assets ​

If media assets has a stable public network URL, priority is given to direct URL. MoonNexAI OSS upload is for joint testing only and does not commit to long-term preservation or continued service; for formal business and media assets reuse, use the public network URL that the customer has stored. Direct access to Asset://asset_xxx depends on model support, based on model pages and generation validation.

Results and billing ​

These two models are billed per task. Save id / task_id, model, request parameters, status and result URLs after submission. Current prices are configured in the MoonNexAI console.

Relevant Pages ​