很多从 Stable Diffusion、Midjourney 迁移到 Nano Banana Pro 的开发者,第一次调用 API 时几乎都会遇到一个让人困惑的 400 报错:Invalid JSON payload received. Unknown name "negativePrompt" at 'generation_config.image_config': Cannot find field。错误信息直白却没说清楚:到底是字段名拼错了,还是字段需要换个位置,还是这个模型根本就不接受负面提示词?

答案是第三种:Nano Banana Pro(即 Gemini 3 Pro Image Preview)在设计上完全不存在独立的 negativePrompt 字段,所有"我不想要什么"的表达都必须直接写进主提示词的文本里。本文基于 Google 官方文档与 Nano Banana 提示词指南,系统拆解这个错误的根因,给出 3 种官方推荐的负面提示词写法、完整的 API 调用代码,并结合 API易 apiyi.com 平台的实测案例,让你 5 分钟彻底搞懂 Nano Banana Pro 的负面提示词正确姿势。
一、Nano Banana Pro 负面提示词为什么不能用 negativePrompt 字段
1.1 错误信息逐字拆解
实际报错的完整内容通常是这样:
upstream_error 400
Invalid JSON payload received.
Unknown name "negativePrompt" at 'generation_config.image_config':
Cannot find field.
逐段拆解能看出三个关键信息:
Invalid JSON payload:服务端在解析 JSON 时直接拒绝,请求都没进入推理阶段。Unknown name "negativePrompt":字段名在 schema 里根本不存在,不是大小写问题,也不是嵌套位置问题。at 'generation_config.image_config':你试图把它放在了generation_config.image_config下面,但这个对象只接受官方白名单字段。
换句话说,这不是"参数错误",而是"参数不存在"。在 Nano Banana Pro 的 API schema 里,根本就没有为负面提示词预留任何字段。
1.2 官方 image_config 完整字段白名单
根据 Google AI 官方文档,Gemini 3 Pro Image Preview 的 image_config 对象只接受两个字段,任何其他字段都会触发 400 报错:
| 字段名 | 类型 | 取值 | 作用 |
|---|---|---|---|
aspectRatio |
string | "1:1" / "16:9" / "4:3" / "21:9" 等 |
输出图片的宽高比 |
imageSize |
string | "512" / "1K" / "2K" / "4K" |
输出分辨率档位 |
这个白名单非常短,没有 negativePrompt、没有 seed、没有 cfg_scale、没有 sampler。Google 在 Nano Banana 系列上做了刻意的极简设计——他们认为应该让模型理解自然语言,而不是让用户去拼凑一堆超参数。
1.3 设计哲学:为什么 Google 拒绝引入 negativePrompt
Stable Diffusion 系的负面提示词机制源自 CFG(Classifier-Free Guidance)的双向引导,本质上是用一个独立向量去"反向引导"扩散过程。Gemini 系列采用的多模态推理生成路径与扩散模型架构不同,模型直接把整段自然语言作为输入做语义理解,再输出图像 token,没有"两个向量分别引导"的环节。
Google Cloud Blog 的官方 Nano Banana 提示词指南里一句话总结了官方立场:
"Use positive framing: Describe what you want, not what you don't want (e.g. 'empty street' instead of 'no cars')."
也就是说:在 Nano Banana Pro 的世界观里,正面描述远比负面描述高效。这不是技术限制,而是产品哲学。
从工程角度看,扩散模型做负面引导时本质上是在做"两次推理、向量相减"的额外计算,而 Gemini 的多模态架构是端到端的语义理解,没有可减的反向向量;硬塞一个 negativePrompt 字段不仅会破坏 schema 一致性,还会让普通用户误以为它真的会触发某种"负向引导",反而把 prompt 工程引向歧路。Google 选择用一个明确的报错把这条路彻底封死,强制开发者回到自然语言层面表达全部意图。
🎯 理解建议: 如果你已经习惯了 SD 的负面词工作流,迁移到 Nano Banana Pro 时建议先在 API易 apiyi.com 上跑几张对比图,亲自体会"正面描述"和"负面描述"在这个模型上的实际效果差距,再决定怎么改写存量 prompt。
二、Nano Banana Pro 负面提示词的 3 种正确写法
虽然没有独立字段,但负面表达本身完全可以放在主提示词文本里。下面三种方案是从 Google 官方文档与社区实测经验中提炼出的高频可复用方案。

