SeedanceSeedance 2.0 Mini API
← Back to blog
Seedance 2.0 MiniE-commerceVideo ProductionAutomation

Seedance 2.0 Mini for E-commerce: Generate Product Videos at Scale

How e-commerce teams use Seedance 2.0 Mini API to generate hundreds of product videos per day — from single SKU shots to full creative variant libraries.

Product video is the highest-converting content format in e-commerce — and the most expensive to produce at scale. A single SKU might need a 360° rotation, a lifestyle context shot, and three platform-specific aspect ratio cuts. Multiply that across 500 SKUs and traditional production becomes impractical.

Seedance 2.0 Mini changes the equation. At approximately half the cost of the Standard tier and 6× faster than the baseline, it makes per-SKU video generation economically viable.

The E-commerce Use Case

A typical product video pipeline with Mini:

  1. Pass a product image as a reference input
  2. Write a prompt describing the desired camera motion and context
  3. Generate variants — 360° rotation, lifestyle shot, close-up detail
  4. Output to multiple aspect ratios — 16:9 for YouTube, 9:16 for TikTok/Reels, 1:1 for feed

All of this runs via API. No production crew, no scheduling, no editing software.

Generating a Product Video from an Image Reference

import requests
import time

headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_ATLASCLOUD_API_KEY"
}

def generate_video(prompt: str, image_url: str = None, width: int = 1280, height: int = 720) -> str:
    payload = {
        "model": "bytedance/seedance-2.0/text-to-video",
        "prompt": prompt,
        "width": width,
        "height": height,
        "duration": 6,
        "fps": 24,
    }
    if image_url:
        payload["image_url"] = image_url

    r = requests.post(
        "https://api.atlascloud.ai/api/v1/model/generateVideo",
        headers=headers, json=payload
    )
    r.raise_for_status()
    pid = r.json()["data"]["id"]

    while True:
        result = requests.get(
            f"https://api.atlascloud.ai/api/v1/model/prediction/{pid}",
            headers={"Authorization": "Bearer YOUR_ATLASCLOUD_API_KEY"}
        ).json()
        status = result["data"]["status"]
        if status in ["completed", "succeeded"]:
            return result["data"]["outputs"][0]
        elif status == "failed":
            raise Exception(result["data"].get("error", "Generation failed"))
        time.sleep(2)


PRODUCT_IMAGE = "https://your-cdn.com/product-sneaker.jpg"

# 360° rotation
rotation_url = generate_video(
    "The sneaker rotates 360° on a clean white surface, soft studio lighting, slow motion",
    image_url=PRODUCT_IMAGE
)

# Lifestyle context
lifestyle_url = generate_video(
    "The sneaker placed on an outdoor wooden deck at golden hour, natural lighting, wide shot",
    image_url=PRODUCT_IMAGE
)

# Vertical for TikTok / Reels
vertical_url = generate_video(
    "Close-up detail shot of the sneaker sole texture, dramatic macro lighting",
    image_url=PRODUCT_IMAGE,
    width=720, height=1280
)

print(f"360° rotation: {rotation_url}")
print(f"Lifestyle: {lifestyle_url}")
print(f"Vertical: {vertical_url}")

Note: Use "model": "bytedance/seedance-2.0-mini/text-to-video" when Seedance 2.0 Mini is generally available on the API.

Scaling to a Full Catalog

For catalog-scale generation, run SKUs in parallel to maximize throughput:

from concurrent.futures import ThreadPoolExecutor, as_completed

# Your product catalog
products = [
    {"sku": "SNK-001", "image": "https://cdn.example.com/snk-001.jpg", "name": "Air Runner Pro"},
    {"sku": "SNK-002", "image": "https://cdn.example.com/snk-002.jpg", "name": "Trail Blazer X"},
    {"sku": "SNK-003", "image": "https://cdn.example.com/snk-003.jpg", "name": "Urban Stride"},
]

def generate_product_set(product: dict) -> dict:
    results = {}
    prompts = {
        "rotation": f"The {product['name']} rotates 360° on white surface, studio lighting",
        "lifestyle": f"The {product['name']} in an outdoor lifestyle setting, natural light",
    }
    for variant, prompt in prompts.items():
        results[variant] = generate_video(prompt, image_url=product["image"])
    return {"sku": product["sku"], "videos": results}

with ThreadPoolExecutor(max_workers=3) as executor:
    futures = [executor.submit(generate_product_set, p) for p in products]
    for future in as_completed(futures):
        result = future.result()
        print(f"✓ {result['sku']}: {result['videos']}")

Cost per SKU

At ~$0.07/sec for Mini (720p), a 6-second clip costs approximately $0.42. A full 3-variant set (rotation + lifestyle + vertical) runs about $1.26 per SKU.

Catalog sizeCost per SKUTotal
100 SKUs~$1.26~$126
500 SKUs~$1.26~$630
1,000 SKUs~$1.26~$1,260

Compare to traditional product video production at $200–500 per SKU.

Prompt Tips for Product Video

  • Describe the camera, not the product: "slow 360° rotation" beats "show all sides of the product"
  • Specify lighting explicitly: "soft studio lighting" vs "dramatic side lighting" gives very different results
  • Use motion verbs: "rotates", "glides", "zooms in", "pulls back" — the model responds well to specific camera instructions
  • Keep it under 30 words: Longer prompts don't always produce better results for product shots; clarity beats verbosity

Getting Started

Create a free Atlas Cloud account to start generating product videos. New accounts include free credits — no credit card required.

See the pricing page for per-second rates and volume estimates.