JSON提示词与Nano Banana 2:AI图像生成结构化提示词实战 最近在跟进 AI 图像生成相关教程时反复看到一个关键词被提及Nano Banana 2。与以往“描述一段话直接出图”的玩法不同最新的视频教程里频繁出现一种更工程化的提示词写法——JSON 提示词。也就是把画面主体、风格、镜头、光照、色彩、构图等信息按结构化字段组织成一个 JSON 对象再交给模型解析。这种写法的好处非常直观提示词不再是一大段带有歧义的散文而是像一份配置文件一样稳定可控。本文会围绕“JSON 提示词 Nano Banana 2”这个组合从概念讲起覆盖环境准备、语法拆解、完整实战、中文字幕视频学习场景、常见报错与工程建议帮你建立一套可复用的图像生成提示词方法论。无论你只是好奇 AI 出图还是想把提示词工程落地到项目中本文都适合读到最后。1. Nano Banana 2 与 JSON 提示词的基本认知1.1 Nano Banana 2 是什么Nano Banana 2 是当前热度很高的 AI 图像生成模型/工具在社区视频和教程里常被称作 Nano Banana 系列的升级版本。关于它的准确定位不同平台给出的称呼略有差异但可以确定的是它属于具备深度语义理解能力的图像生成方向能够对复杂指令进行拆解而不是只做简单的“关键词拼凑”。以前我们用 AI 画图最典型的做法是写一段英文描述例如a cute cat sitting on a windowsill, soft light, oil painting style这种方式简单但问题也很明显一旦画面元素变多比如要同时控制主体数量、人物动作、镜头角度、画幅比例、环境氛围纯文本描述就会变得混乱。模型很可能把“前景、背景、主体、陪体”理解错导致生成结果与预期偏差很大。Nano Banana 2 这类模型在语义理解上做了加强它更擅长读取结构化指令。换句话说你把需求写成 JSON它在内部解析时能更精确地知道“哪个字段描述什么”而不是从一段长文本里反复猜测。1.2 为什么提示词要用 JSONJSON 本身只是一种数据交换格式核心特点是“键值对 嵌套结构 数组”。这种结构对人和机器都很友好对模型来说JSON 有明确的字段边界不会把风格词和主体词混在一起。对开发者来说JSON 可以程序化生成、批量修改、版本对比方便沉淀提示词模板。对团队协作来说JSON 可以用配置管理工具维护比在聊天框里复制粘贴提示词更规范。在实际使用中JSON 提示词通常有两种交付方式第一种是把 JSON 作为一段文本直接写进提示词参数里。模型通过自然语言理解这段 JSON 结构进而生成符合字段描述的图片。第二种是在调用 API 时直接把结构化参数作为请求体的一部分传给服务端。这种情况下JSON 不仅仅用于描述画面还参与控制模型参数例如seed、negative_prompt、aspect_ratio等。本文后续提到的“JSON 提示词”主要指第一种情况将 JSON 作为图像描述的一部分用于约束模型输出。1.3 结构化提示词与自然语言提示词的区别先看一个对比对比维度自然语言提示词JSON 结构化提示词可读性阅读流畅但字段边界模糊结构清晰字段含义明确稳定性同一段话多次生成结果波动大字段固定结果更可控可复用性改一处容易引发歧义模板化修改替换某个字段即可程序化能力不适合批量生成和自动化非常适合脚本调用、批量实验学习成本低需要理解 JSON 语法和字段设计自然语言提示词并不是没有优势。当你只想快速出一张概念图或者还在探索灵感阶段自然语言更高效。但当你进入“稳定复现某种风格”“批量生成同系列素材”“与团队共享提示词规范”这些阶段JSON 结构化提示词的优势就体现出来了。2. 环境准备与工具链2.1 模型接入方式Nano Banana 2 的接入方式会因平台而异常见有三种网页端体验适合新手直接在官方或第三方网页里输入提示词无需写代码。API 调用适合开发者通过 HTTP 请求把 JSON 提示词发送给模型服务返回图片地址或 Base64 图片数据。本地部署 / 私有化服务适合对数据隐私要求较高的团队但需要一定的 GPU 资源和部署经验。本文的实战章节以 API 调用为例示例代码会采用通用的请求结构。你需要根据实际情况替换接口地址、模型名称和鉴权信息不要直接照搬。2.2 JSON 编辑器与校验工具写 JSON 提示词时最怕语法错误。推荐准备下面几类工具VS Code安装 JSON 插件后写 JSON 时有语法高亮和自动校验。JSONLint在线校验 JSON快速定位缺失逗号、多余括号等问题。jq命令行处理 JSON 的利器也常用于调试接口返回结果。在写提示词时我建议先用本地的 JSON 编辑器写好后再复制到模型对话或 API 请求中避免在输入框里手写漏掉冒号或引号。2.3 中文字幕视频学习环境的准备很多 Nano Banana 2 教程视频是英文内容需要中文字幕辅助理解。此时可以准备字幕下载工具或在线转录平台用于获取英文原文字幕。翻译工具或人工翻译将英文字幕转为中文。SRT / VTT 字幕文件编辑器用于时间轴校对。为什么要单独提字幕因为很多视频里出现了大量提示词实例字幕可以帮你快速定位演示片段。你可以在字幕里搜索JSON、prompt、seed等关键词直接跳到对应讲解部分效率比手动拖进度条高很多。3. JSON 提示词核心语法详解3.1 最小 JSON 提示结构一个最小的 JSON 提示词只需要包含“主体”和“风格”两个字段即可{ subject: a red fox standing in the snow, style: cinematic photography }这段 JSON 的含义是画面主体是一只站在雪地里的红狐风格是电影感摄影。模型收到后会根据这两个字段生成图片。看起来很简单但这只是最基础的写法。真实场景中我们通常要控制更多维度。3.2 常用字段与取值建议根据大量提示词案例我整理了下面这套通用字段结构适用于 Nano Banana 2 以及同类图像生成模型字段名作用示例取值subject画面主体决定“画什么”a Chinese tea master pouring teastyle整体美术风格ink wash painting, traditional Chinese artcomposition构图方式close-up on hands and teapotcamera镜头语言eye level, 50mm, shallow depth of fieldlighting光照条件warm morning sunlight through windowcolor色调倾向low saturation, warm tonesbackground背景环境wooden tea table, calligraphy scroll on wallmood情绪氛围calm, zen, timelessaspect_ratio画幅比例3:4negative_prompt不希望出现的内容blurry, distorted hands, watermark在实际编写时字段名不一定要与上表完全一致。有的平台使用main_subject、visual_style、color_palette等命名你需要以模型文档为准。但核心思路是通用的把画面信息拆成独立维度分别描述。3.3 嵌套对象与数组的用法当画面比较复杂时可以使用嵌套对象和数组。比如要生成一个包含多个主体的场景可以让subjects字段变成一个数组每个元素都是一个对象{ scene: { setting: ancient Chinese courtyard, time: autumn, dusk, weather: light rain }, subjects: [ { role: main, name: a swordsman, appearance: wearing black robes, holding an umbrella, position: center-left, action: standing still, looking at distant mountains }, { role: secondary, name: a white horse, position: right background, action: grazing } ], composition: { rule: rule of thirds, foreground: wet stones, background: misty mountain ridges }, atmosphere: wuxia, melancholy, cinematic }这种写法的好处是模型能明确区分主次关系。subjects数组中第一个对象是“main”第二个是“secondary”模型在构图时会优先保证主体物的清晰度和位置。再比如需要为同一个人物生成多个动作版本时数组结构也非常有用{ subject: { name: a female warrior, appearance: long black hair, silver armor, expressions: [calm, determined, slightly smiling] }, style: 3D anime style, background: ruined castle at night }expressions数组可以理解为对模型的一种“候选约束”最终模型会结合上下文选取一个最合适的表达或者根据你的要求逐一生成。3.4 JSON 转义问题这是实际使用中最容易踩坑的地方。当我们把 JSON 作为字符串传给 API 时内部的引号需要进行转义。先看一个错误示例。假设你要传给模型的prompt参数是{ subject: a red fox, style: cinematic }如果你直接把这段内容当作 JSON 字符串写入外层 JSON不转义引号就会变成{ prompt: { subject: a red fox, style: cinematic } }如果接口接收的是字符串类型这个请求很可能报类型错误。正确的做法是在 prompt 内层字段值里加反斜杠转义{ prompt: {\subject\: \a red fox\, \style\: \cinematic\} }在 Python 中更建议使用json.dumps()自动处理转义而不是手写转义符import json prompt_dict { subject: a red fox, style: cinematic } prompt_str json.dumps(prompt_dict, ensure_asciiFalse) print(prompt_str)输出结果{subject: a red fox, style: cinematic}如果接口支持对象类型则可以直接把prompt_dict传入请求体不需要转义。具体是哪种方式需要看接口文档。这里要特别提醒不同平台的差异很大建议先用一个最小请求测试确认接口是接收 JSON 对象还是 JSON 字符串。4. 完整实战从需求到图像生成4.1 需求与字段映射假设我们现在需要生成一张“中国风茶馆里的茶艺师”主题图片具体要求如下主体穿中式服装的茶艺师正在倒茶风格中国水墨画与现代摄影结合构图特写手部和茶壶背景虚化光线窗外斜射进来的暖光色调暖色调低饱和画幅3:4 竖图把需求映射到 JSON 字段可以得到{ subject: a Chinese tea master in traditional clothing, pouring tea, style: ink wash painting meets modern photography, composition: close-up on hands and teapot, blurred background, lighting: warm sunlight coming through a window, color_palette: warm tones, low saturation, background: traditional Chinese tea house, mood: quiet, focused, elegant, aspect_ratio: 3:4, negative_prompt: blurry face, distorted fingers, watermark }4.2 发送请求这里以一个通用的图像生成接口为例。你需要将下面的接口地址、模型名称替换为实际可用的信息。使用 curl 的方式curl -X POST 你的模型服务地址/v1/images/generations \ -H Content-Type: application/json \ -H Authorization: Bearer ${API_KEY} \ -d { model: nano_banana_2, prompt: {\subject\: \a Chinese tea master in traditional clothing, pouring tea\, \style\: \ink wash painting meets modern photography\, \composition\: \close-up on hands and teapot, blurred background\, \lighting\: \warm sunlight coming through a window\, \color_palette\: \warm tones, low saturation\, \background\: \traditional Chinese tea house\, \mood\: \quiet, focused, elegant\, \aspect_ratio\: \3:4\, \negative_prompt\: \blurry face, distorted fingers, watermark\}, n: 1, size: 768x1024 }使用 Python 更便于调试和批量生成import json import requests def generate_image(api_key, endpoint, model_name, prompt_obj, n1): headers { Authorization: fBearer {api_key}, Content-Type: application/json } payload { model: model_name, prompt: json.dumps(prompt_obj, ensure_asciiFalse), n: n } # 如果接口支持对象类型把上面改成 # payload { # model: model_name, # prompt: prompt_obj, # n: n # } resp requests.post(endpoint, headersheaders, jsonpayload, timeout120) resp.raise_for_status() return resp.json() if __name__ __main__: API_KEY your_api_key_here ENDPOINT 你的模型服务地址/v1/images/generations MODEL nano_banana_2 prompt { subject: a Chinese tea master in traditional clothing, pouring tea, style: ink wash painting meets modern photography, composition: close-up on hands and teapot, blurred background, lighting: warm sunlight coming through a window, color_palette: warm tones, low saturation, background: traditional Chinese tea house, mood: quiet, focused, elegant, aspect_ratio: 3:4, negative_prompt: blurry face, distorted fingers, watermark } result generate_image(API_KEY, ENDPOINT, MODEL, prompt) print(json.dumps(result, ensure_asciiFalse, indent2))4.3 预期结果说明正常返回时你会得到类似下面的结构{ result: { image_url: https://example.com/generated/xxx.png, seed: 1024, finish_reason: success } }注意接口返回的具体字段取决于平台这里只是示意。拿到image_url后可以下载图片查看效果。如果生成结果不满意不要急着修改整个 JSON而是先分析哪个字段出了问题只调整对应的字段。4.4 迭代优化策略假设第一版生成的图片里茶艺师的手部姿势不太自然我们可以单独强化手部描述{ subject: a Chinese tea master in traditional clothing, right hand lifting the teapot lid, left hand gently supporting the teapot body, composition: extreme close-up on hands, teapot spout pouring amber tea, style: ink wash painting meets modern photography, detailed hand anatomy }同时可以把negative_prompt加上extra fingers, missing fingers减少手部畸变概率。这种“单字段迭代”的方式比整体重写提示词更高效也更容易定位影响结果的关键因素。5. 多语言视频与中文字幕场景的提示词处理5.1 为什么视频中常出现 JSON 提示词演示Nano Banana 2 的英文教程视频数量较多很多博主会在屏幕上一行行展示 JSON 提示词然后切换不同的字段值来对比生成效果。这类演示通常是有字幕的观看时你可能需要拖拽到对应位置把出现过的 JSON 片段摘抄下来再翻译成中文笔记。这里有一个很实用的技巧把字幕文件和提示词对应起来整理成一份“带时间轴的中文提示词笔记”。字幕本身就是结构化文本天然适合用 JSON 管理。5.2 字幕片段与提示词映射例如一集视频在 03:22 处演示了一个基础 JSON 提示词字幕对应的中文翻译是“画面主体是一只戴着围巾的金毛犬”此时可以记录成下面的 JSON 笔记{ video: { original_title: Mastering Nano Banana 2 with JSON Prompts, language: en, subtitle_language: zh-CN }, segments: [ { start: 00:03:22,000, end: 00:03:45,000, subtitle_zh: 画面主体是一只戴着围巾的金毛犬风格为写实摄影光线是金色时刻, prompt_example: { subject: a golden retriever wearing a scarf, style: photorealistic, lighting: golden hour } }, { start: 00:05:10,000, end: 00:05:40,000, subtitle_zh: 调整构图方式使用三分法背景虚化, prompt_example: { subject: a golden retriever wearing a scarf, style: photorealistic, composition: rule of thirds, bokeh background } } ] }当你把多段视频的提示词整理成这样的 JSON 笔记后后续复习、检索、复用都会非常方便。这也是“中文字幕 JSON 提示词”结合的一种实际用法不是简单地翻译字幕而是把视频讲解中的提示词沉淀成结构化资产。5.3 中英文提示词映射与兼容策略图像生成模型的训练语料以英文为主直接用中文写提示词有时效果不稳定。更稳妥的做法是设计一个双语映射结构在保留中文语义的同时提供英文描述{ prompt: { zh: { subject: 一只穿着汉服的少女站在樱花树下, style: 古风插画柔和的颜色 }, en: { subject: a young woman in Hanfu standing under a cherry blossom tree, style: ancient Chinese style illustration, soft colors } } }如果模型对中文支持较好可以直接使用zh内容如果模型依赖英文理解则使用en内容。在程序化调用的场景中可以通过配置文件控制使用哪种语言版本避免重复维护两套提示词。6. 常见错误与排查思路6.1 JSON 语法错误问题现象常见原因解决思路请求返回 400 错误JSON 缺少逗号、引号不匹配、多了括号先用 JSONLint 或 VS Code 校验提示词被截断字符串内部引号未转义使用json.dumps()统一处理转义字段值解析失败字符串结尾缺少引号检查最后一项是否有尾随逗号这里给一个典型错误示例{ subject: a cat, style: cartoon, }注意style后面多了一个逗号。在严格 JSON 解析器中这个尾随逗号会报错。很多模型服务端使用严格的 JSON 解析器因此不要写尾随逗号。6.2 字段不识别或效果无效如果 JSON 语法正确但模型生成结果完全没体现某些字段常见原因有字段名与模型不兼容。例如模型只识别style而你写的是art_style。字段嵌套层级太深模型语义解析时丢失了部分信息。字段值描述过于抽象例如style: beautiful模型很难执行。排查方法把提示词简化为单一字段的 JSON逐一验证每个字段是否生效。例如{ subject: a red umbrella on a rainy street }确认主体有效后再加入style再加入lighting逐步叠加。这样能够快速定位是哪个字段失效。6.3 生成结果不稳定同一段 JSON 提示词多次生成结果却差异很大可能是以下原因没有指定seed值每次生成随机采样。模型自身的随机性参数较高例如temperature设置偏大。提示词中存在大量抽象形容词模型自由发挥空间过大。解决办法是在请求中固定seed并在提示词里增加更具体、可量化的描述。比如把big house改为a three-story white villa with a red tiled roof,把beautiful改为soft pink petals falling on the ground。6.4 API 调用层面的报错错误现象常见原因解决思路401 UnauthorizedAPI Key 错误或权限不足检查环境变量和密钥配置429 Too Many Requests请求频率超出配额增加重试间隔或申请更高配额500 Internal Server Error服务端异常或请求参数兼容性问题简化请求体换一个参数再测试调试接口时建议使用 Python 脚本把请求体先打印出来确认 JSON 提示词的结构是否符合预期再发送请求。7. 最佳实践与工程建议7.1 把提示词当作代码来管理很多同学把提示词当成“一次性输入”用完就丢。但在团队协作或长期项目中提示词应该像代码一样被管理。建议每个提示词单独存放为一个 JSON 文件例如prompts/tea_master.json。使用 Git 管理版本记录每次改动。提示词文件命名要体现场景和用途例如prompts/portrait/tea_master_v2.json。7.2 定义字段规范团队内部可以约定一套 JSON 提示词字段规范包括哪些字段必填、哪些字段可选、字段值使用中文还是英文、负面提示词如何统一维护。有了规范后换人维护也能快速上手。一个推荐的字段顺序是subject主体必填。composition构图必填。style风格必填。lighting光照可选。color_palette色调可选。background背景可选。mood氛围可选。camera镜头参数可选。negative_prompt负面提示词建议默认维护。aspect_ratio画幅比例按输出要求确定。7.3 沉淀提示词模板库建议把常用的提示词整理成模板减少重复劳动。这里给出三个常用模板。人像摄影模板{ subject: a young woman in a white dress, style: portrait photography, soft focus, composition: medium shot, centered, lighting: natural window light, color_palette: bright and airy, background: minimalist studio, white wall, mood: gentle and fresh }中国风插画模板{ subject: a crane flying over a mountain, style: Chinese ink wash painting, delicate brush strokes, composition: wide shot, large negative space, color_palette: black ink and light beige paper texture, background: foggy mountain peaks, mood: poetic, tranquil }产品广告模板{ subject: a glass bottle of perfume on a marble pedestal, style: commercial product photography, high-end cosmetics ad, composition: centered, symmetrical, lighting: soft studio lighting with subtle reflection, color_palette: gold and cream tones, background: blurred silk fabric, mood: luxurious and minimal }模板的意义不是让你照搬而是提供一套可快速改写的起点。每次从模板出发替换subject、style、color_palette等字段就能适配不同场景。7.4 安全与合规提醒使用 AI 图像生成模型时要特别注意内容边界不要生成违法、侵权、违背公序良俗的内容。不要使用未经授权的他人肖像、商标、艺术风格进行商业化生成。涉及批量生成和生产环境变更时先在测试环境验证参数和输出再正式运行。API Key 等敏感信息不要硬编码在代码里建议使用环境变量或密文配置。生成图片的版权归属在不同平台可能有差异商用前务必确认平台的服务条款。结语与下一步行动JSON 提示词并不是什么黑魔法它只是把“画面需求”从模糊的自然语言翻译成机器更容易理解的结构化语言。对于 Nano Banana 2 这类语义理解能力强的模型JSON 结构能最大化发挥模型的潜力也能让提示词变得可维护、可复用、可自动化。建议你从最小的 JSON 提示词开始先跑通一张图然后逐步加入lighting、composition、camera、negative_prompt等字段观察每个字段对结果的影响。如果你也在跟着英文视频学习可以顺手把视频里的提示词片段整理成带中文字幕说明的 JSON 笔记这本身也是一次很好的提示词工程练习。如果觉得本文对你有帮助可以收藏备用。后续遇到 JSON 语法报错或生成不稳定的问题回头对照排查清单会很有用。

