Skip to main content

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

很多人把 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 后,光剑就多了,问题解决了:

MJ051.png

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

MJ052.png

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

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