Happy Horse 1.0 Ref-to-Video
NewHappy Horse · Video · Image → Video
Generate video from up to 9 reference images — refer to them in the prompt as `[Image 1]`, `[Image 2]`, … in the same order they appear in the input list.
Model ID:
happyhorse-1.0-r2vWorkflow: happyhorse/v1/reference-to-videoMulti-Image Input1080P3-15 sec
Install the SDK
The SDK targets Node 20+ and ships with TypeScript types.
npm
npm install @picsart/ai-sdkAuthenticate
Create a client once with your API key — it's sent as a bearer token on every request.
TypeScript
import { createClient } from '@picsart/ai-sdk';
const ai = createClient({
apiKey: process.env.PICSART_API_KEY, // sent as: Authorization: Bearer <key>
apiUrl: 'https://api.green-salad-4efd.toolsminati.workers.dev',
});Run the model
Call the model with its parameters. This example uses the required ones.
TypeScript
import { createClient } from '@picsart/ai-sdk';
const ai = createClient({
apiKey: process.env.PICSART_API_KEY,
apiUrl: 'https://api.green-salad-4efd.toolsminati.workers.dev',
});
const result = await ai.generate('happyhorse-1.0-r2v', {
prompt: "A serene mountain lake at golden hour, ultra detailed",
aspectRatio: "16:9",
resolution: "720P",
duration: 5,
imageUrls: [
"https://cdn.example.com/input.jpg"
]
});
console.log(result.url); // video URLParameters
6 parameters. Required ones must be supplied; the rest fall back to their defaults. The API takes these same names over HTTP.
| Parameter | Type | Required | Default | Details |
|---|---|---|---|---|
promptPrompt | text | yes | — | max 2500 chars |
seedSeed | range | no | — | 0–2147483647 (step 1) |
aspectRatio | enum | no | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4 |
resolution | enum | no | 720P | 720P, 1080P |
duration | range | no | 5 | 3–15 (step 1) |
imageUrlsReference Images | file (image[]) | yes | — | — |
Output
generate() resolves once the job completes. A video URL.
Result
{
"items": [
{
"url": "https://cdn.green-salad-4efd.toolsminati.workers.dev/…/result"
}
],
"model": "happyhorse-1.0-r2v"
}