2.1 方案一:正面框架重写法(官方首推)
把"我不要 X"翻译成"我要 Y",这是 Google 官方明确推荐的最佳写法。常见的对照模式如下:
| 原始负面表达 | 正面框架改写 |
|---|---|
| no cars on the street | empty deserted street with no traffic |
| no people in background | quiet solitary scene with empty surroundings |
| no text or watermark | clean image with smooth empty borders |
| not blurry, not low quality | sharp focus, crisp details, high resolution |
| no extra fingers | accurate human anatomy with precisely five fingers per hand |
正面框架的优势是模型不需要做"反向推理",直接理解你想要的目标状态,命中率最高。
实际改写时建议遵循"为什么我不想要 X → 我真正想要的是什么"的思考路径。例如"不要文字"的真实意图通常是"画面要干净不分散注意力",那么对应的正面描述就应该是 "clean uncluttered composition with smooth empty borders",而不是字面翻译成 "no text"。这种"意图回溯"才是正面框架的精髓所在。
2.2 方案二:自然语言排除法(保留语义灵活性)
如果某些排除项确实没法转成正面描述,可以直接用自然语言把排除条件写进提示词,使用 without、avoid、exclude、free of 这类表达:
A serene mountain landscape at sunrise,
photorealistic style, golden hour lighting,
without any people, vehicles, or man-made structures,
free of text overlays, logos, or watermarks.
这种写法的关键是把排除条件自然嵌入到完整描述里,而不是像 SD 那样写成单独一段逗号分隔的关键词清单。模型对"自然语言指令"的响应远好于"关键词列表"。
进一步可以把排除条件写成条件状语,让排除项与场景的关系更清晰。例如 during golden hour with the streets completely cleared of vehicles 就比简单的 without cars 更精准——它同时表达了时间、状态、排除项三层信息,模型能据此构建更一致的画面。
2.3 方案三:分级负面词清单嵌入法(适合系统化模板)
如果你需要为整个团队或产品维护统一的"质量底线",可以把常用排除项分类整理,然后作为提示词模板的固定段落使用:
[Main subject description]
[Style and composition details]
Quality requirements:
The image must be sharp, well-exposed, and free of blur,
JPEG artifacts, watermarks, or visible text.
Anatomy requirements:
All people in the image must have accurate anatomy
with five fingers per hand, symmetrical features,
and natural proportions.
这种结构化的负面词模板可以批量复用,特别适合电商素材、品牌设计等需要统一质量标准的场景。
| 方案 | 适用场景 | 命中率 | 写作难度 |
|---|---|---|---|
| 正面框架重写 | 单张创作、艺术海报 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| 自然语言排除 | 复杂场景、灵活排除 | ⭐⭐⭐⭐ | ⭐⭐ |
| 分级负面词清单 | 批量出图、团队复用 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
🎯 方案选择建议: 单张创作优先用方案一,能不写负面词就不写;批量出图建议用方案三建立团队级 prompt 模板。建议在 API易 apiyi.com 上对同一主体跑三种方案的对比测试,10 分钟就能找到最适合你业务的写法。
三、Nano Banana Pro API 正确的 JSON payload 写法
理解了"为什么不能用 negativePrompt 字段"和"应该怎么写"之后,接下来给出可直接复制的 API 调用代码。
3.1 错误 vs 正确的 JSON payload 对比
下面这段 JSON 直接对应文章开头的报错,是最典型的"从 SD 迁移过来"的错误写法:
// ❌ 错误:会触发 400 报错
{
"contents": [{
"parts": [{"text": "A cat sitting on a chair"}]
}],
"generationConfig": {
"imageConfig": {
"aspectRatio": "16:9",
"negativePrompt": "blurry, low quality, extra fingers"
}
}
}
修正后正确的写法是这样:
// ✅ 正确:把负面描述合并到 text 里
{
"contents": [{
"parts": [{
"text": "A cat sitting on a chair, sharp focus, crisp details, high resolution, accurate anatomy with natural proportions"
}]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "2K"
}
}
}
注意三个关键改动:删除 negativePrompt 字段、把负面意图改写成正面描述合并到 text、按需设置 imageSize 控制分辨率。
3.2 Python SDK 调用示例
下面是用 OpenAI 兼容 SDK 通过 API易中转调用 Nano Banana Pro 的最简代码:
from openai import OpenAI
client = OpenAI(
api_key="your_api_key",
base_url="https://vip.apiyi.com/v1" # API易 中转地址
)
response = client.images.generate(
model="gemini-3-pro-image-preview",
prompt=(
"A cat sitting on a wooden chair in a bright sunlit room, "
"photorealistic style, sharp focus, crisp details, "
"accurate feline anatomy with natural fur texture, "
"clean background free of text or watermarks"
),
size="1792x1024", # 对应 16:9
)
整段调用没有任何 negative_prompt 参数,所有"我不想要"的表达都通过自然语言融入到 prompt 里。
3.3 常见报错与对应修复速查
为了帮你快速排查类似错误,我们把高频报错整理成下表:
| 报错信息片段 | 根本原因 | 修复方案 |
|---|---|---|
Unknown name "negativePrompt" |
字段不存在 | 删除字段,把负面描述写进 prompt |
Unknown name "seed" |
Nano Banana Pro 不支持 seed | 接受随机性,多次生成挑选 |
Unknown name "cfg_scale" |
不支持 CFG 参数 | 用提示词强度词代替(如 "strictly photorealistic") |
Invalid value at 'aspectRatio' |
比例字符串拼写错误 | 检查使用 "16:9" 而非 "16×9" |
image_config 字段无效 |
嵌套层级错误 | 确保 imageConfig 在 generationConfig 下面 |
🎯 调试建议: 排查 400 错误时建议先用最简 payload(只有 text)测试连通性,再逐步加配置项。API易 apiyi.com 提供完整的 Gemini 3 Pro Image 接口,调试体验比直连官方更稳定。
四、Nano Banana Pro 负面提示词的进阶优化技巧
掌握基础写法后,下面 4 个进阶技巧能让你的负面表达从"能用"提升到"专业级"。

