AI绘画算法提升 | 01_StableDiffusion所有版本对比

⚡Stable Diffusion 所有版本对比⚡

本文主要介绍截止到2023年12月 Stable Diffusion 各个版本的基本概况,模型性能对比,包括SD v1.x,SDv2.x, SDXL v1.0。以便为2024年即将推出的 AIGC-AI绘画-算法能力提升系列 做基础铺垫。


1️⃣ Stable Diffusion 综述

AIGC 全文叫做「AI Gererative Content」,这是继专业生产内容(PGC, Professional-generated Content)、用户生产内容(UGC, User-generated Content)之后的新型内容创作方式。

2022 年 8 月,Stable Diffusion 开源。Stable Diffusion 算法上基于 2021 年 12 月提出的潜在扩散模型(LDM / Latent Diffusion Model)和 2015 年提出的扩散模型(DM / Diffusion Model,它是基于 Google 的 Transformer 模型),所以名字里有 Diffusion,我猜 Stable 表示现在算法已经稳定下来了。

从 Github 上找到三个同名的项目:

  1. github.com/CompVis/sta...
  2. github.com/runwayml/st...
  3. github.com/Stability-A...

首先是慕尼黑大学机器视觉学习组 CompVis 写了这个论文,AI 视频剪辑技术创业公司 Runway 提供专业知识帮助实现了第一个版本,初创公司 StabilityAI 投钱,最终由 Stable Diffusion 推向主流市场 (其实现在已经是 Version 2 了)。所以现在只需要关注第三个项目就可以了。SD 可以在短短几秒钟内生成清晰度高,还原度佳、风格选择很广的图片,它最大的突破是任何人都能免费下载并使用其开源代码,不需要像 MidJourney 和 DALL-E 那样把它作为云服务付费用。

目前 SD 最让使用者苦恼的 2 个缺点:

  1. 需要输入非常长的提示词 (prompts)
  2. 对于人体结构的处理有瑕疵,经常出现动作和人体结构异常

2023 年 4 月,Stability AI 发布了 Beta 版本的 Stable Diffusion XL ,并提到在训练结束后参数稳定后会开源,并改善了上述的 2 个缺点。

任务1 文生图

Stable Diffusion中的文生图采样脚本,称为"txt2img",接受一个提示词,以及包括采样器(sampling type),图像尺寸,和随机种子的各种选项参数,并根据模型对提示的解释生成一个图像文件。生成的图像带有不可见的数字水印标签,以允许用户识别由Stable Diffusion生成的图像,Stable Diffusion模型是在由512×512分辨率图像组成的数据集上训练出来的,这意味着 txt2img 生成图像的最佳配置也是以512×512的分辨率生成的,偏离这个大小会导致生成输出质量差。Stable Diffusion 2.0版本后来引入了以768×768分辨率图像生成的能力。Stable Diffusion XL 版本后来引入了以1024×1024分辨率图像生成的能力。

每一个txt2img的生成过程都会涉及到一个影响到生成图像的随机种子;用户可以选择随机化种子以探索不同生成结果,或者使用相同的种子来获得与之前生成的图像相同的结果。用户还可以调整采样迭代步数(inference steps);较高的值需要较长的运行时间,但较小的值可能会导致视觉缺陷。另一个可配置的选项,即无分类指导比例值,允许用户调整提示词的相关性(classifier-free guidance scale value);更具实验性或创造性的用例可以选择较低的值,而旨在获得更具体输出的用例可以使用较高的值。

反向提示词(negative prompt)是包含在Stable Diffusion的一些用户界面软件中的一个功能(包括StabilityAI自己的"Dreamstudio"),它允许用户指定模型在图像生成过程中应该避免的提示,适用于由于用户提供的普通提示词,或者由于模型最初的训练,造成图像输出中出现不良的图像特征,例如畸形手脚。与使用强调符(emphasis marker)相比,使用反向提示词在降低生成不良的图像的频率方面具有高度统计显著的效果;强调符是另一种为提示的部分增加权重的方法,被一些Stable Diffusion的开源实现所利用,在关键词中加入括号以增加或减少强调。

任务2 图生图

Stable Diffusion包括另一个取样脚本,称为"img2img",它接受一个提示词、现有图像的文件路径和0.0到1.0之间的去噪强度,并在原始图像的基础上产生一个新的图像,该图像也具有提示词中提供的元素;去噪强度表示添加到输出图像的噪声量,值越大,图像变化越多,但在语义上可能与提供的提示不一致。图像升频是img2img的一个潜在用例,除此之外。

2022年11月24日发布的Stable Diffusion 2.0版本包含一个深度引导模型,称为"depth2img",该模型推断所提供的输入图像的深度,并根据提示词和深度信息生成新图像,在新图像中保持原始图像的连贯性和深度。

Stable Diffusion模型的许多不同用户界面软件提供了通过img2img进行图生图的其他用例。内补绘制(inpainting)由用户提供的深度描绘的现有图像的一部分,根据所提供的提示词,用新生成的内容填充蒙版的空间。随着Stable Diffusion 2.0版本的发布,StabilityAI同时创建了一个专门针对内补绘制用例的专用模型。相反,外补绘制(outpainting)将图像扩展到其原始尺寸之外,用根据所提供的提示词生成的内容来填补以前的空白空间。

|

2️⃣ Stable Diffusion 版本时间线

版本号 发行日期
1.0 2022年8月
1.4 2022年8月
1.5 2022年10月
2.0 2022年11月
2.1 2022年12月
XL 1.0 2023年7月
  • SD原理可以查看本公众号内相关文章

Stable Diffusion v1.x (1.4/1.5)

  • 基本的LDM图像生成功能

Stable Diffusion v2.x (2.0/2.1)

  • stability AI在发布SD 2.0的同时,还发布了另外3个模型:stable-diffusion-x4-upscaler,stable-diffusion-2-inpainting 和 stable-diffusion-2-depth。

Stable Diffusion XL v1.0

  • 主要是增加了refiner图生图优化阶段。Refiner模型和Base模型一样是基于Latent的扩散模型,也采用了Encoder-Decoder结构,和U-Net兼容同一个VAE模型,不过Refiner模型的Text Encoder只使用了OpenCLIP ViT-bigG。
  • 扩散模型中最重要的部分U-Net现在大了3倍。加上更大的语言模型,SDXL模型可以生成与提示紧密匹配的高质量图像。因为底模是1024X1024训练的,比原来的512X512大了4倍,所以底模base基础模型大小也达到接近7GB,refiner也是差不多7GB,对硬件(GPU显存)的要求更高了!如果只有8G以下的显存,建议还是别碰SDXL了。

3️⃣ Stable Diffusion 版本性能对比

对比结论

  • 目前SDXL v1.0性能最优,不服来辩 →_→,有图有真相

版本模型特点

  • stable-diffusion-v1-4

​ 比较专注绘制风景类,整体偏欧美风

  • stable-diffusion-v1-5

​ 比较具有艺术性的模型

  • stable-diffusion-2

​ 这个版本生成质量相较于前期版本有质的提升

  • Taiyi-Stable-Diffusion-1B-Chinese-v0.1

​ 它整体走的是中国风的绘画风格,可以用于绘制中文古诗词

  • trinart_characters_19.2m_stable_diffusion_v1

​ 主要擅长动漫角色的生成

  • trinart_derrida_characters_v2_stable_diffusion

​ 绘制动漫角色的模型,相较于前者v1的初始模型,它在出图效果上会更加稳定些

VS. MidJourney

  • Stable-Diffusion号称开源版Midjourney
比较项 MidJourney Stable-Diffusion
价格 远不如自己部署到自己服务器的开销要低 完胜
友好程度 新手友好,注册即用,相对的需要有一定技术背景,甚至可以说设计师或者艺术创作者自己不具备部署能力 小胜
功能 除了支持 MidJourney 全部功能外还支持填充修复、自定义模型 小胜
对细节的控制 可控性差、细节优化难 (甚至越调越差) 由于是开源的且有强大的社区和相关的模型、扩展等,可以实现本地私有化部署,还能够精准局部调优,控制风格
提示方法 自然语言输入 (直接文字表达需求) 各种带权重的提示词输入,非常考验输入者能力
效果 总体上觉得图更精致一点点,但是作为非算法开发者,我感觉目前输在模型训练的素材和方法上 小胜
擅长的画风 注重表达和对细节的渲染,偏写实 偏写实,如果你想艺术创作,更好,如果你已经有具体的需求,更好

4️⃣ 分享免费AI绘画

5️⃣ 下一期预告

AIGC-AI绘画-算法能力提升系列-01_StableDiffusion所有版本原理代码精解

将推出 Stable Diffusion 各版本 v1.x,v2.x,XLv1.0的原理精解及代码精解,以及图形化WebUI

🤝 Thank you

❤️ 每周免费分享CV&AIGC相关最新资讯,感兴趣可以关注,喜欢动动小手点个赞,谢谢支持!

相关推荐
夜流冰1 小时前
工具方法 - 面试中回答问题的技巧
面试·职场和发展
杰哥在此8 小时前
Python知识点:如何使用Multiprocessing进行并行任务管理
linux·开发语言·python·面试·编程
GISer_Jing14 小时前
【React】增量传输与渲染
前端·javascript·面试
Neituijunsir19 小时前
2024.09.22 校招 实习 内推 面经
大数据·人工智能·算法·面试·自动驾驶·汽车·求职招聘
小飞猪Jay20 小时前
面试速通宝典——10
linux·服务器·c++·面试
猿java21 小时前
Cookie和Session的区别
java·后端·面试
数据分析螺丝钉21 小时前
力扣第240题“搜索二维矩阵 II”
经验分享·python·算法·leetcode·面试
无理 Java21 小时前
【技术详解】SpringMVC框架全面解析:从入门到精通(SpringMVC)
java·后端·spring·面试·mvc·框架·springmvc
鱼跃鹰飞1 天前
Leecode热题100-295.数据流中的中位数
java·服务器·开发语言·前端·算法·leetcode·面试
TANGLONG2221 天前
【C语言】数据在内存中的存储(万字解析)
java·c语言·c++·python·考研·面试·蓝桥杯