> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cubeuaeai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# HappyHorse 1.0 I2V

> Alibaba DashScope HappyHorse 1.0 image-to-video model. Generate videos from a single first-frame image via an asynchronous task interface.

HappyHorse 1.0 I2V animates a single first-frame image into a short video. Uses an **asynchronous task interface** — submit a task and poll until completion.

## Key Capabilities

* **Image-to-video** — Use one image as the first frame, with text description driving motion
* **Resolution** — 720P / 1080P
* **Aspect ratio** — 16:9, 9:16, 1:1, 4:3, 3:4
* **Duration** — 3–15 seconds
* **Watermark control** — Optionally disable the bottom-right watermark

## Workflow

```
1. POST /v1/video/generations  →  task_id
2. GET  /v1/video/generations/{task_id}  →  Poll until SUCCESS / FAILURE
3. Read data.result_url  (valid for 24 hours)
```

## Quick Example

<CodeGroup>
  ```bash cURL theme={null}
  curl https://ai.cubeuaeai.com/v1/video/generations \
    -H 'Authorization: Bearer YOUR_API_KEY' \
    -H 'Content-Type: application/json' \
    -d '{
      "model": "happyhorse-1.0-i2v",
      "prompt": "Camera slowly zooms in, the scene comes to life",
      "image": "https://example.com/first-frame.png",
      "parameters": {
        "resolution": "720P",
        "duration": 5,
        "watermark": false
      }
    }'
  ```

  ```python Python theme={null}
  import requests, time

  headers = {"Authorization": "Bearer YOUR_API_KEY"}

  resp = requests.post(
      "https://ai.cubeuaeai.com/v1/video/generations",
      headers=headers,
      json={
          "model": "happyhorse-1.0-i2v",
          "prompt": "Camera slowly zooms in, the scene comes to life",
          "image": "https://example.com/first-frame.png",
          "parameters": {"resolution": "720P", "duration": 5, "watermark": False}
      }
  )
  task_id = resp.json()["task_id"]

  while True:
      r = requests.get(
          f"https://ai.cubeuaeai.com/v1/video/generations/{task_id}",
          headers=headers,
      ).json()
      if r["data"]["status"] == "SUCCESS":
          print(r["data"]["result_url"])
          break
      if r["data"]["status"] == "FAILURE":
          print(r["data"]["fail_reason"])
          break
      time.sleep(15)
  ```
</CodeGroup>

> The `image` field accepts a single URL. You can also use the `images: [...]` array form (only the first image is used as the first frame).

## Parameters

| Parameter    | Type    | Required | Description                                         |
| ------------ | ------- | -------- | --------------------------------------------------- |
| `model`      | string  | Yes      | Must be `happyhorse-1.0-i2v`                        |
| `prompt`     | string  | Yes      | Description of the motion effect                    |
| `image`      | string  | Yes      | First-frame image URL                               |
| `resolution` | string  | No       | `720P` / `1080P`, default `1080P`                   |
| `ratio`      | string  | No       | `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, default `16:9` |
| `duration`   | integer | No       | Video duration 3–15 seconds, default `5`            |
| `watermark`  | boolean | No       | Default `true`, set to `false` to disable watermark |
| `seed`       | integer | No       | Random seed `[0, 2147483647]`                       |

## Billing

Billed by **resolution tier × user-requested duration**. The pre-charged amount is the final amount. Failed tasks are automatically refunded.

<CardGroup cols={2}>
  <Card title="API Reference" icon="code" href="/en/api-reference/model-api/alibaba/happyhorse-1.0-i2v">
    HappyHorse 1.0 I2V interactive Playground.
  </Card>

  <Card title="Task Query" icon="magnifying-glass" href="/en/guides/model-api/alibaba/happyhorse-task-query">
    Poll task status and retrieve the final video URL.
  </Card>
</CardGroup>
