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…
An n8n workflow that turns a photo sent to a Telegram bot into two ad concepts, each with an image ad and a short video ad. OpenAI reads the photo and writes the concepts, Nano Banana and Veo 3 Fast on Kie.ai make the media, and Google Sheets and Drive keep the results.
Telegram photo to ad image and video maker is an n8n workflow in the Marketing & SEO category, listed by Mindket. It is free. This is version 2, 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.
index, ad_copy, product, character, visual_guide, 1_color, 2_color, 3_color, image_status, image_link, video_status, video_prompt, video_aspectratio, video_link
Photo sent to the bot
It starts when someone sends a photo to your Telegram bot, with:
Two ad concepts, each with an image and a short video in Drive, linked from your sheet
What you need before you start.
Chat
Receives your photo, fetches its file path, and messages you when the job starts and when each concept is done.
NeedsA bot token from BotFather
Language and vision models
Describes the photo, writes the concepts and both prompts with gpt-4.1, and reads the finished image with chatgpt-4o-latest.
NeedsOpenAI API key
Ad table
Holds the concepts, their image and video statuses, and the links to the files.
NeedsGoogle sign-in, and a sheet with the columns
File storage
Keeps the image ads in one folder and the video ads in another.
NeedsGoogle sign-in, and two folders
Image and video generation
Runs Nano Banana Edit for the image and Veo 3 Fast for the video, and reports each task’s status.
NeedsKie.ai API key, typed into four nodes
Checked by Mindket on 13 Nov 2026
This n8n workflow turns a photo sent to a Telegram bot into two ad concepts, and gives each one an image ad and a short video ad. It runs 34 nodes in three stages. First, OpenAI reads the photo as YAML: brand, colors, fonts and what is shown. An agent named Campaign Strategy Generator then writes two concepts, which land as rows in a Google Sheet with a slogan, a character, a visual guide and three hex colors. Next, a second agent writes an image prompt for each row, Nano Banana Edit on Kie.ai redraws your photo as a 9:16 ad, and the file goes to Google Drive. Last, OpenAI looks at that image and writes a video prompt, Veo 3 Fast on Kie.ai animates it, and the clip goes to Drive too.
Shop owners, brand teams and social media managers who want ad drafts from a phone photo, and agencies that test a few angles on a product before anyone briefs a designer. Skip it if you do not use n8n yet, or if you want one polished ad rather than a pair of drafts that you still have to review, pick from and finish yourself.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Online retail | Shop owners | Photograph each new product and send it to the bot | An owner sends a photo of a new tote bag and finds two concepts with their media in the sheet and in Drive. |
| Social media agencies | Content managers | Put the audience in the caption and send a client’s product shots | A manager captions a shoe photo with the audience she wants and shows the client two angles the same day. |
| Food and drink | Brand teams | Send pack shots, and the pack’s colors and fonts carry into the ad | A snack brand sends its pack shot and gets a vertical ad in the pack’s own colors. |
| Character brands | Illustrators and creators | Send a picture of a character, because the photo step has a branch for characters | A creator sends a mascot drawing and gets ads built around it. |
Any n8n that Telegram can reach. The Telegram trigger needs a public HTTPS address, which n8n Cloud comes with and which a server of your own may need a reverse proxy or a tunnel to provide.
Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Its author puts setup at about 20 minutes, which assumes the accounts exist.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud, or on your own server with a public HTTPS address |
| Telegram | A bot made with BotFather, and its token |
| OpenAI | A key. The file uses gpt-4.1 and chatgpt-4o-latest |
| One account for Sheets and Drive, a sheet with the columns below, and two Drive folders | |
| Kie.ai | A key, for Nano Banana Edit and Veo 3 Fast |
workflow.json.Telegram Trigger, Send request msg and Send completed msg.Set Bot ID and replace YOUR_BOT_TOKEN with the same token. The photo’s download link is built from it.GPT, OpenAI Chat Model, Describe Image and Video Prompt Creator.YOUR_SHEET_ID with your sheet’s ID and pick the sheet again.Upload file replace YOUR_IMAGE_FOLDER_ID, and in Upload file1 replace YOUR_VIDEO_FOLDER_ID.Create Image, Get Image, Create Video and Get Video, replace <YOUR_KIE_API_KEY> with your Kie.ai key and keep the word Bearer before it.index, ad_copy, product, character, visual_guide, 1_color, 2_color, 3_color, image_status, image_link, video_status, video_prompt, video_aspectratio, video_link
Send your bot a photo of a product or a character. A caption is optional. Use it to name the audience or the mood, and without one the agent falls back on a default request. The bot replies once it has read the photo. The two rows appear in the sheet a little later. The image takes at least 20 seconds and the video at least a minute. The workflow waits that long, asks Kie.ai for the result, and asks again until it reports success or failure. The bot sends a closing message for each concept whose video is in Drive.
| To change | Where |
|---|---|
| Number of concepts, slogan length | The system message in Campaign Strategy Generator, which asks for exactly two |
| Image style and text placement | The system message in Image prompt Creator, which carries the typography rules |
| Frame | image_size in Create Image and video_aspectratio in Prepare Sheet format, both 9:16 |
| Video length and motion | The prompt in Video Prompt Creator, which asks for 8 seconds |
| Waiting time | Wait (20 seconds) and Wait 2 (60 seconds) |
| Where files go | The two upload nodes |
A photo of a canned iced tea, sent with the caption ads for office workers who skip lunch. OpenAI describes the can, and the strategist returns two concepts in this shape, trimmed here.
{
"index": "01",
"ad_copy": "…",
"product": "…",
"character": "…",
"visual_guide": "…",
"1_color": "#…",
"2_color": "#…",
"3_color": "#…",
"image_status": "create",
"video_status": "create"
}The sheet then shows create turning to done for the image and again for the video, with a Drive link in image_link and video_link. A status of error means Kie.ai reported a failed task.
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. Kie.ai makes the image and the clip on its own servers, which takes a while, so the workflow keeps waiting and asking. Run it once with a test photo. Then open each node: it shows what it received and what it sent, which is where a wrong key or sheet ID turns up.
For experts. Four AI steps do the thinking and two Kie.ai models do the drawing.
| Step | Model | What to know |
|---|---|---|
Describe Image and Video Prompt Creator | OpenAI chatgpt-4o-latest, image analysis | Check the name is still offered on your account, and pick another vision model if it is not |
Campaign Strategy Generator and Image prompt Creator | gpt-4.1, through OpenAI Chat Model and GPT | Each agent has an output parser that holds its answer to a JSON shape, and the image agent also has a Think tool |
Create Image | google/nano-banana-edit on Kie.ai | Edits your photo, so the product keeps its look. The prompt forbids recoloring it |
Create Video | veo3_fast on Kie.ai | Animates the generated image, not your photo |
Two habits of the sheet logic matter if you reuse it. Each run numbers its concepts 01 and 02, and the match column is index. A new photo therefore replaces the rows of the last one, while the files in Drive stay, so rows you want to keep need copying out first. The node Get Rows to Create reads every row whose image_status is create, so a row left behind by a stopped run is picked up by the next one. One loose end: the image agent reads a text_watermark field that nothing in the file fills.
Each run costs money. The open bot and the photo’s link are the risks to plan for.
Get Image Path with an errorAn n8n workflow. Send a photo to your Telegram bot and it writes two ad concepts, then makes an image ad and a short
video ad for each one.
workflow.json: the workflow as n8n exports it, 34 nodes. It holds no credential, and the sheet, folder and keyYOUR_SHEET_ID.Create Image's body, so the prompt's quotation marks wentREADME.md: these notes.workflow.json.Telegram Trigger, Send request msg andSend completed msg.Set Bot ID and replace YOUR_BOT_TOKEN with the same token. The photo's download link is built from it.GPT, OpenAI Chat Model, Describe Image and Video Prompt Creator., Get Rows to Create, Update Row as Done, Update Row as Error, Update Video Prompt`,Update in Row as Done, Update in Row as Error). In each, replace YOUR_SHEET_ID with your sheet's ID and pickUpload file replace YOUR_IMAGE_FOLDER_ID, and inUpload file1 replace YOUR_VIDEO_FOLDER_ID.Create Image, Get Image, Create Video and Get Video, replace <YOUR_KIE_API_KEY> with your Kie.ai key.Row 1 holds these column names, in any order. Every Sheets node reads and writes them by name.
| Column | What it holds |
|---|---|
| index | 01 or 02, the concept's number. It is the match column |
| ad_copy, product, character, visual_guide | the concept, as the strategist writes it |
| 1_color, 2_color, 3_color | three hex colors read from the photo |
| image_status, video_status | create, then done or error |
| image_link, video_link | the Drive link of each finished file |
| video_prompt, video_aspectratio | what the video step was given, and its frame (9:16) |
Campaign Strategy Generator. It asks for exactly two.Image prompt Creator.image_size in Create Image, and video_aspectratio in Prepare Sheet format. Both are 9:16.Video Prompt Creator, which asks for 8 seconds.Wait (20 seconds, images) and Wait 2 (60 seconds, videos).01 and 02 and the matchindex. The files in Drive stay. Copy rows you want to keep.Get Rows to Create reads every row whose image_status is create, so a row left by a stopped run is picked upGet Image Path with an error.chatgpt-4o-latest is a model name OpenAI may retire. If your account no longer lists it, pick another vision modelDescribe Image and Video Prompt Creator.README.md 4 KB workflow.json 71 KB
Updated by Mindket to the current version of this kit.
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…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
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…
nhathoangfoto · Kit
A LoRA for FLUX.2 Klein 9B that puts a character into the pose shown by a mannequin reference while keeping the character's face and style. For artists and des…