Video Models

Generate video with HappyHorse 1.0, Kling 3.0, Omni Video, Grok Imagine and Kling 2.6 Motion Control.

Video models run through POST /api/v1/generate. Each video model id is scene-specific — pick the text-to-video, image-to-video or video-to-video variant.

Models

modelLabelSceneDurationResolutionsAudioPricing (credits)
happyhorse-1.0-text-to-videoHappyHorse 1.0text-to-video4–12s720p, 1080pyes40/s (720p), 75/s (1080p)
happyhorse-1.0-image-to-videoHappyHorse 1.0image-to-video4–12s720p, 1080pyes40/s (720p), 75/s (1080p)
kling3-pro-text-to-videoKling 3.0 Protext-to-video3–15syes48/s (×2 with audio)
kling3-pro-image-to-videoKling 3.0 Proimage-to-video3–15syes48/s (×2 with audio)
kling3-standard-text-to-videoKling 3.0 Standardtext-to-video3–15syes36/s (×2 with audio)
kling3-standard-image-to-videoKling 3.0 Standardimage-to-video3–15syes36/s (×2 with audio)
kling26-text-to-videoOmni Videotext-to-video5–10syes9/s (×2 with audio)
kling26-image-to-videoOmni Videoimage-to-video5–10syes9/s (×2 with audio)
grok-imagine-text-to-videoGrok Imaginetext-to-video6s / 10sno25 (6s) / 35 (10s) flat
grok-imagine-image-to-videoGrok Imagineimage-to-video6s / 10sno25 (6s) / 35 (10s) flat
kling26-motion-control-720pKling 2.6 Motion Controlvideo-to-video3–30s720pno200 flat
kling26-motion-control-1080pKling 2.6 Motion Controlvideo-to-video3–30s1080pno300 flat

The exact amount billed is returned as consumed_credits on success.

Parameters

FieldTypeRequiredDescription
modelstringYesA video model id from the table above.
promptstringtext/image-to-videoText description of the video / motion.
image_urlsstring[]image-to-videoSource image(s). 2 images = first/last frame (HappyHorse).
video_urlsstring[]video-to-videoSource video for motion control.
durationintegerNoSeconds, within the model's range.
aspect_ratiostringNoe.g. 16:9, 9:16, 1:1, 4:3, 3:4, 21:9.
resolutionstringNo720p or 1080p (models that support it).
generate_audiobooleanNoGenerate audio (audio-capable models).
negative_promptstringNoWhat to avoid.
seedintegerNoReproducibility seed.

Text-to-video

curl -X POST https://reve2img.com/api/v1/generate \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "happyhorse-1.0-text-to-video",
    "prompt": "a paper boat sailing down a rain-soaked street, cinematic",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }'

Image-to-video

curl -X POST https://reve2img.com/api/v1/generate \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling3-pro-image-to-video",
    "prompt": "slow zoom out, gentle camera drift",
    "image_urls": ["https://example.com/frame.jpg"],
    "duration": 5
  }'

Video-to-video (motion control)

curl -X POST https://reve2img.com/api/v1/generate \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling26-motion-control-720p",
    "prompt": "a knight in golden armor",
    "video_urls": ["https://example.com/motion.mp4"]
  }'

Then poll /api/v1/status until SUCCESS.