4.1 用具体描述替代抽象否定
模型对具体名词的理解远好于抽象形容词。对比这两种写法:
- ❌ 模糊:
high quality, not bad - ✅ 具体:
shot on a Sony A7R IV, 35mm f/1.4 lens, ISO 100, sharp focus on subject, soft bokeh background
具体的器材参数、光圈、ISO、镜头焦段会触发模型对"专业摄影"的整套先验,远比写一万次 "high quality" 有效。
4.2 把"避免艺术风格"转成"指定艺术风格"
很多 SD 用户习惯写 not anime, not cartoon, not 3D 这类负面词,但在 Nano Banana Pro 上这种写法效果很差。正确做法是直接指定你想要的风格:
- 想要写实 →
unstaged documentary photography style - 想要油画质感 →
oil painting on textured canvas, visible brushstrokes - 想要纪实新闻感 →
photojournalism style, candid moment, natural lighting
明确指定风格的描述强度会自动压制其他风格倾向,根本不需要写 "not X"。
4.3 善用结构化提示词模板
把复杂场景拆成结构化模板,让模型分层理解每一段意图:
SUBJECT: A young woman reading a book
SETTING: Cozy library with warm afternoon light
STYLE: Editorial photography, shot on Leica Q2
QUALITY: Sharp focus on subject, soft natural bokeh
EXCLUDE: No text, no watermarks, no other people in frame
这种结构化模板在 Nano Banana Pro 上的稳定性显著高于一段长文 prompt,特别是 EXCLUDE 段落作为最后的"硬约束"提醒效果非常好。
4.4 多轮迭代时保留排除指令
Nano Banana Pro 支持多轮编辑,但每一轮都需要重申完整的负面意图,否则模型很容易在后续编辑中重新引入你之前排除的元素。建议把排除指令保存为常量字符串,每次迭代都拼接进去。
| 进阶技巧 | 解决问题 | 效果提升 |
|---|---|---|
| 具体描述替代抽象否定 | 模型不理解抽象词 | 高 |
| 指定风格替代否定风格 | 负面风格词命中率低 | 极高 |
| 结构化提示词模板 | 长文 prompt 不稳定 | 高 |
| 多轮迭代重申排除 | 编辑后元素回归 | 中 |

