Dalle3:"那时的你神往奇幻,神往天空,梦里都是五彩斑斓的天下,我想大概是这样的吧..."

然后开始画图:

我:"I have a dream when a was young"

SD:"你啥玩意儿?"

实践5分钟读懂AI是若何画图的

然后开始画图:

由此可见, Dalle3不怎么挑输入质量,乃至能对抽象或模糊的输入进行遐想,终极画出一张质量还可以的图,而SD对输入信息哀求较高,如果不见告SD详细要画什么,它会选择直接躺平。

栗子2:

我:"给你一个奇幻风格模型, 再给你一个写实人物Lora,再给你亿点点提示词In Casey Baugh's evocative style, art of a beautiful young girl cyborg with long brown hair, futuristic, scifi, intricate, elegant, highly detailed, majestic, Baugh's brushwork infuses the painting with a unique combination of realism and abstraction, greg rutkowski, surreal gold filigree, broken glass, (masterpiece, sidelighting, finely detailed beautiful eyes: 1.2), hdr, realistic painting, natural skin, textured skin, closed mouth, crystal eyes, butterfly filigree, chest armor, eye makeup, robot joints, long hair moved by the wind, window facing to another world, Baugh's distinctive style captures the essence of the girl's enigmatic nature, inviting viewers to explore the depths of her soul, award winning art,严格按照我的哀求画一张图"

Dalle3:"不得行,处理不了自定义模型,处理不了Lora"

然后开始画图:

我:"给你一个奇幻风格模型, 再给你一个写实人物Lora,再给你亿点点提示词In Casey Baugh's evocative style, art of a beautiful young girl cyborg with long brown hair, futuristic, scifi, intricate, elegant, highly detailed, majestic, Baugh's brushwork infuses the painting with a unique combination of realism and abstraction, greg rutkowski, surreal gold filigree, broken glass, (masterpiece, sidelighting, finely detailed beautiful eyes: 1.2), hdr, realistic painting, natural skin, textured skin, closed mouth, crystal eyes, butterfly filigree, chest armor, eye makeup, robot joints, long hair moved by the wind, window facing to another world, Baugh's distinctive style captures the essence of the girl's enigmatic nature, inviting viewers to explore the depths of her soul, award winning art,严格按照我的哀求画一张图"

SD:"明白!
"

然后开始画图:

由此可见,Dalle3不支持自定义主模型和Lora,而SD出图效果的可控性和定制化能力都较强,比如示例中可以自定义主模型,指定某个人物Lora,乃至指定图中人物的表情和姿势 。

通过以上场景示例我们创造Dalle3和SD在以下方面有着明显的差异:

语义理解

上手难度

画图掌握能力

用度

Dalle3

顶级理解

大略

较弱

收费

SD

有一点,但不多

有一定难度

极高

免费

创作者生态里AI封面的场景(通过声音标题或专辑名天生封面)输入大多是抽象的,且对图像掌握没有诉求,以是有着精良语义理解的Dalle3比较契合我们的场景,当前我们的AI封面选用的是Dalle3。

理解出图过程

通过开头的例子,我们对付什么是AI出图有了大概的印象,接下来便是本文的紧张内容 - 理解AI是如何出图的。
由于SD开源且定制能力更强,本文就以SD为例讲解AI出图过程,个中会省略部分晦涩且不影响理解(紧张是我也不懂)的环节和事理,主打一个读完包懂。

基本事理扩散模型(Diffusion model)

扩散模型是一个大类,它们的目的是天生类似于它们演习数据的新数据。
对付SD来说,便是天生类似演习样本图像的新图像。

举个栗子:

用一张猫图作为演习图像,通过为其不断添加噪声,终极得出一张噪声图,这个添加噪声的过程被噪声预测器所记录

当我们须要天生一张猫图的时候,便可通过如下方法来达成:

1、天生一张完备随机的噪声图像作为原始图像 。

2、哀求噪声预测器见告我们天生猫图所须要的噪声(记录器记录了之前演习时如何通过添加噪声把一张猫图变成一张随机噪点图,以是能预测出反向操作所须要的噪声)

3、然后我们从原始图像中减去这个预测的噪声

4、不断重复,便会得到一张猫图。

例子中的扩散过程所须要的打算量在普通打算机上很难完成,以是SD的扩散模型不再是在像素空间中完成,而是在低维的潜空间中完成,这带来的直接结果便是我们手中的破电脑也能本地AI出图了。

词向量(word embedding)

为了方便后续理解我们先来讲一个观点:词向量。
大略来说便是它可以把自然措辞中的表示方法转换为高维空间内的向量,然后通过余弦相似度或欧氏间隔打算它们之间的关系。

举个栗子:我们通过某小说文本内容(假设它足够长)演习了一个词向量模型,那当我们把 “黄鱼面”、“凯迪拉克”、“排骨年糕” 这三个词给到它,它是能得出“黄鱼面”和“排骨年糕”更近似。
由于在演习中我们给到它足够多包含了这些词的文本,它把每个字和词向量化,然后根据每个字和词涌现的位置、频率,从某种意义上打算出彼此之间的关系。
虽然它不知道三个词在人类措辞中代表什么意思,但是它知道这三个词在向量维度上彼此之间的“关系”。
以是,词向量模型可以打算相似度。

再举个栗子:刘焕通过自己的日记和微博上的文本(假设有并且足够多)演习了一个词向量模型,那当他输入“我要”两个字的时候,模型便能预测出接下来大概率要输“放假”。
以是,词向量模型可以预测概率。

