Ollama 이미지 형식은 OpenAI 형식 아님
이게 Ollama 두 번째로 흔한 footgun (NDJSON-vs-SSE 다음). Ollama는 이미지를 raw base64 문자열로 images array에 받음 — message에 붙어서. data:image/png;base64, prefix NO. image_url 객체로 content array 모양 NO.
- 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..."}}]}
OpenAI 형식을 Ollama에 복사하면 에러 안 내 — 그냥 이미지 무시하고 텍스트만 가지고 답 만듦. Silent failure.
보내기 전에 resize
Local vision 모델은 보통 max input 차원 가짐 (~896 ~ ~1568 px, 모델마다 다름). Encoding 전에 long edge를 ~1024 px로 resize. 큰 이미지는 내부에서 downscale (encode 낭비)되거나 context limit 걸려.