Makernice
← All posts
A brown leather backpack resting on a park bench in late afternoon light, a tablet leaning against it showing lines of codeGuides

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

Makernice Team · ·

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 pageAsk ChatGPTAsk ClaudeAsk Perplexity

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, 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, 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 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; 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.

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.

ModeInputsAspect ratio
Text-to-video (mode t2v)prompt only16:9, 9:16, 1:1, 4:3, 3:4
Image-to-video (mode i2v)prompt and one image_urlNot set in the request
Reference-to-video (mode r2v)prompt and 1 to 9 reference_imagesNot 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 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.

RefusalWhat the tool returnsWhat 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 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