Eval bug: server/MTMD ignores jpeg EXIF orientation metadata

用户在 llama.cpp 的 server 模式下(或 MTMD 组件)使用视觉模型(如 Qwen3.5 35B, Qwen3.5 27B, Gemma 3 12B qat)处理图片,该图片的显示方向由 JPEG 的 EXIF Orientation 元数据决定(例如手机拍摄的照片)。用户期望模型

Eval bug: server/MTMD ignores jpeg EXIF orientation metadata

Eval bug: server/MTMD ignores jpeg EXIF orientation metadata

快速结论:当使用 llama.cpp server 或 MTMD(Multi-Modal Tokenizer & Decoder)对包含 EXIF Orientation 元数据的 JPEG 图片进行视觉模型推理时,模型看到的图片方向是错误的。优先排查底层图片解析库 stb_image 是否支持 EXIF,或临时在 webui 侧预处理图片。

问题场景

用户在 llama.cpp 的 server 模式下(或 MTMD 组件)使用视觉模型(如 Qwen3.5 35B, Qwen3.5 27B, Gemma 3 12B qat)处理图片,该图片的显示方向由 JPEG 的 EXIF Orientation 元数据决定(例如手机拍摄的照片)。用户期望模型看到的图片方向正确,但实际模型看到的是未经方向校正的原始像素数据。

报错原文

Eval bug: server/MTMD ignores jpeg EXIF orientation metadata

原因分析

可能原因:llama.cpp 底层使用的图片解析库 stb_image 不支持读取 JPEG 的 EXIF Orientation 元数据。因此当图片的 EXIF Orientation 标签(取值 1-8)指示需要旋转/翻转时,stb_image 直接返回原始像素数据,不进行方向校正,导致视觉模型看到的图片方向错误。

环境排查

  • 确认使用的 llama.cpp 版本:build 8468 (3306dbaef) 或更早版本
  • 确认后端:Vulkan(问题可能跨后端,但 Vulkan 环境下更容易暴露)
  • 确认图片格式:仅影响 JPEG 图片(PNG 等格式通常不包含 EXIF Orientation)
  • 确认视觉模型:Qwen3.5 35B、Qwen3.5 27B、Gemma 3 12B qat 等均可能受影响

解决步骤

  1. (最优先尝试)在将图片发送到 llama.cpp server 之前,在 webui 或客户端侧对图片进行预处理:读取 EXIF Orientation 标签,根据标签值对像素数据进行旋转/翻转,然后移除 EXIF Orientation 标签或将其重置为 1(正常方向),最后将处理后的图片发送给 server。
  2. (仅作为备选)如果希望保持 JPEG 图片的无损直通,可以在处理逻辑中先检测 EXIF Orientation 标签,仅当 Orientation > 1 时才执行重编码(通过 canvas 重新绘制),未旋转的 JPEG 保持 bit-perfect。
  3. (长期方案)关注 llama.cpp 社区是否计划替换或升级 stb_image,或增加针对 EXIF 的单独处理逻辑。
  4. (可选)如果 issue 中提到的 resize 功能(PR #22849)已合并,可考虑在 resize 环节加入 EXIF 方向校正逻辑。

验证方法

选取一张包含 EXIF Orientation 标签(如 Orientation=6,旋转 90° CW)的 JPEG 测试图片,分别用原始图片和经过方向校正的图片向视觉模型提问“描述图片中的文字/内容方向”。如果原始图片回答错误,校正后回答正确,说明问题已解决。

也可使用 issue 中提供的 Python 脚本生成一组 EXIF Orientation 测试图片(orientation 1-8),确保所有图片在视觉上看起来方向一致,然后检查模型对它们的描述是否一致。

参考来源

ggml-org/llama.cpp #20870

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 8047

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注