DXL全称 stable diffusion XL,而 SD 全称为 stable diffuson。现在一般将 SD 和 SD 1.5 等同,并将基于 stable diffusion 模型进行微调的模型也称为SD模型。因此需要指明的是,在这篇文章中,SDXL 指的是 stable diffusion XL 1.0,而 SD 则指的是 SD1.5 及基于 SD1.5 微调的模型。SDXL 和 SD 的区别主要体现在以下10个方面(看不懂下面的图可以略过…..,只是为了严谨)。1、模型参数更大。SDXL 基础模型所使用的 Unet 包含了2.6B(26亿)的参数,对比 SD1.5的 860M(8600万),相差超过三倍。因此从模型参数来看,SDXL 相比 SD 有显著优势。2、语义理解能力更强。使用了两个 CLIP 模型的组合,包括 OpenClip 最大的模型 ViT-G/14 和在 SD v1 中使用的 CLIP ViT-L,既保证了对旧提示词的兼容,也提高了 SDXL 对语言的理解能力,这是非常聪明的策略。3、训练数据库更大。由于 SDXL 将图片尺寸也作为指导参数,因此可以使用更低分辨率的图片作为训练数据,比如小于256×256分辨率的图片。如果没有这项改进,数据库中高达39%的图片都不能用来训练 SDXL,原因是其分辨率过低。但通过改进训练方法,将图片尺寸也作为训练参数,大大扩展了训练 SDXL 的图片数量,这样训练出来的模型具有更强的性能表现。上图展示的是数据库中的不同分辨率图片的分布图,颜色越深表示分布在该分辨率的图片越多。黑框包围的区域即表示分辨率小于256×256的图片,占比39%。4、可生成的图片范围更广。有前面的三大 buff 加持,SDXL 可以生成种类更加丰富,质量更高的图片。5、生图流程改进。SDXL 采用的是两阶段生图,第一阶段使用 base model(基础模型)生成,第二阶段则使用 refiner model(细化模型)进一步提升画面的细节表现。当然只使用 SDXL 基础模型进行绘图也是可以的。6、生图分辨率更高。SD v1 生图的最佳分辨率在512×512,SD v2则为768×768,而 SDXL 最佳分辨率达到了1024×1024。另外 SDXL 原生支持更多不同的分辨率,如:768 x 1344: 竖屏 (9:16)、915 x 1144: 肖像 (4:5)、1024 x 1024: 方形 (1:1)、1182 x 886: 横屏照片 (4:3)、1254 x 836: 横屏风景 (3:2)、1365 x 768: 宽屏 (16:9)、1564 x 670: 电影宽屏 (21:9)。原生支持意味着 SDXL 在这些分辨率下的表现与1024×1024的表现基本不相上下,而 SD1.5 不具备这种能力。7、可以在图片中直接生成文本。SD v1 和 SD v2 都可以直接在图片中生成文字,也就是说可以让 SDXL 进行海报设计等需要在图片中添加文字的工作。不过,很遗憾,只支持生成英文。8、风格模拟能力更强。参数更大、语义理解更强的 SDXL 似乎对特定风格的学习能力更加强悍了。从下图可以直观感受。9、不需要很多反向提示词。在使用 SD 模型时,我们往往需要在反向提示词中添加很多负面的关键词来提升生成质量。但是在 SDXL 中,负向提示词添加过多反而会降低图片生成质量,比如像 ”worst quality” 和 ”bad quality” 之类的反向提示词是完全没必要在 SDXL 中使用的。10、对长文本的理解能力更好。在使用 SD 时,我们往往使用一个个单词或短语来描述一张图片的内容,但其实这很不符合我们的说话习惯。而 SDXL 则可以做得更好,即使你输入较长的文本,它也可以很好的理解你要表达的内容并生成相应的图片。提示词:一个年轻的妈妈正在跟她12岁的孩子说话,电影风格
出自:https://mp.weixin.qq.com/s/KdQeBKMY38mNx386YTydsg