Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Happy Horse Video Generator

ASecurity

> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.

81 stars
0 votes
0 copies
0 views
Added 9/19/2026
developmentpythongobashnodegitapi

Works with

cliapi

Security Analysis

A92/100
mediumInstalls packages at runtime which could introduce malicious dependencies

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add reason-machines/trending-skills --skill happy-horse-video-generator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Happy Horse Video Generator?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Happy Horse Video Generator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/reason-machines-happy-horse-video-generator/badge)](https://www.skillsdirectory.com/skills/reason-machines-happy-horse-video-generator)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
```markdown
---
name: happy-horse-video-generator
description: AI coding agent skill for Happy Horse 1.0 — native joint audio-video generation model with unified Transformer architecture
triggers:
  - generate video with Happy Horse
  - use Happy Horse AI video model
  - happy horse video generation
  - joint audio video generation happy horse
  - run happy horse inference
  - happy horse text to video
  - happy horse image to video
  - happyhorses.io model
---

# Happy Horse 1.0 — AI Video Generator

> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.

## ⚠️ Release Status

Happy Horse 1.0 has **not yet been officially open-sourced** as of this skill's writing. Model weights, inference code, and the official repository have not been published. This skill covers:

- Reported architecture and capabilities (community-compiled, unverified)
- Anticipated usage patterns based on similar open-source video models (Wan 2.2, HunyuanVideo, LTX-2)
- Scaffolding code to wire up Happy Horse once weights/code drop
- Pointers to official resources

**Official resources:**
- Homepage & demo: https://happyhorses.io/
- Leaderboard context: https://artificialanalysis.ai/video/arena

---

## What Happy Horse 1.0 Does

Happy Horse 1.0 is a ~15B-parameter unified self-attention Transformer that generates **video frames and audio together in a single forward pass** — no silent video + separate dubbing pipeline required.

Key reported capabilities:
- **Native joint audio-video generation** (dialogue, Foley, ambient sound)
- **1080p output** in ~38 seconds on NVIDIA H100 (distilled model)
- **8 denoising steps, no classifier-free guidance** (DMD-2 distillation)
- **Text-to-video and image-to-video** via a single set of weights
- **Native lip-sync** in English, Mandarin Chinese, Japanese, Korean, German, French

Architectural highlights:
- 40 layers total: first 4 + last 4 are modality-specific; middle 32 share parameters across text/image/video/audio
- Per-attention-head learned scalar sigmoid gates for multimodal training stability
- No explicit timestep embeddings — noise level inferred from noisy latents
- MagiCompiler runtime for full-graph operator fusion (~1.2× speedup)

---

## Installation (Anticipated — Update When Official Repo Releases)

Watch https://github.com/brooks376/Happy-Horse-1.0 and https://happyhorses.io/ for the official release. The following scaffolding mirrors conventions used by comparable models (HunyuanVideo, Wan 2.2).

```bash
# Clone the official repo once released
git clone https://github.com/<official-org>/happy-horse-1.0
cd happy-horse-1.0

# Create isolated environment
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate

# Install dependencies (anticipated)
pip install -r requirements.txt

# Download model weights (anticipated — likely via huggingface_hub)
pip install huggingface_hub
python -c "
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id='<official-org>/happy-horse-1.0',
    local_dir='./weights/happy-horse-1.0'
)
"
```

### Environment variables

```bash
# Set before running inference
export HF_TOKEN=your_huggingface_token          # if weights are gated
export HAPPY_HORSE_MODEL_PATH=./weights/happy-horse-1.0
export CUDA_VISIBLE_DEVICES=0                   # target GPU index
```

---

## Hardware Requirements

| Task | VRAM | Notes |
|---|---|---|
| 1080p generation (distilled) | 80 GB | NVIDIA H100 reference |
| 720p generation | ~40 GB (estimated) | A100 80GB likely sufficient |
| 256p preview | ~16 GB (estimated) | ~2 sec on H100 |

For multi-GPU setups, model parallelism will likely follow the same pattern as HunyuanVideo:

```bash
# Anticipated multi-GPU launch
torchrun --nproc_per_node=4 generate.py \
  --model_path $HAPPY_HORSE_MODEL_PATH \
  --prompt "A galloping horse across open plains at sunset" \
  --resolution 1080p \
  --steps 8
```

---

## Key Commands (Anticipated CLI)

Based on comparable open-source video model CLIs (Wan 2.2, HunyuanVideo):

```bash
# Text-to-video (distilled, 8 steps, no CFG)
python generate.py \
  --task t2v \
  --model_path $HAPPY_HORSE_MODEL_PATH \
  --prompt "A horse galloping through a misty forest, hooves thundering on wet earth" \
  --resolution 1080p \
  --duration 5 \
  --steps 8 \
  --output ./output/horse_forest.mp4

