Nine product angles as references: MiniMax H3 Max on Sume

How to send up to nine product photos as reference images to minimax-h3-max on Sume, what the vendor limit is, and where Sume's own limits live.

4 min readSume
All posts

To make one product video from several photos of the same item, call POST /v1/video-router/generate with model: "minimax-h3-max" and put the photo URLs in reference_image_urls. That model does reference-to-video at 480p, 768p or 1080p for 5 to 15 seconds, per the Video Router page. MiniMax's H3 is described in a third-party summary as taking up to 9 reference images, 3 video clips and 3 audio clips (read 2026-10-05). Treat nine as the vendor figure, and read the limit that Sume enforces from the catalog before you build a nine-photo pipeline.

What nine references are good for

A product has more sides than one photo shows. A reference set lets the model see the front, the back, the label, the cap, and the item in a hand, so the clip does not invent the parts the camera never showed it. Pick the nine by what the clip needs, not by what you have in the folder.

  • Two or three full-product views from different angles, on a plain background.
  • One close crop of the label or logo, so the text has a source.
  • One scale shot, with the item in a hand or on a desk.
  • One packaging shot, if the box will appear.
  • Skip near-duplicates. Two photos of the same angle add no information.

The request

The body is the same async job envelope as every Video Router model. Send an Idempotency-Key, because a retry after a timeout must not start a second paid job. Every URL must be public HTTPS.

curl -X POST https://api.sume.com/v1/video-router/generate \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: bottle-angles-001" \
  -d '{
    "model": "minimax-h3-max",
    "prompt": "Slow orbit around the bottle on a marble counter, soft window light",
    "reference_image_urls": [
      "https://example.com/bottle-front.jpg",
      "https://example.com/bottle-back.jpg",
      "https://example.com/bottle-label-closeup.jpg"
    ],
    "resolution": "768p",
    "duration": 8,
    "mode": "async"
  }'

Where the limits are

The docs say that each catalog model can have a different envelope and tell you to read capabilities from GET /v1/video-router/models. Do that once, and let your code read the reference count from the response instead of hard-coding nine. The Video generation page adds that the Seedance 2.x models, Wan 3.0, MiniMax H3 and MiniMax H3 Max accept audio and video references too, and that a model accepts a reference type only if its supported_input_references lists it.

Which MiniMax id for which job

Do not mix the ids up. Only the Max variant is documented for reference-to-video, and Video 1.0 is an alias for Sume Auto, not for H3.

MiniMax ids in the Sume Video Router (Sume docs, read 2026-10-05)
Catalog idDurationResolutionNotes
minimax-h35-15 s480p, 768p native768p is first-class, not 720p
minimax-h3-max5-15 s480p, 768p, 1080pText-to-video, start/end frame, reference-to-video; 1080p is a latent refinement from native 768p

Price and prompt habits

Sume bills list price times 1.25 on every catalog model, so check the price of your resolution before a 100-clip batch. Keep prompts short when you use references: describe the camera and the light, and let the photos carry what the product looks like.

Run the first clip at 480p. A 480p pass shows you whether the references were read correctly: is the label right, is the cap the right shape, does the scale look believable. Fixing a bad reference set at 480p costs less than finding the problem at 1080p. When the clip is right, repeat the same request with a higher resolution and a new Idempotency-Key, because a changed body under an old key returns a conflict, not a new job.

Last, keep the reference photos on stable public URLs. Sume fetches them, and a URL that expires after an hour will fail a retry made the next morning. If the pictures live in private storage, publish them at a public HTTPS address for the length of the job, because the docs reject private-network and non-HTTPS URLs.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume