$npx -y skills add prime-skills/runcomfy-agent-skills --skill happyhorse-1-0Generate 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 / resolutio
| 1 | # HappyHorse 1.0 — Pro Pack on RunComfy |
| 2 | |
| 3 | [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) |
| 4 | |
| 5 | **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. |
| 6 | |
| 7 | ```bash |
| 8 | npx skills add agentspace-so/runcomfy-skills --skill happyhorse-1-0 -g |
| 9 | ``` |
| 10 | |
| 11 | ## When to pick this model (vs siblings) |
| 12 | |
| 13 | | You want | Use | |
| 14 | |---|---| |
| 15 | | Multi-shot story with character / wardrobe consistency | **HappyHorse 1.0** | |
| 16 | | Native audio in the same generation pass | **HappyHorse 1.0** | |
| 17 | | Currently-#1 blind-vote video model | **HappyHorse 1.0** | |
| 18 | | Detailed lip-synced dialogue + reference video | Seedance 2.0 Pro | |
| 19 | | Fine motion control + multi-reference conditioning | Wan 2.7 | |
| 20 | | Ultra-fast iteration (sub-second per frame) | LTX 2 | |
| 21 | | Cinematic motion editing on existing footage | Kling Video O1 | |
| 22 | |
| 23 | If the user said "HappyHorse" / "happy horse video" explicitly, route here regardless. |
| 24 | |
| 25 | ## Prerequisites |
| 26 | |
| 27 | 1. **RunComfy CLI** — `npm i -g @runcomfy/cli` |
| 28 | 2. **RunComfy account** — `runcomfy login` opens a browser device-code flow. |
| 29 | 3. **CI / containers** — set `RUNCOMFY_TOKEN=<token>` instead of `runcomfy login`. |
| 30 | |
| 31 | ## Endpoints + input schema |
| 32 | |
| 33 | ### `happyhorse/happyhorse-1-0/text-to-video` |
| 34 | |
| 35 | | Field | Type | Required | Default | Notes | |
| 36 | |---|---|---|---|---| |
| 37 | | `prompt` | string | yes | — | Up to 2,500 chars. 6 languages (CN/EN/JP/KR/DE/FR). | |
| 38 | | `aspect_ratio` | enum | no | `16:9` | `16:9`, `9:16`, `1:1`, `4:3`, `3:4` only. | |
| 39 | | `resolution` | enum | no | `1080P` | `720P` or `1080P`. | |
| 40 | | `duration` | int | no | 5 | 3–15 seconds. | |
| 41 | | `seed` | int | no | 0 | 0..2^31-1. Reuse for variant comparisons. | |
| 42 | | `watermark` | bool | no | true | Provider watermark. | |
| 43 | |
| 44 | ## How to invoke |
| 45 | |
| 46 | **Default (16:9 1080p 5s):** |
| 47 | |
| 48 | ```bash |
| 49 | runcomfy run happyhorse/happyhorse-1-0/text-to-video \ |
| 50 | --input '{"prompt": "<user prompt>"}' \ |
| 51 | --output-dir <absolute/path> |
| 52 | ``` |
| 53 | |
| 54 | **Vertical short (9:16, 8s, no watermark):** |
| 55 | |
| 56 | ```bash |
| 57 | runcomfy run happyhorse/happyhorse-1-0/text-to-video \ |
| 58 | --input '{ |
| 59 | "prompt": "<user prompt>", |
| 60 | "aspect_ratio": "9:16", |
| 61 | "duration": 8, |
| 62 | "watermark": false |
| 63 | }' \ |
| 64 | --output-dir <absolute/path> |
| 65 | ``` |
| 66 | |
| 67 | **Cheaper test pass (720p):** |
| 68 | |
| 69 | ```bash |
| 70 | runcomfy run happyhorse/happyhorse-1-0/text-to-video \ |
| 71 | --input '{"prompt": "<user prompt>", "resolution": "720P", "duration": 3}' \ |
| 72 | --output-dir <absolute/path> |
| 73 | ``` |
| 74 | |
| 75 | 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. |
| 76 | |
| 77 | ## Prompting — what actually works |
| 78 | |
| 79 | **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". |
| 80 | |
| 81 | **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"`. |
| 82 | |
| 83 | **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. |
| 84 | |
| 85 | **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. |
| 86 | |
| 87 | **Audio direction** — say what you want to hear: `"distant temple bells, footsteps on wet pavement, no dialogue"` or `"warm friendly tone, English"`. |
| 88 | |
| 89 | **Anti-patterns:** |
| 90 | - Static-frame descriptions (no temporal verbs) → motion will be vague. |
| 91 | - Conflicting style directions → cancels. |
| 92 | - > 2500 char prompts → degrades. |
| 93 | - Aspect ratios outside the 5 supp |