很多人把 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 | 这个应该没啥问题 |
从这个表里可以看到,我们发现了三个问题,其中第一个黏土风格问题,跟最后一个问题有关,此时我的建议是:
- 每次仅修改一个,其余变量不变。
- 修改完一条,效果符合预期后,再修改下一个。
- 我的经验优先修改主体内容,因为主体有的时候会影响其余的变量。
- 如果想确定这个修改是否具有一致性,或者说是否符合要求,而不是恰巧符合,可以用相同的 prompt 再生成一次。不过因为没生成一次都要花钱,所以这个是可选项。
OK,按照以上原则,我们修改一下我们的 prompt,看看生成了什么,的确加了 different types of 后,光剑就多了,问题解决了:
然后我们修改下 blender 3d,将其改为 clay render (黏土渲染),我改完之后发现生成的结果(左边四张),好像质感还是差了一点,于是我又试了下保留 3d blender 加 oily 的效果(中间四张),以及 clay render 加 oily 两个一起用(右边四张)。
我个人觉得好像两个都改了效果是最好的(右边四张)。
对比一下最开始的 prompt 生成的图片,是不是最终的图片效果更好?所以这个技巧主要想告诉大家,写 prompt 没有必要照抄答案,你也有能力自己写好 prompt。