Stable Diffusion
用于图像生成的机器学习模型 来自维基百科,自由的百科全书
Stable Diffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词指导下产生图生图的转变。[2]
它是一种潜在扩散模型,由慕尼黑大学的CompVis研究团体开发的各种生成性人工神经网络之一。[3]它是由初创公司StabilityAI、CompVis与Runway合作开发,并得到EleutherAI和LAION的支持。[4][5][6] 截至2022年10月,StabilityAI筹集了1.01亿美元的资金。[7]
Stable Diffusion的源代码和模型权重已分别公开发布在GitHub和Hugging Face,可以在大多数配备有适度GPU的电脑硬件上运行。而以前的专有文生图模型(如DALL-E和Midjourney)只能通过云端运算服务访问。[8][9]
技术架构


Stable Diffusion是一种扩散模型(diffusion model)的变体,叫做“潜在扩散模型”(latent diffusion model; LDM)。扩散模型是在2015年推出的,其目的是消除对训练图像的连续应用高斯噪声,可以将其视为一系列去噪自编码器。Stable Diffusion由3个部分组成:变分自编码器(VAE)、U-Net和一个文本编码器。与其学习去噪图像数据(在“像素空间”中),而是训练VAE将图像转换为低维潜在空间。添加和去除高斯噪声的过程被应用于这个潜在表示,然后将最终的去噪输出解码到像素空间中。在前向扩散过程中,高斯噪声被迭代地应用于压缩的潜在表征。每个去噪步骤都由一个包含ResNet骨干的U-Net架构完成,通过从前向扩散往反方向去噪而获得潜在表征。最后,VAE解码器通过将表征转换回像素空间来生成输出图像。研究人员指出,降低训练和生成的计算要求是LDM的一个优势。[4][3]
去噪步骤可以以文本串、图像或一些其他数据为条件。调节数据的编码通过交叉注意机制(cross-attention mechanism)暴露给去噪U-Net的架构。为了对文本进行调节,一个预训练的固定CLIP ViT-L/14文本编码器被用来将提示词转化为嵌入空间。[3][5]
用法
Stable Diffusion模型支持通过使用提示词来产生新的图像,描述要包含或省略的元素,[5]以及重新绘制现有的图像,其中包含提示词中描述的新元素(该过程通常被称为“指导性图像合成”(guided image synthesis)[10])通过使用模型的扩散去噪机制(diffusion-denoising mechanism)。[5] 此外,该模型还允许通过提示词在现有的图中进行内补绘制和外补绘制来部分更改,当与支持这种功能的用户界面使用时,其中存在许多不同的开源软件。[11]
Stable Diffusion建议在10GB以上的显存下运行, 但是显存较少的用户可以选择以float16的精度加载权重,而不是默认的float32,以降低显存使用率。[12]
演示反向提示词对图像生成的影响。
- 上: 无反向提示词
- 中: "绿树"
- 下: "圆形石头"
Stable Diffusion中的文生图采样脚本,称为"txt2img",接受一个提示词,以及包括采样器(sampling type),图像尺寸,和随机种子的各种选项参数,并根据模型对提示的解释生成一个图像文件。[5] 生成的图像带有不可见的数位浮水印标签,以允许用户识别由Stable Diffusion生成的图像,[5]尽管如果图像被调整大小或旋转,该水印将失去其有效性。[13] Stable Diffusion模型是在由512×512分辨率图像组成的数据集上训练出来的,[5][14]这意味著txt2img生成图像的最佳配置也是以512×512的分辨率生成的,偏离这个大小会导致生成输出质量差。[12] Stable Diffusion 2.0版本后来引入了以768×768分辨率图像生成的能力。[15]
每一个txt2img的生成过程都会涉及到一个影响到生成图像的随机种子;用户可以选择随机化种子以探索不同生成结果,或者使用相同的种子来获得与之前生成的图像相同的结果。[12] 用户还可以调整采样迭代步数(inference steps);较高的值需要较长的运行时间,但较小的值可能会导致视觉缺陷。[12] 另一个可配置的选项,即无分类指导比例值,允许用户调整提示词的相关性(classifier-free guidance scale value);[16]更具实验性或创造性的用例可以选择较低的值,而旨在获得更具体输出的用例可以使用较高的值。[12]
反向提示词(negative prompt)是包含在Stable Diffusion的一些用户界面软件中的一个功能(包括StabilityAI自己的“Dreamstudio”云端软件即服务模式订阅制服务),它允许用户指定模型在图像生成过程中应该避免的提示,适用于由于用户提供的普通提示词,或者由于模型最初的训练,造成图像输出中出现不良的图像特征,例如畸形手脚。[11][17] 与使用强调符(emphasis marker)相比,使用反向提示词在降低生成不良的图像的频率方面具有高度统计显著的效果;强调符是另一种为提示的部分增加权重的方法,被一些Stable Diffusion的开源实现所利用,在关键词中加入括号以增加或减少强调。[18]
演示img2img修改
- 左: 最初用Stable Diffusion 1.5制作的图像
- 右: 用Stable Diffusion XL 1.0修改后的图像
Stable Diffusion包括另一个取样脚本,称为"img2img",它接受一个提示词、现有图像的文件路径和0.0到1.0之间的去噪强度,并在原始图像的基础上产生一个新的图像,该图像也具有提示词中提供的元素;去噪强度表示添加到输出图像的噪声量,值越大,图像变化越多,但在语义上可能与提供的提示不一致。[5] 图像升频是img2img的一个潜在用例,除此之外。[5]
2022年11月24日发布的Stable Diffusion 2.0版本包含一个深度引导模型,称为"depth2img",该模型推断所提供的输入图像的深度,并根据提示词和深度信息生成新图像,在新图像中保持原始图像的连贯性和深度。[15]
Stable Diffusion模型的许多不同用户界面软件提供了通过img2img进行图生图的其他用例。内补绘制(inpainting)由用户提供的蒙版描绘的现有图像的一部分,根据所提供的提示词,用新生成的内容填充蒙版的空间。[11] 随著Stable Diffusion 2.0版本的发布,StabilityAI同时创建了一个专门针对内补绘制用例的专用模型。[15] 相反,外补绘制(outpainting)将图像扩展到其原始尺寸之外,用根据所提供的提示词生成的内容来填补以前的空白空间。[11]
在Stable Diffusion中使用img2img的内补绘制与外补绘制技术的演示
第一步: 使用txt2img生成新图像。巧合的是,它无意中生成了这个缺少一只手臂的人。
第二步: 通过外补绘制,图像底部被扩展了512像素,并被AI生成的内容所填充。
第三步: 在准备内补绘制时,使用GIMP中的画笔绘制了一个临时的手臂。
第四步: 在临时手臂上应用内补绘制蒙版,img2img生成一个新手臂,同时保持图像的其馀部分保持不变。
许可证
与DALL-E等模型不同,Stable Diffusion提供其源代码[19][5]以及预训练的权重。其许可证禁止某些使用案例,包括犯罪,诽谤,骚扰,人肉搜索,“剥削…未成年人”,提供医疗建议,自动创建法律义务,伪造法律证据,以及“基于…社会行为或…个人或人格特征…或受法律保护的特征或类别而歧视或伤害个人或群体”。[20][21] 用户拥有其生成的图像的权利,并可自由地将其用于商业用途。[22]
模型训练
Stable Diffusion是在LAION-5B的图片和标题对上训练的,LAION-5B是一个公开的数据集,源自从网络上抓取的公用抓取数据。该数据集由LAION创建,LAION是一家德国非营利组织,接受StabilityAI的资助。[14][23] 该模型最初是在LAION-5B的一个大子集上训练的,最后几轮训练是在“LAION-Aesthetics v2 5+”上进行的,这是一个由6亿张带标题的图片组成的子集,人工智能预测人类在被要求对这些图片的喜欢程度打分时至少会给5/10打分。[14][24] 这个最终的子集也排除了低分辨率的图像和被人工智能识别为带有水印的图像。[14] 对该模型的训练数据进行的第三方分析发现,在从所使用的原始更广泛的数据集中抽取的1200万张图片的较小子集中,大约47%的图像样本量来自100个不同的网站,其中Pinterest占8.5%子集,其次是WordPress,Blogspot,Flickr,DeviantArt和维基共享资源等网站。[14]
该模型是在亚马逊云计算服务上使用256个NVIDIA A100 GPU训练,共花费15万个GPU小时,成本为60万美元。[25][26][27]
为了纠正模型初始训练的局限性,终端用户可以选择实施额外的训练,以微调生成输出以匹配更具体的使用情况。有三种方法可以让用户对Stable Diffusion模型权重存档点进行微调:
- “嵌入”(Embedding)可以从用户提供的一些图像被训练出来,并允许模型在提示词中使用嵌入的名称时生成视觉上相似的图像。[28]嵌入是基于2022年台拉维夫大学的研究人员在英伟达的支持下开发的“文本倒置”(Textual Inversion)概念,其中模型的文本编码器使用的特定标记的矢量表示与新的伪词相关联。嵌入可以用来减少原始模型中的偏差,或模仿风格。[29]
- “超网路”(Hypernetwork)是NovelAI软件开发员Kurumuz在2021年创造的一种技术,最初用于调节文本生成的Transformer模型,它能让Stable Diffusion衍生的文生图模型模仿各种特定艺术家的风格,无论原始模型能否识别此艺术家,通过在较大的神经网路中的不同点应用一个预训练的小神经网路。超网路将文生图或图生图结果导向特定方向,例如加上艺术风格,当与一个较大的神经网络结合使用时。它通过寻找重要的关键区域来处理图像(例:眼睛,头发),然后在二级潜在空间中修补这些区域。超网路的一个缺点是它们的准确性相对较低,也有时会产生不可预知的结果。因此,超网路适用于加上视觉风格或清理人体瑕疵。[30]
- DreamBooth是一个深度学习模型,由Google Research和波士顿大学的研究人员于2022年开发,可以微调模型以产生与指定主题相关的输出图像。[31]
发行
版本号 | 发行日期 | 参数 | 注释 |
---|---|---|---|
1.1, 1.2, 1.3, 1.4[32] | 2022年8月 | 都由CompVis发行。没有版本1.0。1.1引发1.2,而1.2引发1.3和1.4二者[33]。 | |
1.5[34] | 2022年10月 | 983M | 以1.2而非1.4的权重初始化。由RunwayML发行。 |
2.0[35] | 2022年11月 | 从头在过滤后的数据集上重新训练[36]。 | |
2.1[37] | 2022年12月 | 以2.0的权重初始化。 | |
XL 1.0[38] | 2023年7月 | 3.5B | XL 1.0基础模型有35亿个参数,使其比以前版本大了约3.5倍。[39] |
XL Turbo[40] | 2023年11月 | 提取自XL 1.0而以更少扩散步骤运行。[41] | |
3.0[42][43] | 2024年2月(早期预览) | 800M到8B | 模型家族。 |
3.5[44] | 2024年10月 | 2.5B到8B | 具有Large(80亿个参数)、Large Turbo(提取自SD 3.5)和Medium (25亿个参数)的模型家族。 |
社会影响
由于艺术风格和构图不受版权保护,因此通常认为使用Stable Diffusion生成艺术品图像的用户不应被视为侵犯视觉相似作品的版权,绝大部分的画作作者也没有授权允许用他们的作品训练ai,这将导致画师的失业。[45][46] 如果生成的图像中所描述的真人被使用,他们仍然受到人格权的保护,[46] 而且诸如可识别的品牌标识等知识产权仍然受到版权保护。尽管如此,艺术家们表示担心Stable Diffusion等模型的广泛使用最终可能导致人类艺术家以及摄影师、模特、电影摄影师和演员逐渐失去与基于人工智能的竞争对手的商业可行性。[23]
与其他公司的类似机器学习图像合成产品相比,Stable Diffusion在用户可能产生的内容类型方面明显更加宽容,例如暴力或性暴露的图像。[47]
StabilityAI的首席执行官Emad Mostaque解决了该模型可能被用于滥用目的的担忧,他解释说:“人们有责任了解他们在操作这项技术时是否符合道德、道德和法律”,[9]将Stable Diffusion的能力交到公众手中会使该技术在整体上提供净收益,即使有潜在的负面后果。[9] 此外,Mostaque认为,Stable Diffusion的开放可用性背后的意图是结束大公司对此类技术的控制和主导地位,他们之前只开发了封闭的人工智能系统进行图像合成。[9][47]
参见
参考文献
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.