相关新闻

最新新闻

混合猜想的分裂版本:数学论文精读指南

混合猜想的分裂版本:数学论文精读指南

这次要读的不是一个新出的模型,也不是一个能一键启动的本地工具,而是一篇数学论文: A split version of the mixing conjecture and applications ,作者是 Philippe Michel。先说明,它对多数读者来说没有“显存门槛”…

2026/9/3 10:55:20
基于改进VSG控制的三相逆变器快速预同步与无缝切换技术

基于改进VSG控制的三相逆变器快速预同步与无缝切换技术

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 10:55:20
技术博客写作中的事实底线:从Z198车次信息到余票查询系统设计

技术博客写作中的事实底线:从Z198车次信息到余票查询系统设计

很抱歉,这个标题无法按 CSDN 技术博客规范生成。原因很简单:“沪太标杆Z198进石家庄北站”不是技术主题。它看起来是一条铁路列车运行信息(上海—太原方向的 Z198 次列车进入石家庄北站),而输入材料中没有任何可作为技…

2026/9/3 10:55:20
SKILL.state:长程智能体任务准确率提升的技能与状态建模实践

SKILL.state:长程智能体任务准确率提升的技能与状态建模实践

在智能体相关讨论里,SKILL.state 被当作提升长程智能体任务准确率的一种关键设计被反复提及。所谓长程智能体任务,指的是需要多轮模型推理、多次工具调用、中间结果互相依赖,并且最终要形成可验收产物的复杂任务。真实业务里的竞品分析、数据…

2026/9/3 10:55:20
大模型JSON输出稳定化:从提示词到重试降级的四层方案

大模型JSON输出稳定化:从提示词到重试降级的四层方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 10:55:20
红队实战:权限分离ShellCode加载器绕过EDR内存检测

红队实战:权限分离ShellCode加载器绕过EDR内存检测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 10:50:17