happyhorse-1-0
π―SkillCreates short videos with sound from a text description, using the HappyHorse 1.0 model on RunComfy. It can keep the same character across several shots.
Installation
npx skills add runcomfy-com/skills --skill happyhorse-1-0Run it in a terminal; it asks which AI coding tools to install it for (Claude Code, Codex, Cursor and more).
Uses skills.sh Β· Node.js 22.20+
After installing
Ask for related work and the agent uses it on its own, or call it yourself.
/happyhorse-1-0Install by hand
Copy the whole skill folder from GitHub to the place below. Copying only SKILL.md can leave out files the skill uses.
Open the skill folder β- This project
.claude/skills/happyhorse-1-0/ - All projects
~/.claude/skills/happyhorse-1-0/
These paths are for Claude Code. For other tools, the command above puts it in the right place.
What this skill does
Overview
This skill runs the HappyHorse 1.0 model, which turns a written description into a video. It uses the runcomfy CLI, a command-line tool for RunComfy. The model makes 720p or 1080p video and creates matching sound, such as dialogue, background sound and sound effects, in the same step. The skill says it ranks #1 on the Artificial Analysis Video Arena, a ranking based on blind votes.
Key Features
- Make clips from 3 to 15 seconds long in 16:9, 9:16, 1:1, 4:3 or 3:4 shape.
- Get dialogue, background sound and sound effects in the same video, with no separate audio step.
- Keep one character's look across shots by describing the character again in each shot.
- Write prompts in Chinese, English, Japanese, Korean, German or French, up to 2,500 characters.
- Follow prompt tips, such as describing movement over time and naming the camera shot first.
Who is this for?
It fits people who make short social videos or ads and want sound included from the start. It also helps when you need a short story with the same character in several shots, or the same ad in several languages.
Summarized by AI from this skill's SKILL.md. Suggest a better one
SKILL.md
View on GitHub βGenerate text-to-video with HappyHorse 1.0 on RunComfy. Documents HappyHorse 1.0's strengths (#1 on Artificial Analysis Video Arena, native 1080p with in-pass synchronized audio, multi-shot character consistency, 6-language prompt support), the duration / aspect-ratio / resolution schema, and when to route to Wan 2.7 / Seedance 2 / LTX 2 instead. Calls `runcomfy run happyhorse/happyhorse-1-0/text-to-video` through the local RunComfy CLI. Triggers on "happyhorse", "happy horse", "happyhorse 1.0", "happyhorse video", or any explicit ask to generate video with this model.
HappyHorse 1.0 β Pro Pack on RunComfy
runcomfy.com Β· Text-to-video Β· GitHub
HappyHorse 1.0 β currently #1 on Artificial Analysis Video Arena (Elo 1333 t2v / 1392 i2v) β hosted on the RunComfy Model API. Native 1080p video with in-pass synchronized audio (dialogue, ambient, Foley) and multi-shot character consistency.
npx skills add agentspace-so/runcomfy-skills --skill happyhorse-1-0 -g
When to pick this model (vs siblings)
| You want | Use |
|---|---|
| Multi-shot story with character / wardrobe consistency | HappyHorse 1.0 |
| Native audio in the same generation pass | HappyHorse 1.0 |
| Currently-#1 blind-vote video model | HappyHorse 1.0 |
| Detailed lip-synced dialogue + reference video | Seedance 2.0 Pro |
| Fine motion control + multi-reference conditioning | Wan 2.7 |
| Ultra-fast iteration (sub-second per frame) | LTX 2 |
| Cinematic motion editing on existing footage | Kling Video O1 |
If the user said "HappyHorse" / "happy horse video" explicitly, route here regardless.
Prerequisites
- RunComfy CLI β
npm i -g @runcomfy/cli - RunComfy account β
runcomfy loginopens a browser device-code flow. - CI / containers β set
RUNCOMFY_TOKEN=<token>instead ofruncomfy login.
Endpoints + input schema
happyhorse/happyhorse-1-0/text-to-video
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
prompt | string | yes | β | Up to 2,500 chars. 6 languages (CN/EN/JP/KR/DE/FR). |
aspect_ratio | enum | no | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4 only. |
resolution | enum | no | 1080P | 720P or 1080P. |
duration | int | no | 5 | 3β15 seconds. |
seed | int | no | 0 | 0..2^31-1. Reuse for variant comparisons. |
watermark | bool | no | true | Provider watermark. |
How to invoke
Default (16:9 1080p 5s):
runcomfy run happyhorse/happyhorse-1-0/text-to-video \
--input '{"prompt": "<user prompt>"}' \
--output-dir <absolute/path>
Vertical short (9:16, 8s, no watermark):
runcomfy run happyhorse/happyhorse-1-0/text-to-video \
--input '{
"prompt": "<user prompt>",
"aspect_ratio": "9:16",
"duration": 8,
"watermark": false
}' \
--output-dir <absolute/path>
Cheaper test pass (720p):
runcomfy run happyhorse/happyhorse-1-0/text-to-video \
--input '{"prompt": "<user prompt>", "resolution": "720P", "duration": 3}' \
--output-dir <absolute/path>
The CLI submits, polls every 2s until terminal, then downloads any *.runcomfy.net / *.runcomfy.com URL from the result into --output-dir. Stdout is the result JSON. Stderr is progress.
Prompting β what actually works
Describe motion over time, not a still. "A woman turns from the window, walks two paces to the desk, picks up the cup, lifts it to her face, takes a sip" beats "a woman drinking coffee".
Camera + shot in plain English. Front-load the shot: "Wide shot. ..." / "Tracking shot. ..." / "Locked tripod, low angle. ..." works as a real directive. Specify lens feel: "35mm anamorphic", "shallow DOF", "crushed shadows".
One visual beat per clip when iterating. Don't pile up "she walks AND the dog runs AND a car passes". Pick the beat, get it sharp, then layer with multi-shot prompts.
Multi-shot consistency β when describing two beats, restate the anchor at each: "Shot 1: tall woman in red wool coat, blue scarf, in a rainy alley. Shot 2: same woman in red coat / blue scarf, now ducking under an awning." HappyHorse holds the look but needs the anchor.
Audio direction β say what you want to hear: "distant temple bells, footsteps on wet pavement, no dialogue" or "warm friendly tone, English".
Anti-patterns:
- Static-frame descriptions (no temporal verbs) β motion will be vague.
- Conflicting style directions β cancels.
-
2500 char prompts β degrades.
- Aspect ratios outside the 5 supported β 422.
Where it shines
| Use case | Why HappyHorse 1.0 |
|---|---|
| Multi-shot brand stories with one consistent character | Native cross-shot identity preservation |
| Talking-head explainers needing in-clip voiceover + ambient | Synchronized audio in the same pass |
| Multilingual short-form ads | 6 prompt languages, no script-quality drop |
| Cinematic 1080p delivery | Native 1080p output, broadcast-ready |
| Blind-vote leader for general video quality | #1 on Artificial Analysis Video Arena |
Sample prompts (verified to produce strong results)
From the model page (cinematic scope):
Wide shot. A lone astronaut in dusty orange suit with blue-gray harness
skis across lunar plain, leaving parallel tracks in gray regolith.
Mid-stride, poles planted, pushing in 1/6th gravity with subtle upward
drift. Fine dust haze along ski tracks. Crescent Earth above lunar
horizon, blue-white glow against black sky. Raw sunlight, crushed
shadows, no fill. 8K photorealistic.
Multi-shot consistency:
Shot 1: Medium close-up. A woman in a navy trench coat enters a
rain-slick neon-lit Tokyo alley, looks left, holds up an umbrella.
Shot 2: Same woman in same navy trench, now under the awning of a
ramen shop, shaking water off the umbrella. Warm interior glow, soft
chatter, gentle rain on metal roof in the audio.
Vertical platform-native:
9:16 vertical short. A barista in a black apron pulls a single
espresso shot, steam rising into the morning sun, rich crema slowly
forming. Close-up handheld, shallow DOF, warm cafe ambience and the
hiss of the steam wand.
Limitations
- Duration cap 15s β for longer narratives, segment into multi-shot prompts and stitch.
- Aspect ratios β only the 5 documented values; ultra-wide cinematic gets cropped or rejected.
- Audio is in-pass only β you can't pass external audio to drive lip-sync. For audio-driven lip-sync, use Wan 2.7 (which accepts an
audio_url) or Seedance 2.0 Pro. - No free image-to-video on this template β i2v is supported by HappyHorse via a separate pipeline; the t2v endpoint here is text-only.
Exit codes
The runcomfy CLI uses sysexits-style codes:
| code | meaning |
|---|---|
| 0 | success |
| 64 | bad CLI args |
| 65 | bad input JSON / schema mismatch (e.g. duration: 30 would 422) |
| 69 | upstream 5xx |
| 75 | retryable: timeout / 429 |
| 77 | not signed in or token rejected |
Full reference: docs.runcomfy.com/cli/troubleshooting.
How it works
- The skill invokes
runcomfy run happyhorse/happyhorse-1-0/text-to-videowith a JSON body matching the schema. - The CLI POSTs to
https://model-api.runcomfy.net/v1/models/happyhorse/happyhorse-1-0/text-to-videowith the user's bearer token. - The Model API returns a
request_id; the CLI pollsGET .../requests/<id>/statusevery 2 seconds. - On terminal status, the CLI fetches
GET .../requests/<id>/resultand downloads any URL whose host ends with.runcomfy.netor.runcomfy.cominto--output-dir. Other URLs are listed but not fetched. Ctrl-Cwhile polling sendsPOST .../requests/<id>/cancelso you don't get billed for GPU you stopped.
What this skill is not
Not a self-hosted video runner. Not a capability grant β depends on a working RunComfy account.
Security & Privacy
- Token storage:
runcomfy loginwrites the API token to~/.config/runcomfy/token.jsonwith mode 0600 (owner-only read/write). SetRUNCOMFY_TOKENenv var to bypass the file entirely in CI / containers. - Input boundary: the user prompt is passed as a JSON string to the CLI via
--input. The CLI does NOT shell-expand the prompt; it transmits the JSON body directly to the Model API over HTTPS. No shell injection surface from prompt content. - Third-party content: image / mask / video URLs you pass are fetched by the RunComfy model server, not by the CLI on your machine. Treat external URLs as untrusted; image-based prompt injection is a known risk for any image-edit / video-edit model.
- Outbound endpoints: only
model-api.runcomfy.net(request submission) and*.runcomfy.net/*.runcomfy.com(download whitelist for generated outputs). No telemetry, no callbacks. - Generated-file size cap: the CLI aborts any single download > 2 GiB to prevent disk-fill from a malicious or runaway model output.
More from this repository10
Widens or extends a photo on RunComfy, a cloud image service, by adding matching scenery past its edges. Use it to change a picture's shape or fill in what the camera did not capture.
A skill that puts a different face or character into a photo or video with AI models on RunComfy. It picks the right model for your goal, such as a single still image or a moving clip.
Lets Claude create images from text with Flux 2 Klein, a fast image model from Black Forest Labs, on RunComfy. Use the small version for drafts in under a second and the larger one for detailed final images.
A skill that makes short videos (4 to 15 seconds) with sound from a text prompt, using the Seedance 2.0 Pro model on RunComfy. You can add reference photos, clips, and audio to keep a person or scene consistent.
A skill that removes or replaces one part of a photo, such as a watermark, a stray object, or the background. You mark the area with a black-and-white guide image, or just describe it in words.
A skill that makes music from a text description, from short jingles to full songs with lyrics. It can also redo one section of a track or make a track longer.
Makes a person's mouth in a video or photo move in time with an audio track, using AI models on RunComfy. You can dub an existing video, make a portrait talk or create a speaking video from a script.
Teaches your AI agent to use the RunComfy command-line tool to run hundreds of AI models. With one install and one sign-in, it can make images and videos, sync lips, swap faces and more.
Relight a still image on RunComfy, change lighting direction, color temperature, intensity, or mood without redoing the shot. Routes to Qwen Edit 2509's dedicated relight LoRA endpoint, with fallback to identity-preserving edit models for prose-based lighting descriptions.
A Claude Code skill for generating text-to-video with Wan-AI Wan 2.7 on RunComfy, featuring multi-reference conditioning, audio-driven lip-sync via audio_url, smoother transitions, and prompt expansion for high-quality video output.