Product Ad
The Product Ad recipe turns reference images of your product into a polished, cinematic product ad video. Provide one or more product photos, optional style references, and creative direction, and the recipe returns ad-ready motion you can drop into paid and organic channels.
How it works
Section titled “How it works”Submit one or more product images, then guide the result with optional style references, productInfo, and a userConcept describing the creative direction. The recipe analyzes the product, builds a storyboard, and renders a short video. It returns a task id you poll for the finished output.
Inputs
Section titled “Inputs”| Input | Required | Description |
|---|---|---|
version | Yes | Workflow version. Use a dated version like 2026-06 to pin behavior, or unsafe-latest to track the newest stable version. |
productImages | Yes | One to ten reference images of the product as { uri } objects, ideally from multiple angles. The first image is used as the primary product reference. |
styleImages | No | Up to four style reference images ({ uri }) defining lighting, palette, and mood. Treated as a moodboard when multiple are provided. |
productInfo | No | Product description and specifications to inform creative direction (max 2500 characters). |
userConcept | No | Creative direction — brand voice, scene specifics, lighting, camera motion, and narrative (max 3500 characters). |
ratio | No | Output aspect ratio: 1280:720, 720:1280, 960:960, 834:1112, 1920:1080, 1080:1920, 1440:1440, or 1248:1664. |
duration | No | Output length in seconds (4–15). Defaults to 10. |
audio | No | Whether to generate audio. Defaults to false. |
uri accepts an HTTPS URL, a Runway upload URI, or a data URI.
Example
Section titled “Example”import RunwayML from '@runwayml/sdk';
const client = new RunwayML();
const task = await client.recipes.productAd({ version: '2026-06', productImages: [ { uri: 'https://example.com/product-front.jpg' }, { uri: 'https://example.com/product-side.jpg' }, ], productInfo: 'Organic cold-pressed juice, 12oz glass bottle', userConcept: 'Bright, refreshing summer campaign with slow dolly moves', duration: 10,});
console.log(task);from runwayml import RunwayML
client = RunwayML()
task = client.recipes.product_ad( version='2026-06', product_images=[ {'uri': 'https://example.com/product-front.jpg'}, {'uri': 'https://example.com/product-side.jpg'}, ], product_info='Organic cold-pressed juice, 12oz glass bottle', user_concept='Bright, refreshing summer campaign with slow dolly moves', duration=10,)
print(task)curl -X POST https://api.dev.runwayml.com/v1/recipes/product_ad \ -d '{ "version": "2026-06", "productImages": [ { "uri": "https://example.com/product-front.jpg" }, { "uri": "https://example.com/product-side.jpg" } ], "productInfo": "Organic cold-pressed juice, 12oz glass bottle", "userConcept": "Bright, refreshing summer campaign with slow dolly moves", "duration": 10 }' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $RUNWAYML_API_SECRET" \ -H "X-Runway-Version: 2024-11-06"The recipe returns a task id. Poll GET /v1/tasks/{id} for status and the output video URL — see Using the API for the task workflow.
Tips for best results
Section titled “Tips for best results”- Show the product from multiple angles. Supply reference images of the product from multiple angles — front, back, and sides — so the model can depict it accurately and consistently throughout the video.
- Use high-resolution product photos with the product clearly isolated from its background.
- Keep the product centered and unobstructed; avoid busy backgrounds in the reference.
- Use
userConceptto describe the scene and direction — let the product images define what the product looks like. - See Reference media guidelines for more.
Reference
Section titled “Reference”Related
Section titled “Related”- Product Campaign Image — still campaign images instead of video
- Product UGC — influencer-style promo videos