happyhorse-1-0

作成者: runcomfy-com

RunComfyでHappyHorse 1.0を使用してテキストから動画を生成します。HappyHorse 1.0の強み(Artificial Analysis Video Arenaで第1位、ネイティブ1080pと同期オーディオ、マルチショットのキャラクター一貫性

npx skills add https://github.com/runcomfy-com/skills --skill happyhorse-1-0

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 wantUse
Multi-shot story with character / wardrobe consistencyHappyHorse 1.0
Native audio in the same generation passHappyHorse 1.0
Currently-#1 blind-vote video modelHappyHorse 1.0
Detailed lip-synced dialogue + reference videoSeedance 2.0 Pro
Fine motion control + multi-reference conditioningWan 2.7
Ultra-fast iteration (sub-second per frame)LTX 2
Cinematic motion editing on existing footageKling Video O1

If the user said "HappyHorse" / "happy horse video" explicitly, route here regardless.

Prerequisites

  1. RunComfy CLInpm i -g @runcomfy/cli
  2. RunComfy accountruncomfy 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

FieldTypeRequiredDefaultNotes
promptstringyesUp to 2,500 chars. 6 languages (CN/EN/JP/KR/DE/FR).
aspect_ratioenumno16:916:9, 9:16, 1:1, 4:3, 3:4 only.
resolutionenumno1080P720P or 1080P.
durationintno53–15 seconds.
seedintno00..2^31-1. Reuse for variant comparisons.
watermarkboolnotrueProvider 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 caseWhy HappyHorse 1.0
Multi-shot brand stories with one consistent characterNative cross-shot identity preservation
Talking-head explainers needing in-clip voiceover + ambientSynchronized audio in the same pass
Multilingual short-form ads6 prompt languages, no script-quality drop
Cinematic 1080p deliveryNative 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:

codemeaning
0success
64bad CLI args
65bad input JSON / schema mismatch (e.g. duration: 30 would 422)
69upstream 5xx
75retryable: timeout / 429
77not signed in or token rejected

Full reference: docs.runcomfy.com/cli/troubleshooting.

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.

runcomfy-comのその他のスキル

video-inpainting
runcomfy-com
Region edits across video frames on RunComfy via the `runcomfy` CLI — remove an object that appears across many frames, clean up wires or watermarks, replace a region with matching motion. Routes across Wan 2-7 edit-video (default, prompt-driven region edits with spatial language), Lucy Edit Restyle (identity-stable region-aware restyle), and Seedream 4-0 edit-sequential (when treating the clip as a frame stack). Picks the right route based on whether the change is prose-driven,...
videocreativemedia
runcomfy-cli
runcomfy-com
We need to translate the given English text into Japanese. The text describes a CLI tool called runcomfy-cli. The instruction says to preserve the name "runcomfy-cli" but only if it appears in the source text. The source text mentions "runcomfy" and "runcomfy CLI" but not "runcomfy-cli" exactly. However, the directory item type is "agent skill" and the name to preserve is "runcomfy-cli". The instruction says "Do not include the name unless it appears in the source text." The source text has "runcomfy" and "runcomfy CLI". The name to preserve is "runcomfy-cli". Since it's not exactly in the source, we should not add it. But the instruction says "Translate only the text inside <text>." So we translate the entire content inside <text> without adding or removing anything except translation. The name "runcomfy-cli" is not inside the text, so we don't include it. However, the text includes "run
creativemediaapi
image-to-video
runcomfy-com
We need to translate the given English text into Japanese, preserving the name "image-to-video" and other technical terms like model names, URLs, etc. The instruction says: "Do not include the name unless it appears in the source text." The name "image-to-video" appears in the source? Actually, the source text starts with "Animate any still image on RunComfy — this skill is a smart router..." The name "image-to-video" is not explicitly in the source text; it's given as the directory item name. The instruction says "Do not include the name unless it appears in the source text." So we should not add "image-to-video" to the translation. Also, preserve product names: RunComfy, HappyHorse 1.0 I2V, Wan 2.7, Seedance 2.0 Pro, etc. Preserve technical terms: i2v, audio_url, lip-sync, multi-modal, etc. Translate the rest naturally into Japanese. Let's break down the text: "Animate
creativevideomedia
flux-2-klein
runcomfy-com
RunComfy上でFlux 2 Klein(Black Forest Labs製のFlux 2高速蒸留版)を使用して画像を生成します。このスキルには、モデルのドキュメント化されたプロンプトパターンがバンドルされており、同じモデルに対する単純なプロンプトよりもシャープな出力が得られます。Flux 2 Kleinの強み(サブ秒レイテンシ、マルチリファレンスブランドスタイリング、宣言的主語優先プロンプト)、ステップ数戦略(高速反復は4~8、仕上げは約25)、9Bと4Bバリアントのトレードオフ、Flux 2 Proへのルーティングのタイミングなどを解説しています。
creativeimageresearch
ai-avatar-video
runcomfy-com
We need to translate the given English text into Japanese, preserving the specified name "ai-avatar-video" and other technical terms. The instruction says: "Translate only the text inside <text>. Do not include the name unless it appears in the source text." The name "ai-avatar-video" does not appear in the source text, so we don't include it. We must preserve product names, protocol names, URLs, numbers, technical terms. No extra commentary. The text describes creating AI avatar videos using runcomfy CLI, listing models: ByteDance OmniHuman, Wan-AI Wan 2-7, HappyHorse 1.0, Seedance v2 Pro. Also mentions user intents. We need to translate naturally into Japanese, keeping terms like "runcomfy CLI", "ByteDance OmniHuman", "Wan-AI Wan 2-7", "HappyHorse 1.0", "Seedance v2 Pro", "audio_url", "Arena #1 t2v / i2v", "U
videocreativemedia
nano-banana-edit
runcomfy-com
We need to translate the given English text into Japanese, preserving the name "nano-banana-edit" and other technical terms. The instruction says: "Translate only the text inside <text>. Do not include the name unless it appears in the source text." The name "nano-banana-edit" appears in the source text? Actually, the source text mentions "Nano Banana Edit" and "nano banana edit" but not exactly "nano-banana-edit". However, the directory item type is "agent skill" and the name to preserve is "nano-banana-edit". The instruction says "Do not include the name unless it appears in the source text." So we should not add it if not present. But the source text has "Nano Banana Edit" (capitalized) and "nano banana edit" (lowercase). We should preserve those as they appear. Also preserve "RunComfy", "Google Nano Banana 2", "GPT Image 2 edit", "Flux Kontext", "Nano Banana 2 t2
creativeimageapi
wan-2-7
runcomfy-com
We need to translate the given English text into Japanese, preserving the name "wan-2-7" and other technical terms. The instruction says: "Translate only the text inside <text>. Do not include the name unless it appears in the source text." The name "wan-2-7" appears in the source text, so we should keep it as is. Also preserve "RunComfy", "Wan-AI", "HappyHorse 1.0", "Seedance 2.0", "Kling", "LTX 2", "runcomfy run wan-ai/wan-2-7/text-to-video", "CLI", "audio_url", etc. No extra commentary. Just a direct translation. Let me translate paragraph by paragraph. First sentence: "Generate text-to-video with Wan 2.7 (Wan-AI's flagship motion model) on RunComfy." -> "RunComfy上でWan 2.7(Wan-AIの主力モーションモデル)を使用して
creativevideomedia
lipsync
runcomfy-com
Lip-sync a face to a specific audio track on RunComfy via the `runcomfy` CLI. Routes across ByteDance OmniHuman (audio-driven full-body avatar from a portrait + audio), Sync Labs sync v2 / Pro (state-of-the-art mouth sync onto a video), Kling lipsync (audio-to- video and text-to-video with synced speech), and Creatify lipsync. The skill picks the right endpoint for the user's actual intent — portrait still + audio (avatar-style), source video + audio (mouth- swap on existing footage), or...
creativevideomedia