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 one product photo and a line about the video you want into a short commercial-style clip. Gemini describes the product, an AI creative director plans the shots, and Veo 3.1 Fast on Kie.ai renders them.
AI product photo to video generator 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.
POST https://api.kie.ai/api/v1/veo/generate GET https://api.kie.ai/api/v1/veo/record-info?taskId=<taskId>
Photo upload
It starts when someone sends the Upload Product Photo form with:
A short commercial-style video of your product, made from one photo
What you need before you start.
Media storage
Takes the photo through Cloudinary’s upload API and returns a public address the AI steps can read.
NeedsCloud name and an unsigned upload preset
Image analysis
Reads the photo and names the product’s type, brand, shape, materials and colors, as YAML.
NeedsGemini API key
Language model
Runs Gemini 2.5 Flash for the Creative Director agent and the parser that holds its answer to the shot plan’s JSON shape.
NeedsOpenRouter API key
Video generation
Makes the video from the shot plan and your photo inside your sub-workflow, then hands back its address.
NeedsKie.ai API key, in your sub-workflow
Checked by Mindket on 13 Nov 2026
This n8n workflow takes one product photo and a sentence about the video you want, and hands back a short commercial-style clip. Eight nodes run one after another. A form takes the photo, Cloudinary stores it at a public address, and Gemini 2.5 Pro writes a YAML description of the product with its brand and its colors as hex codes. An agent named Creative Director turns that description and your sentence into a JSON shot plan. A sub-workflow you supply sends the plan and the photo to Veo 3.1 Fast on Kie.ai, and the last node downloads the clip.
Shop owners and small brands that want a moving ad for every product without booking a shoot, and the marketers and agencies who make those ads for them.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Online retail | Shop owners and small brands | Send each new studio shot through the form and post the clip as an ad | A candle shop turns every new product photo into a clip for an Instagram ad. |
| Food and drink | Brand marketers | Leave Description empty and let the agent fall back on its food and drink style | A drinks brand gets a fresh, lively scene built around refreshment without writing a word. |
| Marketing agencies | Account managers | Send a client the form instead of a brief | An agency hands a client the form, and each photo the client sends comes back as a draft clip. |
| Performance marketing | Marketers who test ads | Try several product videos a week, each from one form | A marketer tries a few angles on one product and keeps the clip that tests best. |
| Social video | Teams that make Reels and Shorts | Set a vertical frame once, then run the whole catalog | A team sets 9:16 in the sub-workflow call and sends its catalog through it. |
You need some n8n: importing a file, adding credentials, building one small sub-workflow. If that is new to you and you would rather not learn it, skip this one. Its author puts setup at about 11 minutes, which assumes the four accounts already exist.
Any n8n you run will do, as long as it can reach Cloudinary, Google, OpenRouter and Kie.ai.
Download Video to save the clip or send it onGet it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Have these ready before you import it.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| Cloudinary | An account with an upload preset whose signing mode is Unsigned |
| Google AI Studio | A key for the Gemini API |
| OpenRouter | A key for the chat model the agent and the parser share |
| Kie.ai | A key, and a video sub-workflow of your own that calls Veo 3.1 Fast |
workflow.json.Upload *Photo1 and put your cloud name in its address where it says <YOUR_CLOUD_NAME>.YOUR_PRESET_NAME for your preset and YOUR_FOLDER_NAME for a folder.Google Gemini (PaLM) API credential and select it in Analyze an image.OpenRouter Chat Model.Creative Director, the call to the Kie.ai sub-workflow, and pick your own video sub-workflow.The sub-workflow is not in the file. Its node pointed at a workflow in its author’s own n8n, so it arrives empty and marked red. Yours receives these four fields and returns the clip’s address as resultUrls:
{
"video_prompt": "<the shot plan, as JSON text>",
"aspect_ratio": "16:9",
"imageUrls": ["<the photo’s Cloudinary address>"],
"generationType": "REFERENCE_2_VIDEO"
}Kie.ai’s Veo pages, read on 2 November 2026, describe the two calls inside it. Post those fields to the generate endpoint with your key as a Bearer token, then ask record-info for the task until it reports success. The resultUrls field comes back as a JSON string, so parse it before you return it.
POST https://api.kie.ai/api/v1/veo/generate GET https://api.kie.ai/api/v1/veo/record-info?taskId=<taskId>
A signed preset works too: add an HTTP Basic Auth credential with your Cloudinary API key and secret, and select it under the upload node’s Authentication.
Open the form from On form submission, attach a product photo and write the video you want in Description, in a sentence. The form confirms at once. The run goes on behind it: upload, analysis, shot plan, render, download. The clip lands in the run’s execution data as a file, so open the run under Executions to see it.
| To change | Where |
|---|---|
| Tone and style | The Creative Director’s system message. Its fallback styles for tech, food and drink, and fashion apply only when your sentence says little |
| Frame | aspect_ratio in the sub-workflow call, such as 9:16 for Reels and Shorts |
| Length | technical.duration in the shot plan. The prompt’s own examples ask for 8 seconds |
| Photo folder | YOUR_FOLDER_NAME in the upload node, one per brand or campaign |
A photo of a bottle of cold brew coffee, with this in Description:
Ice cubes drop into a glass beside the bottle on a sunny cafe counter, slow motion, warm morning light
Gemini’s YAML names the product type, the brand if the label shows one and the bottle’s colors as hex codes. The Creative Director answers in the parser’s shape, trimmed here. It leaves the bottle’s look out of the plan, because its prompt says Veo takes that from the photo.
{
"scene": "…",
"style": "…",
"camera": { "type": "…", "angle": "…", "lens": "…", "movement": "…" },
"lighting": { "type": "…", "mood": "…", "time": "…" },
"audio": { "music": "…", "effects": ["…"] },
"motion": { "pace": "…", "style": "…", "transitions": "…" },
"technical": { "resolution": "…", "duration": "…", "color_palette": "…", "effects": "…" },
"narrative": { "beginning": "…", "middle": "…", "end": "…" }
}Kie.ai renders the clip from the plan and the photo, and Download Video fetches it from resultUrls.
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. Run the form from its test address first. Every node then shows what it received and what it sent, which is where a wrong preset or key turns up.
For experts. Three models share the work, and each step names the one it uses.
| Step | Model | What to know |
|---|---|---|
| Analyze an image | Gemini 2.5 Pro, through Google’s Gemini API directly | Switch it to a Flash model when cost matters more than detail |
| Creative Director and its Structured Output Parser | Gemini 2.5 Flash, one OpenRouter model for both | Auto-fix is on, so JSON that misses the schema goes back for a repair, at the cost of one more call |
| Your sub-workflow | Veo 3.1 Fast on Kie.ai | The call to it retries when it fails |
You can point OpenRouter at another model too. The agent carries the YAML’s color_palette_hex into the plan’s color_palette, so a brand’s colors reach the scene.
Each run costs money, and the rest of the risks come from the open form and the public photo.
An n8n workflow. Send one product photo and a line about the video you want through its form, and it returns a short
commercial-style clip made by Veo 3.1 Fast.
workflow.json: the workflow as n8n exports it, eight nodes. It holds no credential. The sub-workflow node is leftREADME.md: these notes.workflow.json.Upload *Photo1. In its address, put your cloud name where it says <YOUR_CLOUD_NAME>. ThenYOUR_PRESET_NAME for your preset and YOUR_FOLDER_NAME for the folder the photos should land in.Analyze an image.OpenRouter Chat Model.Creative Director, the call to the Kie.ai sub-workflow, and choose your video sub-workflow.A signed preset works too: add an HTTP Basic Auth credential with your Cloudinary API key and secret, and select it
under the upload node's Authentication.
The file does not include it. The node points at a workflow in its author's own n8n, so on import it is empty. Yours
receives four fields and must hand back the clip's address as resultUrls, which the last node downloads:
| Field | What the main workflow sends |
|---|---|
| video_prompt | the Creative Director's JSON shot plan, as text |
| aspect_ratio | 16:9 |
| imageUrls | a list holding the photo's Cloudinary address |
| generationType | REFERENCE_2_VIDEO |
Kie.ai's Veo documentation, read on 2 November 2026, gives the shape: an HTTP Request node posts the four fields tohttps://api.kie.ai/api/v1/veo/generate with your API key as a Bearer token and gets a taskId back. A loop of Wait
and HTTP Request nodes then asks record-info for that task until it reports success, and resultUrls comes back as a
JSON string, so parse it before you return it. The same pages say reference-image video runs on the Fast model, in 16:9
or 9:16. Check https://docs.kie.ai/veo3-api for the current model names and prices before you build it.
Creative Director. It has a fallback style for tech, for food and drink,aspect_ratio in the sub-workflow call, for example to 9:16 for Reels and Shorts.technical.duration), and the prompt's examples ask for 8 seconds.Download Video to save it to a drive or send it on.README.md 4 KB workflow.json 32 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…