ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

从随机抽卡到可复现:AI艺术与ChatGPT提示工程实战

从随机抽卡到可复现:AI艺术与ChatGPT提示工程实战

简介:《AI艺术与ChatGPT提示工程指南》围绕提示工程与AI艺术创作展开,面向对ChatGPT对话式提示和Midjourney等绘图工具感兴趣的初学者及进阶读者,帮助其从零理解提示的构成与设计逻辑。全书从提示工程基础讲起,依次讨论负提示与零提示、ReAct提示、Midjourney等工具的AI艺术提示设计、迭代式提示细化,以及语言与意象在提示中的作用,并附Leonardo应用案例与示例提示,兼顾方法框架与实操参考。资源包为1个PDF文件,约2.31MB,体积轻便,便于在电脑或移动端随时查阅。目前已有69人学习,适合希望系统梳理提示工程知识、提升AI艺术出图与对话质量的读者按章节研读和查阅。

1. 同一句提示跑十次出十个结果,问题多半不在模型

有人把「赛博朋克城市,超好看」丢进 Midjourney,十次出十张风格不一的图,于是判断模型不稳定。拆开看,这句提示里主体只有一个模糊名词,没有风格锚点、没有镜头语言、没有负向约束,模型每次都在合法解空间里随机采样。这份《AI艺术与ChatGPT提示工程指南》讲的就是把「碰运气」变成可重复流程:提示工程的三层骨架、零提示与负提示的边界、ReAct 任务链、Midjourney 与 Leonardo 的出图参数,以及 ChatGPT 多轮对话里的迭代式细化。适合已经能用工具出图、但结果不可控的人,也适合要把提示交给团队复用的从业者。下面按「骨架—任务链—出图参数—排查—验收」的顺序拆。

2. 提示的三层骨架:主体、修饰符、固化剂怎么分工

原书第一章把提示拆成几个可命名的部件:主体(subject)、修饰符(modifier)、固化剂(solidifier),再加上变体提示和负提示。这个拆法看着朴素,落地时非常管用,因为它把「写一句好提示」变成了「填几个槽位」。我一般会先把一句自然语言提示按这三层切开,再决定哪一层需要动、哪一层必须锁死。切开之后你会发现,大部分翻车都发生在修饰符互相打架,而不是主体写错。

2.1 主体提示:把「想要什么」压缩成一个可检索的名词短语

主体是提示里承担核心语义的那部分,可以是人、地点、物体,也可以是一个动作场景。原书强调定义主体时要同时想清楚两件事:你要达到什么目标,以及看结果的人会怎么理解它。这两句话翻译成操作就是:主体必须能被模型映射到训练数据里存在的视觉或语义概念,不能是一个只有你自己懂的抽象词。

我习惯用一个「三问压缩法」处理主体。第一问,这个东西的最小可识别名词是什么;第二问,它处于什么状态或环境;第三问,哪些限定词是必须保留、删掉就变味的。比如「一个很酷的机器人」经过三问会变成「a rusted industrial robot with exposed hydraulic joints, standing in a flooded factory」,主体从形容词堆砌变成了可渲染的实体加环境。

# subject_slots.py # 主体拆成三个槽位,避免把状态和环境混进名词里 SUBJECT = { "entity": "a rusted industrial robot", # 最小可识别名词 "state": "exposed hydraulic joints, one arm missing", # 状态限定 "context": "standing in a flooded factory", # 环境限定 } def build_subject(slots): # 用逗号连接,顺序固定为实体→状态→环境 return ", ".join(v for v in slots.values() if v) print(build_subject(SUBJECT)) # 输出:a rusted industrial robot, exposed hydraulic joints, one arm missing, standing in a flooded factory

这段代码的价值不在拼字符串,而在强制你把「实体」和「状态」分开。实体槽位负责让模型认出画什么,状态槽位负责控制差异,环境槽位负责构图背景。参数上,entity尽量控制在 5 个词以内,超过之后模型对前置词的注意力会被稀释;state一次只写一到两个特征,写三个以上容易出现肢体错乱;context决定画面纵深,室内场景建议带上材质或光源线索。

主体写完之后要做一次「可检索性检查」:把主体短语单独丢进搜索引擎或图库,如果能搜到大量同类图,说明模型大概率认识;如果搜出来全是无关内容,说明这个词是你自造的,需要换成更通用的说法。这个动作花不了一分钟,但能省掉后面反复抽卡的时间。

