Prompt 真的越长越好吗?

按照 Midjourney 的官方文档里的说法,并不一定:

Prompts can be very simple. Single words (or even an emoji!) will produce an image. Very short prompts will rely heavily on Midjourney’s default style, so a more descriptive prompt is better for a unique look. However, super-long prompts aren’t always better. Concentrate on the main concepts you want to create.

但你会发现,好像中文社区分享的 prompt 都非常长,但只要各位仔细观察,或者用翻译软件查一查,你会发现很神奇的事情:

  1. 有一些词拼写错误。原因是某书,不支持复制黏贴,导致很多人 OCR prompt,然后识别错误,大家都在搬运 prompt ,导致错误一直传递,这也算是新时代的水印了吧。
  2. 有一些词非常重复,比如 8k、UHD、Ultra Quality,他们都在说一个事情,就是高清,加多了也不会有叠加作用。
  3. 很多词你根本不知道为啥需要,但好像每个人都加了。比如 8K 这些词,你有想过这个词是有必要的吗?是有用的吗?但实际上这些词官方并不推荐使用,这些词甚至对你的图会造成破坏(详见 Midjourney 官方 FAQ 一章)。

如果你看完我的教程,你会发现我讲的例子里,很多图只要很少的 prompt 就能描述清楚,生成的图片也不差。

当然我并不是说,不能写很长的 prompt,如果你生成的内容本来就很复杂,那写长一点也没所谓,但写完问问自己,这有必要吗?

像素游戏

说到游戏,我最喜欢的风格是像素风,像素风格一般有:

  • 8-bit
  • 16-bit
  • 32-bit

各位都可以自己试试,介绍一个我写的 prompt,最近塞尔达发布了最新作《王国之泪》,很喜欢他们的天空岛的设定,所以用 Midjourney 生成了一个 16-bit pixel art 版本:

Prompt解释
类型是什么?16-bit pixel art16 bit 风格
主体是什么?island in the clouds, ancient ruins天空岛,岛上有遗迹
背景是什么?null主题描述里其实已经有背景了(clouds),所以我就没重复写
构图是怎样的?null不太重要,就让 AI 自由发挥
用什么镜头?null不太重要,就让 AI 自由发挥
是什么风格?Zelda style因为是复刻塞尔达,所以加了塞尔达风格
参数null没有加任何参数

再生成一个宠物小精灵的场景:

Prompt解释
类型是什么?8-bit pixel art换成了更复古的 8 bit 风格
主体是什么?types of Pokémon我想让 AI 生成宠物小精灵图谱一样的内容

这两个 prompt 都很短,但很有意思,可玩性挺强的,各位可以多玩玩:

3D 游戏——场景

因为篇幅的原因,我无法将所有有关 3D 游戏的 prompt 都介绍完,我只能挑选一些我比较喜欢的风格讲一下,而且我不是专业的 3D 设计师,所以未免会有讲错的地方,望见谅。

在 3D 场景设计里,我最喜欢的应该是像素风 3D 微缩场景,也不知道是不是叫这个名字,写一个 prompt 给大家看看:

Prompt解释
类型是什么?isometric clean pixel art这个风格我是问了 ChatGPT 的,不确定是不是叫这个。
主体是什么?robotics lab机器人实验室
背景是什么?null不太重要,就让 AI 自由发挥
构图是怎样的?null不太重要,就让 AI 自由发挥
用什么镜头?null不太重要,就让 AI 自由发挥
是什么风格?null我在类型里提了,所以不需要重复强调
参数null没有加任何参数

以下左图是火星工厂,右图是机器人实验室:

3D 游戏——人物

主体描述我就不多说了,更多是分享 3D prompt 的必要的要素:

Prompt解释
类型是什么?blender 3d我测试了下,只写 3d 也行,但不知道为啥没那味,加了 blender(一个 3D 建模软件)就会好很多。
主体是什么?Dark Vader, full body, cute达斯维达的全身像,然后我希望它生成一个 Q 版的
背景是什么?null不太重要,就让 AI 自由发挥
构图是怎样的?isometric等轴侧投影,这是一种用二维平面呈现三维物体的方法,效果可以看后面生成的图片,各位就知道是啥了。
用什么镜头?null不太重要,就让 AI 自由发挥
是什么风格?Pixar, style of artstation我这里加了皮克斯风格,以及跟之前讲插画的那章加了 behance 类似,加了 artstation 后效果有变好(artstation 跟 behance 类似,也是设计师分享作品的一个网站,但主要分享 3d 或游戏相关的内容)
参数null没有加任何参数

我用以上 prompt 生成了达斯维达和风暴兵的,我觉得风暴兵还挺可爱的:

3D 游戏——装备

游戏装备非常非常多,我没法一一给大家介绍,只介绍一些我了解的,首先是戒指,多大数的游戏戒指都是那种印章戒指(signet ring),

Prompt解释
类型是什么?blender 3d这个可加可不加
主体是什么?star war, signet ring星球大战的印章戒指
背景是什么?null不太重要,就让 AI 自由发挥
构图是怎样的?isometric等轴侧投影(这个可加可不加)
用什么镜头?null不太重要,就让 AI 自由发挥
是什么风格?null不太重要,就让 AI 自由发挥
参数null没有加任何参数

另外一个可能常见的是装备集(我不确定这个中文是否正确,英文叫 Item Collections),写法是这样的:

Prompt解释
类型是什么?blender 3d, game sheetgame sheet 简单说是那种游戏设定图,一般就是罗列各种装备
主体是什么?lightsabers, paladin armor,希望生成一些列的星球大战的光剑和圣骑士盔甲
背景是什么?null不太重要,就让 AI 自由发挥
构图是怎样的?null类型包含了,所以不用填
用什么镜头?null不太重要,就让 AI 自由发挥
是什么风格?style of Hearthstone我很喜欢炉石传说的风格,也很好奇,中古风格,遇上未来题材,会生成怎样的设计
参数null没有加任何参数

最后生成的结果如下,但我对装备集的生成不是很满意,后面我会介绍一个技巧,教大家如何渐进优化生成的图片:

技巧十:控制变量法渐进优化

很多人把 AI 生成图片比喻为炼丹,我觉得非常贴切,很多时候,也不知道为啥,在 prompt 里加一点神秘配方,图片就会很不一样。

不过我觉得虽然过程很像炼丹,但并不代表我们需要像古人那样,用撞大运的方式炼制丹药。我认为目前使用 Midjourney 最好的方法是:控制变量渐进优化法。

拿上面那个装备集的图片为例,我希望它生成的是装备,并且是一件件地排布,而且光剑的效果也很奇怪,首先我们来逐条排查 prompt:

Prompt检查
类型是什么?blender 3d, game sheet这个好像有点问题,我希望的炉石传说的风格,好像不是这种精致的 3D 效果,生成的风格更像是星际争霸的,而炉石传说是那种黏土风格(clay render)。
主体是什么?lightsabers, paladin armor,这里可能也有问题,会不会是没有写 different types of lightsabers 导致只生成一种光剑。
背景是什么?null这个应该没啥问题
构图是怎样的?null这个应该没啥问题
用什么镜头?null这个应该没啥问题
是什么风格?style of Hearthstone感觉生成的图没有那种中世纪盔甲的油腻感,但如果前面改了黏土风格,会不会好一些?这里可能也需要优化下。
参数null这个应该没啥问题

从这个表里可以看到,我们发现了三个问题,其中第一个黏土风格问题,跟最后一个问题有关,此时我的建议是:

  1. 每次仅修改一个,其余变量不变。
  2. 修改完一条,效果符合预期后,再修改下一个。
  3. 我的经验优先修改主体内容,因为主体有的时候会影响其余的变量。
  4. 如果想确定这个修改是否具有一致性,或者说是否符合要求,而不是恰巧符合,可以用相同的 prompt 再生成一次。不过因为没生成一次都要花钱,所以这个是可选项。

OK,按照以上原则,我们修改一下我们的 prompt,看看生成了什么,的确加了 different types of 后,光剑就多了,问题解决了:

然后我们修改下 blender 3d,将其改为 clay render (黏土渲染),我改完之后发现生成的结果(左边四张),好像质感还是差了一点,于是我又试了下保留 3d blender 加 oily 的效果(中间四张),以及 clay render 加 oily 两个一起用(右边四张)。

我个人觉得好像两个都改了效果是最好的(右边四张)。

对比一下最开始的 prompt 生成的图片,是不是最终的图片效果更好?所以这个技巧主要想告诉大家,写 prompt 没有必要照抄答案,你也有能力自己写好 prompt。

游戏设定稿

游戏这一章,再介绍一个可能会用到的一个场景人物设定稿,prompt 如下:

Prompt解释
类型是什么?concept design sheet设定稿
主体是什么?female paladin, character design,生成一个女性圣骑士的角色设定
背景是什么?white background设定稿一般都是白底的
构图是怎样的?null类型包含了,所以不用填
用什么镜头?null不太重要,就让 AI 自由发挥
是什么风格?null因为我对游戏相关的风格和设计师都不熟悉,所以就让 AI 自由发挥了
参数null没有加任何参数

最后的结果如下: