/chat/completions
接口时,构造包含 图片 url
或 base64 编码图片
的 message
消息内容进行调用。通过 detail
参数控制对图像的预处理方式。
low
,high
,auto
三个 detail
参数选项。
对于目前支持的模型,detail
不指定或指定为 high
时会采用 high
(“高分辨率”)模式,而指定为 low
或者 auto
时会采用 low
(“低分辨率”)模式。
message
消息格式示例InternVL
系列模型注意:建议将 {"type": "text", "text": "text-prompt here"}
放在请求体 content
的图片后面,以获得最佳效果。 DeepseekVL2
系列模型适用于处理短上下文,建议最多传入2张图片。若传入超过2张图片,模型将自动调整图片尺寸为384*384,且指定的detail参数将无效。Qwen
最高支持像素是 3584 * 3584= 12845056
,最低支持像素是 56 * 56 = 3136
,会对先对每张图片长短边均放缩至28的倍数 (h * 28) * (w * 28)
。如果不在最小像素和最大像素区间内,再等比缩放至该区间。
detail=low
时将所有图片resize 成 448 * 448
尺寸,最终对应 256 tokens
;detail=high
时等比缩放,首先将长宽按照最近的 28
倍数向上取整,然后再等比缩放至像素区间 (3136, 12845056)
,并保证长宽均为 28
整数倍。224 * 448
和 1024 x 1024
和 3172 x 4096
的图片,选择 detail=low
时,均消耗 256 tokens
;224 * 448
的图片,选择 detail=high
时,因为 224 * 448
在像素区间内,且长宽均为 28
倍数,消耗 (224/28) * (448/28) = 8 * 16 = 128 tokens
;1024 * 1024
的图片,选择 detail=high
时,将长宽按照 28
的倍数向上取整至 1036 * 1036
,该数值在像素区间内,消耗 (1036/28) * (1036/28) = 1369 tokens
;3172 * 4096
的图片,选择 detail=high
时,将长宽按照 28
的倍数向上取整至 3192 * 4116
,该值超过最大像素,再将长宽等比例缩小至 3136 * 4060
,消耗 (3136/28) * (4060/28) = 16240 tokens
。DeepseekVL2
对于每张图片,会处理global_view
和local_view
两部分。global_view
将原图片统一resize成384*384
像素大小,local_view会将每张图片划分成若干384*384
的块大小。图片中间会根据宽度增加额外token来衔接。
detail=low
时将所有图片resize 成384*384
尺寸detail=high
时会根据长宽比例,将图片resize成长宽均为384(OpenAI是512)
的倍数, (h*384) * (w * 384)
, 且1 <= h*w <=9
。h * w
按照如下规则选择:
h
和w
均为整数,在满足1 <= h*w <=9
约束下,按照(h, w)
组合遍历。(h*384, w*384)
像素时,和原图片的像素比较,取新图片像素和原图片像素的最小值作为有效像素值,取原图片像素值与有效像素值之差作为无效像素值。如果有效像素值超过之前判定的有效像素值,或者当有效像素值和之前持平,但是无效像素值更小时,选择当前(h*384, w*384)
组合(h*w + 1) * 196 + (w+1) * 14 + 1 token
224 x 448
和 1024 x 1024
和 2048 x 4096
的图片,选择detail=low
时,均消耗421token
.384 x 768
的图片, 选择detail=high
时, 长宽比为1:1
, 会缩放至384 x 768
, 此时h=1, w=2
, 消耗
(1*2 +1)*196+(2+1)*14+1=631 token
.1024 x 1024
的图片, 选择detail=high
时, 会缩放至1152*1152(h=w=3)
, 消耗(3*3 + 1) * 196 + (3+1)*14+1 = 2017 token
.2048 x 4096
的图片, 选择detail=high
时, 长宽比例为1:2
, 按照规则缩放至 768*1536(h=2,w=4)
, 消耗 (2*4 + 1) * 196 + (4+1)*14+1 = 1835 token
.GLM-4.1V
最小支持像素28 * 28
,以28
像素为单位,对图片按照比例将长宽缩放至最接近的28
整数倍像素。
如果缩放后像素小于112 * 112
,或者大于 4816894
,那么按照28
像素的倍数,等比例缩放长宽至区间。
detail=low
时将所有图片resize 成
448*448尺寸, 最终对应
256 token`。detail=high
时等比缩放,首先将长宽按照最近的28
倍数取整,然后再等比缩放至像素区间(12544, 4816894)
,并保证长宽均为28
整数倍。224 x 448
和 1024 x 1024
和 3172 x 4096
的图片,选择detail=low
时,均消耗256token
.224 x 448
的图片, 选择detail=high
时, 因为224x448
在像素区间内,且长宽均为28
倍数,消耗 (224//28) * (448//28) = 8 * 16 = 128 token
.1024 x 1024
的图片, 选择detail=high
时, 将长宽按照28
的倍数取整为1036*1036
, 该数值在像素区间内, 消耗 (1036//28) * (1036//28) = 1369 token
.3172 x 4096
的图片, 选择detail=high
时, 将长宽按照28的倍数取整至3192 x 4088
, 该值超过最大像素, 再将长宽等比例缩小至 1932 x 2464
, 消耗(1932//28) * (2464//28) = 6072 token
.