# MiniMax Hailuo-03 (H3) Image to Video - Core.Today AI API > MiniMax Hailuo-03 (H3) image-to-video via Fal.AI. 2K video generation from a first-frame image, 5-15 second duration, native audio, with optional first-to-last keyframe control via end_image_url. - **Provider**: MiniMax - **Model ID**: minimax/h3/image-to-video - **Category**: Video Generation - **Credits**: 3020 per second, tiered by resolution - **Speed**: Medium - **Quality**: Ultra ## Features - Generates video directly from a single first-frame image - Up to 2K resolution output - 5-15 second adjustable duration - Native audio generated alongside the video - Optional first-to-last keyframe control via end_image_url - Output aspect ratio automatically follows the input image ## Use Cases - Animating a static product or portrait photo into a short video clip - Turning a storyboard frame into a cinematic camera-move sequence - First-to-last keyframe transitions between two designed shots - Social media teaser clips generated from a single hero image ## API Endpoint Base URL: https://api.core.today/v1 Create Prediction: POST /predictions Get Status: GET /predictions/{job_id} ## Authentication Header: X-API-Key: YOUR_API_KEY ## Input Parameters ### Required - **prompt**: string - Text prompt for video generation - **image_url**: string - URL of the image to use as the first frame. The output aspect ratio follows this image. ### Optional - **duration**: integer (default: 5) - The duration of the video in seconds. - **resolution**: string (default: 2K) - The resolution of the generated video. Options: 768P, 2K - **end_image_url**: string - Optional URL of the image to use as the last frame, for first-to-last keyframe generation. ## Examples ### Slow pull-back reveal from a landscape photo Animate a still landscape image into a 5-second 2K clip where the camera pulls back to reveal the full scene. ```json { "model": "minimax/h3/image-to-video", "input": { "prompt": "The camera slowly pulls back from the scene, revealing the full landscape as clouds drift overhead and light shifts across the terrain.", "image_url": "https://storage.googleapis.com/falserverless/example_inputs/hailuo23/pro_i2v_in.jpg", "duration": 5, "resolution": "2K" } } ``` ### First-to-last keyframe transition Provide both a starting image and an ending image so the model generates a longer transition video between the two. ```json { "model": "minimax/h3/image-to-video", "input": { "prompt": "A smooth cinematic transition as the scene transforms from day to night.", "image_url": "https://example.com/start-frame.jpg", "end_image_url": "https://example.com/end-frame.jpg", "duration": 10, "resolution": "2K" } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending | processing | completed | failed", "result": "URL or data (when completed)" } ``` ## Usage Flow 1. POST /predictions with model and input -> receive job_id 2. GET /predictions/{job_id} -> poll until status is completed or failed 3. Result contains output URL(s) ## Tips - Use end_image_url when you need a controlled transition between two specific shots instead of an open-ended camera move. - The output aspect ratio always follows image_url, so crop your source image to the target ratio before uploading. - Longer durations (closer to 15 seconds) work best with prompts that describe a clear beginning-to-end camera or scene progression. - Drop to 768P resolution for quick drafts or previews before committing to a full 2K render. ## Documentation https://fal.ai/models/minimax/h3/image-to-video