Marketplace listing video from one product photo: first_frame

Turn a single product photo into a short listing video by pinning it as the first frame on seedance-2, then check the catalog fields that gate the request.

5 min readSume
All posts

To turn one product photo into an ecommerce listing video, pass the photo in frame_images with frame_type: first_frame to POST /v1/videos on seedance-2. The clip then opens on your exact packshot and animates from there. Use input_references instead when the photo should only guide the look and not be the opening frame.

First frame or reference

Sume copies the OpenRouter split. frame_images present means image-to-video. input_references present means reference-to-video. Neither means text-to-video. If you send both, frame_images wins.

For a listing, the first-frame mode is what you want. Marketplaces review the thumbnail, and a video that starts on the approved packshot keeps the label, the colour and the proportions that the listing already shows.

Check the catalog before you submit

seedance-2 lists 480p, 720p and 1080p, aspect ratios from 21:9 to 9:16, whole-second durations from 4 to 15, and both first_frame and last_frame in supported_frame_images. Your own client should read GET /v1/videos/models instead of hard-coding those values, since limits differ for each model.

curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: listing-sku-1042" \
  -d '{
    "model": "seedance-2",
    "prompt": "Slow 360 turn of the product on a white sweep, soft studio light",
    "duration": 5,
    "resolution": "1080p",
    "aspect_ratio": "1:1",
    "frame_images": [
      {"type": "image_url",
       "image_url": {"url": "https://example.com/sku-1042.jpg"},
       "frame_type": "first_frame"}
    ]
  }'

One photo, several placements

Listing surfaces want different shapes: a square for a grid, a vertical for a story, a wide frame for a product page. Because the catalog lists both 1:1, 9:16 and 16:9, you can submit three jobs with the same photo and different aspect_ratio. Give each its own Idempotency-Key, such as the SKU plus the ratio, so a retry returns the same job and does not bill again.

  • Key the idempotency string on SKU and aspect ratio.
  • Keep one prompt per product family, not per SKU.
  • Use last_frame as well when the clip must end on a second packshot.

Writing prompts that keep the product honest

A listing video must show the item that the buyer receives. Keep the prompt to motion and light: turn, tilt, push in, soft studio light. Do not ask the model to add accessories, text on the packaging or features that the photo does not show. The first frame carries the real product, and a short prompt gives the model less room to invent.

Review one clip for each product family before you run the rest. If the colour drifts or a logo warps, the fix is usually a shorter duration or a plainer background, not a longer prompt.

Where the file goes next

Check each clip against the listing rules of the marketplace before you upload. Some marketplaces cap length, size or aspect ratio, and those rules change, so read the current seller guide for each channel instead of copying a number from a blog post.

A finished job exposes the file at GET /v1/videos/{job_id}/content. If you run hundreds of SKUs, pass a callback_url so Sume tells your service when each job finishes, and verify the x-sume-webhook-signature header before you trust the body.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume