TL;DR
- What this is: a real, working image-to-video workflow using happyhorse-1.1/image-to-video on the hiapi API — turn a single product photo or portrait into a native-audio short-form clip, ready for TikTok, Reels, or a product page.
- Why image-to-video, not text-to-video: when you already have the exact shot — a product on a table, a headshot — locking composition in a still frame and letting the model animate it gives far more predictable results than describing the whole scene from scratch.
- The task schema is small:
image_urls(exactly one first-frame image), an optionalpromptfor motion guidance,resolution(720p/1080p), andduration(3-15s, default 5). No motion-strength sliders, no camera-path config. - Pricing (as of 2026-09): $0.16/s at 720p and $0.21/s at 1080p, billed by
duration— a 4s 720p clip like the ones below costs $0.64. Always check hiapi's live pricing page before you budget a batch, since rates can change. - Audio is native: HappyHorse 1.1 generates synchronized sound with the motion — no separate audio step, no extra field to set.
Two real examples: product shot and portrait
Below are two clips generated end-to-end through the hiapi API for this article — same model, two different first frames, two different motion intents. Both are inlined as real playable video, not a static thumbnail.
Example 1: turning a product photo into a promo clip
Start from a plain product photo — a pair of wireless earbuds in their charging case — and ask the model for a slow, cinematic reveal instead of just letting the case sit there as a flat image.
Prompt used:
Slow cinematic camera push-in on the matte-black wireless earbuds charging case, the lid opens smoothly on its own revealing the earbuds inside, a soft light sparkle highlight sweeps across the glossy lid, subtle studio light shift, smooth stable motion, no text, no logo, commercial product video style
This is the kind of clip that would otherwise need a real product shoot with a slider rig and a lighting setup — here it comes from one still photo and a text prompt. For e-commerce, this pattern (static hero photo → short looping motion clip) works well as a secondary product-page asset or a native ad creative, since the request is billed as a single 4-second 720p generation ($0.64) rather than a full video shoot.
Example 2: animating a portrait
The second use case is a talking-head or model-style portrait where you want subtle, natural life added to an otherwise static headshot — a slight head turn, a smile forming, hair moving — without changing the framing or background.
Prompt used:
The woman turns her head naturally toward the camera with a soft warm smile, hair moves gently, natural blinking, subtle breathing motion, soft even studio lighting stays consistent, background stays plain and calm, no text
This pattern is useful for turning a batch of headshots — team pages, creator profiles, testimonial sections — into short, low-effort motion assets without booking a videographer for every subject. Because image_urls takes exactly one first-frame image, subject identity and framing stay locked to your source photo; the model only animates motion and light, it doesn't reinterpret the scene.
How the request actually looks
Both clips above came from the same shape of request against hiapi's unified async task API:
{
"model": "happyhorse-1.1/image-to-video",
"input": {
"image_urls": ["https://static.hiapi.ai/blog/happyhorse-1-1-image-to-video-short-form-video/product-first-frame.jpg"],
"prompt": "Slow cinematic camera push-in on the matte-black wireless earbuds charging case, the lid opens smoothly on its own revealing the earbuds inside, a soft light sparkle highlight sweeps across the glossy lid, subtle studio light shift, smooth stable motion, no text, no logo, commercial product video style",
"resolution": "720p",
"duration": 4
}
}
Submit to POST /v1/tasks, then either poll GET /v1/tasks/:id until status reaches a terminal state, or — better for production — set callback.url so hiapi notifies your service when the task finishes instead of you polling. When status=success, the finished clip is at output[0].url; download it immediately, since that URL is time-limited.
Picking resolution and duration for short-form video
For social-first short-form clips (TikTok, Reels, Shorts), 720p at the shortest duration that still tells the story is usually the practical default — it's cheaper per clip and social platforms re-compress video anyway, so the extra 1080p detail is rarely visible after upload. Reach for 1080p when the clip is destined for a product page or paid ad where a viewer might see it full-screen on a larger display. Duration is the bigger cost lever than resolution here: going from 4s to 8s roughly doubles the bill regardless of resolution tier, so start with the shortest clip that gets your motion idea across and extend only if you actually need the extra seconds.
FAQ
How many images does image-to-video need?
Exactly one first-frame image via image_urls (JPEG/PNG/WEBP, shortest side ≥300px, ≤20MB). SVG isn't supported. The whole clip is generated starting from that single frame.
Does the output include audio? Yes — HappyHorse 1.1 produces native, synchronized audio alongside the motion with no extra field to configure.
How is this different from text-to-video or reference-to-video?
Image-to-video is driven by one first-frame image, which is why it's the right choice when you already know the exact composition you want. For generating a video purely from a text description with no starting image, use happyhorse-1.1/text-to-video. For precise subject/style control from multiple references (up to 9 images), use happyhorse-1.1/reference-to-video.
What does a clip actually cost?
As of 2026-09, hiapi bills HappyHorse 1.1 image-to-video at $0.16/s (720p) or $0.21/s (1080p), by duration. Both example clips above are 4s at 720p, so $0.64 each. Check the live pricing page before running a batch, since per-second rates can be updated.
Takeaways
- Use image-to-video over text-to-video whenever you already have the exact shot — a product photo, a headshot — and just need it to move.
image_urlstakes exactly one first-frame image; it doesn't accept an array of references (that's whatreference-to-videois for).- Audio comes free with every clip — no separate audio-generation step.
- Duration is the main cost lever: a short 4s clip at 720p is $0.64, and cost scales roughly linearly with seconds, not resolution tier.
- Compare this workflow against Veo 3.1 Lite's image-to-video pipeline or Seedance-2.0-Fast if you're deciding between video models for a short-form pipeline.
Ready to try it yourself? Grab an API key and point a still photo at happyhorse-1.1/image-to-video — a first clip only costs a few cents to test.








