测试了四五百张图,我终于找到一种好写的 AI 表情提示词
从眉眼嘴的局部控制,到事件驱动和内外情绪关系,用实际生成案例讲清 AI 角色表情怎么写,并提供可直接替换的提示词模板。
页面准备好后会自动显示。
千呼万唤始出来。为了跑这篇文章的测试图,我跑了四五百张图,来观察到底怎么样去写提示词,更能来让生成的人像图情绪更准确一点,所以很多都是失败品。
我们在AI 生成人像的时候,很多时候可能都会遇到人很好看了,但是表情却显得很呆滞,很假,很不自然,不一定是我们想要的。
比如我们在提示词里面写“微笑”,角色出现的情况是嘴角抬起来了,但看不出她为什么开心(这里可以看我之前有个文章,将画面故事的)。想要一点委屈,又不希望她直接哭出来。再复杂一点,想画一个明明很难过、却还在努力微笑的角色,提示词里开心和悲伤都有了,但是画面却可能只留下其中一种,没有办法完全的表现出来。
这次我想解决的,就是角色的表情应该怎么描述。这个在之前有人就在评论区里询问了。

我先从真人的表情管理教程里拆方法,把眉毛、眼睛、嘴巴分别写进提示词,跑了一轮图。看完以后,我觉得离想象中的表现力还有距离,于是继续换写法,自己又做了很多组测试。
最后留下来的方法是给表情补上一个发生的原因,再写清楚角色心里的感受,以及她愿意让别人看见多少。我们在后面慢慢将。
这篇把中间的试错和最后采用的写法一起分享出来。文末有两段模板,可以直接换进自己的生图提示词。
测试最开始的时候,我首先想到的是最近很火的AI视频微表情情绪里面的控制法。我尝试在提示词里写清楚眉、眼、嘴,还有视线等各种细节,想让 AI 能够执行。
比如,我想让角色看起来更委屈,我会在提示里增加角色眉头的变化。想让角色眼神更柔和,就会去描述眼睑;如果是描述笑容,我会把它拆成唇口不同的幅度和朝向。
比如,想让角色看起来委屈,就补充眉头的变化;想要更柔和的眼神,就描述眼睑;笑容则拆成闭唇、张口,以及不同的幅度。
但是我在跑的第一轮测试的时候发现了,这种控制方法在个别表情中有用,但在有些表情中,如果提示词写得不恰当,表情就会非常僵硬,看着很诡异。

上面这张是闭唇微笑,笑意收在嘴角。这种嘴眼在平稳状态下,会有很好的表现效果。

然后这是一张张嘴的露齿笑,提示词描述里就是轻微的张齿,所以你能看出来,其他东西都没变,它就张齿了。从这张图来看,它的效果蛮好的;但是换到下面这张图就不行了。

这张我想明显表达角色的喜悦,但是当人真的动起来时,我们在脑子里想这个角色动起来之后,每一块肌肉是怎么运动的,再把它转化成提示词,这种描述我个人觉得非常困难。这往往会导致我们在描述角色的动作和表情时,没办法做到精准描述。AI 生图会根据你每一块的描述生成对应模块,比如眼睛是怎么样的、嘴巴是怎么样的,最后组合在一起,就成了上面这幅图里这种很诡异的状态。
所以,其实它不是不遵循我们的提示词,而是太遵循了:把提示词里的每个模块都遵循到了,但组合出来的效果没有那么好看。
这就好比我们经常说的刘亦菲的美貌:把她每一个五官拆出来,可能不是那么完美,但组合在她那张脸上,就显得异常完美。而我们生成图片的时候,往往是反过来的,我们可能觉得提示词写得很好了,但是组合到一起,五官就很奇怪。
而且按这种提示词的写法,几乎你想让人去写,他就不可能写出来这样的内容,只能通过一些 skill 来对一些知识进行调整。最后出现了问题,我们也没有办法学会修改提示词。所以我觉得这种写法是不正确的。
这是我尝试的另外一种第二种写法。
我尝试着把提示词的写法改成“事件+情绪词”。什么意思呢?就是你前面进行故事化描述,像写小说、写文章一样。最后在故事末尾配上她在这个故事里应该表达的情绪。最开始,我尝试过用表情符号或颜文字的形式来辅助控制角色的面部表情。但是我从生成结果发现,面部表情方面,如果增加了颜文字和表情符号,会对整个画面产生一定影响,表达不出前面故事中那种独特的情绪,会有一个权重干扰。
所以最后整理下来的版本是:不添加表情符号和颜文字,只用自然语言交代事件和角色的感受。
比如想要委屈,我用了这一段:
她认真准备的礼物,被最在意的人随手放到一边。她看向镜头后的那个人,此刻感到委屈、失落,仍期待对方回应。

这张图测的时候,我因为只想让她有情绪表达,没有把整个场景也融入进去。但也能看出来,她表情的效果是可以让我们接受和满意的。
这张的眉眼和嘴部已经有低落、委屈的感觉。图片本身当然说不出“礼物被放到一边”这个完整故事,但这个事件给表情提供了一个具体的来由。
认真准备的东西被忽视,会失落;忽视她的又是最在意的人,所以委屈里还留着一点期待。提示词中的这些信息,规定了我想表达的是哪一种难过。
这里可以记一个很短的结构:
发生了什么+她有什么情绪+这份情绪指向谁。
事件不用很长,一件刚刚发生的小事就够了。“喜欢的人突然叫住自己”“恶作剧被发现,对方却没有责怪”“终于等到很久没见的人”,都能给角色一个做出反应的理由。

