初学者指南:文本生成图像模型的提示设计

初学者指南:文本生成图像模型的提示设计

题图来自Unsplash,基于CC0协议

神译局是36氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。

编者按:文本生成图像现在火得不得了,不少模型都开放了免费试用的通道,让大家都有了尝鲜的机会。可惜的是,大部分工具都采用积分制,这意味着试用的机会有限。如果你的提示设计得不好,就很难在有限的次数内生成满意的图像。所以做好提示设计就非常重要了。本文介绍了文本生成图像的提示设计的一些基本技巧,掌握了这些技巧之后,你就能更快得到自己满意的图像了。文章来自编译。

如果你已经用过文本生成图像模型,你就会知道生成自己喜欢的图像有多么困难。

随着 Stable Diffusion、Midjourney、DALL·E2 的发布,大家一直都在说提示设计(prompt engineering)也许会成为一个新的职业。因为 DALL·E2、 Midjourney Discord 服务器以及 StabilityAI 的 DreamStudio 都采用基于积分的定价模式,在这种模式的激励下,用户一般都会争取用尽可能少的提示来得到自己喜欢的图像。

在这种模式的激励下,用户一般都会争取用尽可能少的提示来得到自己喜欢的图像。

在你浪费掉所有的免费试用积分之前,不妨先看看本文提供的快速设计指南。这是一部通用指南,不过 DALL·E2、Stable Diffusion 和 Midjourney 之间是存在差异的。因此,并非所有提示都适用你正在使用的特定生成模型。

我们将使用一些基本提示,如“一只猫戴着一副太阳镜”。指南的图像将使用 DreamStudio (采用 Stable Diffusion 模型的 GUI 节目)生成,采用默认设置,种子(seed)数固定是 42,目的是生成外观相似的图像,好进行比较。

有关提示设计的更多灵感,你还可以到 https://lexica.art/ 去看看,上面收集了很多提示,以及根据这些提示用 Stable Diffusion 生成的的结果图像。

文本生成图像及文本引导的图像生成图像提示设计基础

目前,大多数生成模型要么是文本转图像,要么是文本引导的图像转图像生成模型。在这两种情况下,至少其中一个输入是提示,也就是对你要生成的图像的描述。

提示的长度

提示应该相对较短。虽然 Midjourney 最多允许 6000 个字符,但提示应保持在 60 个单词以下。同样地,DALL·E2 的提示必须保持在 400 个字符以下。

字符集

从统计的角度来看,最好是用英语来表达提示。比方说,Stable Diffusion 用 LAION-5B 数据库的一个子集上进行训练,该数据库包含来自 100 多种其他语言的 23 亿个英语的图像-文本对以及 22 亿个图像-文本对。

提示:“a cat wearing sunglasses”(一只戴着墨镜的猫,作者用DreamStudio制作出来的图片)。

这意味着你可以不用受到西欧字母表的局限。你可以用阿拉伯语或中文等非罗马字符集,甚至用表情符号也可以。

提示:“サングラスをかけた猫”(日语为“戴着墨镜的猫”)(作者用DreamStudio制作的图片)

提示:“ 🐱😎 ”(作者用DreamStudio制作的图片)

但是,如你所见,用日语提示生成的图像以及仅用表情符号提示生成的图像都没法给猫安上一副太阳镜。

不过,虽然可能没有英语提示那样好用,但你可以用其他语言提示来增强(参见“重复”章节)。

此外还有些注意事项,比方说 Midjourney 是不区分大小写的。这意味着文字是不是大写不会影响生成的图像;所以,你可以用小写字母编写提示。

模板与分词(Tokenization)

提示设计一般都按照以下模板进行。我们会在以下章节逐个介绍。

[Art form] of [subject] by [artist(s)], [detail 1], …, [detail n]

提示设计上下文中的分词(Tokenization)是指将文本分成更小的单元(符号,token)。提示设计可以用逗号 (,)、竖线 (|) 或双冒号 (::) 作为硬分隔符。不过,分词对生成的直接影响未必都能弄得很清楚 。

1. 主题(Subject)

提示最重要的部分是主题。你想看什么?虽说这也许是最简单直接的部分,但就你想要提供的详细信息量而言,也是最困难的部分。

提示:“a cat wearing sunglasses”(作者用DreamStudio制作的图片)

复数

像“cats”这样意思含糊糊的复数词给解释留下了很大的空间。你究竟是指两只猫还是13只猫?所以,当你想要生成多个主题时,请使用带有特定数字的复数名词。

提示:“cats wearing sunglasses”(作者用DreamStudio制作的图片)

