ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

提示工程入门:从提示词骨架到负提示与多轮迭代

提示工程入门:从提示词骨架到负提示与多轮迭代

简介:《AI艺术与ChatGPT提示工程指南》是一份面向AI绘画与对话式提示学习者的PDF读物,适合初学者入门,也适合希望提升提示设计能力的创作者,用于理解提示构成、主题与修饰符作用,并解决Midjourney等工具中提示编写与迭代优化的问题。资源包仅含1个PDF文件,大小约2.31MB,便于单文件查阅与随身学习。内容围绕提示工程基础、负提示与零提示、ReAct提示、Midjourney等AI艺术提示设计、迭代式细化、ChatGPT对话式提示展开,还涉及语言与意象的表达力量、Leonardo应用案例及示例提示。已有69人学习,读者可借此建立从提示结构到工具实操的系统认知,参考书中的案例理解如何细化提示、比较不同提示策略,并迁移到个人创作与对话应用场景中。

1. 先搞懂一件事:提示工程到底是在跟谁说话

很多人第一次接触 AI 绘画和 ChatGPT,心里都会冒出一句:不就是打几个字描述一下吗,这也要学?我第一次用的时候也这么想,输入“画个好看的海边日落”,出来的东西像十年前景区卖的劣质挂历。问题不在 AI 笨,而在我那句话里,一半是它没法判断的主观词(“好看”),一半是它必须自己猜的空白(几点、什么视角、有没有人)。提示工程要解决的,就是把这些“猜”变成“告诉”。它是一套跟 AI 沟通的写法:主体说清楚、修饰词加到位、不要的东西提前排除、效果不满意就一轮轮改。这套写法适合所有不打算写代码、只想把 AI 当工具用的人——做设计的、写文案的、做自媒体的,还有只想让 AI 帮自己省点力气的普通上班族。

2. 搭一副能用的提示骨架:主体、修饰符、固化词

上一章说“把猜变成告诉”,但真到动手,多数人卡在同一个地方:脑子里有画面,落到输入框里只剩一句干巴巴的话。这一章就把一句话拆成三个零件——主体、修饰符、固化词,先学会拼,再去谈风格和创意。零件不多,但顺序不能乱,乱了一整条提示就散架。

2.1 主体提示:先决定“画面里到底有什么”

主体就是这条提示的核心对象:一个人、一个地点、一个物件、一个论点。它是整条提示的锚点,锚没抛下去,后面的修饰词全是浮的。你可以做个对照实验:先输入“画个风景”,再输入“一座白色灯塔立在黑色礁石上,海面有雾”。第一句里 AI 只能给你一个“风景的平均值”,因为它不知道你要山还是海、要晴还是要阴;第二句里它至少有五个点可以落地——灯塔、白色、礁石、海面、雾。差别不在文采,在于你到底给了它多少个可判断的信息。

定主体的时候,别只想着“我要什么”,还要想“给谁看”。同样是讲一杯咖啡,给咖啡馆写宣传语和给食品科普号写介绍,主体词的选择完全不同:前者要“手冲、单品豆、木质吧台”,后者要“咖啡因含量、烘焙度、萃取时间”。先想清楚受众,你才知道哪些词值得留在句子里。

选关键词有个笨但好用的办法:从大词往小词拆。以“猫”为例,第一层是“猫”,第二层是“橘色短毛猫”,第三层是“一只橘色短毛猫蹲在旧木窗台上,尾巴垂下来”。每往下拆一层,AI 的自由发挥空间就少一截,出来的东西就离你脑子里的画面近一截。很多人写提示失败,不是词不够多,是拆得不够细,一直停在大词那一层。

还有一点特别容易被忽略:语言的精确度。模糊词和可执行词是两回事。“高级感”“氛围感”“有艺术气息”这类词,AI 没法把它们翻译成具体像素,最后只能用它训练数据里的平均值来糊弄你。而“低饱和”“侧逆光”“浅景深”“35 毫米视角”这类词,每一个都对应着明确的视觉特征。写作上也是同理,“写得生动一点”不如“每段加一个具体的动作细节”来得管用。入门阶段最值得养成的习惯,就是每次想写形容词时停两秒,问自己:这个词能不能换成看得见、数得出来的东西?

2.2 修饰符提示:一句话怎么变成一张海报