# Image-to-video
python generate.py \
  --task i2v \
  --model_path $HAPPY_HORSE_MODEL_PATH \
  --image ./reference.png \
  --prompt "The horse rears up and gallops away into the distance" \
  --resolution 1080p \
  --duration 5 \
  --steps 8 \
  --output ./output/horse_i2v.mp4

# Base model (50 steps, CFG — higher quality, slower)
python generate.py \
  --task t2v \
  --model_path $HAPPY_HORSE_MODEL_PATH \
  --variant base \
  --prompt "..." \
  --resolution 1080p \
  --steps 50 \
  --cfg_scale 7.5 \
  --output ./output/horse_base.mp4
```

---

## Python API (Anticipated Usage Patterns)

### Text-to-Video

```python
import os
import torch
from happy_horse import HappyHorsePipeline  # module name TBC at release

def generate_video_from_text(
    prompt: str,
    output_path: str,
    resolution: str = "1080p",
    duration_sec: int = 5,
    steps: int = 8,
    seed: int = 42,
) -> str:
    """
    Generate a video (with native audio) from a text prompt.
    Uses the distilled 8-step model by default.
    """
    model_path = os.environ["HAPPY_HORSE_MODEL_PATH"]

    pipe = HappyHorsePipeline.from_pretrained(
        model_path,
        torch_dtype=torch.bfloat16,
        variant="distilled",  # or "base" for full 50-step model
    )
    pipe = pipe.to("cuda")

    result = pipe(
        prompt=prompt,
        resolution=resolution,
        duration=duration_sec,
        num_inference_steps=steps,
        guidance_scale=1.0,   # CFG not required for distilled model
        generator=torch.Generator("cuda").manual_seed(seed),
    )

    result.save(output_path)
    print(f"Saved video to {output_path}")
    return output_path


if __name__ == "__main__":
    generate_video_from_text(
        prompt="A joyful horse running along a beach, waves crashing, seagulls calling",
        output_path="./output/beach_horse.mp4",
    )
```

### Image-to-Video

```python
import os
import torch
from PIL import Image
from happy_horse import HappyHorsePipeline

def generate_video_from_image(
    image_path: str,
    prompt: str,
    output_path: str,
    resolution: str = "1080p",
    duration_sec: int = 5,
    steps: int = 8,
    seed: int = 42,
) -> str:
    """
    Animate a reference image into video with native audio.
    """
    model_path = os.environ["HAPPY_HORSE_MODEL_PATH"]

    pipe = HappyHorsePipeline.from_pretrained(
        model_path,
        torch_dtype=torch.bfloat16,
        variant="distilled",
    )
    pipe = pipe.to("cuda")

    reference_image = Image.open(image_path).convert("RGB")

    result = pipe(
        image=reference_image,
        prompt=prompt,
        resolution=resolution,
        duration=duration_sec,
        num_inference_steps=steps,
        guidance_scale=1.0,
        generator=torch.Generator("cuda").manual_seed(seed),
    )

    result.save(output_path)
    return output_path


if __name__ == "__main__":
    generate_video_from_image(
        image_path="./horse_portrait.png",
        prompt="The horse turns its head, snorts, and trots away",
        output_path="./output/horse_portrait_anim.mp4",
    )
```

### Extracting Audio and Video Separately

```python
import os
from happy_horse import HappyHorsePipeline
import torch

def generate_and_split_av(
    prompt: str,
    video_output: str = "./output/video_only.mp4",
    audio_output: str = "./output/audio_only.wav",
) -> tuple[str, str]:
    """
    Generate joint audio-video and export video and audio as separate files.
    Useful when you need the audio track independently (e.g. for further processing).
    """
    model_path = os.environ["HAPPY_HORSE_MODEL_PATH"]

    pipe = HappyHorsePipeline.from_pretrained(
        model_path,
        torch_dtype=torch.bfloat16,
        variant="distilled",
    )
    pipe = pipe.to("cuda")

    result = pipe(
        prompt=prompt,
        resolution="1080p",
        duration=5,
        num_inference_steps=8,
    )

    # Anticipated API — mirrors common video model output patterns
    result.export_video(video_output, include_audio=False)
    result.export_audio(audio_output)

    print(f"Video: {video_output}")
    print(f"Audio: {audio_output}")
    return video_output, audio_output
```

### Batch Generation

```python
import os
import torch
from happy_horse import HappyHorsePipeline
from pathlib import Path

