玩 Stable Diffusion 久一点你肯定见过那种场面:别人分享的参数里,负面提示词(Negative Prompt)拉了一整屏,什么 lowres、bad anatomy、worst quality、jpeg artifacts……几十上百个词堆在那儿,密密麻麻看着就专业。于是新手照单全收,复制粘贴,觉得堆得越多图就越干净。
今天就聊这个,说句可能有点扫兴的实话:那一长串里,有一多半对你这张图根本没用,甚至帮倒忙。
先搞明白负面提示词到底在干嘛
正向提示词是告诉模型”我要什么”,负面提示词反过来,是告诉它”我不要什么”。出图的时候模型本来就会同时算一遍”有条件”和”无条件”两种预测,负面词其实是把那个”无条件”的位置替换成了你写的”反面教材”。所以一个常被问的问题可以先回答了:加负面词基本不会让出图变慢,这点放心,它不像正向词那样占用宝贵的 75 token 配额去”画东西”。
但”不拖速度”不等于”随便堆”。模型对负面词也是真往心里去的——你写得越具体、越贴合这张图的毛病,它越听得懂;你堆一堆它没概念的空话,反而会把它往奇怪的方向带。
抄来的长串,问题出在哪
最大的坑是模型不对版。网上那些超长负面词模板,绝大多数是 SD 1.5 时代攒出来的。SD 1.5 那会儿底模糙,确实需要十几二十个词去摁住各种崩坏。可你现在多半在用 SDXL 或者更新的底模,它们本身素质就高出一截,你再把当年那套 100 多词的”老偏方”灌进去,SDXL 反而容易被压得画面发闷、细节变少。这不是玄学,是不少人实测过的——SDXL 上负面词写短一点、写准一点,出图往往更通透。
第二个坑是抽象词。像 ugly(丑)、bad(差)这种,模型压根没有”丑”的统一概念,你写了等于没写,还白占解析。真正有用的是具体的、画面里看得见的东西:extra fingers(多指)、extra limbs(多手多脚)、mutated hands(畸形手)、watermark(水印)、text(乱码文字)。一个能对应到具体视觉问题的词,顶得上十个”ugly”。
给个能照着做的精简思路
别一上来就堆,按这个顺序来,你会舒服很多:
第一步,从一个空的或极短的负面词开始。 真人写实,我一般就起手三五个:lowres、bad anatomy、extra fingers、watermark、text。二次元的话把 text、signature、bad hands 留着,再按画风加。先这样跑一张看看。
第二步,出了图,挑毛病再对症下药。 手画崩了,加 mutated hands、extra fingers;脸糊了,加 blurry、lowres;莫名其妙冒水印文字,加 watermark、text、signature。看到一个问题,补一个词,而不是预防性地把所有可能的毛病一次写满。
第三步,锁住种子做个减法测试。 这一步最容易被忽略,但特别值。把 Seed 固定住,然后逐个删负面词,删一个跑一遍。如果删掉某个词,图几乎没变化,那它就是死重量,留着纯属占地方,删掉。几轮下来你会发现,真正在干活的可能就那么四五个。
几个常被误解的点
质量词不是万能药。 masterpiece、best quality 这类在 SD 1.5 上有点用,因为训练数据里真带这些标签;但到了 SDXL、尤其是一些新底模上,这套约定不一定成立,写了可能没效果甚至反效果。拿不准就用减法测试验一下,别迷信。
别指望负面词救构图。 它能压住一些崩坏、洗掉一些杂质,但你想要的姿势、构图、镜头,那是正向词和 ControlNet 的活儿,负面词管不了。指望靠堆负面词把一张烂构图救回来,方向就错了。
embedding 式负面词要认清它是什么。 你可能见过 EasyNegative、ng_deepnegative 这类一个词顶一串的”负面 embedding”。它们确实方便,但本质也是为特定底模训练的,换了底模未必合拍,用之前最好对着你的模型试一下,别当成万金油到处套。
收个尾
说到底,负面提示词的逻辑跟正向完全不是一回事:正向是越想要越要写清楚,负面是够用就好、宁缺毋滥。下次再看到那种一整屏的负面词模板,别急着全盘抄,留下几个真正对得上你这张图毛病的,剩下的大胆删。图干不干净,靠的是对症,不是堆量。

评论列表 (0条):
加载更多评论 Loading...