2.2 修饰符提示:用形容词和限定词收窄输出空间

修饰符是加在主体上的额外词或短语,作用是提供上下文、清晰度和特异性。原书举的例子很典型:把「全球变暖」改成「全球变暖的原因和解决方案」,输出就从泛泛而谈变成了两面分析。修饰符的本质是给模型一个更窄的采样区间,而不是给它更多形容词。

落到 AI 艺术出图上,我通常把修饰符分成四个槽位:风格、媒介材质、光照色彩、镜头构图。每个槽位只放一个主取值,最多加一个补充取值。四个槽位全填满,提示长度大约在 25 到 40 个词之间,这个区间对 Midjourney 和 Leonardo 都比较友好。

槽位作用示例取值常见错误
风格定整体调性cinematic concept art、editorial illustration同时写三种风格,互相稀释
媒介材质定表面质感oil on canvas、35mm film scan、brushed aluminum和风格槽位语义重复
光照色彩定氛围cold dawn light、warm 2700K lamp light光源方向前后矛盾
镜头构图定视角与景别wide shot、macro、low angle与主体尺度冲突,比如微距拍建筑

修饰符最容易翻车的地方是「堆」。有人觉得多写几个风格词总有一个能命中,实际结果是模型把几种风格平均成一个四不像。我的血泪经验是:风格槽位只留一个主词,想试第二种风格就另开一条变体提示,不要在同一个提示里做风格融合。真要融合,也要写成「A 为主,B 只影响材质」这种带主次的表述。

# modifier_slots.py # 四个修饰符槽位,每个槽位一个主值加一个可选补充值 MODIFIERS = { "style": ["cinematic concept art", "muted color palette"], "medium": ["35mm film scan", "visible grain"], "light": ["cold dawn light", "volumetric fog"], "camera": ["wide shot", "shallow depth of field"], } def flatten_modifiers(mods): # 按槽位顺序展开,保证每次拼装语序一致 result = [] for slot in ("style", "medium", "light", "camera"): result.extend(mods.get(slot, [])) return ", ".join(result) print(flatten_modifiers(MODIFIERS))

flatten_modifiers里把槽位顺序写死,是为了让提示可复现。Midjourney 和多数文生图工具对前置词更敏感,风格放在最前面、镜头放在最后,出来的画面稳定性明显好于随机顺序。参数上,每个槽位列表长度建议不超过 2,总修饰符数量控制在 8 个以内;超过 10 个之后,新增的词基本是在互相抢权重,画质不会提升,构图反而更容易散。

2.3 固化剂与变体:让输出稳定在可复用模板上

固化剂是原书里容易被忽略的一节,它指的是提示末尾那组用来「锚住」质量的词,比如 high detail、consistent composition、neutral color grading。这些词单独看很虚,但它们在提示结构里承担的是收尾和稳定作用,相当于给模型的输出画一条底线。我一般把固化剂控制在 3 到 5 个词,放在提示最后,不参与风格竞争。

变体提示则是在主体和固化剂不变的前提下,只替换一个修饰符槽位。这样每次只动一个变量,你才能判断到底是哪个词导致了画面变化。很多人做迭代式细化时一次改三四个词,最后出图变好了也不知道是谁的功劳,变差了也找不到原因,这就是典型的黑匣子式调参。

# 提示模板库的目录结构,按主体分目录,按版本存文件 prompts/ ├── lighthouse/ │ ├── v01_subject.txt # 只写主体 │ ├── v02_modifiers.txt # 加修饰符 │ ├── v03_solidifier.txt # 加固化剂 │ └── runs.csv # 每次跑图的参数与人工评分 └── robot_factory/ ├── v01_subject.txt └── runs.csv

目录结构看着简单,但它解决的是「提示写完就丢」的问题。每个主体一个目录,版本号递增,runs.csv记录种子、参数和评分。下次要复现某张图,直接按版本号找文件,不用翻聊天记录。参数命名上,v01到v03对应骨架搭建的三个阶段,后面做变体就从v03a、v03b分支,不要覆盖原文件。

固化剂还有一个用法是跨工具迁移。Midjourney 和 Leonardo 的语法不同,但「高质量、构图完整、色彩克制」这组语义是通用的。我会把这组词单独存一个solidifier.txt,换工具时只改参数和负向词,固化剂直接复用。这样同一套审美底线能在不同工具之间保持一致,不至于换个平台就完全变味。

