四步迭代法写出商业级产品广告图
脑子里画面很清楚,写一大段出来哪哪都不对,然后开始加形容词,越加越飘。四步迭代法反过来做。
- 写一大段生成出来哪哪都不对,于是加「高级感、电影质感、4K」,越加越长效果越飘。
- 第一步先定拍摄参数,别急着描述画面。
- 第二步搭空间,用环境锁定情绪。
- 第三步放人放产品,用位置制造主次。
- 第四步用 negative_prompt 堵掉默认套路。完整模板加案例改造。


打开 Gemini,脑子里画面很清楚,噼里啪啦写了一大段提示词,生成出来一看,哪哪都不对。
然后你开始加形容词。"高级感""电影质感""4K 高清"。越加越长,效果反而越飘。
问题不在你的词汇量。问题在顺序。
大多数人写提示词的默认路径是:先想"我要画一个什么画面",然后开始描述内容,最后想起来补几个参数。高手是反过来的:先把技术约束全部锁死,最后才填画面内容。
这篇文章拆解的是推特用户 @Maercih 分享的两套结构化生图提示词(Nano Banana Pro 和 Nano Banana 2),它们生成的是商业级产品广告图。我把里面的设计逻辑提炼成了一套可复制的方法,你跟着走一遍,以后写提示词的思路会彻底变。
核心就一句话:先画框,再填画。
第一步:先定"拍摄参数",别急着描述画面

想象你是一个摄影师,到了片场准备拍产品广告。你会先做什么?
不是先摆产品。是先选镜头、调相机、定色调。这些决策在你按快门之前就完成了,它们决定了这张照片 80% 的观感。
结构化提示词的逻辑一模一样。
@Maercih 的第一版提示词(Nano Banana Pro)用 JSON 把画面拆成了四层:场景 → 人物 → 产品 → 光影。到了第二版(Nano Banana 2),他做了一个关键升级:在最前面加了一个 settings 层,把镜头焦距、景深、色彩分级、胶片颗粒感这些"摄影师决策"单独抽出来。
v2 的 settings 长这样:
"settings": {
"aspect_ratio": "4:5",
"resolution": "1024x1280",
"style": "photorealistic",
"lighting": "soft diffused studio lighting with warm tones",
"camera": "wide angle lens (24mm), low perspective",
"depth_of_field": "shallow, focus on perfume bottle",
"color_grading": "warm cinematic, terracotta and amber tones",
"render_quality": "high detail, natural textures, no plastic skin",
"motion": "still frame",
"grain": "subtle film grain"
}
注意,这一整块没有任何画面内容的描述。没有人物,没有产品,没有场景。但 24mm 广角 + 低视角决定了透视的戏剧感,暖色电影调 + 胶片颗粒决定了复古高级的氛围,浅景深决定了产品永远是视觉焦点。
这就是"约束优先":你还没开始画画,框已经立好了。
为什么要用 JSON 而不是一段话写完?不是 JSON 本身多高级,而是 key-value 结构天然强制你把不同维度分开写。一段话里写"广角镜头拍一个穿粉色衣服的女孩在蓝色房间里",镜头参数和画面内容混在一起,AI 分不清哪个更重要。JSON 里每个 key 是一个独立的注意力锚点,模型不会因为你写在后面就降权。
我管这个叫分层解耦,说白了就是:别把所有描述搅在一锅粥里,一个维度一个格子,各管各的。你拆得越细,AI 就越难在某个维度上失控。
第二步:搭空间,用环境锁定情绪
框架定好了,下一步是搭舞台。
v1 用了鲜蓝色墙壁 + 蓝白格子地板,出来的画面是清冷前卫的时尚感。v2 换成暖赤土墙 + 芥末棕格子地板 + 拱门,变成了温暖复古的高级感。两张图的人物姿态、产品摆放逻辑几乎一样,情绪完全不同。
差别在哪?就在环境那几个颜色词。
v2 的空间描述是这样写的:
The room is minimal and geometric with warm terracotta walls, an arched doorway, and a retro checkered floor in mustard and brown tones.
三个关键词:terracotta(赤土色)、arched doorway(拱门)、mustard and brown(芥末棕)。没有一个形容词是"高级""大气""有质感",全都是具体的颜色和形状。AI 对"高级感"的理解飘忽不定,但你告诉它"赤土色墙壁",它生出来的颜色八九不离十。
顺便说一嘴:两版都用了格子地板,这不是巧合。格子的重复纹理在广角镜头下会产生强烈的透视收缩线,能把空间纵深感拉到最大。这是功能性选择,不是审美偏好。
第三步:放人放产品,用位置制造主次

