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 turns an image from Google Drive into searchable text. It reads the image’s color data, asks an OpenAI vision model for keywords and stores both as one document in a vector store.
Image search index built from keywords and colors is an n8n workflow in the Developer 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 Test workflow, and there is no form:
A vector store entry for the image, which a text prompt can find, with the file name kept in its metadata
What you need before you start.
Image source
Downloads the image file whose ID you set.
NeedsGoogle Drive OAuth2 credential and a file ID
Vision model and embeddings
Lists keywords for the picture with gpt-4o, and turns the document and the search prompt into vectors.
NeedsOpenAI API key
Checked by Mindket on 13 Nov 2026
This n8n workflow makes a picture searchable by words. It downloads one image from Google Drive, reads its color data and asks an OpenAI vision model for keywords. The keywords and the colors become one text document. That document is cut into chunks, embedded and stored in an in-memory vector store. A second node then finds the stored picture from a plain text prompt. Thirteen nodes do the work, beside nine sticky notes.
Developers and makers who are learning to search images with a vector store, or who want a first version of a photo library search. Skip it if you need a search over thousands of pictures. The store lives in the n8n process, and a run handles one image.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Media and photography | Photo editors | Describe each picture in words so editors can find it by theme | An editor stores a beach photo and later finds it with the prompt “quiet morning by the sea”. |
| Ecommerce | Catalog teams | Index product photos by color and look | A catalog team searches for “red leather bag on a white background” and gets the matching photo. |
| Marketing | Brand teams | Keep a searchable set of campaign pictures | A brand team looks up pictures with the prompt “people laughing outdoors”. |
| Education | Teachers | Collect teaching pictures and find them by topic | A teacher stores a diagram of a volcano and finds it again with the word “eruption”. |
You need some n8n: import a file, add two credentials and run one extra node by hand.
Any n8n that can reach Google Drive and OpenAI will run it, as long as the Edit Image nodes can find GraphicsMagick.
Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. You need an image in Google Drive and an OpenAI key.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key that can use gpt-4o and an embeddings model |
| Google Drive | An image file and an OAuth2 credential |
| GraphicsMagick | Used by the Edit Image nodes, and included in n8n’s own Docker image |
workflow.json.Google Drive.Google Drive, replace YOUR_FILE_ID with your image’s file ID, the part of its address between /d/ and /view.Get Image Keywords, Embeddings OpenAI and Embeddings OpenAI1.Search for Image, type a prompt that fits your picture and press Execute step.Run the workflow once for each image, after you change the file ID. Then run Search for Image with your own words. It returns the closest stored documents, and the file name sits in their metadata. The store lives in the n8n process, so search before you restart n8n.
| To change | Where |
|---|---|
| The keywords asked for | The text in Get Image Keywords |
| The picture size | The width and height in Resize Image |
| What is stored with the image | The two fields in Document for Embedding |
| The search words | The prompt in Search for Image |
| The store | The two in-memory nodes, swapped for another vector store |
A photo editor stores a picture of a child laughing in a school yard.
The vision model lists keywords such as the child, the yard, a bright mood and the light. The color data joins them in one document. Later the editor runs Search for Image with the sample prompt “student having fun”, and the stored picture comes back with its file name. Try a few searches before you rely on the index, because the keywords come from a model.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A vector store is a database that finds text by meaning. This workflow turns the picture into text first, so that the store can find it. Try one small picture first.
For experts. The picture becomes text from two sources, color statistics and model keywords, and the embedding is of that text, not of the pixels.
| Node | What it does | What to know |
|---|---|---|
Get Image Keywords | Asks gpt-4o for keywords at high detail | The original node version sent a retired model, so this copy uses version 1.4 |
Combine Image Analysis | Joins the color data and the keywords by position | Both branches carry one item |
Document for Embedding | Writes the data text and the metadata | A stray backslash and the letter n sit in the text |
In-Memory Vector Store | Splits, embeds and stores the document | Clear Store is off, so a rerun adds the image again |
Search for Image | Finds the closest documents for a prompt | It has no incoming line and runs by itself |
One model was retired, the store is temporary and the search is a separate step.
Get Image Keywords was node version 1.3, which always sends gpt-4-vision-preview. OpenAI’s deprecations page, read on 12 November 2026, lists that model for shutdown on 6 December 2024, with gpt-4o as the replacement. Mindket’s copy uses node version 1.4 and sets gpt-4o. The same page lists the dated gpt-4o versions for shutdown on 14 January 2027, with gpt-6-luna as the replacement, and does not list the bare nametext-embedding-ada-002, which is not on the deprecations page. Both nodes must use the same model, or a search compares unlike vectorsdata field writes a backslash and the letter n at the end of the first two heading lines, and they end up in the embedded text. Remove them from the field for clean textDefault Data Loader keeps its default mode, which reads the whole item, so data and metadata both go inGoogle Drive and nothing elseAn n8n workflow that makes an image searchable by text. It downloads one image from Google Drive, reads its color data
and asks an OpenAI vision model for keywords. Both go into one text document, which is embedded and stored in a vector
store. A second node then finds the stored image from a plain text prompt.
workflow.json: the workflow as n8n exports it, 13 nodes and nine sticky notes. It holds no credential.README.md: these notes.Get Image Keywords was node version 1.3. That version always sends the model gpt-4-vision-preview, which OpenAIgpt-4o as the replacement. The node is now version 1.4,gpt-4o.Google Drive pointed at its author's own image. It now holds YOUR_FILE_ID, and the saved file name and link are gone.gpt-4o and an embeddings model.workflow.json.Google Drive.Google Drive, replace YOUR_FILE_ID with the ID of your image. In the file's web address it is the part between/d/ and /view.Get Image Keywords, Embeddings OpenAI and Embeddings OpenAI1.Search for Image, type a prompt that fits your picture and press Execute step. The closest stored documentWhen clicking "Test workflow" starts the run and Google Drive downloads the image.Get Color Information reads the image's format, background color and channelResize Image shrinks the picture to fit 512 by 512 pixels, and only when it is bigger.Get Image Keywords sends the smaller picture to gpt-4o at high detail and asks for every semantic keyword as aCombine Image Analysis joins the colors and the keywords by position.Document for Embedding writes two fields. data holds the text, with a keywords part and a color part.metadata holds the format, the background color and the file name.In-Memory Vector Store is in insert mode. Default Data Loader takes the item and attaches the metadata,Recursive Character Text Splitter cuts the text into chunks, and Embeddings OpenAI turns each chunk into aimage_embeddings.Search for Image has no incoming line, so a full run never reaches it. In load mode it embeds its prompt withEmbeddings OpenAI1 and returns the closest documents from the same key.Get Image Keywords.Resize Image.Document for Embedding and the metadata in Default Data Loader.Search for Image. It starts as a sample.In-Memory Vector Store and Search for Image for another vector store node, and keep one embeddingLoop Over Items before the download and feed it a list of file IDs.gpt-4o versions for shutdown on 14 Januarygpt-6-luna as the replacement. It does not list the bare name gpt-4o, which this copy uses.text-embedding-ada-002. ThatClear Store is off, so each run adds the same imagedata field in Document for Embedding writes a backslash and the letter n at the end of the first two headingDefault Data Loader keeps its default mode, which reads the whole item, so data and metadata both go in.Google Drive.NOTICE.md 634 B README.md 5 KB workflow.json 13 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…
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…
block · Kit
Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…
backnotprop · Kit
Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.