3. 从零提示到 ReAct:把单轮指令升级成任务链

零提示、负提示、ReAct 是原书里跨度最大的三节,分别对应「不给例子」「给反向约束」「给多步推理结构」。这三样不是越高级越好,而是各有适用边界。用错场景的代价很直接:零提示处理格式任务会得到一堆自由发挥,负提示堆太多会挤占正向语义,ReAct 用在单步问答上纯属浪费 token。

3.1 零提示的适用边界与触发条件

零提示就是不给示例、不给拆解,直接把任务丢给模型。它适合三类场景:开放式头脑风暴、通用文案改写、格式要求宽松的问答。比如「给这个产品写五条卖点」,零提示往往比给一堆示例更自然,因为示例会限制模型的表达多样性。

但零提示有两个明确的失效边界。第一是格式严格的任务,比如要求输出固定字段的 JSON、固定列数的表格,零提示下模型会自由增减字段。第二是专业术语密集的任务,模型不知道你所在团队的缩写含义,零提示会按大众语料去猜。这两个边界不需要复杂方案,加一条格式约束或一个字段说明就能解决。

# zero_prompt_guard.py # 零提示加一条最小格式约束,避免输出自由发挥 PROMPT = """任务:为这款便携投影仪写三条卖点。 约束: 1. 每条不超过 20 个字。 2. 必须包含一个具体参数,没有参数就写“参数待补”。 3. 只输出三条,不要解释。 """ print(PROMPT)

这段模板的关键在第三条「只输出三条,不要解释」。零提示翻车最多的情况不是内容差,而是模型附赠一段「希望以上对你有帮助」。加一句硬约束,输出立刻干净。参数上,约束条数控制在 3 条以内,超过之后模型会开始丢约束;每条约束只写一个要求,不要把「不超过 20 字且包含参数且语气活泼」塞进同一条。

零提示还有一个隐性成本:结果不可回归。同一句提示今天跑和下周跑,输出可能完全不同。所以我在需要复现的任务里不用纯零提示,至少加一条固化约束或一个输出模板。这个习惯是从一次对客演示翻车之后养成的,当时现场重跑同一句提示,输出风格完全变了,场面很尴尬。

3.2 负提示:写「不要什么」比写「要什么」更难

负提示在两个场景里最有用:文生图里排除不想要的元素,对话模型里排除不想要的表达方式。Midjourney 用--no参数接负向词,Stable Diffusion 系工具用单独的 Negative Prompt 输入框,Leonardo 也是分栏填写。语法不同,但逻辑一样:负向词是在采样时降低对应概念的权重,不是硬性禁止。

负向词我一般分四类管理,每类只留最必要的两三个。文字水印类(text、watermark、signature)几乎每次都要带;解剖错误类(extra fingers、deformed hands)在人像和手部特写时带;风格污染类(oversaturated、cluttered background)在需要干净画面时带;构图干扰类(cropped head、out of frame)在全身构图时带。

负向类别典型词适用场景不建议
文字水印text、watermark、logo所有出图任务一次写十几个同义词
解剖错误extra fingers、deformed hands人像、手部特写全身远景也堆手部词
风格污染oversaturated、noisy background需要干净背景与正向风格词冲突
构图干扰cropped、out of frame全身、建筑全景微距场景使用

负提示最常见的误用是「越多越安全」。Midjourney 的--no后面跟的词同样占用解析预算,堆二十个负向词,正向提示的权重会被明显稀释,画面变得保守、灰、没有重点。我的做法是负向词总数不超过 6 个,而且每次只加当前批次真正出问题的词,不加「预防性」的词。

注意:负提示不是所有工具都等效。Midjourney 的--no对具体物体有效,对抽象风格词效果有限;Stable Diffusion 的 Negative Prompt 权重更强,写多了容易把画面压死。换工具时负向词要重新测,不能直接照搬。

3.3 ReAct 提示的四段式结构与一个可抄的模板

ReAct 的核心是「推理 + 行动」交替:模型先写一段思考说明下一步为什么这么做,再选择一个动作去执行,拿到观察结果后继续下一轮。它适合需要多步检索、多工具调用、或者需要展示中间过程的任务,比如资料汇总、故障排查、多条件筛选。单步问答用 ReAct 只会让输出变长,不会变准。

我把 ReAct 提示固定成四段:角色与目标、可用动作清单、思考-行动-观察循环规则、终止条件。四段缺一不可,缺动作清单模型会自己编工具,缺终止条件模型会无限循环,缺循环规则模型会一次性把答案写完、不走中间步骤。

# react_prompt.py REACT_TEMPLATE = """你是一个{role}。 目标:{goal} 可用动作(每次只能选一个): {actions} 执行规则: 1. 每轮先输出“思考:”说明下一步理由,不超过两句话。 2. 再输出“动作:”加动作名和参数。 3. 收到“观察:”后进入下一轮,最多{n}轮。 4. 信息足够时输出“结论:”并停止,不要再调用动作。 终止条件:{stop_condition} """ prompt = REACT_TEMPLATE.format( role="设备故障排查助手", goal="根据现象定位故障模块,给出可执行的检查顺序", actions="\n".join([ "- check_power:检查供电与指示灯状态", "- read_log:读取最近 50 条错误日志", "- test_module:对指定模块做单点测试", ]), n=6, stop_condition="定位到具体模块,或连续两轮观察无新增信息", ) print(prompt)

这个模板里,actions用列表展开而不是写成一整段,是为了让模型把每个动作当成独立可选对象,减少「自己发明工具」的概率。n=6是轮数上限,实测超过 6 轮之后模型容易开始重复已执行的动作;stop_condition必须写成可判断的条件,不能写「找到答案为止」这种模糊表述。

ReAct 最容易踩的坑是把「思考」写成长篇解释。规则里限定「不超过两句话」很关键,思考一长,模型会把本该放在动作里的信息提前说完,后面就不执行动作了。另一个坑是动作参数没定义清楚,比如test_module不说测哪个模块,模型会传一个不存在的参数名。动作清单里每个动作后面跟一句参数说明,能省掉大半解析错误。

4. Midjourney 与 Leonardo:AI 艺术提示的参数化写法

AI 艺术提示和对话提示最大的区别是:它不只靠词,还靠参数。同一句描述,画幅、风格化强度、随机度、种子不同,出来的图差一个量级。原书用 Midjourney 和 Leonardo 两个工具做示例,这两个工具的提示结构刚好代表两种流派:Midjourney 是「一行流 + 尾缀参数」,Leonardo 是「分栏表单 + 独立负向框」。把两种结构都摸一遍,换到别的工具也能快速映射。

4.1 Midjourney 提示的语序与权重槽位

Midjourney 的提示是一行文本,参数用--接在末尾。语序上,越靠前的词权重越高,所以主体必须放在最前面,风格、光照、镜头依次往后,参数永远放最后。很多人把--ar 16:9写在开头,结果参数被当成普通文本解析,画幅根本没生效。

# mj_builder.py def mj_prompt(subject, scene, style, light, params): # 语序固定:主体 → 场景 → 风格 → 光照 → 参数 body = ", ".join([subject, scene, style, light]) return f"{body} {params}" prompt = mj_prompt( subject="a lone astronaut", scene="standing in a flooded library, floating books", style="analog film photography, muted teal palette", light="soft window light from the left", params="--ar 3:2 --stylize 250 --chaos 10 --no text, watermark --seed 8842", ) print(prompt)

参数说明直接决定复现能力。--ar 3:2定画幅,横向场景别用竖幅;--stylize 250是风格化强度,数值越高画面越「好看」但越偏离提示,做概念图我一般放在 100 到 300 之间;--chaos 10控制多样性,做变体探索时调到 20 到 40,做定稿复现时压到 0 到 10;--no后面跟负向词;--seed是复现的关键,同一个种子加同一句提示,输出才基本可控。

--seed这个参数值得单独说。它不是「锁定画面」,而是锁定噪声起点,提示改了一个词,画面还是会变。所以复现实验的正确做法是:种子固定、提示固定、参数固定,一次只改一个变量。我见过有人改了提示又换种子,然后说「这个方法不稳定」,其实是两个变量同时在动。

4.2 Leonardo 的提示面板与风格参考

Leonardo 的结构更像表单,Prompt 和 Negative Prompt 分栏,下面还有模型、引导强度、步数、种子、参考图强度。它的好处是负向词和正向词互不干扰,坏处是参数之间会互相影响,调一个要回头看另一个。

参数作用常用区间调高后的表现
Guidance Scale提示贴合度7 到 12更贴提示,但画面僵硬
Steps采样步数20 到 40细节增加,边际收益递减
Seed噪声起点任意整数用于复现,不改变语义
Image Guidance参考图影响0.3 到 0.7更接近参考图,原创性下降

Guidance Scale 是最容易调过头的参数。低于 7 画面自由发挥,高于 15 会出现色彩断层和构图僵化。我一般从 9 开始试,画面不够贴提示就加到 11,画面太死板就降到 8。Steps 超过 40 之后提升非常有限,除非做印刷级大图,否则没必要拉到 60 以上。

Leonardo 的 Negative Prompt 框比 Midjourney 的--no更「重」,同样数量的负向词,在 Leonardo 里对画面的压制更明显。所以从 Midjourney 迁移过来时,负向词数量要减半,先留文字水印和构图干扰两类,跑一批看效果再决定加不加。

4.3 语言与意象:把抽象词换成可渲染的视觉名词

原书有一节专讲提示里的语言和意象,核心观点很直接:模型不认识「高级感」,只认识能对应到像素的模式。你写「未来感」,模型只能猜;你写「brushed aluminum panels with embedded LED strips」,模型就有东西可画。这个替换动作是 AI 艺术提示里性价比最高的一步。

抽象表达可渲染替换替换理由
未来感brushed aluminum, embedded LED strips, matte black casing材质和光源可直接生成
温馨warm 2700K lamp light, linen texture, soft shadows色温和材质有明确指向
高级low saturation, large negative space, single light source用构图和色彩描述替代评价
自然overcast daylight, moss-covered stone, shallow stream环境元素具体可辨
动感motion blur on limbs, low angle, diagonal composition用摄影语言表达速度

替换的时候注意一点:不要把所有抽象词一次换完。一次换一个槽位,跑三到五张,确认这个替换确实带来了你想要的变化,再换下一个。一次全换,画面变好看了你也不知道是哪个词起的作用,下次想复用都找不到依据。

还有一个常被忽略的细节是语言本身。同一句提示用英文写和用中文写,在 Midjourney 上的效果通常不一样,因为它的训练语料里英文描述占比更高。非英文母语者写英文提示时容易堆形容词,反而丢掉了具体的名词。我的做法是先用中文把画面拆成「物体、材质、光源、视角」四列,再逐列翻译成英文名词短语,最后按语序拼起来。这个流程比直接憋一句英文长句稳定得多。

5. 迭代式细化的排查清单:五类翻车与对应改法

迭代式细化不是「多跑几次」,而是每轮只改一个变量、记录结果、判断改动是否有效。原书把这一步放在中后段是有道理的:前面骨架没搭好,迭代就是在垃圾堆里挑垃圾。下面五类问题是我在实际出图和对话任务里遇到频率最高的,每条按「现象—原因—解决」拆开写,方便直接对照排查。

5.1 现象:同一提示每次出图差异大,没法选

原因通常有三个:种子没固定、--chaos或随机度参数偏高、提示本身太短导致模型自由补全。先看参数,再看提示长度。Midjourney 里没写--seed就是每次随机,Leonardo 里种子留空同理。提示少于 15 个词时,模型的可发挥空间太大,画面主体都可能漂移。

解决顺序是:先固定种子跑三次,确认差异是否收敛;如果还漂,把--chaos降到 10 以下;最后检查提示,给主体补一个状态限定和一个环境限定。三步走完还漂,说明提示里有互相冲突的修饰符,回到第 2 章做槽位拆分。

5.2 现象:负提示写了,但画面里还是有文字和水印

原因分工具看。Midjourney 的--no text对大面积文字有效,对小字水印效果有限;负向词如果和正向词语义重叠,会被正向权重压过去;还有一种情况是负向词写在了参数区之外,被当成普通描述解析了。

解决办法是先确认语法位置,--no必须在所有参数区里、提示正文之后;然后把负向词精简到最必要的三个,去掉同义词堆叠;最后提高正向提示里「干净背景」类固化剂的权重,用正向描述挤压文字出现的空间。纯靠负向词堵,不如正向词引导。

5.3 现象:出图糊、构图散、主体不突出

原因多半是修饰符冲突或镜头槽位缺失。风格写两个、光照写三个方向、镜头又写广角又写微距,模型只能取平均,结果就是什么都有一点、什么都不突出。另一个常见原因是主体槽位里塞了太多状态,模型分不清哪个是重点。

