Ollama 이미지 형식은 OpenAI 형식 아님
이게 Ollama 두 번째로 흔한 footgun (NDJSON-vs-SSE 다음). Ollama는 이미지를 raw base64 문자열로, message에 붙은 images array에 받아. data:image/png;base64, prefix는 붙이지 마. image_url 객체를 담은 content array 모양도 안 통하고.
- 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에 복사해 넣으면 에러가 안 나. 그냥 이미지를 무시하고 텍스트만 가지고 답을 지어내. 조용히 실패하는 거지.
보내기 전에 resize
Local vision 모델은 보통 max input 차원이 정해져 있어 (~896에서 ~1568 px 사이, 모델마다 달라). Encoding 전에 long edge를 ~1024 px로 줄여. 그보다 큰 이미지는 내부에서 downscale돼서 encode를 낭비하거나, context limit에 걸려.