def batch_generate(
    prompts: list[str],
    output_dir: str = "./output/batch",
    resolution: str = "720p",
    steps: int = 8,
) -> list[str]:
    """
    Generate multiple videos sequentially, reusing the loaded pipeline.
    """
    model_path = os.environ["HAPPY_HORSE_MODEL_PATH"]
    Path(output_dir).mkdir(parents=True, exist_ok=True)

    pipe = HappyHorsePipeline.from_pretrained(
        model_path,
        torch_dtype=torch.bfloat16,
        variant="distilled",
    )
    pipe = pipe.to("cuda")

    outputs = []
    for i, prompt in enumerate(prompts):
        out_path = f"{output_dir}/video_{i:04d}.mp4"
        result = pipe(
            prompt=prompt,
            resolution=resolution,
            duration=5,
            num_inference_steps=steps,
            guidance_scale=1.0,
            generator=torch.Generator("cuda").manual_seed(i),
        )
        result.save(out_path)
        outputs.append(out_path)
        print(f"[{i+1}/{len(prompts)}] Saved: {out_path}")

    return outputs


if __name__ == "__main__":
    prompts = [
        "A horse grazing in a sunlit meadow, birds singing",
        "Two horses racing on a dirt track, crowd cheering",
        "A foal taking its first steps in a barn, soft whinnying",
    ]
    batch_generate(prompts)
```

---

## Configuration

Anticipated configuration file pattern (based on Wan 2.2 / HunyuanVideo conventions):

```yaml
# configs/happy_horse_1.0.yaml

model:
  name: happy-horse-1.0
  variant: distilled           # "distilled" (8-step) or "base" (50-step)
  dtype: bfloat16
  num_layers: 40
  num_shared_layers: 32        # middle layers with shared parameters
  num_heads: 32
  hidden_dim: 4096

inference:
  steps: 8                     # 8 for distilled, 50 for base
  guidance_scale: 1.0          # 1.0 = no CFG (distilled); 7.5 for base
  resolution: "1080p"
  duration: 5                  # seconds
  aspect_ratio: "16:9"         # or "9:16", "1:1"

audio:
  enabled: true
  sample_rate: 44100
  languages: ["en", "zh", "ja", "ko", "de", "fr"]

runtime:
  compiler: magicompiler        # full-graph compilation
  operator_fusion: true
  devices: [0]                  # GPU indices
```

Load config in code:

```python
import yaml
from happy_horse import HappyHorsePipeline

with open("configs/happy_horse_1.0.yaml") as f:
    config = yaml.safe_load(f)

pipe = HappyHorsePipeline.from_config(config)
pipe = pipe.to("cuda")
```

---

## Common Patterns

### Multilingual Lip-Sync Video

```python
import os
import torch
from happy_horse import HappyHorsePipeline

def generate_lipsync_video(
    speaker_image: str,
    dialogue_text: str,
    language: str = "en",  # "en", "zh", "ja", "ko", "de", "fr"
    output_path: str = "./output/lipsync.mp4",
) -> str:
    """
    Generate a talking-head video with native lip-sync.
    Happy Horse produces audio and lip movement jointly — no separate TTS or sync model needed.
    """
    assert language in ("en", "zh", "ja", "ko", "de", "fr"), (
        f"Unsupported language: {language}. "
        "Happy Horse 1.0 natively supports: en, zh, ja, ko, de, fr"
    )

    model_path = os.environ["HAPPY_HORSE_MODEL_PATH"]
    from PIL import Image

    pipe = HappyHorsePipeline.from_pretrained(
        model_path,
        torch_dtype=torch.bfloat16,
        variant="distilled",
    )
    pipe = pipe.to("cuda")

    image = Image.open(speaker_image).convert("RGB")

    result = pipe(
        image=image,
        prompt=dialogue_text,
        language=language,
        lipsync=True,
        resolution="1080p",
        duration=len(dialogue_text.split()) // 2,  # rough duration estimate
        num_inference_steps=8,
    )

    result.save(output_path)
    return output_path
```

### Low-VRAM: 256p Preview Before Full Render

```python
import os
import torch
from happy_horse import HappyHorsePipeline

def preview_then_render(
    prompt: str,
    final_output: str = "./output/final.mp4",
) -> str:
    """
    Generate a fast 256p preview (~2 sec on H100), confirm it looks right,
    then render full 1080p.
    """
    model_path = os.environ["HAPPY_HORSE_MODEL_PATH"]

    pipe = HappyHorsePipeline.from_pretrained(
        model_path,
        torch_dtype=torch.bfloat16,
        variant="distilled",
    )
    pipe = pipe.to("cuda")

    # Fast preview pass
    preview = pipe(
        prompt=prompt,
        resolution="256p",
        duration=5,
        num_inference_steps=8,
    )
    preview.save("./output/preview.mp4")
    print("Preview saved to ./output/preview.mp4 — check before full render.")

    confirm = input("Looks good? Render full 1080p? [y/N]: ")
    if confirm.strip().lower() != "y":
        print("Aborted.")
        return ""

    result = pipe(
        prompt=prompt,
        resolution="1080p",
        duration=5,
        num_inference_steps=8,
    )
    result.save(final_output)
    return final_output
