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…
An n8n workflow that animates the logos listed in a Google Sheet, one row per run. OpenAI reads the logo, a GPT-4.1 agent plans a three-scene clip, Veo 3 Fast on Kie.ai renders it, and the clip’s address goes back into the row.
Animated logo video from a Google Sheets queue 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.
Manual run
It starts when you press Execute workflow, and there is no form:
A short animated clip of your logo, linked from its row in the sheet
What you need before you start.
Logo queue
Holds one row per logo. The workflow reads the first row marked for production and writes the clip’s address and done back to it.
NeedsGoogle account with Sheets access, and a sheet with id, input_logo, status and output_logo
Logo files
Holds the logo images. OpenAI and Kie.ai fetch each one through a public download address, so no Drive credential is used.
NeedsEach logo shared so that anyone with the link can view it
Image analysis and planning
Describes the logo with the vision model you pick in Analyze Image, and runs gpt-4.1 for the agent that plans the animation.
NeedsOpenAI API key
Video generation
Renders the clip with Veo 3 Fast from the plan and the logo, then reports the clip’s address when asked.
NeedsKie.ai API key, in two request nodes
Checked by Mindket on 13 Nov 2026
This n8n workflow turns a logo into a short animated clip, one row of a Google Sheet at a time. You list logos in the sheet as Google Drive links and mark the next one for production. A manual run picks the first marked row and has OpenAI describe the logo in YAML: brand, colors as hex codes, font and look. A GPT-4.1 agent turns that and your brief into a three-scene plan of 7.8 seconds. Kie.ai renders it with Veo 3 Fast, and after a 250-second wait the clip’s address goes back into the row.
Designers, small agencies and brand teams that want a moving version of a logo for an intro, a reel or a site header without opening an animation tool. Skip it if you need motion that matches a storyboard frame by frame. Veo invents the movement from a written plan. Every new try is another paid render.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Design studios | Freelance designers | Add a moving logo to a brand pack | A designer hands a client the logo files and a short intro clip made from them. |
| Agencies | Account teams | Keep every client’s logo in one sheet and work down it | An agency marks five client rows and runs the workflow five times in an afternoon. |
| Video and podcasts | Creators | Open each episode with an animated mark | A podcaster puts the clip at the start of every YouTube episode. |
| Startups | Founders | Try a few looks before paying for a motion designer | A founder runs the same logo with two briefs and keeps the clip that fits better. |
| Events | Organizers | Make a vertical clip for social posts before the day | An organizer sets the frame to vertical and posts the clip as a Story. |
Any n8n that can reach Google Sheets, OpenAI and Kie.ai will run it. You start each run yourself, so nothing reaches into your n8n from outside.
Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Its author puts setup at about 13 minutes.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key, used for the logo read and the agent |
| Kie.ai | An API key for its Veo endpoint |
| A spreadsheet | A tab named Sheet1 with id, input_logo, status and output_logo in row 1 |
| The logos | Image files in Google Drive, each one viewable by anyone with its link |
workflow.json.id, its Drive link in input_logo and for production in status.Get input logo and Store output, and replace YOUR_SHEET_ID in both with the sheet’s ID.Analyze Image and GPT.Analyze Image, pick a current vision model such as gpt-4o, then switch off Simplify Output so the agent finds the logo description where its prompt looks.Create Veo3 and Get Veo3, replace <YOUR_KIE_API_KEY> in the Authorization header with your key.Mark a row for production and press Execute workflow. A run takes about five minutes, most of it the wait for Veo. Then the row reads done, with the clip’s address in output_logo. Each run takes one row. Press it again for the next logo.
| To change | Where |
|---|---|
| The brief | your_creative_direction in Your creative direction |
| Frame | aspect_ratio in the same node, set to horizontal. The agent answers 16:9 or 9:16 |
| Veo model | model, set to veo3_fast. The agent may also pick veo3 |
| Voice | dialogue, set to no voiceover please |
| Length and scenes | The agent’s system message, which fixes 7.8 seconds in three scenes |
| Render wait | Wait1, 250 seconds |
A row with the id 1, a Drive link to a coffee roaster’s logo and the status for production. Analyze Image answers in this shape:
brand_name: …
color_scheme:
- hex: "#…"
name: …
font_style: …
visual_description: …The agent then answers in the parser’s shape, with the whole plan as text inside it:
{
"aspect_ratio": "16:9",
"video_model": "veo3_fast",
"full_video_prompt": "{ \"brand_name\": …, \"video_length\": 7.8, \"scenes\": [ … ] }"
}Each of the three scenes names its start and end, what is seen, the camera move, the sound and the background elements. After the wait, the row holds done and the clip’s address.
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. The Kie.ai key is the exception. It sits in two header fields. Run one row first and open each node in the run. A Drive link nobody can open shows up in Analyze Image, and a wrong key in Create Veo3.
For experts. Three steps call a model, each through a different node.
| Step | Model | What to know |
|---|---|---|
Analyze Image | chatgpt-4o-latest in the file, gpt-4o once you change it | Reads the logo from its Drive download address and answers in YAML, up to 300 tokens by default |
Logo Animator AI Agent | gpt-4.1, through GPT | Uses the Think tool, and Structured Output holds it to three fields |
Create Veo3 | veo3_fast on Kie.ai, or the model the agent names | Gets the plan, the frame and the logo address, and returns a taskId |
Create Veo3 drops full_video_prompt into its body without quotes, so the plan arrives as a JSON object. Kie.ai’s docs, read on 2 November 2026, describe the prompt as text. The logo goes in imageUrls as one address, not a list. If Kie.ai rejects the request, wrap the plan in JSON.stringify() and the address in square brackets.
Each run costs money at OpenAI and Kie.ai, and Analyze Image needs two changes before the first run.
Analyze Image returns only content by default, and the agent’s prompt reads choices[0].message.content. Skip step 5 and the agent gets no logo description, or stops with an errorGet Veo3 asks once, after 250 seconds. A slower render leaves no address, so the row can read done with an empty output_logo. Raise Wait1 and mark the row for production againchatgpt-4o-latest, which OpenAI’s deprecations page lists as removed from the API on 17 February 2026, so step 5 swaps itCode in JavaScript1 code had lost the backslashes of its regex. This one has them backAn n8n workflow. List your logos in a Google Sheet, mark one for production and run it. OpenAI reads the logo, an agent
plans a short animation, Veo 3 Fast on Kie.ai renders it, and the clip's address goes back into the row.
workflow.json: the workflow as n8n exports it, 13 nodes. It holds no credential. The spreadsheet and the Kie.ai keyREADME.md: these notes.Sheet1 and these column names in row 1: id, input_logo, status andoutput_logo.workflow.json.id, the logo's Google Drive link in input_logo andfor production in status. Leave output_logo empty./d/ and /edit. Add a Google Sheets OAuth2Get input logo and Store output, and replace YOUR_SHEET_ID with the ID in both.Analyze Image and GPT.Analyze Image and pick a current vision model, such as gpt-4o. The file names chatgpt-4o-latest, whichchoices[0].message.content, and only the full output holds itCreate Veo3 and Get Veo3, replace <YOUR_KIE_API_KEY> in the Authorization header with your key. TheYour creative direction holds four settings: the brief, the frame (horizontal), the Veo model (veo3_fast) andno voiceover please).Get input logo returns the first row whose status is for production. Code in JavaScript1 takes the file IDAnalyze Image sends the logo to the vision model you picked in step 6. It answers in YAML: the brand name, eachLogo Animator AI Agent runs on gpt-4.1 and has a Think tool to check its answer. Its system message asks for aStructured Outputaspect_ratio, video_model and full_video_prompt.Create Veo3 posts the plan, the model, the frame and the logo's download address to Kie.ai. Wait1 pauses 250Get Veo3 asks for the result once.Store output finds the row by its id and writes done in status and the clip's address in output_logo.your_creative_direction in Your creative direction. As it comes, it asks for an on-brand animationaspect_ratio in the same node. Write vertical for a portrait clip. The agent may only answer 16:9 or 9:16.model, veo3_fast or veo3.dialogue. Leave it empty and the agent sets each scene's dialog to null.Wait1, 250 seconds.Get input logo.Analyze Image keeps n8n's default Simplify Output, which returns only content, while the agent's prompt readschoices[0].message.content. Left that way, the agent gets an empty logo description or stops with an error,$json.content.Get Veo3 asks once. If Veo has not finished by then, Store output has no address to write, and theoutput_logo. Raise Wait1, set the row back to for production and runCreate Veo3 puts the agent's plan into its body without quotes, so it arrives as a JSON object. Kie.ai's docs,imageUrls alone, not in aJSON.stringify() and the address in square brackets.Code in JavaScript1 code had lost the backslashes of its regex, which broke the node. This one/\/d\/([A-Za-z0-9_-]+)/.README.md 5 KB workflow.json 18 KB
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…
Qwen · Kit
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…
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…
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…