记录一下那天晚上的排查过程。用 google-genai 1.2 调 gemini-2.5-flash-image 生成配图,想在 generation_config 里指定 2K 分辨率,写了 image_size='2K',接口返回 400,原文是 Invalid JSON payload received. Unknown name "image_size"。
刚开始盯着「取值必须是大写 K 的枚举,写成 2k 或 2048 都不认」,折腾了半个多小时,排掉了。
排查方向其实有限,先把可能性排一排。分辨率参数在 image_config 里而不是 generation_config 顶层。还有一种是SDK 版本旧,新字段还没进类型定义被丢弃。
少数情况下是模型不支持该尺寸,只有部分图像模型开放 2K。
第一件事是用官方 REST 形态验证字段路径
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image:generateContent?key=$KEY" -H "Content-Type: application/json" -d '{"contents":[{"parts":[{"text":"一只橘猫坐在窗台"}]}],"generationConfig":{"imageConfig":{"aspectRatio":"16:9","imageSize":"2K"}}}'
接着确认 SDK 版本里是否有 image_config 属性
python -c "import google.genai as g,google.genai.types as t;print(g.__version__);print('image_config' in t.GenerationConfig.model_fields)"
升级 SDK 后用关键字参数传入再重试
pip install -U google-genai==1.2.0
等前面都确认过,再把返回的图片落盘并核对像素尺寸
python -c "import json,base64;d=json.load(open('resp.json'));open('out.png','wb').write(base64.b64decode(d['candidates'][0]['content']['parts'][0]['inlineData']['data']));from PIL import Image;print(Image.open('out.png').size)"
改完先别撤,确认这几项。请求返回 200,落盘图片尺寸是 2048 级别,aspectRatio 生效,不再出现 Unknown name 的 400。
多模态生成的配置项常分两层,顶层 generation_config 装采样参数,图像专属项在 image_config 里,报 Unknown name 时先查嵌套层级再查拼写。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。