不过,随时像DALL·E2这样的模型在一个场景下生成多个主题没有问题,但却没法将每个主题的某些特征互相分离。

虽然上面用 Stable Diffusion 的DreamStudio生成了有两只不同的猫的图像,但在接下来的那张图却暴露了它的问题。可以看出,左边那只猫没有戴墨镜。相反,那副墨镜似乎在猫的身后漂浮。

提示:“three cats wearing sunglasses”(作者用DreamStudio制作的图片)。

另外,据说DALL·E2可以很好地应付最多三个主题的提示,但是带三个以上主题的提示就很难生成了,哪怕你说“12”、“十二”、“一打”,或者以多种方式说多次也不行。

在这个问题上,Stable Diffusion 再次显展现出与 DALL·E2 的不同之处。不过,就算是Stable Diffusion也很难准确地生成 12 只戴墨镜的猫。

提示:“twelve cats wearing sunglasses”(作者用DreamStudio制作的图片)

权重

如果想赋予特定主题更高的权重,你有多种方法可以做到这一点。

顺序:提示之前附近的符号权重高于提示之后的符号。 

重复:通过用不同的措辞重复主题会影响其权重 。我还看到过用不同的语言或表情符号来重复主题的提示。

参数:比方说,在Midjourney中,你可以给提示的任何部分加上 :: weight 后缀来赋予权重(比如 ::0.5)。

排除项

文本生成图像模型难以理解包含“not”、“but”、“ except ”和“without”等否定词的提示。尽管Midjourney针对这种情况提供了一个特殊的命令 (–no),但你可以通过避免负面措辞而用正面措辞提示来绕过这个问题。

2. 艺术形式

艺术形式是提示的关键部分。提示常用的艺术形式有:

摄影:studio photography(棚内摄影)、polaroid(宝丽来)、camera phone(手机摄像头)等。

提示:“polaroid photo of a cat wearing sunglasses”(作者使用DreamStudio制作的图片)

绘画:oil paintings(油画)、portraits(肖像)、watercolor paintings(水彩画)等。

提示:“watercolor painting of a cat wearing sunglasses”(作者用DreamStudio制作的图片)

插图:pencil drawing(铅笔画)、charcoal sketch(炭笔素描)、etching(蚀刻)、cartoon(卡通)、concept art(概念艺术)、posters(海报)等。

提示:“charcoal sketch of a cat wearing sunglasses”(作者用DreamStudio制作的图片)

数字艺术:3D renders (3D 渲染)、vector illustrations(矢量图)、low poly art(低多边形艺术)、pixel art(像素艺术)、scan(扫描)等。

提示:“vector illustration of a cat wearing sunglasses”(作者用DreamStudio制作的图片)

电影剧照:电影、监控摄像等

提示:“CCTV still of a cat wearing sunglasses”(作者用DreamStudio制作的图片)

如你所见,你甚至可以为每种艺术形式定义特定的媒介。比方说,对于摄影,你可以通过定义下面这类细节让生成的图像更加具体:

胶片类型(black & white、polaroid、35mm等)

取景(close up特写、wide shot广角等)

相机设置(fast shutter speed告诉快门速度、macro微距、fish-eye鱼眼、motion blur动态模糊等)

光线(golden hour黄金时刻、studio lighting演播室照明、natural lighting自然光等)

还有其他各种艺术形式,如stickers(贴纸)和刺青(tattoos)等 。如需更多灵感,可参见文末[11]。

如果提示没有指定艺术形式,生成模型通常会选择自己在训练期间看到最多的那种。对于许多主题而言,一般摄影就是最普遍的艺术形式。

3. 风格或艺术家

模板当中可能会严重影响生成图像结果的还有样式或艺术家 。使用方法是“by [artists]” 或“in the style of [style or artist]”。

提示:“oil painting of a cat wearing sunglasses by van gogh”(作者用 DreamStudio 制作的图片)

要想生成有趣的图像,有两个技巧:

将两位或多位艺术家的风格混搭

提示:“oil painting of a cat wearing sunglasses by van gogh and by andy warhol”(作者用DreamStudio制作的图像,融合了梵高与沃霍尔的风格)

使用虚构艺术家

提示:“oil painting of a cat wearing sunglasses by max mustermann”(作者用DreamStudio制作的图片)

4.特征结合

关于组合艺术家来生成有趣图像,有一点要注意的是,你还可以将两个定义明确的概念组合起来。你可以尝试以下这个模板:

– “[subject] made of”(由xxxx做成的[主题])

– “[subject] that looks like”(看起来像xxxx的[主题])