由此可得,词向量模型虽然不知道输入给它的文本内容在人类天下中代表什么,但是它可以借助向量确定这些内容在它的天下里是什么,乃至打算这些内容彼此之前的关系。

CLIP

前面讲词向量,实在是为了方便理解clip。
词向量模型可以处理文本与文本的匹配关系(比如知道“狗”和“犬”大概是同一个东西),而clip模型则能处理文本和图像的匹配关系(比如知道“狗”和一张狗的图片是对应的)。

SD的clip包含text encoder和image encoder,text encoder卖力把我们输入的文本进行分词,然后转换为标记(Token),再将每个标记向量化(Embedding)。
而image encoder在演习时已经节制了大量的样本, 这里拿文本向量结果按余弦间隔进行匹配即可,过程如下图:

现在回过分来看图像天生的过程,当我们输入“一只猫”作为提示词的时候,都发生了什么:

1、提示词被拆分(clip text encoder)

2、拆分后的词被转为标记(clip text encoder)

3、标记被向量化(clip text encoder)

4、从向量维度匹配文本和图像(clip text encoder + clip image encoder)

5、预测天生目标图像所须要的噪声(difussion model)

6、在随机噪声的图上不断减去预测的噪声(difussion model)

7、终极形成一张猫图(difussion model)

这是SD通过文本天生图像的过程,SD还支持通过图像天生图像,感兴趣的小伙伴们可以去理解下天生过程,这里不做展开。

图像掌握

具备天生图像的能力只是完成了第一步,实际场景中运用,当我们把能给的提示词都给到之后,可能天生效果仍旧和预期有一定出入,这时候就要借助图像天生的随机性通过重新天生来尝尝看,便是俗说的“抽卡”。

那如何减少抽卡的概率呢?便是增强图像天生时的掌握能力,SD的图像掌握紧张通过提示词、主模型、Lora模型、ControlNet来完成。

1、提示词、反向提示词

SD文本天生图像过程中,提示词是本钱最低的掌握办法,比如通过文本来限定图像的主题、场景、镜头等要素。

提示词是见告SD天生图像中要有什么,如果要见告SD避免图中涌现什么,就要用到反向提示词。

举个栗子:

提示词:master piece,high qulity,a beautifull girl,black long straigh hair,pretty face,moonlight

反向提示词:nsfw,sexy

上面提示词哀求图中涌现女孩儿,黑长直,月光,哀求避免涌现社去世内容,出图如下:

出图效果基本符合哀求,但这是刘焕爱看的风格而不是我们爱看的,以是我们再加一个反向提示词哀求避免涌现袒露的腿部:

提示词:master piece,high qulity,a beautifull girl,black long straigh hair,pretty face,moonlight

反向提示词:nsfw,sexy,leg skin

出图就会只管即便避免涌现腿部皮肤:

2、主模型

前面讲到SD天生图像的核心事理之一是扩散模型,官方的大模型都是花费巨额本钱演习了大量图片得到的,它的特点是大而全,但是在特定风格图像的天生上有些力不从心,于是小伙伴们在这些官方根本模型之上,加以演习或领悟,终极产出各种不同风格的模型。
利用相同的提示词,在不同模型下的表现明显带有对应模型的风格。

还是以刚才的“女孩儿,黑长直,月光”提示词为例,在写实风格模型下出图效果:

在二次元风格模型下出图效果:

在国漫风格模型下出图效果:

3、Lora模型

SD主模型的演习是须要大量图像样本和打算资源的,如果只须要定制人物、画风等要素,则可以通过对应的Lora模型来实现,演习Lora模型所耗费的资源比主模型要小很多,对人物、画风等要素的定制效果吹糠见米

还是以刚才的“女孩儿,黑长直,月光”为提示词为例,利用iu的人物Lora模型:

利用八重神子的Lora模型:

4、ControNet

Lora紧张用作掌握人物,而人物的表情和姿势掌握,则要用到ControlNet,Controlnet可以通过参照图像或者画布上画火柴图来掌握出图效果。

还是以刚才的“女孩儿,黑长直,月光”为提示词为例,我们指定一个顶流舞蹈小熊舞截图的姿势:

并把ControlNet的processor设为openpose,出图效果就会倾向这个姿势:

当我们在画布上画一个横着的小人作为参照姿势:

出图就会只管即便贴近这个横着人的小人:

以上便是SD中常用的图像天生掌握办法,SD中还有其它的手段可以干预出图质量和效果,比如VAE、采样器、迭代次数等,感兴趣的小伙伴可以深入的去理解,这里就不展开了。
现在我们大略总结一下AI出图的流程:

1、输入提示词(文生图场景输入提示词,图生图场景输入参照图)

2、SD clip处理输入的文本,经由一系列流程转为向量,通过打算近而得知要出什么样的图

3、主模型、Lora、ControlNet出图控图(这里省略VAE、采样器、步数、随机种子等)

4、不断迭代最终生成效果图

结束语

大略的提示词就可以让工具按哀求天生图像,稍加掌握就能指定人物的表情和姿势,还能演习自己的人物模型,AI画图给我们事情和生活带来便利的同时,不禁让我们感慨AI的无所不能。
既然它画的比我们快,还画的比我们好,那本着打不过就加入的原则,让我们一起拥抱AI吧!