修饰符是加在主体周围的补充词或短语,作用有三个:给上下文、提清晰度、定具体性。同样一个主体,修饰符换一换,出图能从一个静物照变成一张电影海报。新手不用记太多分类,先掌握四类就够用:

修饰类型作用例子
风格决定画面或文字的调性胶片摄影、水彩、极简排版、纪实口吻
光线与色彩决定明暗和情绪清晨侧光、暖橘色调、冷蓝阴影
构图与视角决定观看位置俯拍、特写、广角、居中构图
情绪与用途决定它像什么东西安静、怀旧、用于公众号头图

为什么加几个词就能起这么大变化?因为模型生成内容时是在一个巨大的可能性空间里选路,修饰符相当于给它画了路标。不加路标,它就走最平庸的那条大路;加了三五个准确的路标,它才会拐进你想要的小巷。原文里提到一个思路我特别认同:把“健康饮食”改成“简单实用的健康饮食建议”,输出立刻从泛泛而谈变成了能照着做的清单。差别就在于“简单实用”这四个字把范围收窄了。

修饰符也不是越多越好。新手最容易犯的毛病是往上堆十几个词,最后出来的东西四不像。我自己的经验是:主体之后加三到五个修饰符,先跑一版,看哪一块不对再补。堆词属于典型的用勤奋掩盖方向错误,方向对了,五个词比十五个词管用。

顺便说一句,修饰符在写作场景里同样好使。让 AI 讲一个历史事件,加一句“重点讲它对普通人生活的影响”,输出深度立刻不一样;让它写一段公园散步,加一句“带一点奇幻色彩,出现一只会说话的小动物”,出来的就是另一个故事。同一个技巧,换个场景就换个用法,这也是它值得先学的原因。

2.3 固化词与模板:把好用的提示存下来

固化词指的是提示里那些固定不变的结构性部分,比如“请以……的身份”“输出格式为三条要点”“不要使用感叹号”。它们不负责创意,负责稳定性。创意负责让每次不一样,固化负责让每次都不跑偏,两样都得有。

下面这段小脚本,是我建议每个新手都先跑一遍的东西。它不调用任何接口,只是把提示拆成四块拼起来,方便你反复改其中一块:

# 把提示拆成四块,改哪一块一目了然 subject = "a lighthouse standing on a rocky cliff" # 主体:画面核心对象 style = "cinematic photography, 35mm lens" # 修饰:风格与镜头感 light = "soft morning light with light fog" # 修饰:光线与氛围 negative = ["text", "watermark", "blurry"] # 负提示:不想出现的东西 prompt = f"{subject}, {style}, {light}" if negative: prompt += " --no " + ", ".join(negative) # 以支持 --no 的写法示例,换工具时改这里 print(prompt)

运行后你会得到一整条提示,例如a lighthouse standing on a rocky cliff, cinematic photography, 35mm lens, soft morning light with light fog --no text, watermark, blurry。

几个参数需要说明一下。subject是主体,改它等于换画面主角;style和light是两组修饰,分开写是为了让你能单独调整,不用每次重写整句;negative是一个列表,往里加一项就多排除一样东西,join的作用是把列表拼成逗号分隔的字符串。末尾的--no是部分绘画工具排除元素的写法,不同工具的叫法和位置不一样,有的是单独一个“反向提示词”输入框,换工具时只改这一行,其余不用动。

这段代码真正的价值不在代码本身,而在它逼你把提示结构化。等你用熟了,可以把它扩展成一个模板库:给文件起名叫“封面图_冷色调”“文案_产品介绍_口语版”,每类存三五条跑通过的模板,下次开工先翻模板再改,比每次从空白框硬想快得多。我第一次整理模板库的时候只有六条,三个月后攒到四十多条,回头率最高的永远是那六条里最朴素的。

3. 零提示与负提示:把“要什么”和“不要什么”分开写

骨架搭好之后,接下来要处理两个方向:正面告诉 AI 你要什么,反面告诉它别给什么。这两个方向经常被新手混在一起写,结果就是提示越长越乱。分成两块写,思路会清楚很多。

3.1 零样本提示:什么都不给,它凭什么答对

零提示(zero-shot)指的是不给任何示例,只给任务描述,让模型直接干活。比如“把下面这段话压缩成三句,保留所有数字”,这就是一条标准的零提示。它凭什么能答对?因为模型在训练时见过大量同类任务,你的描述相当于一把钥匙,把对应的能力调出来。

零提示能不能用好,取决于三件事。第一是动词要明确:是“总结”“改写”“列出”还是“对比”,一个动词定死一个动作,别写“帮我看看这段文字”。第二是输出格式要提前说:要几条、多长、要不要分点、用什么语气,这些都在同一句里交代清楚。第三是边界要划出来:不允许编造、不确定就说不知道、只依据我给的材料。这三条加进去,一条零提示的稳定性会明显提升。

零提示的局限也很明显:任务越偏门、格式越特殊,它越容易自由发挥。这时候补一个例子(也就是常说的给样本)比反复修改措辞有效得多。入门阶段不用纠结概念区别,记住一句话就够:能一句话说清的任务用零提示,说不清的补个例子。

3.2 负提示:把“不要”说在前面

负提示是明确告诉模型哪些东西不要出现。在 AI 绘画里它几乎是刚需,因为模型的默认审美会自作主张地加东西:莫名其妙的文字、角落的水印、多余的手指、过曝的高光。你不说,它就当你要。

不同工具的表达方式不同,有的用--no后面跟一串词,有的给一个独立的“反向提示词”输入框,有的写在括号里加权重。叫法不一样,逻辑一样:列出你不要的元素。新手最常排除的几类可以先用这张表打底:

类别常见排除项什么时候加
文字类文字、水印、签名、logo做纯画面、做背景图时必加
质量类模糊、噪点、畸变、低分辨率出图发糊、边缘变形时加
结构类多余的手指、多出来的肢体、重复物体画人物、画手时加
风格类卡通、3D 渲染、过度锐化想要真实摄影感时加

负提示最常见的误用是“把不想要的全写上去”。排除项太多,模型会被一堆否定词绕晕,反而丢掉你要的主体细节。我的建议是先从三到五项起步,出问题再加,一次只加一类。另外,负提示在文字对话里的用法要克制,写“不要啰嗦”比写“不要使用复杂句式、不要用被动语态、不要出现专业术语”更有效,后者容易让模型顾此失彼。

3.3 动手:同一主体跑三版提示做对比

光看概念没用,做一次对比实验就全明白了。步骤很简单:

  1. 选定一个主体,比如“雨天的公交站台”。
  2. 第一版只写主体,不加任何修饰和负提示。
  3. 第二版加上风格、光线、构图三类修饰符。
  4. 第三版在第二版基础上加三到五项负提示。
  5. 三版结果放一起看,记下每一版分别解决了什么问题。

用脚本把三版一起打印出来,方便你复制粘贴:

# 三版提示对照:只写主体 / 加修饰 / 加负提示 base = "a bus stop on a rainy evening" v1 = base v2 = base + ", cinematic photography, wet asphalt reflections, warm street light" v3 = v2 + " --no text, watermark, extra people, blurry" for name, p in [("v1 只有主体", v1), ("v2 加修饰", v2), ("v3 加负提示", v3)]: print(f"{name}:\n{p}\n") # 逐版打印,方便对照复制

base是不动的常量,保证三版对比只有一个变量在变;v2加的是一组视觉特征词,负责把画面从“平均的雨天”推向“电影感的雨天”;v3只做减法,不加新元素。跑完这一轮,你会很直观地看到:修饰符决定画面往哪走,负提示决定画面少什么,两者不能互相替代。

对比的时候别只看“哪版更好看”,要看“哪一版更接近我脑子里的画面”。好看是玄学,接近才是可复现的。每次对比完顺手记一句结论,比如“暖光词让画面变糊,下次换成柔光”,这类笔记攒十条,比看十篇文章管用。

4. 从单句到对话:ChatGPT 里的多轮追问与 ReAct 写法

前面三章都在打磨“一句话”。但真实使用中,你很少一句话就拿到能用的结果,更多时候是一来一回地聊。这一章讲两件事:怎么把单句提示变成一段有来有回的对话,以及怎么让模型在回答前先把自己的思路摆出来。

4.1 为什么单轮提示总差一口气

单轮提示的问题在于,所有要求都得塞进一段话里:任务、格式、语气、长度、禁止事项。塞得越多,模型越容易顾此失彼。多轮对话把这件事拆开了:第一轮定角色和任务,第二轮补材料和限制,第三轮改格式和语气。每一轮只解决一个问题,出错时也知道该回头改哪一句。

