AI Video Generation API for Candle and Home Fragrance Brands

Oct 6, 2026·7 min read

A candle brand has a clean studio photo of its new jar candle — soy wax, cotton wick, label centered — but the product page and a round of paid social creative call for short clips the studio can't shoot on demand: a flame flickering in a dim room, wax pooling as it melts, a diffuser releasing a visible mist. Booking a lifestyle videographer every time a new scent launches costs more than most candle brands budget for a seasonal drop, and a small home-fragrance brand often doesn't have in-house video capacity at all. Turning the existing jar or diffuser photo into a flame or pour clip via API answers "what does this actually look like burning" without a studio day.

Direct answer: GenRelay's image-to-video models animate an existing candle, jar, or diffuser photo into a short clip with described motion — a flame flicker, a wax pour, a mist release, a room glow — billed either per second or per generation, and a single 5-second clip costs between $0.05 and $0.90 depending on model and resolution, cheap enough to generate a clip per scent before committing to a real video shoot.

How Much Does a Candle Product Clip Cost?

Cost depends entirely on billing model and resolution, not on how much flame or mist motion the described clip involves. As of October 2026, GenRelay's video pricing: Grok Imagine 1.0 (text-to-video) $0.010/second, Grok Imagine 1.5 (image-to-video) $0.022/second, Veo 3.1 Lite $0.060/second at 720p or $0.120/second at 1080p (and $0.180/second at 4K), and Gemini Omni Flash a flat $0.10 per generation at 720p or $0.15 at 1080p regardless of length.

Model Billing 5s clip cost 8s clip cost Best for
Grok Imagine 1.5 (i2v) Per second $0.11 $0.176 Animating an existing jar or diffuser photo into a flame or mist clip
Grok Imagine 1.0 (t2v) Per second $0.05 $0.08 Generating room-ambience B-roll from a text description, no source photo
Veo 3.1 Lite, 720p Per second $0.30 $0.48 Higher-fidelity flame and wax-pour motion, close-up texture shots
Veo 3.1 Lite, 1080p Per second $0.60 $0.96 Hero shots for the product page or a paid ad
Omni Flash, 720p Per generation $0.10 $0.10 Fixed-length clips regardless of duration

For a candle that needs to end up as a flicker-and-glow clip, Grok Imagine 1.5 is the practical default — it takes the studio jar photo as input and holds the glass shape and label consistent while generating the flame, wax motion, and surrounding room glow, at a fraction of Veo 3.1 Lite's per-second cost. Veo 3.1 Lite earns its higher price for a small number of hero clips where flame realism and camera movement quality matter more than cost per clip — a homepage banner clip, for instance, versus a dozen scent-launch social clips.

How Do I Animate a Candle Photo Into a Flame or Pour Clip?

Submit the source photo and a motion prompt describing both the product's motion and the camera movement — image-to-video jobs are asynchronous, so the response returns a job ID to poll rather than a direct result:

import requests
import time

API_KEY = "YOUR_KEY"
BASE = "https://genrelay.ai/v1"

with open("candle_studio.jpg", "rb") as f:
    r = requests.post(
        f"{BASE}/videos/generations",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"image": f},
        data={
            "model": "grok-imagine-1.5",
            "prompt": (
                "A single candle flame flickering gently in a dim room, "
                "warm glow reflecting off the glass jar, soft shadows "
                "moving on the wall behind it, slow push-in camera "
                "movement."
            ),
            "duration": 5,
        },
    )
job_id = r.json()["id"]

while True:
    status = requests.get(
        f"{BASE}/videos/generations/{job_id}",
        headers={"Authorization": f"Bearer {API_KEY}"},
    ).json()
    if status["state"] == "completed":
        video_url = status["output_url"]
        break
    if status["state"] == "failed":
        raise RuntimeError(status.get("error"))
    time.sleep(3)

How Do I Generate Clips Across a Full Scent Line?

Batch the same source photo against a list of motion prompts, submitting jobs concurrently and polling each one, rather than running the loop sequentially and waiting on each clip before submitting the next:

import concurrent.futures

variants = [
    "candle flame flickering gently, warm glow on the jar glass",
    "wax pooling and melting around the wick, close-up texture shot",
    "reed diffuser releasing a visible mist, soft backlit room",
]

def submit_and_wait(prompt):
    with open("candle_studio.jpg", "rb") as f:
        r = requests.post(
            f"{BASE}/videos/generations",
            headers={"Authorization": f"Bearer {API_KEY}"},
            files={"image": f},
            data={"model": "grok-imagine-1.5", "prompt": prompt, "duration": 5},
        )
    job_id = r.json()["id"]
    while True:
        status = requests.get(
            f"{BASE}/videos/generations/{job_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
        ).json()
        if status["state"] == "completed":
            return status["output_url"]
        if status["state"] == "failed":
            raise RuntimeError(status.get("error"))
        time.sleep(3)

with concurrent.futures.ThreadPoolExecutor(max_workers=3) as pool:
    clips = list(pool.map(submit_and_wait, variants))

Three 5-second clips at Grok Imagine 1.5's $0.022/second rate cost $0.33 total — less than the cost of a single stock video license, for a set of clips that actually show the exact jar and label shipping to customers.

What Does a Full Scent Line Launch Cost?

A candle brand with 5 scents needing 1 flame or mist clip each — 5 clips total — at Grok Imagine 1.5's 5-second rate costs $0.55 for the full batch. Upgrading to Veo 3.1 Lite at 720p for the same 5 clips costs $1.50; at 1080p for a small set of 2 hero scents (2 clips) it costs $1.20, reserved for the highest-traffic product pages rather than the full line.

Scope Clips Model Total cost
5 scents × 1 flame/mist clip 5 Grok Imagine 1.5, 5s $0.55
Same line, higher fidelity 5 Veo 3.1 Lite 720p, 5s $1.50
2 hero scents, 1080p hero clip 2 Veo 3.1 Lite 1080p, 5s $1.20
5 scents, 1 clip each 5 Omni Flash 720p (flat) $0.50

Omni Flash's flat per-generation rate makes sense when one representative flame or mist clip per scent is enough — a single "here's what it looks like lit" clip per product for a launch page — while per-second models earn their cost when a scent needs a longer hero clip or more elaborate wax or mist motion.

FAQ

Can I generate room-ambience B-roll from text only, without a product photo?
Yes — Grok Imagine 1.0 generates from a text prompt alone at $0.010/second, but without a source photo the model has no exact jar or diffuser to match, so it works for general ambience footage rather than clips depicting your actual SKU.

Does the API support longer clips for a hero video?
Duration is set per request up to each model's maximum; check the /videos/generations endpoint docs for current per-model duration limits, and expect cost to scale linearly for per-second models.

What's the difference between per-second and per-generation billing?
Per-second models (Grok, Veo 3.1 Lite) charge proportional to clip duration — cheaper for short clips, more expensive as duration grows. Per-generation models (Omni Flash) charge a flat fee per clip regardless of duration, which is cheaper for longer clips and simpler to budget per scent.

Does the video include audio, like a crackle or pour sound?
Veo 3.1 supports synchronized audio generation on some modes; see the Veo 3.1 audio API guide for details. Grok Imagine and Omni Flash clips are silent.

How do I handle a failed generation job?
Check the state field in the polling response — a failed state includes an error field describing the cause. Retry with a simplified prompt if the failure relates to prompt content rather than a transient server error.


See the image-to-video pipeline guide for the full async pattern, or the AI skincare photography API guide for an image-side equivalent of this workflow.

Related posts

Join our DiscordAI Video Generation API for Candle and Home Fragrance Brands — GenRelay