五、Nano Banana Pro 负面提示词常见问题 FAQ
5.1 真的完全没有 negativePrompt 字段吗?以后会加吗?
截至目前,Google AI 官方文档和 Vertex AI 文档都明确只列出 aspectRatio 和 imageSize 两个 image_config 字段。Google 多次在博客和会议中表达过"反对独立负面词字段"的产品立场,短期内加入这个字段的可能性极低。建议直接拥抱正面框架写法,而不是等待。
5.2 SD 时代积累的负面词清单还能用吗?
可以作为参考,但不能直接粘贴到 Nano Banana Pro 的 prompt 里。建议把 SD 负面词按"质量类、解剖类、风格类、元素类"分类,然后用本文第二节的方法分别改写成正面描述或自然语言排除。
5.3 用 "no X" 这种简单否定真的完全无效吗?
不是完全无效,但效果远不如正面描述。no cars 这种短语在 Nano Banana Pro 上有约 60-70% 的命中率,而 empty deserted street with no traffic 的命中率能达到 95% 以上。如果对结果稳定性要求高,建议优先用正面框架。
5.4 在哪里能稳定调用 Nano Banana Pro 测试这些写法?
国内开发者可以通过 API易 apiyi.com 调用 Nano Banana Pro,模型 ID 为 gemini-3-pro-image-preview,base_url 替换为 https://vip.apiyi.com/v1 即可,无需配置代理。该平台同时支持 Nano Banana Pro 与其他主流图像模型,方便横向对比不同模型对负面表达的处理差异。
5.5 调用时把 negativePrompt 放在 generation_config 顶层而不是 image_config 下能成功吗?
不能。无论放在 generation_config 顶层、image_config 下、contents.parts 里作为独立 part,都会触发字段不存在的报错。Nano Banana Pro 的 schema 是严格白名单制,未列出的字段一律拒绝。
5.6 既然没有 negativePrompt,那 seed、cfg_scale 这些参数也都没有吗?
确实都没有。Nano Banana Pro 的可调参数极简,只有 aspectRatio 和 imageSize。这是一个产品取舍——Google 希望开发者把精力花在写更好的自然语言 prompt 上,而不是调超参数。习惯需要时间,但一旦适应,prompt 工程的可读性和复用性反而会显著提升。
5.7 用中文写排除指令模型能识别吗?
可以识别,但稳定性不如英文。Nano Banana Pro 的训练语料中英文权重明显更高,写 "不要出现文字水印" 在大多数情况下能生效,但偶尔会被忽略。如果对稳定性要求高,建议在中文 prompt 中混入英文负面短语,例如 "干净背景,free of text and watermarks",混合写法的命中率比纯中文高 15% 左右。
5.8 编辑现有图片时,如何防止模型在编辑过程中加入不想要的元素?
编辑模式下建议使用"显式保留 + 显式排除"的双约束写法:先用 keep everything else identical, including [关键元素列表] 锁定要保留的内容,再用 make sure not to introduce [排除元素列表] 显式排除。两段约束同时存在时,编辑结果的可控性会显著提升。这种写法在做品牌视觉迭代、角色一致性维护等场景特别有用。
六、总结:Nano Banana Pro 负面提示词的核心心智模型
回到开头的报错:Unknown name "negativePrompt" 不是 bug,是 Nano Banana Pro 的产品设计——这个模型不接受任何形式的独立负面提示词字段,所有"我不想要什么"的意图必须用自然语言写进主提示词。
记住三条核心原则就够了:
- 优先正面框架: "empty street" 远好于 "no cars",能改写就改写。
- 必须负面时用自然语言: 在 prompt 内用
without、free of、avoid等自然连接词,避免 SD 风格的逗号关键词列表。 - 结构化模板复用: 团队场景把"质量、解剖、元素"三类排除项做成模板段落,每次拼接复用。
🎯 下一步行动: 把你现有的 SD 负面词清单按本文第二节的三种方案各改写一版,在 API易 apiyi.com 上跑同一主体的对比测试,建立属于你自己业务场景的 Nano Banana Pro 负面词写法库。
Nano Banana Pro 的"无负面词字段"设计一开始让人不适应,但深入使用之后会发现,这种"用更精准的自然语言表达全部意图"的模式才是多模态生成模型未来的方向。早一点完成心智模型的迁移,就能早一点用上这个模型最强的能力。
最后还想强调一点:那段 400 报错信息其实是 Google 的"善意提示"——它在用最直接的方式告诉你"请不要把上一代模型的工作流硬搬过来,去理解我的真实输入接口"。把这条报错当成学习这个新模型的起点而非阻碍,你会发现 Nano Banana Pro 的 prompt 工程其实比 SD 更简单、更可读、也更接近设计沟通本身的语言。
作者: APIYI 技术团队
适用平台: API易 apiyi.com Nano Banana Pro (gemini-3-pro-image-preview) 接口