多轮还有一个隐藏好处:上下文会累积。你在第二轮说的“按刚才那个风格”,模型能接得住。这意味着你能用“再短一点”“换成更口语的说法”“保留结构,把例子换掉”这类极短的指令做微调,不用每次重写整段。新手常见的做法是每改一次就开一个新对话,结果每轮都在重复交代背景,效率极低。

不过多轮也有代价:聊得太久,前面的约束会被稀释,模型开始自由发挥。我的习惯是每聊五六轮就让它复述一遍当前的任务要求,确认没跑偏再继续。这一步很多人嫌麻烦,但它能省下后面大量的返工。

4.2 ReAct 提示:先想、再做、再回头查

ReAct 这个写法拆开看就三步:先让模型说清楚它打算怎么做,再让它给结果,最后让它自己检查一遍有没有漏。听起来像废话,实际效果差别很大,因为模型一旦被要求“先写思路”,它的输出就会从凭感觉变成有依据。

具体怎么写?给一个三段式的模板:

  • 第一段固定角色和任务:“你是一名资深的图片提示词顾问,任务是帮我把一句模糊描述改写成可用的绘画提示。”
  • 第二段要求先列思路:“先用三条说明你打算补充哪些信息,再给出改写结果。”
  • 第三段要求自检:“最后检查一遍,指出这条提示里最可能出问题的一个地方,并给出替代写法。”

第三段的自我检查是很多人会漏掉的一步,但它的价值最高。模型指出来的那个“最可能出问题的地方”,经常正好是你自己也没想清楚的地方。

下面是把这套模板拼成字符串的写法,你可以直接改里面的任务描述:

# ReAct 三段式模板:角色 → 思路 → 结果 → 自检 task = "把'一只猫'改写成一条能出图的绘画提示" template = f"""你是一名资深的图片提示词顾问。 任务:{task}。 请按以下顺序回复: 1. 用三条说明你打算补充哪些信息(主体细节、风格、光线、构图); 2. 给出改写后的完整提示词; 3. 自检:指出这条提示里最可能出问题的一处,并给出替代写法。 不要跳过第 1 步和第 3 步。""" print(template)

task是唯一需要经常改的变量,其余部分固定不动,这就是前面说的固化思路。不要跳过第 1 步和第 3 步这句话看着多余,实际上很关键,模型在追求简短时最先砍掉的就是思路和自检,明确禁止之后它才会老老实实保留。

4.3 亲手跑一轮三步对话

把模板发出去之后,接着走三步:

第一步,拿到它列的三条思路,先别急着看结果,检查这三条是不是你真正需要的。如果它补的是“赛博朋克风格”而你想要的是自然光摄影,就在这一轮直接纠正,别等出图了再返工。

第二步,看改写后的完整提示,逐段对照你原来的意图:主体有没有被改掉,修饰符是不是你想要的方向,有没有多出你没要求的东西。

第三步,认真读自检那一段。它往往会说“这条提示光线描述不够具体”或者“风格词之间可能冲突”,这些提示比结果本身更有用,因为它暴露的是你思考里的盲区。

跑完一轮之后,把满意的结果存进模板库,不满意的记一句差在哪。三五轮下来你会发现,真正让效果变好的不是某个神奇的关键词,而是“先想清楚再输出”这个习惯本身。

5. 新手最容易翻车的五个地方:提示工程避坑清单

前面讲的都是怎么写对,这一章讲怎么写错。下面五条是我见过出现频率最高的,每条按“现象、原因、解决”说清楚,对号入座就行。

5.1 写提示阶段最容易踩的三个坑

坑一:提示太笼统,每次结果都不一样。

现象:同一句提示跑五遍,出来五个完全不搭的东西,没法复现。原因:提示里全是主观判断词和空缺信息,模型每次都在自己猜,猜的结果自然随机。解决:把主观词换成可执行的具体项,主体写到第三层,修饰符至少覆盖风格和光线两类。判断标准很简单:这条提示换个人来读,能不能大致想出画面长什么样。想不出来,说明还太笼统。

坑二:形容词堆成山,主体反而被淹没。