解决方法是做减法:风格只留一个,光照只留一个主光源,镜头只留一个景别。主体状态从三个减到一个,跑一批看主体是否立住,再逐个加回。构图散的时候优先补wide shot或medium shot这类景别词,比加「high quality」有用得多。

5.4 现象:ChatGPT 多轮对话后越聊越跑偏

原因是上下文累积把早期约束冲淡了。对话到第五六轮,模型对第一条消息里的格式要求、语气要求已经不再敏感,开始按最近几轮的内容自由发挥。另一种情况是你自己在后续消息里引入了新约束,和早期约束矛盾,模型选了新的那个。

解决办法有两个:每三到五轮做一次约束复述,把核心要求用一两句话重贴一遍;或者开新会话,把已确认的结论压缩成一段摘要带过去。我一般用后者,因为长会话里的无效信息太多,摘要反而更干净。摘要里只保留任务目标、已确认结论、未解决问题三项,其他全丢。

5.5 现象:提示从 Midjourney 迁到 Leonardo 就失效

原因是两个工具的语法和权重逻辑不同。Midjourney 的参数是尾缀,Leonardo 是表单分栏;Midjourney 的--no权重偏弱,Leonardo 的负向框权重偏强;同一组修饰符在两个工具里的解析顺序也不一样。

解决办法是维护两层提示:中性层写主体、修饰符、固化剂,不带任何工具语法;适配层按工具加参数和负向词。迁移时只改适配层,中性层不动。这样一套审美描述可以在多个工具之间复用,换平台只需要重测参数区间,不用重写整句提示。

6. 对话式提示工程与验收:把提示当资产管起来

ChatGPT 这类对话模型的提示工程,和文生图最大的区别是它有「记忆」——多轮对话里,前面说过的约束会持续影响后面。这既是优势也是负担。优势是你可以逐步补充细节,不用一次写完整;负担是约束会漂移,聊到后面模型已经不记得第一条要求了。原书把对话式提示单独成章,讲的其实就是怎么在多轮里保持约束不丢。

我的做法是把每轮对话当成一次小版本发布。开始前先写一段「任务卡」,包含目标、输出格式、禁止事项三行;每轮结束后检查输出是否还符合任务卡;偏离了就贴回任务卡重述,不偏离就继续。任务卡本身也会迭代,但每次改动都记版本号。

# prompt_regression.py # 每次调整提示后跑一遍回归,记录版本、参数、评分和问题 import csv, datetime def log_run(version, prompt, params, score, note): with open("prompt_runs.csv", "a", newline="", encoding="utf-8") as f: writer = csv.writer(f) writer.writerow([ datetime.date.today(), version, prompt, params, score, note ]) # 示例:v03 加了一条“只输出三条”的约束,人工评分 4,备注发现新问题 log_run( version="v03", prompt="为便携投影仪写三条卖点,每条不超过20字", params="temperature=0.7, max_tokens=200", score=4, note="第三条偏长,下版把字数约束提前", )

这个脚本不复杂,价值在score和note两列。评分用 1 到 5 分,5 分是可直接交付,3 分是能看但要改,1 分是跑偏。备注只写具体问题,不写「感觉不太好」这种没法行动的话。跑上二十条之后,你回看 CSV 就能发现哪类改动真正提升了分数,哪类改动只是心理安慰。

版本管理上,我遵循一条规则:提示改动必须能回答「改哪个槽位、预期改善什么、怎么判断有效」。答不上来就不改。这条规则是从一次连续改七版、结果越改越差的经历里总结出来的,当时没有记录,最后连最初那版长什么样都找不回来了,只能从头重写。

验收环节我一般看三个指标:格式合规率、人工评分均值、复现一致性。格式合规率是输出符合任务卡的比例,低于 90% 就回去加约束;人工评分均值低于 3.5 就回到骨架层检查主体和修饰符;复现一致性是同提示同参数跑三次的差异度,差异大就检查种子和随机参数。三个指标都过线,这版提示才进模板库。

从那以后我每次改提示都强制走一遍「任务卡—单变量改动—CSV 记录—三项验收」,哪怕只改一个词也记一笔。这套流程看着笨,但它让我不用靠记忆去复原三个月前那张图是怎么出来的。希望帮到你。

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

返回列表