多模态图片输入怎么控成本:分辨率、切片与 token 预算核对
来源:17golang原创
时间:2026-08-27 10:50:59 161浏览 收藏
线上图像问答接口突然变贵,第一反应通常是怀疑模型或重试逻辑。真正容易被忽略的是图片本身:同一张截图从 800×600 换成 2400×1800,视觉模型可能要按更多区域切片,输入 token 和延迟都会跟着上涨。成本控制的关键不是把所有图片压成小图,而是先判断任务需要“看整体”还是“读细字”。
先按尺寸估算图片会被拆成多少视觉块,再用低分辨率完成粗筛,只有需要读小字或局部字段时才提高分辨率;这样比所有请求一律上传原图更容易把预算和准确率同时守住。
- 图片两边都不超过 384 像素时,Gemini 图片输入按 258 tokens 计;更大的图片会进入 768×768 区块切分。
- 粗分类、去重、是否存在目标等任务优先低分辨率;OCR、小字段核对才值得提高视觉预算。
- 批量图片要先核对单图预算、总图片数和失败重试,不能只看文本 token。
- 压缩后必须复核旋转方向、裁剪区域和关键文字,省下 token 却丢掉证据并不算优化。
先把“图片贵”拆成三个可核对的量
多模态请求的输入不只有提示词。图片通常会先经过视觉编码,再以视觉 token 参与上下文。工程上可以把一次请求的预算拆成三项:图片切片 token、文字提示 token、输出 token。本文重点看第一项,因为它最容易随着尺寸和图片数量突然放大。
以 Gemini 图片理解文档中的规则为例,宽高都不超过 384 像素的图片计作 258 tokens;更大的图片会按约 768×768 的区域切分,每个区域仍按 258 tokens 计。文档同时说明,具体切片数量要结合尺寸和裁剪规则估算,下面的函数适合做上线前的粗估,不应替代真实用量统计。
import math
def rough_image_tokens(width, height):
if width
这个估算的价值在于提前发现数量级:一张小缩略图和一张需要切成多块的大截图,不应该共用同一个预算假设。真正上线后,还要把接口返回的 usage 与这次估算并排记录,观察供应商规则或模型版本变化。

故障现场:为什么原图越清晰,账单反而越难看
有一个很典型的批处理场景:每天把商品截图交给模型判断“是否有明显缺陷”。任务只需要看轮廓和颜色,却沿用了客服上传的 2400×1800 原图。模型回答并没有明显变准,但每张图都带来更多视觉区域,批量任务的耗时和费用一起上升。
这里不要急着把图片质量一刀切。先给任务分级:
- 整体判断:是否存在目标、是否为空白、粗粒度分类,可先缩放到短边 384~768 像素测试。
- 局部读取:订单号、表格小字、截图中的报错字段,需要保留目标区域,必要时裁剪后单独送入高分辨率。
- 混合任务:先用低分辨率筛掉大部分无关图片,再把命中的少量图片进入局部复核。
“先粗筛、后复核”不是模型能力保证,而是一个可测的工程策略。用同一批样本记录召回率、误报率、平均延迟和每千张图片的输入 token,只有准确率损失可接受时才上线。

media_resolution 该怎么和任务匹配
Gemini 3 文档提供了 media_resolution 这个控制项,用来决定每张输入图片或视频帧允许使用的视觉 token 上限。高分辨率更适合读取细小文字和小目标,但会增加 token 使用量与延迟;低分辨率更适合快速筛选。参数名相同,不代表所有模型或供应商的档位和上限完全相同,接入时必须以当前模型文档和实际 usage 为准。
可以把配置写成任务级策略,而不是全局常量:
{
"task": "receipt_screening",
"media_resolution": "low",
"escalate_when": ["命中疑似异常", "需要读取小字段"],
"max_review_images": 3
}
第一阶段只回答“要不要复核”,第二阶段只发送裁剪后的证据区域。若第二阶段仍然看不清,优先检查图片是否旋转、是否被过度压缩、目标是否占画面太小,而不是盲目把整个原图再次提交。
批量输入和重试最容易漏掉的边界
单图预算可控,不代表批处理就安全。一次请求中如果放入多张图片,应该先计算总预算,并给失败重试设置上限。网络错误重试时复用同一批图片,可能让输入消耗按次数重复;业务上可以把图片哈希、批次编号、尝试次数写入日志,避免把一次失败误认为一次新样本。
另外,图片格式和方向也会影响结果质量。公开文档列出了 PNG、JPEG、WEBP 等常见格式;无论采用哪种格式,都应在进入模型前确认 MIME 类型正确、图片已按 EXIF 或业务规则旋转、文字区域没有被裁掉。格式转换的目标是减少无效体积,不是把证据压成模型无法辨认的噪点。
上线前的四项复盘检查
- 取一批真实图片,记录原始尺寸、缩放后尺寸、估算切片数和接口实际 usage。
- 把整体判断与小字读取拆成两条路径,比较低分辨率和高分辨率的准确率差异。
- 为图片总数、单批 token、最大重试次数设上限,超出时进入人工复核或延后处理。
- 保留失败样本,重点检查方向、局部裁剪、MIME、过度压缩和模型版本,而不是只看平均成本。
如果一项优化只让账单下降,却让关键字段识别失败,应该回滚。对多模态系统来说,正确的成本指标是“完成一次可靠判断的平均代价”,不是最低的单次 token 数。
常见问题
图片一定要缩放到 384 像素吗?
不一定。384 像素是文档规则中的一个预算分界示例,不是所有任务的质量上限。需要读小字时,应保留局部细节并用真实样本验证。
提高 media_resolution 就一定更准确吗?
不一定。它只提供更多视觉预算,不能修复旋转错误、模糊、裁剪错位或原图本身缺失的信息。
如何判断压缩是否过头?
拿业务中最小的关键字段做复核:如果人眼在原图中能读到,而压缩图中字符边界已经粘连,就应提高局部尺寸或改用裁剪复核。
总结
控制多模态图片成本,第一步是把尺寸、切片数和视觉预算变成可记录的数字;第二步是按任务分层,让低分辨率承担筛选,高分辨率只处理真正需要细节的少量证据;最后用实际 usage、准确率和延迟做回归。这样改的是输入路径,而不是简单牺牲图片质量。
-
284 收藏
-
387 收藏
-
328 收藏
-
426 收藏
-
147 收藏
-
377 收藏
-
461 收藏
-
111 收藏
-
213 收藏
-
328 收藏
-
311 收藏
-
361 收藏
-
439 收藏
-
195 收藏
-
338 收藏
-
187 收藏
-
239 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习