现象:提示写了三行,出来的图很华丽,但主角不见了,或者比例奇怪。原因:修饰词太多且互相冲突,模型不知道该优先满足哪一条,最后各取一点折中。解决:主体之后先加三到五个修饰,跑一版看效果,缺什么补什么。冲突的词只留一个,比如又要“极简”又要“繁复细节”,这种组合直接删掉一个。

坑三:一次改五个变量,改完不知道是哪个起了作用。

现象:第一版不满意,第二版把风格、光线、构图、比例、负提示全换了,结果变好了,但下次想复用却复现不出来。原因:没有做变量控制,经验无法沉淀。解决:一次只改一处,改完记录一句“这次动的是光线,从冷光改成暖光,画面变柔和了”。这条记录比结果本身值钱,攒够二十条你就有了自己的手感。

5.2 用工具阶段最容易踩的两个坑

坑四:负提示写成一大串,画面反而变差。

现象:听人说负提示有用,就把不喜欢的词全列上,结果细节丢失、画面发灰。原因:否定项过多会挤压模型的生成空间,把主体也一起压掉。解决:从三项起步,只加当前确实出现的问题项。出现文字就加文字,出现多余手指就加手指,没有的问题不用提前防。负提示是灭火器,不是护身符。

坑五:把参数当玄学调,从不回头看记录。

现象:出图不满意就疯狂拖参数、换模型、改权重,调了一下午,最后连哪一版最好都记不清。原因:缺少记录习惯,每次调整都是重新开始。解决:开一个表格,记下版本号、提示原文、改了什么、结果如何,四列就够。翻车不可怕,可怕的是同一个坑翻两次。血泪经验是:调参之前先确认提示本身没问题,八成的问题出在描述上,不在参数上。

6. 迭代式细化:从 60 分提示走到 90 分的下一步

学会写一条像样的提示,大概只需要一个下午。从 60 分走到 90 分,靠的不是背更多关键词,而是一套能反复用的迭代习惯。这一章给你一个可执行的循环,再补一个让提示有画面感的小技巧。

6.1 迭代循环:一次只动一个变量

我用的循环只有四步:跑一版 → 只挑一个最不满意的地方 → 只改这一处 → 记一句结论。四步走完再回到第一步,不要跳步。很多人卡住是因为同时嫌弃五个地方,一起改完,效果变好了也不知道为什么,等于白改。

判断“最不满意的地方”有个优先级:先看主体对不对,再看风格对不对,最后才看细节。主体错了,后面调什么都白搭。风格对了细节差一点,多数场景能接受。顺序搞反,就会在错误的方向上精益求精。

记录可以很简单,一个表格就够:

版本改了什么结果变化下次是否沿用
v1只有主体画面空、没有氛围否
v2加光线和镜头词氛围对了,主体偏小光线词沿用
v3加构图词“特写”主体变大,细节清晰是

这张表攒到二十行左右,你会发现自己的偏好已经很清晰了,哪些词对你有效、哪些词纯属心理安慰,一目了然。

6.2 语言与意象:给提示装上画面感

90 分的提示和 60 分的提示,差距常常不在技术词,而在画面感。同样是写光线,“明亮”是参数,“午后的光斜穿过百叶窗,在地板上留下条纹”是画面。后者不光告诉模型要什么,还告诉它这些东西之间是什么关系。

练这个能力有个便宜的办法:每天挑一个普通场景,写三句描述,一句只写事实,一句加感官,一句加情绪,然后对比哪一句最容易让你脑子里出现图。写上一周,你写提示的手感会明显不一样。这个方法对写文案同样有效,因为它练的是“把抽象换成具体”的能力,而不是某个工具的专属技巧。

学到这里,接下来的路可以按这个顺序走:先把主体和修饰符练到条件反射,再练负提示的取舍,然后进入多轮对话和自检,最后才是风格化和参数微调。不用一上来就追求大片效果,先把“能稳定复现自己想要的东西”这件事做到,剩下的都是时间问题。

说个我自己的教训。刚开始那阵子,我总觉得效果不好是提示写得不够花哨,于是不断加词、换同义词、抄别人的长提示,越写越长,结果越来越失控。后来我给自己定了个规矩:每次改提示之前,先把上一版和结果并排放在一起看三十秒,确认到底差在哪,再动手。从那以后我每次开新任务,都强制走一遍“先写主体、再加三类修饰、最后加三项负提示”的流程,哪怕只花两分钟,也比我瞎改半小时强。希望这个习惯也能帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进