成品图

最近扩散模型加持的 AI Art 有点🔥,周末想着也玩一玩,又受到 OctoSQL 作者的启发,决定体验一下这玩意的同时顺手翻新一下已经用了六年的头像。有一说一最近看到的不少 AI Art 的作品还是很惊艳我的。 不觉得这很酷吗?作为一名理工男我觉得这太酷了,很符合我对未来生活的想象,科技并带着趣味

我选用的模型是 Stable Diffusion,原因非常简单——这玩意真·开源,你可以在本地真正的运行它而不是调云端的 API,同时它生成效果不错且相对来说占用资源还是比较少的。本来一开始想用官方的 codebase,但后来发现 huggingface 出了一个 Diffusers,而且还提供了 fp16 版本的权重,果断换用抱抱脸🤗的产品。然后就开始了玄学的人工 prompt engineering。

改造老 Logo

首先第一想法是能不能用这玩意改造一下现在的 logo。于是找出老 logo,加上一段简单的 prompt,得到了第一个能看的结果:

A silver specular logo saying ‘NCJ’, unreal engine, bright color

效果还行,但感觉还缺一点点细节,多加一点元素进 prompt 试试:

a huge transparent glass dome, a logo saying text ‘NCJ’, unreal engine, Artstation, PCB electronic design, Massive scale, Fog, Highly detailed, Cinematic, Colorful

感觉有点味道了,于是我悄悄把这个头像换上了,但半天内都没人发现我换头像了! 一气之下,我决定从头弄一个新的(X

白底黑字的原始图片

Stable Diffusion 和 DALL·E 2 这类 work 的一个缺陷在于他们不能很好的把完整的单词/字母弄到生成的图片上,因此对于 logo 而言还是很有必要把要展示的文字/形象在一开始就放好。

啊,白底黑字~

选用一些类似 设计稿、蓝图 的 prompt,还是有些效果不错的:

design, draft, blueprintdesign, draft, blueprintdesign, logo, colorful, pencil sketch

但也有摆烂的:

design, draft, blueprint, icon, logodesign, draft, blueprint, icon, logo, colorful, pencil sketchlogo, colorful, design sketch, highly detailed

此时我意识到一个问题,就是说即便不摆烂的输出,它在外围的内容还是偏少,会不会是因为我没有在外围勾画些东西来告诉模型你要在上面画点啥,于是我在原始图片上随手画了一些线条,并把中间的字母改为了镂空的:

sketch

果然好多了,除了有时候字母还是会被模型给改掉:

logo, colorful, design sketch, highly detailedlogo, colorful, design sketch, electronic PCB designelectronic PCB design
3D, colorful, Artstation, modern, academic, lasers in the room, rays scattering, neon3D, colorful, Artstation, modern, academic, lasers in the room, rays scattering, neon3D, colorful, Artstation, modern, academic, lasers in the room, rays scattering, neon

不过感觉这些结果还是不太对胃口, 场景还是太单调了,要不我先搭一个场景,然后让模型给我补细节吧(X

Cornell Box

但我哪里会搭场景啊(雾,于是找来了经典的 Cornell Box,然后在上面恬不知耻的加上了 NCJ 三个字母:

Cornell Box

不得不说经典场景的配色确实看着还是挺舒服的(

3D, colorful, Artstation3D, colorful, Artstation, Information Technology, modern3D, colorful, Artstation, Information Technology, modern
3D, colorful, Artstation, Information Technology, modern, academic, CTO3D, colorful, Artstation, Information Technology, modern, academic, CTO3D, colorful, Artstation, modern, academic
3D, colorful, Artstation, modern, academic, papers3D letters placed in the air in the room, 3D, colorful, Artstation, modern, academic, CTO, college3D, colorful, Artstation, modern, academic, CTO, lasers in the room, rays scattering

最后,选了开头的那张,它的 prompt 是 3D, colorful, Artstation, modern, academic, CTO

不过这些 prompt 多少还是带了猜和蒙的味道,比如里面的 CTO,本来是想加入一点高端商务风,后来检查发现 stable diffusion 其实都没见过这种图,因为当你直接把 CTO 交给模型,它会给你这样一张图:

所以说写 prompt 前还是应该检查一下模型认识啥不认识啥的(X

总的来说,模型的生成能力还是非常惊艳的,但写 prompt 实在是太玄学了,希望 NLP 的学者们赶紧研究研究怎么把正儿八经的 prompt engineering 用到 diffusion 上。