单一情绪容易说明白。更难的是,一个人身上同时存在好几种感受。
因为人是很复杂的,我们经常可能在同一个状态下有很多情绪。比如老板让你加班,你很烦,但又要微笑着对他说一些事情。有时候遇到困难的事情,我们明明很委屈,但又必须笑出来,不能让别人看出来……
比如:表面上有一点喜悦,心里却很悲伤,甚至一边笑一边流泪。
我让你写提示词,你会怎么写?直接写“开心、悲伤、又哭又笑”?其实这些bing没有交代这些情绪之间的关系。她是开心到哭,还是在强撑?她为什么不让自己痛快地哭出来?不同的原因,对应的笑容也不一样。
这张图,我用的是下面这段:
她终于见到了日思夜想的人,却得知这次见面也是最后一次告别。重逢带来一点喜悦,但内心更多的是悲伤与不舍。她努力笑着看向镜头后的那个人,想让对方记住自己开心的样子。眼泪却顺着脸颊滑落,嘴角仍维持着轻微的笑意。那是一个含着悲伤、努力不让对方担心的笑容。

这张里,嘴角的笑意和眼里的泪水同时存在。它比较接近我想要的那种“难过,却还在努力笑”的状态。
把提示词拆开,会发现每一句都在补充不同的信息。
重逢和告别同时发生,所以有喜悦,也有悲伤。“内心更多的是悲伤与不舍”,明确了哪种情绪占上风。
而“想让对方记住自己开心的样子”,解释了她为什么还要笑。笑容有了动机,后面的眼泪和嘴角才接得上。
最后再落到少量可见的细节:眼泪滑落,嘴角维持轻微笑意。这里仍然用到了嘴部描述,但它已经和角色的处境连在一起。
复合情绪,可以写成:事件+内心情绪+表现或掩饰的原因+外在表现+没能藏住的痕迹。
我们不用强求一张静态图交代整个故事。只要观众能看出她在笑,也能看出这个笑里有难过,表情就传达出了这段描述里重要的部分。
同样的结构,换一个事件,就能写另一种关系。
她终于向最信任的人说出自己的付出,却被一句“你想太多了”轻轻带过。她感到愤怒,更难过的是自己的真心没有被理解。她直视镜头后的那个人,努力保持强硬,像是不愿再退让。眉间绷紧,嘴唇微微颤抖,眼眶却渐渐泛红。那是一种想要质问对方,又害怕一开口就哭出来的神情。

这张里,眉间的紧张、红眼和泪水都能看到。不过我觉得,受伤和委屈的感觉更突出,愤怒没有那么强。
写提示词时,我想要的是:她不愿退让,所以努力强硬;可真正刺痛她的,是自己的真心没有被理解。这两种感受有联系,也有拉扯。
看图片是不是好像真的有一点那种感觉了?
另一种叠加,是情绪还没有完全转换过来:
她已经做好被拒绝的准备,却突然听见喜欢的人认真回应了自己的心意。喜悦一下涌上来,她又不敢立刻相信,担心自己听错了。她看着镜头后的那个人,原本准备离开的动作停住,嘴唇微微张开,笑意刚刚浮现,却还带着迟疑。那是一种已经开始开心,又在等待对方再次确认的神情。

来感受一下是否能表达出提示词里的情绪。
所以,复杂情绪要写清楚的是主次,以及它们为什么会同时出现。
角色长相、服装、画风、构图,继续沿用你原来的提示词;把其中描述表情的部分替换掉即可。
基础版适合一种主要情绪,或者两种自然相伴的感受:
[角色]刚刚[发生的事件]。[角色]看向[情绪所指向的人或对象],此刻感到[主要情绪],同时[另一种感受或仍然抱有的期待,可省略]。
比如“喜悦、如释重负”,我实际测试时写的是:
她终于等到许久未见的人出现在面前。她看向镜头后的那个人,此刻感到喜悦、如释重负,长久的等待终于有了回应。
需要表现内心和表面的差异时,用复合版:
[角色]刚刚[发生的事件]。内心感到[主要情绪],同时又有[次要情绪]。因为[想表达、掩饰或维持某种表现的原因],[角色]看向[对象],努力[外在表现]。[一两处可见细节]却透露出[没能完全掩盖的情绪]。那是一种[用一句话说清两种情绪关系]的神情。
不需要每次把所有空都填满。没有掩饰,就不用硬写“努力”;两种情绪自然流露,也不用强加冲突。眼眶、嘴角这些细节,挑与目标最相关的一两处就够了。
另外,事件描述也可能把场景带着改掉。上面的图就出现了床铺、不同服装和环境变化。如果你只想改表情,可以补充“事件只用于解释此刻的表情,画面保持原定人物、场景和构图”,然后检查这些要求是否被执行。
至于后续内容,我为什么不使用参考图的形式继续作为案例教学呢?是因为参考图本身的影响,会导致画面发生一部分变化。需要进行额外的一些限制和描述。这里就不做过多的阐述了。
所以总结一下:如果你想让角色表情丰富,可以先想一下你想要的照片,它是在一个什么事件里?类似于讲故事去写。她遇到了什么,心里是什么感受,又想让面前的人看见多少
下次想画“又哭又笑”,可以先写清楚:她已经这么难过了,为什么还要笑?