简介:这份资源面向AI绘画爱好者、提示词工程师与内容创作者,系统整理了Nano Banana、GPT-5、GPT-4o等主流图像生成模型的提示词案例集,覆盖从写实人像、电影感场景到插画、漫画、信息图与工程爆炸图等多种风格,帮助使用者快速找到可复用的提示词模板,解决“不知道怎么写提示词”的常见痛点。压缩包共726个文件,以527张jpeg与184张png效果图为主,辅以少量md说明、js脚本、html页面与json配置,整体约261.11MB,便于按案例编号浏览与检索。案例内容从第464号到第508号,包含海边电影风格肖像、中国朝代时间轴、品牌联名海报、平抛运动轨迹图、老北京航拍、大唐长安插画、赛博黄历、成都旅游地图、日本乡村雨夜公交站、概念前卫礼服、微缩客厅、路飞自拍、PS5技术蓝图、坐标生成图片、发型与草图变体、超级赛亚人变身、表情包、复古工程图、工笔水墨、分格漫画、OOTD、角色分解图、动漫转真人、伪造截图、明星合拍等丰富主题,可直接参考提示词结构与画面描述方式。目前已有71人学习,适合希望提升出图质量与创意效率的AI绘画用户。
1. 拆开一份多模型图像提示词包:它到底能帮你省下多少试错时间
上周帮一个做电商详情页的朋友调图,他甩过来一个压缩包,说里面是 Nano Banana、GPT-5、GPT-4o 三个模型的图像提示词合集,让我看看值不值得留着。我打开翻了半小时,发现这东西解决的不是“有没有提示词”的问题,而是“同一个画面意图,在三个模型上分别该怎么写”的问题。举个例子,同样要一张“玻璃杯里的柠檬气泡水,逆光,水珠清晰”,Nano Banana 吃的是短句加材质关键词,GPT-5 对光影层次和镜头语言更敏感,GPT-4o 则偏向叙事性描述。如果你只用一个模型的提示词去套另一个模型,翻车概率极高。这份资源适合三类人:刚接触 AI 绘画、想少走弯路的从业者;需要跨模型出图、做效果对比的设计师;以及想拆解提示词结构、自己写模板的进阶用户。它不教你模型原理,但能让你在三个模型之间切换时,手里有一套可复用的写法参照。
2. 三个模型的提示词写法差异:从 Nano Banana 的短句到 GPT-5 的镜头语言
2.1 为什么不能一套提示词通吃三个模型
先把这个坑说透。Nano Banana 的底层对提示词的处理偏向“关键词权重叠加”,你写“柠檬气泡水,玻璃杯,逆光,水珠,高清”它就能给你一个不错的底图。但同样的词丢给 GPT-5 图像接口,出来的东西往往偏平,因为 GPT-5 更依赖自然语言里的空间关系和镜头描述。GPT-4o 又不一样,它对“氛围词”和“故事感”的响应更明显,你写“夏日午后,一杯刚倒好的气泡水,阳光穿过杯壁在木桌上投下光斑”,它反而比堆关键词效果好。
我一般会按这个顺序判断:先看模型是“关键词驱动”还是“描述驱动”。Nano Banana 属于前者,GPT-5 和 GPT-4o 属于后者,但 GPT-5 更吃技术参数,GPT-4o 更吃情绪和场景。所以这份提示词包的价值就在于,它把同一个画面意图拆成了三套写法,而不是给你一堆通用模板让你自己猜。
2.2 拆解提示词包里的三类文件结构
拿到包之后别急着全打开。我习惯先看目录结构,一般这类资源会分成三个文件夹,对应三个模型,每个文件夹里再按场景分:产品图、人像、场景概念、UI 素材。每个场景下是若干.txt或.md文件,文件名通常就是画面主题,比如glass_lemon_soda.txt。
打开一个文件,里面一般分三段:第一段是提示词正文,第二段是负向提示词,第三段是参数建议(比如步数、CFG、采样器)。有些包还会附一张参考图,但这份资源里没有图,只有文本。这意味着你需要自己跑一遍才能验证效果,不能直接抄了就用。
我建议先挑一个你熟悉的场景,比如产品图,把三个模型文件夹里对应的文件都打开,横向对比。你会发现 Nano Banana 的提示词通常只有两三行,GPT-5 的会有四五句,GPT-4o 的可能是一整段。这不是谁好谁坏,而是模型特性决定的。
2.3 用 Python 批量提取和对比提示词
如果你不想一个个手动翻,可以写个脚本把三个文件夹里的提示词按场景对齐,输出成一张对比表。下面这个脚本我常用,依赖只有os和pandas,不需要额外装东西。
import os import pandas as pd # 三个模型文件夹的根目录,按实际路径改 base_dirs = { "nanobanana": "./prompts/nanobanana", "gpt5": "./prompts/gpt5", "gpt4o": "./prompts/gpt4o" } # 假设每个文件夹下都是 .txt 文件,文件名即场景名 records = [] for model, folder in base_dirs.items(): if not os.path.exists(folder): print(f"跳过不存在的目录: {folder}") continue for fname in os.listdir(folder): if not fname.endswith(".txt"): continue scene = os.path.splitext(fname)[0] # 去掉扩展名作为场景标识 with open(os.path.join(folder, fname), "r", encoding="utf-8") as f: content = f.read().strip() records.append({ "scene": scene, "model": model, "prompt": content }) df = pd.DataFrame(records) # 按场景和模型排序,方便横向对比 df = df.sort_values(["scene", "model"]) df.to_csv("prompt_compare.csv", index=False, encoding="utf-8-sig") print(f"共提取 {len(df)} 条提示词,已保存到 prompt_compare.csv")这段代码的逻辑很简单:遍历三个模型目录,把每个.txt文件的内容读出来,连同文件名和模型名一起塞进列表,最后导出 CSV。参数上你只需要改base_dirs里的路径。跑完之后用 Excel 打开 CSV,按scene列排序,就能看到同一个场景下三个模型的写法差异。注意编码用utf-8-sig,不然 Excel 打开中文会乱码。
2.4 参数建议怎么读:别照抄,先看模型版本
提示词文件里经常附一行“Steps: 30, CFG: 7, Sampler: DPM++ 2M Karras”。这些参数对 Nano Banana 可能有效,但 GPT-5 和 GPT-4o 的图像接口不一定开放这些底层参数。我的做法是:只把参数当参考,先确认你用的模型版本支持哪些可调项。比如 GPT-4o 的图像生成更多是通过 API 的size、quality这类参数控制,而不是步数和采样器。如果你硬把 Stable Diffusion 那套参数往 GPT 系列上套,除了浪费时间没有别的结果。
常见做法是,拿到提示词后先跑默认参数,出图后再微调。如果画面偏暗,优先改提示词里的光影描述,而不是调 CFG。这个顺序能帮你少走很多弯路。
3. 把提示词包跑通:从环境准备到出图的完整操作链
3.1 先确认你手里有哪些模型的调用权限
这份资源本身只是文本,不包含模型权重或 API 密钥。所以第一步是确认你能调用哪些模型。Nano Banana 一般通过其官方或第三方接口调用,GPT-5 和 GPT-4o 需要通过对应的 API 平台。如果你只有其中一个模型的权限,那就先跑那个,把另外两个的提示词当参考,手动改写成你可用模型的写法。
我一般会建一个config.json把不同模型的调用信息分开存,避免混在一起。比如:
{ "nanobanana": { "api_base": "https://api.example.com/v1", "api_key": "your_key_here", "model_name": "nanobanana-v1" }, "gpt5": { "api_base": "https://api.example.com/v1", "api_key": "your_key_here", "model_name": "gpt-5-image" }, "gpt4o": { "api_base": "https://api.example.com/v1", "api_key": "your_key_here", "model_name": "gpt-4o" } }注意这里的api_base和model_name只是占位,你需要换成实际可用的地址和模型标识。不要把密钥硬编码在脚本里,用环境变量或单独的配置文件,避免泄露。
3.2 用统一脚本调用三个模型出图
下面这个脚本演示了如何读取提示词文件,分别调用三个模型,并把返回的图片保存到本地。这里用requests发 POST 请求,假设接口返回的是图片 URL 或 base64。
import json import os import requests import base64 # 读取配置 with open("config.json", "r") as f: config = json.load(f) # 读取一个场景的提示词,这里以 glass_lemon_soda 为例 scene = "glass_lemon_soda" prompt_dir = "./prompts" def call_model(model_key, prompt_text): cfg = config[model_key] headers = { "Authorization": f"Bearer {cfg['api_key']}", "Content-Type": "application/json" } payload = { "model": cfg["model_name"], "prompt": prompt_text, "n": 1, "size": "1024x1024" } resp = requests.post( f"{cfg['api_base']}/images/generations", headers=headers, json=payload, timeout=60 ) if resp.status_code != 200: print(f"{model_key} 请求失败: {resp.status_code} {resp.text}") return None data = resp.json() # 假设返回结构里有 url 字段 img_url = data["data"][0]["url"] img_resp = requests.get(img_url, timeout=60) out_path = f"./output/{scene}_{model_key}.png" os.makedirs("./output", exist_ok=True) with open(out_path, "wb") as f: f.write(img_resp.content) print(f"{model_key} 出图已保存: {out_path}") return out_path for model_key in ["nanobanana", "gpt5", "gpt4o"]: prompt_file = os.path.join(prompt_dir, model_key, f"{scene}.txt") if not os.path.exists(prompt_file): print(f"提示词文件不存在: {prompt_file}") continue with open(prompt_file, "r", encoding="utf-8") as f: prompt_text = f.read().strip() call_model(model_key, prompt_text)逻辑说明:先读配置,再按场景名去三个模型文件夹里找对应的提示词文件,然后逐个调用接口。参数上size可以根据需要改,n是出图数量。注意超时设了 60 秒,如果接口慢可以调大。返回结构不同平台可能不一样,你需要根据实际返回改data["data"][0]["url"]这一行。
3.3 出图后的对比与筛选
跑完三个模型后,你会得到三张图。别急着删,按同一个场景并排看。我一般会关注三点:构图是否一致、光影是否符合预期、细节有没有崩。Nano Banana 可能在材质上更锐利,GPT-5 可能在空间感上更准,GPT-4o 可能在氛围上更讨喜。把每次的结果记下来,慢慢你就知道哪个模型适合哪类需求。
如果某个模型连续几次都跑不出想要的效果,先别怀疑提示词,检查一下模型版本和接口参数。有时候平台更新了模型,旧提示词需要微调。
4. 避坑与排查:提示词包用错场景的五个血泪教训
4.1 把 Nano Banana 的短句直接丢给 GPT-5,出图平淡无奇
现象:用 Nano Banana 的提示词调 GPT-5,出来的图构图还行但缺乏层次,像半成品。原因:GPT-5 对关键词堆叠不敏感,它需要自然语言描述空间关系和镜头参数。解决:把短句扩写成两到三句,加入“前景是…背景是…镜头从…角度拍摄”这类描述。
4.2 忽略负向提示词的模型差异
现象:在 Nano Banana 里用负向提示词去掉多余物体很有效,但在 GPT-4o 里写同样的负向词,画面反而出现奇怪元素。原因:GPT-4o 对负向提示词的处理机制不同,有些版本甚至不支持单独的负向字段。解决:先查文档确认是否支持负向提示词,不支持就把要避免的内容用正向描述绕开,比如“画面中只有一杯水,没有其他物体”。
4.3 参数照抄导致出图过曝或死黑
现象:按提示词文件里的 CFG 7、Steps 30 跑,Nano Banana 正常,GPT-5 却过曝。原因:不同模型对参数的敏感度不同,GPT 系列图像接口可能根本不接受 CFG 参数,或者内部映射不一样。解决:只把参数当起点,先跑默认值,再根据出图结果微调。如果接口不支持某参数,直接忽略。
4.4 提示词文件编码问题导致中文乱码
现象:用脚本读取提示词时,中文变成乱码,出图内容完全不对。原因:文件保存时用了 GBK 或其他编码,而脚本用 UTF-8 读取。解决:统一用 UTF-8 读写,如果文件来源不明,先用chardet检测编码再读。或者在打开文件时加errors="ignore"跳过无法解析的字符。
4.5 跨模型复用提示词时忘了改画面比例
现象:同一个提示词在 Nano Banana 出的是方图,在 GPT-4o 出的是竖图,构图被裁切。原因:不同模型的默认输出比例不同,提示词里如果没有指定比例,模型会按自己的默认值来。解决:在提示词里明确写“1:1 方形构图”或“16:9 宽幅”,或者在 API 参数里指定size。别指望模型自动统一。
5. 进阶用法:把提示词包改造成自己的模板库
5.1 建立自己的提示词变量表
这份资源里的提示词是静态的,但你可以把它拆成变量。比如把“柠檬气泡水”换成{subject},把“逆光”换成{lighting},把“玻璃杯”换成{material}。然后建一个 CSV 或 JSON 表,每次出图时组合变量。这样一套模板能覆盖几十个场景,不用每次都翻文件。
我一般会建三个变量组:主体、光影、材质。每组下面列十几个常用值。写个简单的 Python 函数就能随机组合,批量出图测试。
import random subjects = ["柠檬气泡水", "冰美式", "草莓奶昔"] lightings = ["逆光", "侧光", "顶光"] materials = ["玻璃杯", "陶瓷杯", "塑料杯"] def build_prompt(model_style): s = random.choice(subjects) l = random.choice(lightings) m = random.choice(materials) if model_style == "nanobanana": return f"{s},{m},{l},高清,细节丰富" elif model_style == "gpt5": return f"一杯{s}放在木质桌面上,{l}从左侧打入,{m}表面有细微反光,镜头从45度角拍摄,景深适中" elif model_style == "gpt4o": return f"午后阳光透过窗户,照在桌上的{m}里,里面是刚倒好的{s},{l}让液体看起来晶莹剔透,整个画面安静而清爽" return "" for style in ["nanobanana", "gpt5", "gpt4o"]: print(style, "->", build_prompt(style))这段代码演示了如何按模型风格生成不同结构的提示词。你可以把变量表存成外部文件,方便随时增删。
5.2 用出图结果反推提示词权重
如果你发现某个词在某个模型上特别有效,比如“晶莹剔透”在 GPT-4o 上能显著提升液体质感,那就把它记下来,加到你的模板里。反过来,如果某个词总是导致画面崩坏,就把它放进负向提示词或直接删掉。这个过程需要你跑几十张图才能积累出感觉,但一旦建立起来,你的出图效率会翻倍。
我自己的习惯是,每跑完一组图,就在提示词文件旁边加一行注释,记录这次的效果和改动。时间长了,这份提示词包就变成了我自己的知识库,而不是一个静态的资源。
5.3 验证提示词是否过时的一个简单方法
模型会更新,提示词也会过时。我一般每隔一段时间,拿同一个提示词在同一个模型上跑一次,和之前的出图对比。如果风格明显变了,说明模型更新了,提示词需要调整。这个习惯帮我避免了很多“明明之前好用,现在怎么不行”的困惑。
从那以后,我每次拿到新的提示词包,都会先跑一遍基线测试,再决定要不要批量用。希望这份拆解能帮你少走点弯路。
本文还有配套的精品资源,点击获取