```

### Super-Resolution Post-Processing

```python
import os
import torch
from happy_horse import HappyHorsePipeline, HappyHorseSuperResolution

def generate_with_sr(
    prompt: str,
    output_path: str = "./output/sr_output.mp4",
) -> str:
    """
    Generate at 720p, then upscale to 1080p with the SR module.
    Useful when base generation VRAM is constrained.
    """
    model_path = os.environ["HAPPY_HORSE_MODEL_PATH"]

    pipe = HappyHorsePipeline.from_pretrained(
        model_path,
        torch_dtype=torch.bfloat16,
        variant="distilled",
    )
    sr = HappyHorseSuperResolution.from_pretrained(
        model_path,
        torch_dtype=torch.bfloat16,
    )
    pipe = pipe.to("cuda")
    sr = sr.to("cuda")

    base_result = pipe(
        prompt=prompt,
        resolution="720p",
        duration=5,
        num_inference_steps=8,
    )

    hires_result = sr(base_result, target_resolution="1080p")
    hires_result.save(output_path)
    return output_path
```

---

## Troubleshooting

### CUDA out of memory

```python
# Option 1: Use CPU offloading (slower but lower peak VRAM)
pipe.enable_model_cpu_offload()

# Option 2: Enable attention slicing
pipe.enable_attention_slicing(slice_size="auto")

# Option 3: Lower resolution or duration
result = pipe(prompt=prompt, resolution="720p", duration=3, num_inference_steps=8)

# Option 4: Use bfloat16 (should already be default)
pipe = HappyHorsePipeline.from_pretrained(model_path, torch_dtype=torch.bfloat16)
```

### Audio not included in output

```python
# Ensure audio is enabled (may be off by default in some configs)
result = pipe(
    prompt=prompt,
    resolution="1080p",
    generate_audio=True,   # explicit flag if needed
    num_inference_steps=8,
)
```

### Slow inference beyond 38 seconds

```python
# Ensure MagiCompiler is active
pipe = HappyHorsePipeline.from_pretrained(
    model_path,
    torch_dtype=torch.bfloat16,
    compile=True,            # enables MagiCompiler full-graph compilation
)

# Warm up the compiled graph before timed runs
_ = pipe(prompt="warmup", resolution="256p", duration=1, num_inference_steps=8)
```

### Using the base model (50 steps) for higher quality

```python
pipe = HappyHorsePipeline.from_pretrained(
    model_path,
    torch_dtype=torch.bfloat16,
    variant="base",          # NOT "distilled"
)
result = pipe(
    prompt=prompt,
    resolution="1080p",
    num_inference_steps=50,
    guidance_scale=7.5,      # CFG applies to base model
)
```

### Reproducible outputs

```python
import torch

generator = torch.Generator("cuda").manual_seed(12345)
result = pipe(
    prompt=prompt,
    num_inference_steps=8,
    generator=generator,
)
```

---

## Comparison to Current Open-Source Leaders

| Feature | Happy Horse 1.0 | Wan 2.2 A14B | LTX-2 Pro | HunyuanVideo-1.5 |
|---|---|---|---|---|
| Native audio | ✅ joint | ❌ | ❌ | ❌ |
| Parameters | ~15B | 14B | ~13B | ~13B |
| Steps (distilled) | 8, no CFG | ~50 | ~25 | ~50 |
| 1080p time (H100) | ~38s | minutes | minutes | minutes |
| Weights available | ❌ not yet | ✅ | ✅ | ✅ |

**Until Happy Horse weights are released**, use Wan 2.2 or LTX-2 for production work. Both are mature and have working inference stacks.

---

## Staying Updated

```bash
# Watch this info-collection repo for updates
# https://github.com/brooks376/Happy-Horse-1.0

# Official release channel
open https://happyhorses.io/

# Leaderboard placement (check when weights release)
open https://artificialanalysis.ai/video/arena
```

The anticipated release package includes:
1. Base Happy Horse 1.0 model weights
2. Distilled 8-step model weights
3. Super-resolution module weights
4. Inference code

License terms have not yet been published. Confirm licensing at https://happyhorses.io/ before production use.
```

Attribution

reason-machinesreason-machines
View sourceMore from reason-machines →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →