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 with a web form that takes a photo and returns the license plate number of the front-most car. A vision model on OpenRouter reads the plate.
License plate number read from an uploaded photo is an n8n workflow in the Productivity 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.
A web form
It starts when someone submits the form:
A result page that shows the plate characters
What you need before you start.
Vision model
Runs the model that reads the plate.
NeedsAn OpenRouter API key with credit, in an OpenRouter credential
Checked by Mindket on 13 Nov 2026
This n8n workflow reads a license plate from a photo. A web form takes one JPG or PNG. A Set node holds the model name and the prompt. A Basic LLM Chain sends the photo and the prompt to a vision model through OpenRouter. The model returns only the characters of the plate on the front-most car, and a result page shows them. Five nodes do the work.
Developers and small teams who want to see how a vision model reads text in a photo, such as a parking operator testing a plate reader. Skip it for anything that must be right every time. A model can misread a plate, so a person should check the result.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Parking | Car park operators | Log the plates of cars photographed at a gate | An operator uploads a gate photo and notes the plate it returns. |
| Logistics | Yard managers | Check trucks arriving at a depot | A manager photographs a truck and compares the answer with the booking list. |
| Insurance | Claims staff | Read the plate from an accident photo | A handler uploads a claim photo and copies the plate into the case. |
| Development | Automation builders | Try a vision model on a real task | A developer swaps the model name in Settings to compare two models on the same photo. |
You need basic n8n skills and an OpenRouter account with some credit.
Any n8n that can reach OpenRouter will run it. The form page needs an address that people can open.
Settings to any OpenRouter model that accepts imagesSettings, for example to read the text on a labelDownload saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. One account is involved.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| OpenRouter | An API key and some credit, saved in an OpenRouter credential |
| A photo | A JPG or PNG with a visible plate |
workflow.json.OpenRouter LLM.Settings. The file uses openai/gpt-6-luna.FromTrigger, copy its test address and upload a photo.FromTrigger shows.Open the form address, choose a JPG or PNG and submit it. The page that comes back shows the plate characters.
| To change | Where |
|---|---|
| The model | The model value in Settings |
| What it is asked to read | The prompt value in Settings |
| The accepted file types | acceptFileTypes in FromTrigger |
| The result page title | completionTitle in FormResultPage |
A parking operator uploads a photo of a car at a gate.
The model is told to return only the characters, so the page should show a short string such as the plate number. If no plate is readable, the answer can be empty or wrong.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A vision model is an AI that can look at a picture and answer questions about it. OpenRouter is one service that gives access to many such models.
For experts. The photo reaches the chain as binary data in the field Image, which the form names after its field label. The Set node keeps binary data, so the chain’s image message can read it. The model name comes from $json.model in OpenRouter LLM.
| Node | What it does | What to know |
|---|---|---|
FromTrigger | A form with one required file field called Image | The uploaded photo lands in the binary field Image |
Settings | Adds the model and prompt fields | It keeps the other fields, including the photo |
Basic LLM Chain | Sends the prompt and the photo to the model | Its image message reads the binary field Image |
OpenRouter LLM | Provides the model chosen in Settings | The model is read from the field model of each item |
FormResultPage | Shows the answer on the form’s result page | It shows the chain’s text field |
The model was replaced. Mindket did not run this workflow.
openai/gpt-4o. OpenAI’s deprecations page, read on 12 November 2026, shuts the dated gpt-4o snapshots down on 14 January 2027, with gpt-6-luna as the replacement. Mindket’s copy uses openai/gpt-6-luna, which OpenRouter’s public list, read on the same day, shows with image input at 0.10 US dollars per million input tokens and 0.50 per million output tokensgpt-6-luna calls tools only in the Responses API, or with reasoning effort none on Chat Completions (OpenAI’s model page), and this chain uses no toolsAn n8n workflow with a web form that takes a photo and returns the license plate number of the front-most car. A vision model on OpenRouter reads the plate.
workflow.json: the workflow as n8n exports it, five nodes. It holds no credential and no sticky notes.README.md: these notes.openai/gpt-4o. OpenAI’s deprecations page, read on 12 November 2026, shuts the dated gpt-4o snapshots down on 14 January 2027, with gpt-6-luna as the replacement. OpenRouter’s public list still shows openai/gpt-4o without an end date. Mindket’s copy uses openai/gpt-6-luna, which the list shows with image input.workflow.json.OpenRouter LLM.Settings. The file uses openai/gpt-6-luna.FromTrigger, copy its test address and upload a photo.FromTrigger shows.FromTrigger shows a form with one required file field called Image, and starts the run when someone submits it.Settings adds the model name and the prompt to the item and keeps the photo.Basic LLM Chain sends the prompt and the photo to the model that OpenRouter LLM provides.FormResultPage shows the model’s answer on the page that comes back.model value in Settings.prompt value in Settings.acceptFileTypes in FromTrigger.completionTitle in FormResultPage.Image. The chain’s image message reads that field.gpt-6-luna calls tools in the Responses API, or on Chat Completions only with reasoning effort none. This chain uses no tools.openai/gpt-6-luna at 0.10 US dollars per million input tokens and 0.50 per million output tokens.NOTICE.md 643 B README.md 3 KB workflow.json 4 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…
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…
zarazhangrui · Skill
Builds HTML presentations from scratch or from a PowerPoint file and shows visual style previews to pick from, for people who want web slides with no CSS or Ja…
iptv-org · Kit
Collects publicly available live TV channels from many countries into playlists that any video player with live streaming can open. Made for viewers and for de…