Mindket

Fast-cut 15-shot product commercial from one photo

Newversion 1 · updated

Overview

An n8n workflow that turns a product photo and its name into a 15-second commercial of fifteen one-second shots. Gemini writes the storyboard and a voiceover that ends on the name, and Seedance 2.0 on Kie.ai renders it.

Fast-cut 15-shot product commercial from one photo is an n8n workflow in the Marketing & SEO category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • n8n Cloud: import the file, add one credential and two keys, then publish
  • Your own n8n server: the same file and steps
  • Reels, Shorts and TikTok: choose Portrait in the form for a vertical clip
  • A drive or a social app: add a node after downloadAdVideo to save or post the clip

Platform

Connects 3 apps

How it works

Trigger

Commercial Ad Agent form

It starts when someone sends the form with:

  • The product name
  • A product photo, as JPG, PNG or WebP
  • Screen resolution, a tall or a wide frame

Actions

  1. Gemini 2.5 Flash describes the product in the photo in one line
  2. Gemini writes a storyboard of fifteen one-second shots that ends on the name and a tagline
  3. The photo is uploaded to Cloudinary for a public address
  4. Kie.ai renders a 15-second Seedance 2.0 clip from the storyboard and the photo
  5. The workflow checks every five minutes and downloads the clip once it is ready

Result

A 15-second commercial in a tall or wide frame, cut to one shot a second, in the run’s execution data

Integrations

What you need before you start.

Google Gemini

Image analysis and storyboard

Runs Gemini 2.5 Flash twice: once to describe the photo, once to write the fifteen shots and the voiceover.

NeedsGemini API key

Cloudinary

Media storage

Takes the photo through an unsigned upload and returns the public address Kie.ai reads.

NeedsA cloud name and an Unsigned upload preset

Kie.ai

Video generation

Renders the clip with Seedance 2.0 and reports the task’s state until the video is ready.

NeedsKie.ai API key, typed into two headers, and credit

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
10 steps, starting on a form
AI
2 steps call an AI model: analyzeProductImage and Message a model
Sign-ins
Signs in to: Google Gemini and Kie.ai
API keys
No API key is left in the file; 1 blank in it for your own key
Step types
Mindket’s checker reads all 6 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow turns one product photo and the product’s name into a 15-second commercial with a fast cut, one shot each second. A form takes the name, the photo and a tall or wide frame. Gemini 2.5 Flash describes the product in a line, then writes a storyboard of fifteen shots with a short voiceover that ends on the name and a tagline. Cloudinary hosts the photo. Seedance 2.0 on Kie.ai renders the clip from the storyboard, with the photo as its reference. Ten nodes run it.

Who it suits

Shop owners, small brands and the agencies behind their ads who want a quick teaser with a beat to it, not one slow camera move. Every storyboard follows the same arc: a dark tease, close-ups of the material, a person using it, then the name. Skip it if you want a calm product shot or a longer film.

Who uses it, and how
IndustryWho uses itHow they use itExample
Beauty and skincareBrand marketersSend each new bottle shot with its full product nameA serum brand gets a teaser that closes on the serum’s name over a clean shot.
Footwear and fashionOnline shop ownersPick Portrait for Reels and Shorts and the wide frame for the product pageA sneaker shop posts a vertical cut of a new running shoe the day it arrives.
Consumer electronicsSmall hardware makersRead the storyboard as a shot list before the render runsA headphone maker checks the fifteen shots in the run and changes the prompt for the next one.
Marketing agenciesSocial media managersRun one photo for each product in a client’s rangeAn agency turns a client’s new candle range into one teaser for each scent.

You need some n8n and three accounts: Google AI Studio for Gemini, Cloudinary and Kie.ai, with credit on Kie.ai. Its author puts setup at about 11 minutes. One node differs from the original copy, because the video model it named has been retired.

Where to use it

Any n8n that can reach Google’s Gemini API, Cloudinary and Kie.ai will run it. Nothing is posted for you. The clip ends up inside the run, so plan where it goes next.

  • n8n Cloud: import the file, add one credential and two keys, then publish
  • Your own n8n server: the same file and steps
  • Reels, Shorts and TikTok: choose Portrait in the form for a vertical clip
  • A drive or a social app: add a node after downloadAdVideo to save or post the clip

Setup

Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Have the Cloudinary preset ready before you import it.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
Google AI StudioA Gemini API key, for a Google Gemini (PaLM) API credential
CloudinaryYour cloud name and an upload preset whose signing mode is Unsigned
Kie.aiAn API key, and credit for one Seedance clip on each run
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add a Google Gemini (PaLM) API credential and select it in analyzeProductImage and Message a model.
  3. If your Gemini key is new, pick models/gemini-3.8-flash as the model in both of those nodes.
  4. In uploadImageCloudinary, put your cloud name in the address where it says <YOUR_CLOUD_NAME>. Swap YOUR_PRESET_NAME and YOUR_FOLDER_NAME for your preset and a folder.
  5. In submitTask and checkStatus, replace <YOUR_KIE_API_KEY> in the Authorization header with your key. The brackets go too, so the header reads Bearer, a space and the key.
  6. Save, open the test address of On form submission and send one photo. Press Publish when the clip looks right.

OpenAI’s deprecations page lists Sora 2 as removed from its API on 24 September 2026. On 2 November 2026, Kie.ai’s page for sora-2-image-to-video answered 404 Not Found. So submitTask here asks for bytedance/seedance-2 on the same Kie.ai endpoint, with the original’s choices carried over: 15 seconds, 9:16 or 16:9, and the photo as a reference image.

Google’s deprecations page, read the same day, sets no shutdown date for gemini-2.5-flash. It does limit the 2.5 models to accounts that have used them before, and names Gemini 3.8 Flash for new projects. That is why step 3 is there.

How to use it

Open the form, type the full product name, attach a JPG, PNG or WebP photo and pick a frame in Screen resolution. The form confirms at once. Behind it, the two Gemini calls write the storyboard, the photo goes to Cloudinary and Kie.ai starts the render. The workflow checks on the render every five minutes. Expect a wait. The clip lands in the run’s execution data as a file, so open the run under Executions to watch it.

What to change for a different result
To changeWhere
The arc, pace and voiceover rulesThe system message of Message a model, which gives each shot one second
The look of every shotThe tech specs line in the same system message, added to each shot’s prompt
Frame and lengthaspect_ratio and duration in the body of submitTask. Seedance takes 4 to 15 seconds
Soundgenerate_audio in the same body, switched on here
Resolutionresolution in the same body, 720p here, from 480p up to 4k

Example

You send the form with these answers.

Product name: Lumen Glow Vitamin C Serum 30ml
Upload product image: a photo of an amber glass dropper bottle
Screen resolution: Portrait

analyzeProductImage answers with one line about the bottle. Message a model then writes the storyboard in this shape, with most of it cut:

**Global Visual Anchor:** <one line on the bottle, used in every shot>

**Shot 1**
*   **Visual Prompt:** <the anchor> + <movement> + <light> + <tech specs>
*   **Audio:** VO: "<one mood word>"

…

**Shot 15**
*   **Visual Prompt:** <the name over the anchor, then the tagline>
*   **Audio:** VO: "<a tagline>"

The form asks for no tagline, so the model writes one. Kie.ai renders a tall clip from it, and downloadAdVideo fetches the clip from the address in resultUrls.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. The bottom row loops: Wait hands on to checkStatus, and Switch sends the run back to Wait while Kie.ai is still busy. Send one photo from the test address first. Every node then shows what it received and what it sent, which is where a wrong preset, a refused key or an empty storyboard turns up.

For experts. Two Gemini calls plan. Kie.ai renders, and the workflow polls it instead of holding one call open.

The nodes that need care
NodeWhat it doesWhat to know
getBinaryFileCode that takes the photo back from the formThe Gemini steps hand on text only, so the upload needs the file again
uploadImageCloudinaryAn unsigned multipart uploadSends the form field Upload_product_image as file and returns secure_url
submitTaskPOST to Kie.ai’s jobs/createTaskThe storyboard goes in through JSON.stringify, so its quotes and line breaks survive
WaitVersion 1.1, unit minutes, no amountTakes that version’s default amount of 5, so each check comes five minutes after the last
SwitchReads data.stateThe fail output has no node after it, so a failed render ends the run without a word

Good to know

Each run costs money at Kie.ai. The form and the photo are both open to anyone who has their address.

  • Billing: Kie.ai bills each clip by its length, at the prices on its pricing page. The two Gemini calls cost little next to it. Test with one photo
  • Open form: once published, anyone with the form’s address can start a render on your Kie.ai credit
  • Public photo: an unsigned preset leaves the photo readable by anyone with its Cloudinary address
  • Silent failure: add a node on the fail output of Switch if you want to hear about a failed render
  • Sound: Seedance makes sound with the picture by default. How closely it voices the storyboard’s lines is up to the model
  • Your data: the photo and the product name go to Google, Cloudinary and Kie.ai
  • Your key: the Kie.ai key sits in two headers, so take it out before you share the workflow
  • Credentials: the JSON holds none

README and files

README

Fast-cut 15-shot product commercial from one photo

An n8n workflow that turns a product photo and the product's name into a 15-second commercial, cut to one shot a second.
Gemini describes the product, then writes a storyboard of fifteen shots and a short voiceover that ends on the name and
a tagline. Cloudinary hosts the photo, and Seedance 2.0 on Kie.ai renders the clip from the storyboard with the photo as
its reference.

What is inside

  • workflow.json: the workflow as n8n exports it, ten nodes and no sticky notes. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • The video model. The original copy asked Kie.ai for sora-2-image-to-video. OpenAI's deprecations page lists Sora 2
    as removed from its API on 24 September 2026. On 2 November 2026, Kie.ai's documentation page for that model
    answered 404 Not Found, and its index listed no Sora model. The call could no longer run, so submitTask now asks
    for bytedance/seedance-2 on the same jobs/createTask endpoint. The original's choices are carried over:
  • n_frames: "15" became duration: 15. Seedance takes 4 to 15 seconds.
  • The two frames became 9:16 and 16:9. The original also mapped two HD choices the form never offers, so they
    are gone.
  • image_urls became reference_image_urls, so the photo guides every shot instead of being the first frame.
  • remove_watermark is gone, since Seedance has no such field. resolution is set to 720p and generate_audio
    to true, the model's own defaults written out.
  • The Kie.ai key in the headers of submitTask and checkStatus was Bearer <token>. It now reads
    Bearer <YOUR_KIE_API_KEY>.
  • The Gemini credential is gone from both Gemini nodes.

checkStatus, Switch and downloadAdVideo are unchanged. Kie.ai's task page lists the same states and the same
resultJson with resultUrls for every model on that endpoint.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • A Gemini API key from Google AI Studio.
  • A Cloudinary account, its cloud name and an upload preset whose signing mode is Unsigned.
  • A Kie.ai API key, with credit for one Seedance clip on each run.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Add a Google Gemini (PaLM) API credential and select it in analyzeProductImage and Message a model.
  3. If your Gemini key is new, pick models/gemini-3.8-flash as the model in both of those nodes. Google's deprecations
    page, read on 2 November 2026, sets no shutdown date for gemini-2.5-flash, but it limits the 2.5 models to
    accounts that have used them before and names Gemini 3.8 Flash for new projects.
  4. In uploadImageCloudinary, put your cloud name in the address where it says <YOUR_CLOUD_NAME>. Swap
    YOUR_PRESET_NAME for your preset and YOUR_FOLDER_NAME for a folder.
  5. In submitTask and checkStatus, replace <YOUR_KIE_API_KEY> in the Authorization header with your key. The
    brackets go too, so the header reads Bearer, a space and the key.
  6. Save, open the test address of On form submission and send one photo. Press Publish when the clip looks right.

How a run goes

  1. On form submission shows the Commercial Ad Agent form: Product name, Upload product image (JPG, PNG or WebP)
    and Screen resolution (Portrait or a wide frame), all three required. It confirms at once and the run goes on behind it.
  2. analyzeProductImage asks gemini-2.5-flash for a one-line description of the product in the photo.
  3. Message a model sends the product name and that line to gemini-2.5-flash with a long system message. It plays a
    director of photography and writes fifteen shots of one second each: a dark tease, close-ups of the material, a
    person using the product, then the name and a tagline. Each shot has a visual prompt and an audio line.
  4. getBinaryFile takes the photo back from the form, since the Gemini nodes passed on text only.
  5. uploadImageCloudinary uploads it with your unsigned preset and gets its secure_url.
  6. submitTask sends the whole storyboard, the photo's address, the frame and the length to Kie.ai.
  7. Wait pauses five minutes. It is version 1.1 with the unit set to minutes and no amount, so it takes the version's
    default amount of 5. checkStatus then asks for the task.
  8. Switch reads data.state. success goes on to downloadAdVideo, and waiting, queuing or generating go back
    to Wait. fail has no node after it.
  9. downloadAdVideo fetches the clip from the first address in resultUrls. It stays in the run as a file.

Change the look

  • The arc, the pace and the voiceover: the system message of Message a model. The ending rule asks for the name and a
    tagline. The form has no tagline field, so the model writes one. To use your own, add a field to the form and a
    Tagline: line to the text of Message a model.
  • The look of every shot: the tech specs line in the same message, which is added to every visual prompt.
  • Frame, length and quality: aspect_ratio, duration and resolution in the body of submitTask. Seedance takes
    480p, 720p, 1080p or 4k.
  • Sound: generate_audio in the same body.
  • How often it checks: Wait. Set an amount of 1 or 2 for a shorter wait between checks.

Good to know

  • Kie.ai bills each clip by its length, at the prices on its pricing page. The two Gemini calls cost
    little next to it. Try one photo before a batch.
  • Once the workflow is published, anyone with the form's address can start a render on your Kie.ai credit.
  • An unsigned Cloudinary preset leaves the photo readable by anyone with its address.
  • A render that fails ends the run without a message. Add a node on the fail output of Switch to be told.
  • Seedance makes sound with the picture by default. How closely it voices the storyboard's audio lines is up to the
    model, so listen before you post.
  • The photo and the product name go to Google, Cloudinary and Kie.ai.
  • The Kie.ai key sits in two headers, so take it out before you share the workflow.
Files
README.md  6 KB
workflow.json  16 KB

2 files, 22 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

Bonsai-27B-GGUF

lmstudio-community · Kit

A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…

New

Runs DeepSeek-V4.1-Flash-1017 as a 2.9 bits-per-weight EXL3 quantization, a 196 GiB copy for people serving large models on their own hardware. Perplexity stay…

New

MusicGen Small

facebook · Kit

Generates short music clips from a text description or an audio prompt, in the small checkpoint of facebook's MusicGen. It suits developers and music hobbyists…

New

Similar in Marketing & SEO

See all in Marketing & SEO

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Pixel Art XL

nerijs · Kit

A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…

New

Licon MSR for LTX-2.5

LiconStudio · Kit

Keeps characters, clothing, objects and backgrounds consistent in generated video by feeding the model up to five reference images. A LoRA for LTX-2.5 in Comfy…

New