Happyhorse video
Agent Skills for AceDataCloud AI services — music, image, video generation, web search, and more. Compatible with Claude Code, GitHub Copilot, Gemini CLI, and all agentskills.io-compatible agents.
npx -y skills add AceDataCloud/Skills --skill happyhorse-videoAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate and edit AI videos with Happy Horse via AceDataCloud API. Use when creating videos from text prompts, animating a first-frame image, generating scenes from up to 9 subject or style reference images, or editing an existing video with optional references. Supports 720P/1080P output, 3-15 second generation, aspect-ratio control, audio preservation, seeds, callbacks, and asynchronous task polling.
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.9 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it
Happy Horse Video Generation and Editing
Use Happy Horse through AceDataCloud for text-to-video, first-frame animation, reference-guided generation, and video editing.
Setup: See authentication for token setup.
Choose an Action
| Goal | action | Valid models | Required input |
|---|---|---|---|
| Generate from text | generate | happyhorse-1.0-t2v, happyhorse-1.1-t2v | prompt |
| Animate one image | image_to_video | happyhorse-1.0-i2v, happyhorse-1.1-i2v | image_url |
| Generate from references | reference_to_video | happyhorse-1.0-r2v, happyhorse-1.1-r2v | prompt, 1-9 image_urls |
| Edit a video | video_edit | happyhorse-1.0-video-edit | prompt, video_url |
The 1.1 model is the default where available. Video editing currently has only a 1.0 model.
Quick Start
Submit text-to-video asynchronously:
curl -X POST https://api.acedata.cloud/happyhorse/videos \
-H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"action": "generate",
"model": "happyhorse-1.1-t2v",
"prompt": "A cinematic white horse crossing a snowy ridge at sunrise, wind moving its mane, slow camera push",
"resolution": "720P",
"ratio": "16:9",
"duration": 5,
"async": true
}'
The response contains a task_id. Poll it after about 15 seconds:
curl -X POST https://api.acedata.cloud/happyhorse/tasks \
-H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "<task_id>", "action": "retrieve"}'
Async: See async task polling. Continue until
response.data[].video_urlappears or a terminal error is returned.
Workflows
Text-to-Video
Use generate when no visual input exists. Describe the subject, action, environment, camera,
lighting, and style.
POST /happyhorse/videos
{
"action": "generate",
"model": "happyhorse-1.1-t2v",
"prompt": "A white horse gallops across a moonlit beach, side tracking shot, silver reflections, cinematic realism",
"resolution": "1080P",
"ratio": "16:9",
"duration": 8,
"seed": 42
}
First-Frame Image-to-Video
Use image_to_video to animate one image. prompt is optional but useful for motion and camera
direction. The output ratio follows the first-frame image, so omit ratio.
POST /happyhorse/videos
{
"action": "image_to_video",
"model": "happyhorse-1.1-i2v",
"image_url": "https://example.com/horse.jpg",
"prompt": "The horse slowly lifts its head as the mane moves in the breeze, gentle camera push",
"resolution": "1080P",
"duration": 5
}
Reference-to-Video
Use reference_to_video with 1-9 reference images. Mention images as character1, character2,
and so on in list order when the prompt needs to distinguish them.
POST /happyhorse/videos
{
"action": "reference_to_video",
"model": "happyhorse-1.1-r2v",
"prompt": "character1 walks through a sunrise meadow wearing the leather and gold style from character2",
"image_urls": [
"https://example.com/subject.jpg",
"https://example.com/style.jpg"
],
"resolution": "720P",
"ratio": "16:9",
"duration": 5
}
Video Editing
Use video_edit with an existing video and editing instructions. Add at most 5 reference images
for wardrobe, subject, style, or local replacement guidance. Use audio_setting: "origin" to
preserve the source audio.
POST /happyhorse/videos
{
"action": "video_edit",
"model": "happyhorse-1.0-video-edit",
"prompt": "Apply the warm leather and gold style from the reference while preserving camera motion",
"video_url": "https://example.com/source.mp4",
"image_urls": ["https://example.com/style.jpg"],
"resolution": "720P",
"audio_setting": "origin"
}
Do not send duration or ratio for video editing. Output duration follows the source video.
Parameters
| Parameter | Values | Notes |
|---|---|---|
action | generate, image_to_video, reference_to_video, video_edit | Defaults to generate |
model | See action table | The model family must match the action |
prompt | string | Required except for image_to_video |
image_url | URL | First frame for image_to_video |
image_urls | URL array | 1-9 for reference generation; 0-5 for editing |
video_url | URL | Required only for editing |
resolution | 720P, 1080P | Uppercase P is required; default 1080P |
ratio | 16:9, 9:16, 1:1, 4:3, 3:4 | Text/reference generation only |
duration | integer 3-15 | Generation only; default 5 seconds |
watermark | boolean | Default false |
audio_setting | auto, origin | Video editing only; origin preserves source audio |
seed | integer 0-2147483647 | Optional reproducibility seed |
callback_url | URL | Webhook for final result; returns immediately |
async | boolean | Set true to return a task ID for polling |
Task Queries
Retrieve one task:
POST /happyhorse/tasks
{"id": "<task_id>", "action": "retrieve"}
Retrieve several tasks:
POST /happyhorse/tasks
{"ids": ["<task_id_1>", "<task_id_2>"], "action": "retrieve_batch"}
A completed single-task response stores the original request in request and the final API result
in response. Read the media URL from response.data[].video_url.
Gotchas
- Match the model family to
action; for example, an*-i2vmodel is invalid forgenerate - Resolution values are
720Pand1080P, not lowercase720p/1080p - Generated duration must be an integer from 3 through 15 seconds
image_to_videorequiresimage_url; its prompt is optional and its ratio follows the imagereference_to_videorequires a prompt and 1-9 imagesvideo_editrequires both prompt and video URL, accepts at most 5 references, and ignores duration/ratioaudio_settingapplies to video editing; useoriginto preserve source audio- A
task_idis not a completed result; poll until a final video URL or terminal error appears - Failed tasks are not billed; video edits use the upstream-reported input plus output duration for billing
MCP:
pip install mcp-happyhorse| Hosted:https://happyhorse.mcp.acedata.cloud/mcp| See all MCP servers