@acedatacloud/skills 2026.713.3 → 2026.713.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -0
- package/README.md +2 -0
- package/package.json +2 -1
- package/skills/_shared/mcp-servers.md +1 -0
- package/skills/happyhorse-video/SKILL.md +190 -0
package/AGENTS.md
CHANGED
|
@@ -22,6 +22,7 @@ Skills are located in the `skills/` directory (also mirrored to `.agents/skills/
|
|
|
22
22
|
- **veo-video** — Generate videos with Google Veo (native audio)
|
|
23
23
|
- **kling-video** — Generate videos with Kuaishou Kling (motion control)
|
|
24
24
|
- **hailuo-video** — Generate videos with Hailuo / MiniMax
|
|
25
|
+
- **happyhorse-video** — Generate and edit videos with Happy Horse
|
|
25
26
|
- **seedance-video** — Generate dance/motion videos with ByteDance Seedance
|
|
26
27
|
- **wan-video** — Generate videos with Alibaba Wan
|
|
27
28
|
- **maestro-video** — Produce complete videos from a brief with scripting, media, voiceover, editing, captions, and multilingual variants
|
package/README.md
CHANGED
|
@@ -39,6 +39,7 @@ Compatible with **30+ AI coding agents** via the [agentskills.io](https://agents
|
|
|
39
39
|
| [veo-video](skills/veo-video/) | Generate videos with Google Veo (native audio) |
|
|
40
40
|
| [kling-video](skills/kling-video/) | Generate videos with Kuaishou Kling (motion control) |
|
|
41
41
|
| [hailuo-video](skills/hailuo-video/) | Generate videos with Hailuo / MiniMax |
|
|
42
|
+
| [happyhorse-video](skills/happyhorse-video/) | Generate and edit videos with Happy Horse |
|
|
42
43
|
| [seedance-video](skills/seedance-video/) | Generate dance/motion videos with ByteDance Seedance |
|
|
43
44
|
| [maestro-video](skills/maestro-video/) | Produce complete videos from a brief with script, media, voiceover, captions, and editing |
|
|
44
45
|
|
|
@@ -211,6 +212,7 @@ Skills provide **knowledge** (when to use, parameters, gotchas). MCP servers pro
|
|
|
211
212
|
| veo-video | [mcp-veo](https://pypi.org/project/mcp-veo/) | `pip install mcp-veo` | `https://veo.mcp.acedata.cloud/mcp` |
|
|
212
213
|
| seedream-image | [mcp-seedream](https://pypi.org/project/mcp-seedream/) | `pip install mcp-seedream` | `https://seedream.mcp.acedata.cloud/mcp` |
|
|
213
214
|
| seedance-video | [mcp-seedance](https://pypi.org/project/mcp-seedance/) | `pip install mcp-seedance` | `https://seedance.mcp.acedata.cloud/mcp` |
|
|
215
|
+
| happyhorse-video | [mcp-happyhorse](https://pypi.org/project/mcp-happyhorse/) | `pip install mcp-happyhorse` | `https://happyhorse.mcp.acedata.cloud/mcp` |
|
|
214
216
|
| maestro-video | [mcp-maestro](https://pypi.org/project/mcp-maestro/) | `pip install mcp-maestro` | `https://maestro.mcp.acedata.cloud/mcp` |
|
|
215
217
|
| nano-banana-image | [mcp-nano-banana](https://pypi.org/project/mcp-nano-banana/) | `pip install mcp-nano-banana` | `https://nano-banana.mcp.acedata.cloud/mcp` |
|
|
216
218
|
| short-url | [mcp-shorturl](https://pypi.org/project/mcp-shorturl/) | `pip install mcp-shorturl` | `https://short-url.mcp.acedata.cloud/mcp` |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acedatacloud/skills",
|
|
3
|
-
"version": "2026.713.
|
|
3
|
+
"version": "2026.713.4",
|
|
4
4
|
"description": "Agent Skills for AceDataCloud AI services — music, image, video generation, LLM chat, web search. Compatible with Claude Code, GitHub Copilot, Gemini CLI, OpenAI Codex, and 30+ AI coding agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-skills",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"luma",
|
|
17
17
|
"sora",
|
|
18
18
|
"veo",
|
|
19
|
+
"happyhorse",
|
|
19
20
|
"ai-music",
|
|
20
21
|
"ai-image",
|
|
21
22
|
"ai-video",
|
|
@@ -15,6 +15,7 @@ Each AceDataCloud service has a corresponding MCP server that provides tool-use
|
|
|
15
15
|
| veo-video | `pip install mcp-veo` | `https://veo.mcp.acedata.cloud/mcp` |
|
|
16
16
|
| seedream-image | `pip install mcp-seedream` | `https://seedream.mcp.acedata.cloud/mcp` |
|
|
17
17
|
| seedance-video | `pip install mcp-seedance` | `https://seedance.mcp.acedata.cloud/mcp` |
|
|
18
|
+
| happyhorse-video | `pip install mcp-happyhorse` | `https://happyhorse.mcp.acedata.cloud/mcp` |
|
|
18
19
|
| maestro-video | `pip install mcp-maestro` | `https://maestro.mcp.acedata.cloud/mcp` |
|
|
19
20
|
| nano-banana-image | `pip install mcp-nano-banana` | `https://nano-banana.mcp.acedata.cloud/mcp` |
|
|
20
21
|
| short-url | `pip install mcp-shorturl` | `https://short-url.mcp.acedata.cloud/mcp` |
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: happyhorse-video
|
|
3
|
+
description: 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.
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
metadata:
|
|
6
|
+
author: acedatacloud
|
|
7
|
+
version: "1.0"
|
|
8
|
+
compatibility: Requires ACEDATACLOUD_API_TOKEN in .env file (see _shared/authentication.md). Optionally pair with mcp-happyhorse for tool-use.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Happy Horse Video Generation and Editing
|
|
12
|
+
|
|
13
|
+
Use Happy Horse through AceDataCloud for text-to-video, first-frame animation, reference-guided
|
|
14
|
+
generation, and video editing.
|
|
15
|
+
|
|
16
|
+
> **Setup:** See [authentication](../_shared/authentication.md) for token setup.
|
|
17
|
+
|
|
18
|
+
## Choose an Action
|
|
19
|
+
|
|
20
|
+
| Goal | `action` | Valid models | Required input |
|
|
21
|
+
|---|---|---|---|
|
|
22
|
+
| Generate from text | `generate` | `happyhorse-1.0-t2v`, `happyhorse-1.1-t2v` | `prompt` |
|
|
23
|
+
| Animate one image | `image_to_video` | `happyhorse-1.0-i2v`, `happyhorse-1.1-i2v` | `image_url` |
|
|
24
|
+
| Generate from references | `reference_to_video` | `happyhorse-1.0-r2v`, `happyhorse-1.1-r2v` | `prompt`, 1-9 `image_urls` |
|
|
25
|
+
| Edit a video | `video_edit` | `happyhorse-1.0-video-edit` | `prompt`, `video_url` |
|
|
26
|
+
|
|
27
|
+
The 1.1 model is the default where available. Video editing currently has only a 1.0 model.
|
|
28
|
+
|
|
29
|
+
## Quick Start
|
|
30
|
+
|
|
31
|
+
Submit text-to-video asynchronously:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
curl -X POST https://api.acedata.cloud/happyhorse/videos \
|
|
35
|
+
-H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
|
|
36
|
+
-H "Content-Type: application/json" \
|
|
37
|
+
-d '{
|
|
38
|
+
"action": "generate",
|
|
39
|
+
"model": "happyhorse-1.1-t2v",
|
|
40
|
+
"prompt": "A cinematic white horse crossing a snowy ridge at sunrise, wind moving its mane, slow camera push",
|
|
41
|
+
"resolution": "720P",
|
|
42
|
+
"ratio": "16:9",
|
|
43
|
+
"duration": 5,
|
|
44
|
+
"async": true
|
|
45
|
+
}'
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The response contains a `task_id`. Poll it after about 15 seconds:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
curl -X POST https://api.acedata.cloud/happyhorse/tasks \
|
|
52
|
+
-H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
|
|
53
|
+
-H "Content-Type: application/json" \
|
|
54
|
+
-d '{"id": "<task_id>", "action": "retrieve"}'
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
> **Async:** See [async task polling](../_shared/async-tasks.md). Continue until
|
|
58
|
+
> `response.data[].video_url` appears or a terminal error is returned.
|
|
59
|
+
|
|
60
|
+
## Workflows
|
|
61
|
+
|
|
62
|
+
### Text-to-Video
|
|
63
|
+
|
|
64
|
+
Use `generate` when no visual input exists. Describe the subject, action, environment, camera,
|
|
65
|
+
lighting, and style.
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
POST /happyhorse/videos
|
|
69
|
+
{
|
|
70
|
+
"action": "generate",
|
|
71
|
+
"model": "happyhorse-1.1-t2v",
|
|
72
|
+
"prompt": "A white horse gallops across a moonlit beach, side tracking shot, silver reflections, cinematic realism",
|
|
73
|
+
"resolution": "1080P",
|
|
74
|
+
"ratio": "16:9",
|
|
75
|
+
"duration": 8,
|
|
76
|
+
"seed": 42
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### First-Frame Image-to-Video
|
|
81
|
+
|
|
82
|
+
Use `image_to_video` to animate one image. `prompt` is optional but useful for motion and camera
|
|
83
|
+
direction. The output ratio follows the first-frame image, so omit `ratio`.
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
POST /happyhorse/videos
|
|
87
|
+
{
|
|
88
|
+
"action": "image_to_video",
|
|
89
|
+
"model": "happyhorse-1.1-i2v",
|
|
90
|
+
"image_url": "https://example.com/horse.jpg",
|
|
91
|
+
"prompt": "The horse slowly lifts its head as the mane moves in the breeze, gentle camera push",
|
|
92
|
+
"resolution": "1080P",
|
|
93
|
+
"duration": 5
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Reference-to-Video
|
|
98
|
+
|
|
99
|
+
Use `reference_to_video` with 1-9 reference images. Mention images as `character1`, `character2`,
|
|
100
|
+
and so on in list order when the prompt needs to distinguish them.
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
POST /happyhorse/videos
|
|
104
|
+
{
|
|
105
|
+
"action": "reference_to_video",
|
|
106
|
+
"model": "happyhorse-1.1-r2v",
|
|
107
|
+
"prompt": "character1 walks through a sunrise meadow wearing the leather and gold style from character2",
|
|
108
|
+
"image_urls": [
|
|
109
|
+
"https://example.com/subject.jpg",
|
|
110
|
+
"https://example.com/style.jpg"
|
|
111
|
+
],
|
|
112
|
+
"resolution": "720P",
|
|
113
|
+
"ratio": "16:9",
|
|
114
|
+
"duration": 5
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Video Editing
|
|
119
|
+
|
|
120
|
+
Use `video_edit` with an existing video and editing instructions. Add at most 5 reference images
|
|
121
|
+
for wardrobe, subject, style, or local replacement guidance. Use `audio_setting: "origin"` to
|
|
122
|
+
preserve the source audio.
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
POST /happyhorse/videos
|
|
126
|
+
{
|
|
127
|
+
"action": "video_edit",
|
|
128
|
+
"model": "happyhorse-1.0-video-edit",
|
|
129
|
+
"prompt": "Apply the warm leather and gold style from the reference while preserving camera motion",
|
|
130
|
+
"video_url": "https://example.com/source.mp4",
|
|
131
|
+
"image_urls": ["https://example.com/style.jpg"],
|
|
132
|
+
"resolution": "720P",
|
|
133
|
+
"audio_setting": "origin"
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Do not send `duration` or `ratio` for video editing. Output duration follows the source video.
|
|
138
|
+
|
|
139
|
+
## Parameters
|
|
140
|
+
|
|
141
|
+
| Parameter | Values | Notes |
|
|
142
|
+
|---|---|---|
|
|
143
|
+
| `action` | `generate`, `image_to_video`, `reference_to_video`, `video_edit` | Defaults to `generate` |
|
|
144
|
+
| `model` | See action table | The model family must match the action |
|
|
145
|
+
| `prompt` | string | Required except for `image_to_video` |
|
|
146
|
+
| `image_url` | URL | First frame for `image_to_video` |
|
|
147
|
+
| `image_urls` | URL array | 1-9 for reference generation; 0-5 for editing |
|
|
148
|
+
| `video_url` | URL | Required only for editing |
|
|
149
|
+
| `resolution` | `720P`, `1080P` | Uppercase `P` is required; default `1080P` |
|
|
150
|
+
| `ratio` | `16:9`, `9:16`, `1:1`, `4:3`, `3:4` | Text/reference generation only |
|
|
151
|
+
| `duration` | integer 3-15 | Generation only; default 5 seconds |
|
|
152
|
+
| `watermark` | boolean | Default `false` |
|
|
153
|
+
| `audio_setting` | `auto`, `origin` | Video editing only; `origin` preserves source audio |
|
|
154
|
+
| `seed` | integer 0-2147483647 | Optional reproducibility seed |
|
|
155
|
+
| `callback_url` | URL | Webhook for final result; returns immediately |
|
|
156
|
+
| `async` | boolean | Set `true` to return a task ID for polling |
|
|
157
|
+
|
|
158
|
+
## Task Queries
|
|
159
|
+
|
|
160
|
+
Retrieve one task:
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
POST /happyhorse/tasks
|
|
164
|
+
{"id": "<task_id>", "action": "retrieve"}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Retrieve several tasks:
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
POST /happyhorse/tasks
|
|
171
|
+
{"ids": ["<task_id_1>", "<task_id_2>"], "action": "retrieve_batch"}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
A completed single-task response stores the original request in `request` and the final API result
|
|
175
|
+
in `response`. Read the media URL from `response.data[].video_url`.
|
|
176
|
+
|
|
177
|
+
## Gotchas
|
|
178
|
+
|
|
179
|
+
- Match the model family to `action`; for example, an `*-i2v` model is invalid for `generate`
|
|
180
|
+
- Resolution values are `720P` and `1080P`, not lowercase `720p` / `1080p`
|
|
181
|
+
- Generated duration must be an integer from 3 through 15 seconds
|
|
182
|
+
- `image_to_video` requires `image_url`; its prompt is optional and its ratio follows the image
|
|
183
|
+
- `reference_to_video` requires a prompt and 1-9 images
|
|
184
|
+
- `video_edit` requires both prompt and video URL, accepts at most 5 references, and ignores duration/ratio
|
|
185
|
+
- `audio_setting` applies to video editing; use `origin` to preserve source audio
|
|
186
|
+
- A `task_id` is not a completed result; poll until a final video URL or terminal error appears
|
|
187
|
+
- Failed tasks are not billed; video edits use the upstream-reported input plus output duration for billing
|
|
188
|
+
|
|
189
|
+
> **MCP:** `pip install mcp-happyhorse` | Hosted:
|
|
190
|
+
> `https://happyhorse.mcp.acedata.cloud/mcp` | See [all MCP servers](../_shared/mcp-servers.md)
|