> Markdown copy of https://makernice.com/blog/how-to-use-happy-horse-1-1-in-claude-code-and-cursor/ for AI tools. The HTML page is the canonical version.

[← All posts](https://makernice.com/blog/)

Guides

# How to Use Happy Horse 1.1 in Claude Code and Cursor?

Makernice Team · 2026-11-11 · Updated 2026-11-12

Prices as of November 12, 2026 (price list v15).

## Key takeaways

-   Happy Horse 1.1, Alibaba's video model, can be driven from Claude Code and Cursor through the Makernice MCP server.
-   Happy Horse 1.1 has three modes on Makernice: text-to-video, image-to-video and reference-to-video with up to 9 images; there is no first-and-last-frame mode.
-   Clips run 3 to 15 seconds at 720p or 1080p, and prompts are capped at 2,500 characters.
-   Reference images for Happy Horse 1.1 need a shorter side of at least 400 px, and every image must be a public https link.

Ask an AI assistant about this page[Ask ChatGPT](https://chatgpt.com/?q=Read+https%3A%2F%2Fmakernice.com%2Fblog%2Fhow-to-use-happy-horse-1-1-in-claude-code-and-cursor%2F+and+summarize+what+it+says+about+How+to+Use+Happy+Horse+1.1+in+Claude+Code+and+Cursor%3F.+Quote+the+page+for+prices+and+limits.)[Ask Claude](https://claude.ai/new?q=Read+https%3A%2F%2Fmakernice.com%2Fblog%2Fhow-to-use-happy-horse-1-1-in-claude-code-and-cursor%2F+and+summarize+what+it+says+about+How+to+Use+Happy+Horse+1.1+in+Claude+Code+and+Cursor%3F.+Quote+the+page+for+prices+and+limits.)[Ask Perplexity](https://www.perplexity.ai/search?q=Read+https%3A%2F%2Fmakernice.com%2Fblog%2Fhow-to-use-happy-horse-1-1-in-claude-code-and-cursor%2F+and+summarize+what+it+says+about+How+to+Use+Happy+Horse+1.1+in+Claude+Code+and+Cursor%3F.+Quote+the+page+for+prices+and+limits.)

Happy Horse 1.1 from Alibaba runs inside Claude Code and Cursor through the Makernice MCP server, so the agent can animate a product photo or build a scene around reference images without leaving the editor. It asks `estimate_cost` for the price, waits for your approval and only then calls `generate`. The default clip (720p, 5 seconds) costs $0.84 at price list v15 (November 12, 2026).

## How do I connect Happy Horse 1.1 to Claude Code and Cursor?

Happy Horse 1.1 is reached through the Makernice MCP server, which Claude Code and Cursor each add once and authorize through a browser sign-in. No API key or Alibaba account is involved.

-   Claude Code: copy the `claude mcp add --transport http --scope user makernice` command from the [Claude Code guide](https://makernice.com/mcp/connect/claude-code/), run it in a terminal, then open Claude Code, enter `/mcp` and choose makernice to sign in through the browser.
-   Cursor: on the [Cursor guide](https://makernice.com/mcp/connect/cursor/), click Add to Cursor or paste the server entry into `~/.cursor/mcp.json`; then sign in beside makernice under Cursor's MCP settings.
-   Both: have the agent run `get_balance` once. It returns `available_usd`, today's spend and the connection's per-job limit, which is the largest single job the agent may start.

## Using Happy Horse 1.1 from Claude or ChatGPT chat

The same server also works outside coding agents. In Claude, add it under Customize → Connectors → Add custom connector and sign in to Makernice; on Team and Enterprise plans an owner adds the connector first in Organization settings → Connectors. The [Claude connect page](https://makernice.com/mcp/connect/claude/) has the URL to paste. In ChatGPT on the web, add it from Plugins as a custom MCP server with OAuth, using the separate ChatGPT address on the [ChatGPT connect page](https://makernice.com/mcp/connect/chatgpt/); your plan or workspace has to allow custom MCP servers. From there a Happy Horse 1.1 request runs the way it does in Claude Code and Cursor: `estimate_cost` prices it without holding that price, `generate` refuses a quote above your `max_cost_usd`, and `check_job` hands back the clip.

## How do I turn a still photo into a Happy Horse 1.1 video?

Happy Horse 1.1 animates a still in image-to-video mode: the agent sets `mode` i2v, passes the photo in `image_url` and writes what should move in the prompt. The clip follows the photo's shape, so no `aspect_ratio` goes in the request. Here the agent turns a backpack product shot into a 5-second clip.

**You:** Use https://example.com/shop/backpack-bench.jpg and make a 5-second clip where the backpack slowly turns in the afternoon light. How much would that be?

**Claude Code** picks image-to-video and calls:

```
{
  "name": "estimate_cost",
  "arguments": {
    "input": {
      "model": "happy-horse-1.1",
      "mode": "i2v",
      "prompt": "The leather backpack on the bench slowly turns as afternoon light moves across it, a breeze lifts the strap, shallow depth of field",
      "image_url": "https://example.com/shop/backpack-bench.jpg",
      "duration": 5,
      "resolution": "720p"
    }
  }
}
```

**Claude Code:** Happy Horse 1.1 quotes $0.84 for 5 seconds at 720p (price list v15). Nothing is charged by the estimate. OK to start?

**You:** OK.

```
{
  "name": "generate",
  "arguments": {
    "input": {
      "model": "happy-horse-1.1",
      "mode": "i2v",
      "prompt": "The leather backpack on the bench slowly turns as afternoon light moves across it, a breeze lifts the strap, shallow depth of field",
      "image_url": "https://example.com/shop/backpack-bench.jpg",
      "duration": 5,
      "resolution": "720p"
    },
    "max_cost_usd": "0.84",
    "request_id": "backpack-turn-i2v-720p"
  }
}
```

Here `max_cost_usd` is the figure you agreed to. `generate` prices the request again on arrival and refuses it, creating nothing, if the new price is above that figure or above the connection's per-job limit. When it goes through, the charge is that fresh quote and the reply includes a `job_id`. Should the reply get lost, a second call with the same `request_id` and the same input hands back the same job.

```
{
  "name": "check_job",
  "arguments": {
    "job_id": "gen_...",
    "wait_s": 30
  }
}
```

`check_job` with `wait_s` returns as soon as the clip is done, or after the wait (55 seconds is the most it holds). A succeeded job lists the video under `outputs[0].url`, a signed link that expires after 24 hours; ask for `check_job` again whenever you need a new one, or open `console_url` to find the run in your console. Jobs started over MCP also trigger your account [webhook](https://makernice.com/docs/#webhooks).

## What goes into a Happy Horse 1.1 text-to-video request?

A Happy Horse 1.1 text-to-video request needs `model`, `mode` t2v and a `prompt` of up to 2,500 characters. The settings that change the clip are `duration`, `resolution` (720p or 1080p) and `aspect_ratio`, which text-to-video alone accepts from 16:9, 9:16, 1:1, 4:3, 3:4. The table compares the three modes.

| Mode | Inputs | Aspect ratio |
| --- | --- | --- |
| Text-to-video (`mode` t2v) | `prompt` only | 16:9, 9:16, 1:1, 4:3, 3:4 |
| Image-to-video (`mode` i2v) | `prompt` and one `image_url` | Not set in the request |
| Reference-to-video (`mode` r2v) | `prompt` and 1 to 9 `reference_images` | Not set in the request |

All three modes take 3 to 15 seconds (5 by default) and 720p or 1080p (720p by default), and Makernice bills each output second at the same rate whichever mode you use: $0.168 per second at 720p, $0.216 at 1080p. Happy Horse 1.1 has no first-and-last-frame mode, so for a start-to-end transition pick a model that offers one. The [Happy Horse 1.1 model page](https://makernice.com/models/happy-horse-1-1/) lists the related models.

For image-to-video, the still must be at least 300 px on its shorter side, with a width-to-height ratio from 0.4 to 2.5. Like every image sent over MCP, it has to be a public https link to a JPEG, PNG or WebP file of 10 MB or less; a path inside your repository won't resolve.

## How do I keep a character consistent with Happy Horse 1.1 reference images?

Happy Horse 1.1 uses reference images in reference-to-video mode, the one to pick when a person or product must look the same from shot to shot. Give the agent up to 9 links, each with a shorter side of at least 400 px, and describe the new scene in the prompt. Below, the agent prices a 10-second 1080p scene with the hiker and the backpack from earlier; the estimate reports the total so you can approve it before anything runs.

```
{
  "name": "estimate_cost",
  "arguments": {
    "input": {
      "model": "happy-horse-1.1",
      "mode": "r2v",
      "prompt": "The hiker from the references unzips the same backpack at a mountain hut and pulls out a thermos",
      "reference_images": [
        "https://example.com/refs/hiker-face.jpg",
        "https://example.com/refs/hiker-full.jpg",
        "https://example.com/shop/backpack-bench.jpg"
      ],
      "duration": 10,
      "resolution": "1080p"
    }
  }
}
```

## Troubleshooting a refused Happy Horse 1.1 job

Refusals come back over MCP as text, with no job created and nothing charged. The first column below is the server-side name for each refusal, the second is how the returned message starts.

| Refusal | What the tool returns | What to do |
| --- | --- | --- |
| `invalid_request` | "Invalid parameters" | Check the field the text names: a prompt past the character cap, too many references, or an image below the size minimum |
| `price_unavailable` | "This model, mode and resolution combination is not available right now." | That model, mode and resolution can't be ordered at the moment; call `list_models` with the model id and pick an offered combination |
| `price_exceeds_max_cost` | "which exceeds max\_cost\_usd" | The request changed after you approved it; quote the new version and approve that amount |
| `daily_spend_limit_reached` | "This connection has reached its daily spend limit." | It resets at 00:00 UTC, or raise the daily limit for this connection |
| `insufficient_balance` | "Insufficient balance for this job. Nothing was charged." | Top up and retry with the same `request_id` |

A job that starts and then fails, for example on an input image moderation rejects, shows `status` failed in `check_job` with an `error` object; `billing` switches to released and the held amount is returned. See [failed generations](https://makernice.com/pricing/failed-generations/) for the full charging rules.

## Frequently asked questions

#### Can Happy Horse 1.1 do a first-frame to last-frame transition in Cursor?

No. Happy Horse 1.1 offers text-to-video, image-to-video and reference-to-video on Makernice, with no first-and-last-frame mode.

#### How small can a Happy Horse 1.1 reference image be?

Its shorter side has to be at least 400 px. Images used as the starting frame in image-to-video have their own minimum, listed in the mode section above.

#### Is a 1080p Happy Horse 1.1 clip priced per second too?

Yes. Every Happy Horse 1.1 clip is billed per output second at the rate for its resolution, so ask the agent for estimate\_cost on the exact request.

#### Does Happy Horse 1.1 generate audio, and can I control it?

The Makernice model catalog doesn't state whether Happy Horse 1.1 output includes sound, so this guide doesn't describe it either way. Happy Horse 1.1 takes no generate\_audio field, and a Makernice request can't take your own audio file as input.

#### Can I use Happy Horse for free?

No. There are no free credits, free tier or subscription for Happy Horse 1.1 on Makernice; clips are billed per second from a prepaid US dollar balance. estimate\_cost returns a price without creating a job or charging your balance, so you can check a request before paying.

#### What happens if Claude Code retries a Happy Horse 1.1 generate call?

If it reuses the same request\_id with the same input, Makernice returns the job it already created and charges nothing extra.

## Models in this post

Video

### Happy Horse 1.1

Alibaba's Happy Horse 1.1: a focused model for text, image and reference-driven clips — 3–15 seconds at 720p or 1080p, up to 9 references.

By AlibabaFrom $0.168/s

https://makernice.com/models/happy-horse-1-1/
