Language models don't look at an image the way you do. They read it in patches, and that changes what you should send them.
A language model sees an image by cutting it into a grid of small squares called patches, roughly 16 pixels across, and treating each one much like a word. Each patch carries fine detail, and the model builds the overall picture by connecting patches to each other. This explains why a model can reason across several images at once, why a tight crop often beats the full image, and why a larger, higher-resolution file can leave it with less detail. Once you know this, you can prepare images so the model reads them reliably.
A language model sees patches of images
When we say a language model can see an image, what does that actually mean? What happens between uploading an image and the model answering?
The model sees the image as a grid of patches, each about 16 × 16 pixels, though the size varies by model.1 Intuitively, we can think about patches as visual tokens, similar to how language is processed. Each patch is converted into an embedding: a long list of numbers, often thousands, that captures what the patch contains, such as an edge, a colour or part of a letter. Patches that look alike get similar lists. Text tokens are converted the same way, which lets the model handle words and image patches side by side.2

Figure 1. (a) A scanned form split into 16 × 16-pixel patches, with one enlarged. (b) Neighbouring patches each become an embedding; attention combines them.3
The meaning of a small region lives inside its patch, and the meaning of the whole image comes from attention between patches.
Once the patches become embeddings, attention lets the model connect information across them.
The model can reason across several images
Because the patches from every image sit in the same context window, each token the model generates can draw on all of them at once, so it can reason across images rather than within one. Consider a toy problem of a property listing with a few photos and a floor plan, and ask the model how many people can sleep in the house. No single image answers that. The same is true when you cross-reference several documents, such as an invoice and its purchase order, or read a data table that breaks across pages, where the headers on the first page give meaning to the numbers on the next.

Figure 2. One token of the answer drawing on four images and the prompt.
A tighter crop can show the model more than a bigger image
The image you upload is often not the image the model sees. Providers shrink oversized images to fit a fixed budget of pixels and patches, which keeps cost and processing manageable but means fine detail can disappear.4 What matters is how much of that budget lands on the part you care about.
So a bigger, higher-resolution image can leave the model with less detail where it counts. Consider a photo of a whiteboard taken from the back of a meeting room. The board fills a small part of the frame, and once the photo is shrunk to fit the budget, each word lands in a patch or two and blurs into a smudge. Crop the photo to the board, and the same words spread across many patches, sharp enough to read.
The same goes for any large scene with a small object of interest: a price label in a photo of a supermarket aisle, the serial-number plate in a photo of a factory floor, a signature at the bottom of a full-page scan, or a single button in a screenshot of an entire web app. A long screenshot is the extreme case, because it shrinks to fit its longest side; split it into several images and each part keeps its detail.
Language models read images as patches. Fine detail lives inside each patch, and meaning comes from how the patches relate. So the image the model actually receives matters as much as the image you uploaded. Crop to what matters, resize on purpose, and don't assume a bigger file gives the model a clearer view.
If you're processing documents, such as forms, invoices or scanned contracts, these effects decide whether the model reads the fine print or misses it. That's the problem we work on at Lyco.AI. Get in touch to talk about yours.
Footnotes
-
Kimi K3 uses 14 × 14-pixel patches, and Qwen3.8-27B and Gemma 4 12B use 16 × 16, per their Hugging Face configurations: Kimi K3, Qwen3.8-27B, Gemma 4 12B. ↩
-
Some models merge neighbouring patches into a single token, so an image uses fewer tokens. ↩
-
The form is the sample from the FUNSD dataset of scanned forms. ↩
-
See Anthropic's Vision and OpenAI's Images and vision documentation. ↩



