Happy Horse
Generate 3-15 second videos with Happy Horse through the VicSee API. Text to video, image to video, multi-character reference to video, and prompt-driven video editing. 720p and 1080p with native audio.
Try it now: Use the Happy Horse Generator to create videos from text, images, references, or by editing an existing video.
Happy Horse generates short videos with native audio across four modes: text to video, image to video, multi-character reference to video, and prompt-driven video-to-video editing.
Pricing
Billed per second of output by resolution. Native audio is included at no extra cost. Credits are deducted only on successful generation.
Text to Video / Image to Video / Reference to Video
| Duration | 720p Credits | 1080p Credits |
|---|---|---|
| 3s | 120 | 210 |
| 4s | 160 | 280 |
| 5s | 200 | 350 |
| 6s | 240 | 420 |
| 7s | 280 | 490 |
| 8s | 320 | 560 |
| 9s | 360 | 630 |
| 10s | 400 | 700 |
| 11s | 440 | 770 |
| 12s | 480 | 840 |
| 13s | 520 | 910 |
| 14s | 560 | 980 |
| 15s | 600 | 1050 |
Video Edit
Video editing is billed per second of total video — per-second rate x (input video duration + output duration), where the output length equals the input.
| Resolution | Credits per second |
|---|---|
| 720p | 40/s |
| 1080p | 70/s |
Example: editing a 5s clip at 1080p = (5 + 5) x 70 = 700 credits. The input video must be 3-15 seconds.
Credit range: 120-1050 credits (text/image/reference modes), variable for video edit.
Endpoint
POST https://vicsee.com/api/v1/generateSee Authentication for API key setup.
Text to Video
Generate videos from text descriptions with native audio.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | happyhorse-text-to-video |
| input.prompt | string | Yes | Video description (max 5,000 chars) |
| input.duration | number | No | 3-15 seconds, any integer (default: 5) |
| input.resolution | string | No | 720p, 1080p (default: 720p) |
| input.aspect_ratio | string | No | 16:9, 9:16, 1:1, 4:3, 3:4 (default: 16:9) |
| input.seed | number | No | 0-2147483647. Omit to auto-generate. |
Example Request
curl -X POST https://vicsee.com/api/v1/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-text-to-video",
"input": {
"prompt": "A miniature city built from cardboard comes to life at night, a small train passing through glowing streets",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
}
}'Image to Video
Animate a first-frame image into video with native audio. The output aspect ratio follows the input image.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | happyhorse-image-to-video |
| input.image_urls | string[] | Yes | Exactly one first-frame image |
| input.prompt | string | No | Description of the animation |
| input.duration | number | No | 3-15 seconds, any integer (default: 5) |
| input.resolution | string | No | 720p, 1080p (default: 720p) |
| input.seed | number | No | 0-2147483647. Omit to auto-generate. |
Image constraints: jpeg, png, or webp; width and height at least 300px; aspect ratio between 1:2.5 and 2.5:1; up to 10MB.
Example Request
curl -X POST https://vicsee.com/api/v1/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-image-to-video",
"input": {
"prompt": "The girl walks gracefully through the meadow, her dress fluttering in the wind",
"image_urls": ["https://example.com/first-frame.png"],
"duration": 5,
"resolution": "720p"
}
}'Reference to Video
Generate a video featuring up to nine consistent characters from reference images. Refer to each image in the prompt as character1, character2, and so on — the order matches the array.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | happyhorse-reference-to-video |
| input.prompt | string | Yes | Description; address images as character1, character2, ... |
| input.reference_image_urls | string[] | Yes | 1-9 reference images |
| input.duration | number | No | 3-15 seconds, any integer (default: 5) |
| input.resolution | string | No | 720p, 1080p (default: 720p) |
| input.aspect_ratio | string | No | 16:9, 9:16, 1:1, 4:3, 3:4 (default: 16:9) |
| input.seed | number | No | 0-2147483647. Omit to auto-generate. |
Image constraints: jpeg, png, or webp; shortest side at least 400px (720p or higher recommended); up to 10MB each. Avoid small, blurry, or heavily compressed images.
Example Request
curl -X POST https://vicsee.com/api/v1/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-reference-to-video",
"input": {
"prompt": "character1 jogs lightly through a sunlit forest while character2, a glowing spirit, flies closely behind her",
"reference_image_urls": [
"https://example.com/girl.png",
"https://example.com/spirit.png"
],
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
}
}'Video Edit
Edit an existing video with a plain-language instruction — style transfer, character replacement, local edits, and more. Optionally guide the edit with reference images.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | happyhorse-video-edit |
| input.prompt | string | Yes | Edit instruction (e.g. style transfer or local replacement) |
| input.video_url | string | Yes | One input video, 3-15 seconds |
| input.reference_image_urls | string[] | No | 0-5 reference images |
| input.resolution | string | No | 720p, 1080p (default: 720p) |
| input.audio_setting | string | No | auto (regenerate audio) or origin (keep source audio) (default: auto) |
| input.seed | number | No | 0-2147483647. Omit to auto-generate. |
Input video constraints: mp4 or mov; 3-15 seconds; up to 100MB; longest side at most 2160px, shortest side at least 320px; aspect ratio between 1:2.5 and 2.5:1.
The output length matches the input video. Video edit is billed per second of (input + output) — see Pricing.
Example Request
curl -X POST https://vicsee.com/api/v1/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-video-edit",
"input": {
"prompt": "Replace the skateboarder with a friendly cartoon robot, keeping the original camera motion and lighting",
"video_url": "https://example.com/clip.mp4",
"resolution": "720p",
"audio_setting": "auto"
}
}'Response & Polling
All requests are asynchronous and return a taskId. Poll GET /api/v1/tasks/{id} until the task completes, then read the result URL. See Tasks for the full lifecycle and Errors for error codes.