– “[subject] as”(身为xxxx的[主题])

提示:“a cat as a rockstar ”(“身为摇滚明星的猫”作者用DreamStudio制作的图片)

5.形容词与质量提升器

添加形容词和质量提升器(quality boosters)等细节可以对图像的整体美感产生显著影响。

常用的形容词包括:

取景方面(close up特写、landscape风景、portrait肖像、wide shot广角等)

配色方案(暗黑dark、pastel柔和等)

光线(电影光cinematic lighting、natural light自然光等)

其他:epic史诗,beautiful美丽,awesome

但也有些社区已经发现“魔法词”似乎可以生成更好看的图像:

“highly-detailed”(高清细节)

提示:“a cat wearing sunglasses, highly-detailed”(作者用DreamStudio制作的图片)

“trending on artstation”(趋势)

提示:“a cat wearing sunglasses, trending on artstation”(作者用DreamStudio制作的图片)

“rendered in Unreal Engine”(用虚幻引擎渲染)

提示:“a cat wearing sunglasses, rendered in unreal engine”(作者用DreamStudio制作的图片)

 “4k”或“8k”

结论

本文介绍了关于如何设计提示的技巧,掌握这些技巧之后,你就可以少试几次就能用文本生成图像模型做出想要的图像了。

我们讨论了如何从“戴太阳镜的猫”之类的简单主题开始,一步步改进提示,生成外观可接受的图像。

提示:“a cat wearing sunglasses”(作者用DreamStudio制作的图片)。

这里面的基本技巧是:

定义细粒度的艺术形式(比方说,black and white photograph黑白照片)

添加风格或艺术家(比方说,byAnnie Lebovitz )

添加增强的形容词(比方说,highly-detailed)。

只需要遵循这些简单的技巧,生成的图像就能变得更加有趣,如下所示。

提示:“a black and white photograph of a cat wearing sunglasses by annie lebovitz, highly-detailed”(作者使用DreamStudio制作的图片)

参考

[1] R. Beaumont,“LAION-5B:开放大规模多模态数据集的新时代”,laion.ai。 https://laion.ai/blog/laion-5b/

[2] DreamStudio ,“提示指南”。dreamstudio.ai。 https://beta.dreamstudio.ai/prompt-guide

[3] DreamStudio ,“一般问题”。dreamstudio.ai。 https://beta.dreamstudio.ai/faq

[4] Huggingface ,“用扩散器实现Stable Diffusion”,google.com。 https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/stable_diffusion.ipynb#scrollTo=gd-vX3cavOCt

[5] J. Jang,“DALL·E 的积分机制”。 openai.com。 https://help.openai.com/en/articles/6399305-how-dall-e-credits-work [ 9] Stability AI,“Stable Diffusion Dream Studio beta 服务条款”。stability.aihttps://stability.ai/stablediffusion-terms-of-service

[6] Midjourney ,“文档”,github.com。 https://github.com/midjourney/docs/

[7] Midjourney ,“ Midjourney文档”。 gitbook.io。 https://midjourney.gitbook.io/docs/

[8] J. Oppenlaender ,A Taxonomy of Prompt Modifiers for Text-To-Image Generation (2022), arXiv预印本 arXiv :2204.13988 。

[9] G. Parsons,The DALL·E 2 Prompt Book (2022),https://dallery.gallery/the-dalle-2-prompt-book/(2022 年 9 月 10 日访问)

[10] “ pxan ”,“如何获得不差劲的图像:从Stable Diffusion生成酷图的初学者/中级指南”,reddit.com。 https://www.reddit.com/r/StableDiffusion/comments/x41n87/how_to_get_images_that_dont_suck_a/

[11] “rendo1#6021”和“luc#0002”,“DALL·E 2 Prompt Engineering Guide”,google.com。 https://docs.google.com/document/d/11WlzjBT0xRpQhP9tFMtxzd0q6ANIdHPUBkMV-YB043U/edit#heading=h.8g22xmkqjtv7(2022 年 9 月 10 日访问)

[12] M. Taylor,“提示设计:从文字到艺术”, saxifrage.xyz 。 https://www.saxifrage.xyz/post/prompt-engineering

译者:boxi。

原文链接:https://36kr.com/p/1958987897944450

本文地址:https://www.cknow.cn/archives/11536

以上内容源自互联网,由百科助手整理汇总,其目的在于收集传播生活技巧,行业技能,本网站不对其真实性、可靠性承担任何法律责任,如有侵权请联系删除。特此声明!

题图来自Unsplash,基于CC0协议