接下来是演员和道具。
新手的写法是"产品放前面,要大"。AI 听完自己判断多大算大、多前算前,结果经常是产品和人物差不多大,毫无层次。
v1 的写法:
"products": [
{
"description": "Central, sharp white tube on the checkered floor.",
"label": "SINTCOM",
"details": "Ácido Hialurónico UVB + UVA FPS 50+ Tono Rosado",
"position": "Foreground, large."
},
{
"description": "White tube on the checkered floor.",
"label": "SINTCOM",
"position": "Background left, smaller."
},
{
"description": "White tube on the checkered floor.",
"label": "SINTCOM",
"position": "Background right, smaller."
}
]
核心手法:用 Foreground, large 和 Background left, smaller 锁死空间层级。不靠形容词,靠坐标。前景产品大、背景产品小,强制透视就出来了。
v2 更进一步:画面里只有一个人,但她的手和身体处在不同的景深层。她从背景向镜头伸出手,手里拿着产品,手和产品因为广角透视在前景被放大,身体在后面缩小。一个人同时占据前景和背景,强制透视就出来了。
这比 v1 的"产品放地上"高明得多:产品不是静态摆在那里等着被看,而是被人拿着递向镜头,画面有了动势和故事感。
第四步:用 negative_prompt 划红线

前三步都是告诉 AI"我要什么"。但 AI 生图有个特性:你说"高质量"它理解模糊,你说"不要塑料皮肤"它理解精确。
v1 没有 negative_prompt。v2 加上了:
"negative_prompt": "blurry, low resolution, distorted proportions, extra fingers, plastic skin, overexposed highlights, harsh shadows, unrealistic reflections, text errors, watermark, logo artifacts"
这不是可有可无的升级。不写 negative_prompt 的默认后果:皮肤过度光滑像塑料人偶、玻璃没有真实反射、文字标签出现乱码、手指数量不对。这些都是 AI 生图的高频翻车项。
你不需要在 prompt 里写"realistic skin texture"和"natural reflections on glass"的同时又在 negative_prompt 里写"plastic skin"和"unrealistic reflections"。但实际上,v2 两边都写了。为什么?因为正向描述是"我想要的方向",负向排除是"绝对不能越的线"。方向可以偏一点,红线不能碰。
有四条 negative_prompt 我建议你永远保留,不管生什么图:
- blurry(模糊)
- distorted proportions(比例失真)
- extra fingers(多余手指)
- plastic skin(塑料皮肤)
这四条是 AI 生图的基础安全网。
完整模板
四步走完,该把它们组装成一份完整的提示词了。使用方法很简单:把下面的 JSON 整块复制,粘贴到 Gemini 的对话框里发送就行,不需要额外操作。
固定部分原样保留,你需要改的地方用 [变量名] 标出:
{
"settings": {
"aspect_ratio": "[比例,如 4:5 / 1:1 / 16:9]",
"resolution": "[分辨率,如 1024x1280]",
"style": "photorealistic",
"lighting": "[光照,如 soft diffused studio lighting with warm tones]",
"camera": "[镜头,如 wide angle lens (24mm), low perspective]",
"depth_of_field": "[景深,如 shallow, focus on 产品名]",
"color_grading": "[色调,如 warm cinematic, terracotta and amber tones]",
"render_quality": "high detail, natural textures, no plastic skin",
"motion": "still frame",
"grain": "subtle film grain"
},
"prompt": "A surreal forced-perspective product shot. [人物描述:外貌、服装、姿态], leans forward from the background and reaches her hand toward the camera, holding [产品描述:材质、颜色、标签文字]. Her outstretched hand and the product appear oversized in the foreground due to foreshortening, while her body remains small in the background. [场景空间描述:墙壁颜色、地板材质、建筑元素] [光影补充:如 soft and warm, creating gentle shadows and a premium editorial feel] Realistic skin texture, natural reflections on [产品材质], accurate scale illusion, no over-smoothing, no CGI look.",
"negative_prompt": "blurry, low resolution, distorted proportions, extra fingers, plastic skin, overexposed highlights, harsh shadows, unrealistic reflections, text errors, watermark, logo artifacts"
}
settings 里 render_quality、motion、grain 和 negative_prompt 基本不用改,是通用安全配置。你每次主要调的是:镜头、色调、景深焦点,以及 prompt 里的场景和主体描述。
案例改造 1:换色调,同一模板变另一个品牌
色调是最低成本、最高回报的变量。改几个颜色词,整张图的情绪就变了。
改了什么:
改动项 原版(暖赤土系) 改造版(冷蓝灰系) color_grading warm cinematic, terracotta and amber tones cool cinematic, steel blue and slate gray tones 墙壁 warm terracotta walls cool slate gray walls 地板 mustard and brown tones navy and white tones 光照 warm tones cool tones 拱门 arched doorway (保留不变)
一共改了 5 个词组,全是颜色相关的。
暖色 = 感性温暖,冷色 = 克制专业。构图和人物一个没动,只靠色调就把品牌调性换了。

