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…
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.
Commercial Ad Agent form
It starts when someone sends the form with:
A 15-second commercial in a tall or wide frame, cut to one shot a second, in the run’s execution data
What you need before you start.
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
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
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
Checked by Mindket on 13 Nov 2026
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.
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.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Beauty and skincare | Brand marketers | Send each new bottle shot with its full product name | A serum brand gets a teaser that closes on the serum’s name over a clean shot. |
| Footwear and fashion | Online shop owners | Pick Portrait for Reels and Shorts and the wide frame for the product page | A sneaker shop posts a vertical cut of a new running shoe the day it arrives. |
| Consumer electronics | Small hardware makers | Read the storyboard as a shot list before the render runs | A headphone maker checks the fifteen shots in the run and changes the prompt for the next one. |
| Marketing agencies | Social media managers | Run one photo for each product in a client’s range | An 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.
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.
Portrait in the form for a vertical clipdownloadAdVideo to save or post the clipGet 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.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| Google AI Studio | A Gemini API key, for a Google Gemini (PaLM) API credential |
| Cloudinary | Your cloud name and an upload preset whose signing mode is Unsigned |
| Kie.ai | An API key, and credit for one Seedance clip on each run |
workflow.json.Google Gemini (PaLM) API credential and select it in analyzeProductImage and Message a model.models/gemini-3.8-flash as the model in both of those nodes.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.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.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.
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.
| To change | Where |
|---|---|
| The arc, pace and voiceover rules | The system message of Message a model, which gives each shot one second |
| The look of every shot | The tech specs line in the same system message, added to each shot’s prompt |
| Frame and length | aspect_ratio and duration in the body of submitTask. Seedance takes 4 to 15 seconds |
| Sound | generate_audio in the same body, switched on here |
| Resolution | resolution in the same body, 720p here, from 480p up to 4k |
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.
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.
| Node | What it does | What to know |
|---|---|---|
getBinaryFile | Code that takes the photo back from the form | The Gemini steps hand on text only, so the upload needs the file again |
uploadImageCloudinary | An unsigned multipart upload | Sends the form field Upload_product_image as file and returns secure_url |
submitTask | POST to Kie.ai’s jobs/createTask | The storyboard goes in through JSON.stringify, so its quotes and line breaks survive |
Wait | Version 1.1, unit minutes, no amount | Takes that version’s default amount of 5, so each check comes five minutes after the last |
Switch | Reads data.state | The fail output has no node after it, so a failed render ends the run without a word |
Each run costs money at Kie.ai. The form and the photo are both open to anyone who has their address.
fail output of Switch if you want to hear about a failed renderAn 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.
workflow.json: the workflow as n8n exports it, ten nodes and no sticky notes. It holds no credential.README.md: these notes.sora-2-image-to-video. OpenAI's deprecations page lists Sora 2submitTask now asksbytedance/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.9:16 and 16:9. The original also mapped two HD choices the form never offers, so theyimage_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_audiotrue, the model's own defaults written out.submitTask and checkStatus was Bearer <token>. It now readsBearer <YOUR_KIE_API_KEY>.checkStatus, Switch and downloadAdVideo are unchanged. Kie.ai's task page lists the same states and the sameresultJson with resultUrls for every model on that endpoint.
workflow.json.Google Gemini (PaLM) API credential and select it in analyzeProductImage and Message a model.models/gemini-3.8-flash as the model in both of those nodes. Google's deprecationsgemini-2.5-flash, but it limits the 2.5 models touploadImageCloudinary, put your cloud name in the address where it says <YOUR_CLOUD_NAME>. SwapYOUR_PRESET_NAME for your preset and YOUR_FOLDER_NAME for a folder.submitTask and checkStatus, replace <YOUR_KIE_API_KEY> in the Authorization header with your key. TheOn form submission and send one photo. Press Publish when the clip looks right.On form submission shows the Commercial Ad Agent form: Product name, Upload product image (JPG, PNG or WebP)Screen resolution (Portrait or a wide frame), all three required. It confirms at once and the run goes on behind it.analyzeProductImage asks gemini-2.5-flash for a one-line description of the product in the photo.Message a model sends the product name and that line to gemini-2.5-flash with a long system message. It plays agetBinaryFile takes the photo back from the form, since the Gemini nodes passed on text only.uploadImageCloudinary uploads it with your unsigned preset and gets its secure_url.submitTask sends the whole storyboard, the photo's address, the frame and the length to Kie.ai.Wait pauses five minutes. It is version 1.1 with the unit set to minutes and no amount, so it takes the version'scheckStatus then asks for the task.Switch reads data.state. success goes on to downloadAdVideo, and waiting, queuing or generating go backWait. fail has no node after it.downloadAdVideo fetches the clip from the first address in resultUrls. It stays in the run as a file.Message a model. The ending rule asks for the name and aTagline: line to the text of Message a model.aspect_ratio, duration and resolution in the body of submitTask. Seedance takes480p, 720p, 1080p or 4k.generate_audio in the same body.Wait. Set an amount of 1 or 2 for a shorter wait between checks.fail output of Switch to be told.README.md 6 KB workflow.json 16 KB
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…
LibertAIDAI · Kit
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…
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…
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…
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…
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…