Image to Video API — MiniMax Hailuo, Batch, Pay per Second avatar

Image to Video API — MiniMax Hailuo, Batch, Pay per Second

Pricing

from $50.00 / 1,000 video second delivereds

Go to Apify Store
Image to Video API — MiniMax Hailuo, Batch, Pay per Second

Image to Video API — MiniMax Hailuo, Batch, Pay per Second

Turn images or text prompts into short videos with MiniMax Hailuo and get, for each clip, a dataset item with the video URL and its exact duration. Image to video, text to video, optional last-frame keyframe, batch input, no API key, pay per second of delivered video.

Pricing

from $50.00 / 1,000 video second delivereds

Rating

0.0

(0)

Developer

Sherwood

Sherwood

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Share

Turn images or text prompts into short mp4 videos and get, for each clip, a dataset item with the video URL and its exact duration — from $0.05 to $0.06 per second of delivered video depending on your Apify plan (a 5-second clip costs $0.25 to $0.30). Image to video, text to video, optional last-frame keyframe, batch input, no video-model API key to manage, failed clips are free.

What it does

  • Image to video: send image URLs, get one animated clip per image. Without a prompt, a neutral motion prompt is used.
  • Text to video: send prompts alone, get one 16:9 clip per prompt.
  • Both: prompts and imageUrls are paired by index; a list of one is reused for every clip.
  • Keyframes: endImageUrls pins the last frame of each clip — first-to-last transitions, or a clip that ends on a given image.
  • Batch by design: one call for the whole list, one dataset item per clip, in input order.

Images are accepted as public URLs, Google Drive or Dropbox share links, Drive file IDs, base64 or data URIs, files uploaded from your computer, or the dataset of another Actor (datasetId) — for example the output of an image generator or a product scraper.

Input

Every field is optional; with no input the Actor generates one sample clip so you can see the output shape.

{
"imageUrls": ["https://example.com/product.jpg"],
"prompts": ["Slow 360 rotation of the product, studio lighting"],
"duration": 5,
"resolution": "768P"
}
FieldTypeNotes
promptsarray or stringWhat happens in each clip. Aliases: prompt, texts. Newline-separated strings are split.
imageUrlsarray or stringFirst frame of each clip. Aliases: imageUrl, urls, images, startUrls, imageFiles (upload).
endImageUrlsarray or stringLast frame of each clip (optional). Alias: endImageUrl.
datasetIdstringAnimate the image URLs found in another Actor's dataset; urlField picks the field, common ones are auto-detected.
durationinteger1 to 15 seconds per clip, default 5.
resolution768P / 1080P / 480PAll three cost the same per second.
promptExpansionbalanced / disabled / qualityHow much the model rewrites your prompt first.
seedintegerFix it to reproduce a run.
maxVideosintegerHard cap per run, default 20.

Output

One dataset item per clip:

{
"index": 0,
"prompt": "Slow 360 rotation of the product, studio lighting",
"imageUrl": "https://example.com/product.jpg",
"outputUrl": "https://api.apify.com/v2/key-value-stores/.../records/video-0000.mp4",
"durationSeconds": 5.184,
"billedSeconds": 5,
"resolution": "768P",
"fileSize": 7300000,
"model": "minimax/h3-max-turbo/image-to-video",
"format": "mp4",
"status": "ok",
"error": null
}

durationSeconds is read from the delivered file, not assumed. A clip that fails — dead image link, content refused by the safety checker, upstream error — comes back as an item with "status": "error" and the reason, costs nothing, and never silently disappears: you always get as many answers as inputs.

Pricing at the time of writing

  • video-second — one event per second of delivered video, rounded to the nearest second. The model can produce slightly more than requested (~5.2 s for 5 s): you are billed on what you receive.
  • Per plan: $0.05 (Free), $0.06 (Starter), $0.055 (Scale), $0.05 (Business) per second.
  • Failed clips: free. No subscription, no minimum. All resolutions, including 1080P, cost the same.

A 5-second product clip costs $0.25 to $0.30. Set maxTotalChargeUsd on the run and the Actor stops cleanly at the limit, telling you which clips remain instead of failing.

Call it by API

curl -s -X POST \
"https://api.apify.com/v2/acts/sherwood~video-generator-batch/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"prompts": ["A paper plane gliding over pastel mountains, flat illustration"]}'

Or with the Apify clients:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("sherwood/video-generator-batch").call(run_input={
"imageUrls": ["https://example.com/product.jpg"],
"prompts": ["Slow 360 rotation of the product, studio lighting"],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["status"], item.get("outputUrl") or item.get("error"))

From n8n or an AI agent

  • n8n: use the official Apify node with Actor sherwood~video-generator-batch; the input above goes in the custom body, the results come back as items.
  • MCP: add the Apify MCP server to your agent and it can call this Actor like any tool — nothing in the input is required, so "animate these three images" maps onto one call.
  • Chaining: pass the datasetId of a sherwood/image-generator-batch or sherwood/image-upscaler-batch run to animate its outputs directly.

The Actor is eligible for agentic payments (x402, Skyfire, MPP): an AI agent can run it and pay per request without an Apify account.

Limits, honestly

  • Generation runs on MiniMax Hailuo (h3-max-turbo) via fal.ai — this is an AI model, named here on purpose. Its safety checker is always on; this Actor is not a way around model content rules.
  • Clips top out at 15 seconds and 1080P. No audio track.
  • Input images must be at least 256×256 pixels (smaller ones come back as a free error item; upscale them first, for example with sherwood/image-upscaler-batch).
  • Output files live in the run's key-value store and follow your Apify account's data retention; copy them out if you need them long-term.
  • seed applies to the whole run, not per clip.
  • If your brief needs a specific aesthetic from another video model, this is not that.

FAQ

What is Hailuo AI? Hailuo is MiniMax's video generation model family. This Actor runs MiniMax Hailuo (h3-max-turbo) for both image-to-video and text-to-video, and says so openly — you know exactly which model renders your clips.

How do I turn a photo into a video? Put its URL in imageUrls (a Drive or Dropbox link, a base64 string or a console upload also works) and optionally describe the motion in prompts ("slow zoom on the face", "steam rising from the cup"). One call, one mp4 per photo.

How much does image-to-video cost? $0.05 to $0.06 per second of delivered video depending on your plan — a 5-second clip is $0.25 to $0.30. Failed clips are free, every resolution costs the same, and maxTotalChargeUsd caps any run.

Do I need a MiniMax or fal API key? No. No model account, no key to store: the Actor manages the model calls and bills per delivered second through Apify. Direct model APIs also bill the failures; this one does not.

Is there a free image-to-video API? Apify's free plan includes $5 of platform credit each month — enough for roughly 100 seconds of video — with no card required. Good for testing motion prompts before a batch.

Can I animate product photos in bulk? Yes: send the whole list in imageUrls, or point datasetId at a scraper's or generator's output. Prompts and images are paired by index, and a single prompt is reused for every image — "slow 360 rotation, studio lighting" across a whole catalog is one call.