happyhorse-1-0
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 t
By runcomfy-com · 12 installs
npx skills add runcomfy-com/skills --skill happyhorse-1-0
Source repository · Upstream listing
HappyHorse 1.0 — Pro Pack on RunComfy
[runcomfy.com](https://www.runcomfy.com/?utm source=skills.sh&utm medium=skill&utm campaign=happyhorse 1 0) · [Text to video](https://www.runcomfy.com/models/happyhorse/happyhorse 1 0/text to video?utm source=skills.sh&utm medium=skill&utm campaign=happyhorse 1 0) · [GitHub](https://github.com/agentspace so/runcomfy skills/tree/main/happyhorse 1 0)
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.
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
1. RunComfy CLI — npm i g @runcomfy/cli
2. RunComfy account — runcomfy login opens a browser device code flow.
3. CI / containers — set RUNCOMFY TOKEN=<token instead of runcomfy 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):
Vertical short (9:16, 8s, no watermark):
Cheaper test pass (720p):
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):
Multi shot consistency:
Vertical platform native:
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](https://docs.runcomfy.com/cli/troubleshooting?utm source=skills.sh&utm medium=skill&utm campaign=happyhorse 1 0).
How it works
1. The skill invokes runcomfy run happyhorse/happyhorse 1 0/text to video with a JSON body matching the schema.
2. The CLI POSTs to https://model api.runcomfy.net/v1/models/happyhorse/happyhorse 1 0/text to video with the user's bearer token.
3. The Model API returns a request id ; the CLI polls GET .../requests/<id /status every 2 seconds.
4. On terminal status, the CLI fetches GET .../requests/<id /result and downloads any URL whose host ends with .runcomfy.net or .runcomfy.com into output dir . Other URLs are listed but not fetched.
5. Ctrl C while polling sends POST .../requests/<id /cancel so 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 login writes the API token to ~/.config/runcomfy/token.json with mode 0600 (owner only read/write). Set RUNCOMFY TOKEN env 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.