Ollama's image format is NOT OpenAI's
This is the second-most-common Ollama footgun (after NDJSON-vs-SSE). Ollama wants images as raw base64 strings in an images array, attached to the message. NO data:image/png;base64, prefix. NO content-array shape with image_url objects.
- Ollama:
{"role": "user", "content": "describe this", "images": ["iVBORw0KGgoA..."]} - OpenAI:
{"role": "user", "content": [{"type": "text", "text": "describe"}, {"type": "image_url", "image_url": {"url": "data:image/png;base64,iVBORw0KGgoA..."}}]}
If you copy the OpenAI format into Ollama, it doesn't error — it just ignores the image and generates an answer based on the text alone. Silent failure.
Resize before sending
Local vision models often have a max input dimension (~896 to ~1568 px depending on the model). Resize to ~1024 px on the long edge before encoding. Larger images either get downscaled internally (wasting your encode) or hit context limits.