案例改造 2:换产品,从香水到蓝牙耳机
改了什么:
改动项 原版 改造版 depth_of_field shallow, focus on perfume bottle shallow, focus on earbuds case 产品描述 a large amber glass perfume bottle labeled 'ZAHARBAAD SHIRA' a large matte black wireless earbuds case labeled 'NOVABEATS PRO' 指甲细节 soft pink nails short nude nails color_grading warm cinematic, terracotta and amber tones cool minimal, charcoal and silver tones 墙壁/地板 warm terracotta walls, mustard and brown cool concrete walls, gray and white
改动幅度中等:产品描述重写,配色跟着产品调性走。
香水要温暖光泽,耳机要冷峻哑光,配色跟着产品走就行。构图逻辑(人物伸手递产品 + 透视放大前景)一个没变。

案例改造 3:换焦距,从广角到中焦
这个案例只改一行:camera 从 wide angle lens (24mm), low perspective 换成 standard lens (50mm), eye level。一个数字,一个视角。
但效果差异很大。24mm 广角会放大前景、压缩背景,这是强制透视的物理基础。换成 50mm,前后景的大小差异大幅缩小,画面变得更"正常",更接近人眼看到的真实比例。如果你的产品走自然、真实路线,50mm 反而是更好的选择。
不过焦距不是随便改的参数。24mm 改到 50mm,整个透视关系都变了,你可能还需要微调产品的 position 描述(比如把 Foreground, large 的 large 去掉)。这就是约束层参数的特点:改一个,可能牵动一片。

从"会用模板"到"会迭代模板"
拿着上面的模板直接用,你已经能生成质量不错的产品图了。但如果你想更进一步,可以学学 @Maercih 从 v1 到 v2 的迭代思路。
v1 的结构是:scene + subject + products + lighting,四个模块平铺,把画面描述清楚了,能跑通。
v2 做了什么?他把原来隐含在各个描述里的"摄影师决策"抽出来,变成了独立的 settings 层。镜头焦距不再混在 scene 的 environment 里,色调不再靠场景描述词间接传达,而是有了专门的 color_grading 字段。他还加了 negative_prompt,把"不要什么"从"要什么"里分离出来。
这个进化路径本身就是一个方法:
- 先用简单结构跑通:别一上来就追求完美模板,先把画面生出来
- 找出"隐含的决策":哪些参数你每次都在调但没有单独列出来?把它们显式化
- 分离正向和负向:告诉 AI 你要什么是一回事,告诉它绝对不能做什么是另一回事
- 测试哪些变量牵一发动全身:焦距、色调、空间层级,这些改一个就影响全局;服装颜色、品牌名这些改了只影响局部
你自己的提示词也可以这么迭代。先跑通,再拆层,再补红线。
现在就可以做一件事:把你上次生图用的提示词翻出来,按这四层结构重新拆一遍,看看哪一层是你之前压根没写的。迭代从第一次重写开始。
本文参考:@Maercih 的 Gemini 生图提示词分享 | Nano Banana Pro | Nano Banana 2
