CGI product videos with AI: the 3D ad look from a photo

AI can imitate the CGI product-ad look from a packshot and a scene prompt. You get a generated video clip, not a 3D model you can re-render.

5 min readSume
All posts

A CGI product video is a computer-rendered ad: a 3D model of the product placed in a stylized or impossible scene and filmed with a virtual camera. AI video can now imitate that look from a product photo and a scene prompt, without a 3D artist. The catch: what you get is a generated video clip, not a 3D model or scene file you can re-light or re-render from a new angle.

The steps below use Sume's video and image APIs; field behavior comes from the Video generation and Image API docs, read on 2026-09-28.

Is an AI CGI video the same as a 3D render?

No. A 3D render comes from a model you own, so you can change the angle, light, or material and render again with the same product. An AI clip is generated once from your inputs. Sume's video API returns video files, and its docs describe no 3D model or scene output. No video model on Sume accepts a seed today, so each run is a new take rather than an exact repeat. For a spin around the product, see AI 360 rotation video.

How do I make a CGI-style product video with AI?

  • Start from a clean packshot and send it in frame_images with frame_type: "first_frame". A frame image sets the first frame; an image in input_references is only visual guidance. Keep the product exact in AI video compares the two.
  • Describe the CGI scene and one camera move in the prompt: the set, the material, the light, the motion.
  • Ask for the size you need. Among Seedance models, seedance-2 and seedance-2.5 offer 1080p.
  • For a stylized first frame, make it as a still first: send the packshot to POST /v1/images as a reference (openai/gpt-image-2.5 takes up to 16) with the scene prompt. Image API result URLs are Sume-hosted and signed, so download the still you keep; the video request then needs it at a public HTTPS URL.
curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: cgi-bottle-001" \
  -d '{
    "model": "seedance-2",
    "prompt": "The perfume bottle floats above a glossy black pedestal. Liquid gold ribbons swirl around it in slow motion. Slow orbit around the bottle, hard rim light, dark studio.",
    "frame_images": [
      { "type": "image_url", "image_url": { "url": "https://example.com/perfume-packshot.png" }, "frame_type": "first_frame" }
    ],
    "resolution": "1080p",
    "aspect_ratio": "9:16",
    "duration": 8
  }'

What prompts give the CGI look?

CGI ads lean on scenes a camera can't easily shoot. Name the scene, the material, and the motion, as in these examples:

  • Giant scale: “The sneaker stands as tall as a building in an empty city square at dawn. Slow push-in from street level.”
  • Floating and exploded: “The headphones hover in a white void and their parts separate slowly, then click back together. Static camera.”
  • Material play: “The lipstick rises out of a pool of glossy red liquid that ripples outward. Macro, slow tilt up.”
  • Stylized set: “The watch rests on a pastel geometric plinth among floating spheres, soft studio light. Slow orbit.”

Can a catalog Format make it for me?

Yes, for the premium studio version. Sume's catalog Format sume-cinematic-studio-commercial is described as creating a finished cinematic studio commercial with premium lighting, macro product detail, precise art direction, and a high-end camera move, for flagship product launches, technology ads, luxury objects, and polished brand campaigns. AI product commercial video API shows how to call it with your packshot attached.

What are the limits?

From Video generation, Image API, and current Sume code, read 2026-09-28.
LimitWhat it means for a CGI-style clip
LengthUp to 15 seconds on most models; seedance-2.5 and wan-3.0 go to 30
Frame images take precedenceIf you send both fields, the request is treated as image-to-video
No seedNo video model accepts one, so a run cannot be repeated exactly
InputsPublic HTTPS URLs; localhost and private-network hosts are refused (current code)
OutputA generated clip; check the product in the finished frames before you publish

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume