Mindket

CGI product ad video built from a hero frame

Newversion 1 · updated

Overview

An n8n workflow that turns one product photo into a 10-second ad in a CGI look. OpenAI describes the product and plans a scene, a Flux model on Runware paints one still of it, and Kling animates that still.

CGI product ad video built from a hero frame 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 into a new workflow there
  • Your own n8n server: the same file, the same steps
  • Ads and social posts: download the clip from its address and post it as an ad, a Reel or a Short
  • A drive or a sheet: add a node after Edit Fields1 to keep the address or save the file

Platform

Connects 3 apps

How it works

Trigger

Photo upload

It starts when someone sends the Image trigger form with:

  • One product photo, in upload product image

Actions

  1. Saves the photo to Dropbox and turns its shared link into a direct one
  2. OpenAI describes the product and picks one CGI ad concept
  3. A second model writes the hero-frame prompt, and a third writes the motion
  4. Flux on Runware paints the hero frame from your photo, and Kling animates it into a 10-second clip

Result

The address of a 10-second CGI-style video ad, made from one product photo

Integrations

What you need before you start.

OpenAI

Image and language models

Reads the photo with chatgpt-4o-latest, then writes the concept, the frame prompt and the motion with three chat models.

NeedsOpenAI API key

Dropbox

File storage

Keeps the photo and gives it the public link that the image model reads.

NeedsDropbox credential, and the same token in two headers

Runware

Image and video generation

Paints the hero frame with a Flux model and animates it with Kling, through one API.

NeedsRunware API key

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
26 steps, starting on a form
AI
4 steps call an AI model: Analyze image, Ad Ideas, Image Prompt and Video Prompt
Sign-ins
Signs in to: Dropbox, OpenAI and Runware
API keys
No API key is left in the file; 2 blanks in it for your own key
Step types
Mindket’s checker reads all 11 of its step types

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

About

What it is

This n8n workflow turns a single product photo into a 10-second video ad that looks rendered in 3D. Thirty nodes run in one line. Three sticky notes name the stages. A form takes the photo, and Dropbox keeps it behind a public link. OpenAI describes the product, picks an ad concept and writes a detailed prompt for one still, the hero frame. A Flux model on Runware paints that frame with your photo as its reference. Kling, also on Runware, then animates it. The run ends with the video’s address.

  1. A form takes one product photo
  2. Dropbox keeps it behind a public link
  3. OpenAI describes it and plans a scene
  4. Flux on Runware paints the hero frame
  5. Kling on Runware animates it for 10 seconds

Who it suits

Shops and brands that want scenes no one could shoot cheaply, such as a perfume bottle standing on a frozen lake. You send only the photo, and the workflow chooses the idea itself. That makes it a source of quick drafts more than a tool for a planned campaign. Skip it when every frame must show the product exactly as photographed. The hero frame is a new picture, made from yours. Your photo itself never appears.

Who uses it, and how
IndustryWho uses itHow they use itExample
Online retailShop ownersSend each new product shot through the form and post the clip as an adA sneaker shop gets a draft ad for every new shoe it lists.
Beauty and skincareBrand marketersTry a few CGI scenes for a launch before paying a 3D studioA skincare brand runs its serum bottle three times and compares the scenes it gets.
Marketing agenciesCreative teamsBring rough CGI drafts to a pitchAn agency runs a client’s three bestsellers and shows the clips at the first meeting.
Consumer electronicsProduct marketersTurn a plain packshot into a moving teaserA headphone maker turns a photo on a white background into a short teaser.

Where to use it

Any n8n that can reach OpenAI, Dropbox and Runware will run it. The finished video stays at an address on Runware, so plan where it goes next.

  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file, the same steps
  • Ads and social posts: download the clip from its address and post it as an ad, a Reel or a Short
  • A drive or a sheet: add a node after Edit Fields1 to keep the address or save the file

Setup

Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Its author puts setup at about 12 minutes.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
OpenAIAn API key. Four nodes use it: the image reader and three chat models
DropboxAn app whose access token may write files and read and create shared links
RunwareAn API key, for both the frame and the video
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add an OpenAI credential and select it in Analyze image, OpenAI Chat Model, OpenAI Chat Model1 and OpenAI Chat Model2.
  3. In Dropbox’s App Console, give your app the files.content.write, sharing.read and sharing.write permissions, then generate an access token.
  4. Add a Dropbox credential with that token and select it in Upload a file.
  5. In HTTP Request1 and HTTP Request6, replace <YOUR_DROPBOX_ACCESS_TOKEN> after Bearer with the same token. The brackets go too.
  6. In Flux Image, kling image to video post and kling imag to video get status, replace <YOUR_RUNWARE_API_KEY> the same way with your Runware key.
  7. Save, send a test photo through the form’s test address, then press Publish.

Tokens from the App Console are short-lived now, so a pasted one stops working after a while. For a setup that lasts, give Upload a file a Dropbox OAuth2 credential. Then set both HTTP Request nodes’ Authentication to it and delete their Authorization header.

How to use it

Open the form from On form submission, attach one product photo in upload product image and send it. The form confirms at once. Behind it the run needs at least three minutes and forty seconds, because it waits ten seconds after the frame and three and a half minutes after asking for the video. Open the run under Executions and read finalVideoURL in Edit Fields1.

What to change for a different result
To changeWhere
The ad ideaThe prompt in Ad Ideas, which picks one concept a run
The frame’s rulesThe message in Image Prompt, such as its 95-word cap and the words it opens and closes with
The motionThe prompt in Video Prompt, one line of at most 40 words
Sizes and lengthwidth and height in Flux Image and kling image to video post, and duration, 10 seconds
Modelsmodel in the two Runware bodies, and the three OpenAI chat models

Example

A photo of a matte black water bottle on a white table goes through the form. The description from Analyze image runs from the label and the lid to the colors and the size. One concept comes back from Ad Ideas: an emoji and a title in curly quotes, then a short scene on a second line. From both, Image Prompt writes the hero-frame prompt, and its parser hands it on under one key:

{
  "Ad Concept 1": "Ultra-realistic 8K CGI render of … --ar 16:9"
}

Flux draws the frame from that prompt and your Dropbox photo. Kling then gets a body of this shape, trimmed here:

[
  {
    "taskType": "videoInference",
    "model": "klingai:5@1",
    "positivePrompt": "<the one-line motion prompt>",
    "frameImages": [{ "inputImage": "<the hero frame’s address>", "frame": "first" }],
    "duration": 10,
    "width": 1280,
    "height": 720,
    "deliveryMethod": "async"
  }
]

Three and a half minutes later, one call to Runware fetches the video’s address. Nothing is downloaded.

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. A credential is a key n8n keeps for you and hands to the node you pick it in. Send a photo from the form’s test address first. Each node then shows what it got and what it sent, so a wrong token or a missing Dropbox permission turns up where it failed.

For experts. Three OpenAI models do the writing. Runware makes the picture and the video, both through one endpoint.

The model behind each step
StepModelWhat to know
Analyze imagechatgpt-4o-latest, reading the photo as base64Code6 names the download product.png first
Ad Ideasgpt-4o-miniIts prompt speaks of four ideas, but the JSON it asks for has one key, Ad Concept 1
Image Promptchatgpt-4o-latest, with a Structured Output ParserEnds its prompt on --ar 16:9, though width and height set the size
Video Promptgpt-4.1Writes the motion from the frame prompt, not from the finished picture
Flux ImageRunware bfl:3@1, a 1024 by 1024 PNGTakes your Dropbox photo as its reference image
kling image to video postRunware klingai:5@1, 1280 by 720, 10 secondsAsynchronous, so a later getResponse call fetches the result

The frame is square and the video is not, so Kling starts from a square picture. Dropbox’s link ends in raw=1 after Code4, which lets Runware read the file itself.

Good to know

Each run costs money on two services. Two steps can fail quietly.

  • Billing: OpenAI bills four model calls a run, and Runware bills the frame and the video
  • The concept: Ad Ideas has no output parser, so its answer arrives as text, and Image Prompt looks up Ad Concept 1 inside it as if it were JSON. The scene then rests on the description alone. Switch on Require Specific Output Format in Ad Ideas and attach a parser with the same example as Structured Output Parser1
  • One status check: a video still rendering after the wait leaves finalVideoURL empty, so lengthen Wait or loop back to it until a videoURL arrives
  • Quotes: both prompts sit between quotes in the Runware bodies, so a straight double quote breaks the request. Wrap the expression in JSON.stringify in place of the quotes
  • The original copy: its Upload a file cleaned names with /s+/g, which hits the letter s, and the line breaks in the Ad Ideas prompt had lost their backslashes. This copy has them back
  • Your photo: it stays at the top of your Dropbox with a public link, and it also goes to OpenAI and Runware
  • Open form: once the workflow is published, anyone with the form’s address can start a run on your keys, so turn on the form trigger’s basic authentication or keep the address to yourself
  • Credentials: the JSON holds none, and nothing from its author’s account

README and files

README

CGI product ad video built from a hero frame

An n8n workflow. Send one product photo through its form, and it hands back the address of a 10-second video ad in a CGI
look. OpenAI plans a scene around the product, a Flux model on Runware paints one still of it, and Kling on Runware
animates that still.

What is inside

  • workflow.json: the workflow as n8n exports it, 30 nodes and three sticky notes that label its stages. It holds no
    credential, and the tokens in its headers are placeholders.
  • README.md: these notes.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • An OpenAI API key.
  • A Dropbox app with an access token. Give the app the files.content.write, sharing.read and sharing.write
    permissions before you generate the token.
  • A Runware API key.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Add an OpenAI credential and select it in Analyze image, OpenAI Chat Model, OpenAI Chat Model1 and
    OpenAI Chat Model2.
  3. Add a Dropbox credential with your access token and select it in Upload a file.
  4. In HTTP Request1 and HTTP Request6, replace <YOUR_DROPBOX_ACCESS_TOKEN> after Bearer with the same token.
    The brackets go too.
  5. In Flux Image, kling image to video post and kling imag to video get status, replace <YOUR_RUNWARE_API_KEY>
    after Bearer with your Runware key.
  6. Save, send a test photo through the form's test address, then press Publish at the top of the canvas (or Shift+P).

Tokens generated in Dropbox's App Console are short-lived now, so a pasted one stops working after a while. For a setup
that keeps running, give Upload a file a Dropbox OAuth2 credential, and in the two HTTP Request nodes set
Authentication to that credential and delete the Authorization header.

How a run goes

  1. On form submission takes one file in upload product image. Code3 renames the file's field to product_image.
  2. Upload a file saves it at the top of your Dropbox, with spaces in the name turned into underscores.
  3. HTTP Request1 asks Dropbox for a shared link to it. When there is none, If sends the run to HTTP Request6,
    which makes a public one. Code4 swaps dl=0 for raw=1, so the link serves the file itself.
  4. HTTP Request5 downloads the photo from that link, Code6 names it product.png, and Analyze image describes the
    product's label, lid, material, logo, colors, shape and size.
  5. Ad Ideas writes one ad concept: an emoji, a title in curly quotes and a short scene. Next, Image Prompt turns the
    description and the concept into one hero-frame prompt of at most 95 words, and its parser returns it under the key
    Ad Concept 1.
  6. Video Prompt writes a one-line motion prompt of at most 40 words from that frame prompt.
  7. Flux Image asks Runware for a 1024 by 1024 PNG from the frame prompt, with your Dropbox photo as the reference image.
    Wait4 pauses ten seconds, and Edit Fields2 keeps the picture's address.
  8. kling image to video post asks Runware for a 10-second, 1280 by 720 video that starts on that picture. Wait pauses
    three and a half minutes, kling imag to video get status asks for the result once, and Edit Fields1 stores the
    video's address as finalVideoURL.

Change the look

  • The idea: the prompt in Ad Ideas. It picks the concept itself, so each run of the same photo can bring a new scene.
  • The frame's rules: the message in Image Prompt, such as the word cap and the words it opens and closes with.
  • The motion: the prompt in Video Prompt.
  • Sizes and length: width and height in Flux Image and kling image to video post, and duration in the second.
  • Models: model in the two Runware bodies, bfl:3@1 for the frame and klingai:5@1 for the video, and the three OpenAI
    chat models.

Good to know

  • Ad Ideas has no output parser, so its answer arrives as text, and Image Prompt looks up Ad Concept 1 inside it as
    if it were JSON. The scene then rests on the product description alone. To pass the concept on, switch on Require
    Specific Output Format in Ad Ideas and attach a Structured Output Parser with the same example as
    Structured Output Parser1.
  • The status is checked once. A video that takes longer than the wait leaves finalVideoURL empty, so lengthen Wait
    or loop back to it until the response holds a videoURL.
  • Both prompts are pasted into the Runware bodies between quotes, so a straight double quote in one breaks the request.
    Wrapping the expression in JSON.stringify in place of the quotes avoids it.
  • The frame is square and the video 1280 by 720, so Kling starts from a square picture.
  • The original copy's Upload a file cleaned file names with /s+/g, which hits the letter s, and the line breaks in the
    Ad Ideas prompt had lost their backslashes. This copy has them back.
  • Every run spends money: OpenAI bills four model calls, and Runware bills the frame and the video.
  • Each photo stays in your Dropbox with a public link that anyone holding it can open. It also goes to OpenAI and Runware.
  • Once the workflow is published, anyone with the form's address can start a run on your keys. The form trigger can ask
    for a username and password.
  • chatgpt-4o-latest is a moving alias that OpenAI may retire. If a node reports it gone, pick another vision model there.
Files
README.md  5 KB
workflow.json  27 KB

2 files, 32 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

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

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