当前位置:AIGC资讯 > AIGC > 正文

政安晨【零基础玩转各类开源AI项目】解析开源:Stable Diffusion 3 论文及用户界面工具 StableSwarmUI

目录

关键成果

性能

结构细节

通过重新配重改善整形流量

比例整形变换模型

灵活的文本编码器

使用模型:StableSwarmUI

开源项目的现状:

政安晨的个人主页:政安晨

欢迎 ?点赞✍评论⭐收藏

收录专栏: 零基础玩转各类开源AI项目

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

StableSwarmUI 是一个模块化的稳定扩散网络用户界面,其重点是让用户可以方便地使用动力工具,并提供高性能和可扩展性。

项目地址:GitHub - Stability-AI/StableSwarmUI: StableSwarmUI, A Modular Stable Diffusion Web-User-Interface, with an emphasis on making powertools easily accessible, high performance, and extensibility.StableSwarmUI, A Modular Stable Diffusion Web-User-Interface, with an emphasis on making powertools easily accessible, high performance, and extensibility. - Stability-AI/StableSwarmUIhttps://github.com/Stability-AI/StableSwarmUI

关键成果

Stability-AI发布了研究论文,深入探讨稳定扩散 3 的底层技术。



根据人类偏好评估,Stable Diffusion 3 在排版和及时性方面优于 DALL-E 3、Midjourney v6 和 Ideogram v1 等最先进的文本到图像生成系统。

新的多模态扩散变换器(MMDiT)架构为图像和语言表征使用了单独的权重集,与稳定扩散的以前版本相比,提高了文本理解和拼写能力。

性能

本图表以 SD3 为基准,根据人类对视觉美学、按提示操作和排版的评价,概述了 SD3 在哪些方面优于同类机型。

我们将稳定扩散 3 的输出图像与其他各种开放模型(包括 SDXL、SDXL Turbo、Stable Cascade、Playground v2.5 和 Pixart-α)以及封闭源代码系统(如 DALL-E 3、Midjourney v6 和 Ideogram v1)进行了比较,以便根据人类反馈来评估性能。在这些测试中,人类评估员从每个模型中获得输出示例,并要求他们根据模型输出在多大程度上紧跟所给提示的上下文("紧跟提示")、在多大程度上根据提示渲染文本("排版")以及哪幅图像具有更高的美学质量("视觉美学")来选择最佳结果。

根据测试结果,我们发现 Stable Diffusion 3 在上述所有方面都与目前最先进的文本到图像生成系统相当,甚至更胜一筹。

在消费级硬件上进行的早期未优化推理测试中,我们最大的 8B 参数 SD3 模型适合 RTX 4090 的 24GB VRAM,使用 50 个采样步骤生成分辨率为 1024x1024 的图像需要 34 秒。此外,在最初发布时,稳定扩散 3 将有多种变体,从 800m 到 8B 参数模型不等,以进一步消除硬件障碍。

提示词示例:

结构细节

对于文本到图像的生成,我们的模型必须同时考虑文本和图像两种模式。因此,我们称这种新架构为 MMDiT,意指其处理多种模式的能力。与之前版本的稳定扩散一样,我们使用预训练模型来推导合适的文本和图像表征。具体来说,我们使用三种不同的文本嵌入模型--两种 CLIP 模型和 T5--来编码文本表征,并使用改进的自动编码模型来编码图像标记。

改进的多模态扩散变换器的概念可视化模块:MMDiT

SD3 架构基于扩散变换器("DiT",Peebles & Xie,2023 年)。由于文本嵌入和图像嵌入在概念上有很大不同,因此我们对两种模式使用两套不同的权重。如上图所示,这相当于为每种模态设置了两个独立的变换器,但将两种模态的序列结合起来进行注意力操作,从而使两种表征都能在各自的空间内工作,同时也将另一种空间考虑在内。

在训练过程中测量视觉保真度和文本对齐度时,我们新颖的 MMDiT 架构优于 UViT(Hoogeboom 等人,2023 年)和 DiT(Peebles 和 Xie,2023 年)等成熟的文本到图像骨干。

通过这种方法,信息可以在图像和文本标记之间流动,从而提高整体理解能力,并改善所生成输出的排版。正如我们在论文中讨论的那样,这种架构也很容易扩展到视频等多种模式。

论文:https://arxiv.org/pdf/2403.03206.pdfhttps://arxiv.org/pdf/2403.03206.pdf

得益于《稳定扩散 3》改进的提示跟踪功能,我们的模型有能力制作出聚焦于各种不同主题和质量的图像,同时还能高度灵活地处理图像本身的风格。

通过重新配重改善整形流量

稳定扩散 3 采用整流(RF)公式(Liu 等人,2022 年;Albergo & Vanden-Eijnden,2022 年;Lipman 等人,2023 年),在训练过程中,数据和噪声按线性轨迹连接。这使得推理路径更加平直,从而减少了采样步骤。此外,我们还在训练过程中引入了一种新的轨迹采样计划。我们假设,轨迹的中间部分会带来更具挑战性的预测任务,因此该计划给予轨迹中间部分更多权重。我们使用多种数据集、指标和采样器设置进行比较,并与 LDM、EDM 和 ADM 等 60 种其他扩散轨迹进行了测试。结果表明,虽然以前的 RF 公式在少步采样情况下性能有所提高,但随着步数的增加,其相对性能会下降。相比之下,我们的重新加权 RF 变体能持续提高性能。

比例整形变换模型

利用重新加权的整流公式和 MMDiT 骨干网对文本到图像的合成进行了扩展研究。训练的模型从带有 450M 个参数的 15 个图块到带有 8B 个参数的 38 个图块不等,并观察到验证损失随着模型大小和训练步骤的增加而平稳减少(上排)。为了检验这是否转化为模型输出的有意义改进,我们还评估了自动图像配准指标(GenEval)和人类偏好分数(ELO)(下行)。我们的结果表明,这些指标与验证损失之间存在很强的相关性,这表明后者可以很好地预测模型的整体性能。此外,缩放趋势没有显示出饱和的迹象,这让我们对未来继续提高模型性能持乐观态度。

灵活的文本编码器

通过移除用于推理的内存密集型 4.7B 参数 T5 文本编码器,SD3 的内存需求可显著降低,而性能损失却很小。如上图 "性能 "部分所示,移除该文本编码器不会影响视觉美感(不使用 T5 时的胜率为 50%),只会略微降低文本粘着率(胜率为 46%)。不过,我们建议在生成书面文本时加入 T5,以充分发挥 SD3 的性能,因为我们观察到,如果不加入 T5,生成排版的性能下降幅度更大(胜率为 38%),如下图所示:

使用模型:StableSwarmUI

一个模块化的稳定扩散网络用户界面,重点是使 powertools 易于访问、高性能和可扩展性。

开源项目的现状:

该项目处于测试版状态。这意味着,对于大多数任务,Swarm 都有出色的工具可供使用,但计划中还有更多。建议将 Swarm 作为大多数用户(包括初学者和专业人员)的理想用户界面。仍有一些问题有待解决。

初学者会喜欢 Swarm 的主要 "生成 "选项卡界面,它可以利用各种强大的功能轻松生成任何内容。高级用户可能更喜欢舒适的工作流选项卡,以获得不受限制的原始图形,但仍有理由回到生成选项卡,以获得便利功能(图像编辑器、自动工作流生成等)和强大工具(如网格生成器)。

欢迎有兴趣帮助 Swarm 从 Beta 版升级到正式版的用户提交 PR(请先阅读贡献文档),您也可以在 GitHub 或 Discord 上联系我们。我强烈建议您在提交 PR 之前先联系我们,询问有关某个功能的计划。我们可能已经有了具体的计划,甚至是正在进行中的工作。

关键功能目标尚未实施:

更好地支持移动浏览器
在用户界面中显示 "当前模型 "的全部细节,与模型选择器分开(可能作为批处理侧边栏中的一个选项卡?)
在不同位置之间动态移动选项卡的方法,以方便/自定义布局
LLM 辅助提示
方便地将 Swarm 作为程序直接分发(电子应用程序?)

在 Linux 上安装

如果尚未安装 git 和 python3,请通过操作系统软件包管理器安装它们(如果发行版没有直接将 pip 和 venv 包含在 python 中,请确保将它们包含在内)。

例如,在最近的 Ubuntu 版本中,sudo apt install git python3-pip python3-venv
下载 install-linux.sh 文件,将其存放在需要安装的地方,然后运行它

如果你喜欢终端,可以打开终端进入文件夹并运行以下命令:
wget https://github.com/Stability-AI/StableSwarmUI/releases/download/0.6.1-Beta/install-linux.sh -O install-linux.sh
chmod +x install-linux.sh
运行 ./install-linux.sh 脚本,它将为你安装所有内容,并最终在浏览器中打开网页。

按照页面上的安装说明进行操作。

以后可以随时运行 launch-linux.sh 脚本重新启动 Swarm。

如果页面没有自动打开,可以手动打开 http://localhost:7801

替代手动 Linux 安装

如果尚未安装 git 和 python3,请通过操作系统软件包管理器安装它们(如果发行版没有将 pip 和 venv 直接包含在 python 中,请确保将它们包含在内)。
例如,在最近的 Ubuntu 版本上,sudo apt install git python3-pip python3-venv
使用 https://dotnet.microsoft.com/en-us/download/dotnet/8.0 上的说明安装 DotNET 8(需要 dotnet-sdk-8.0,因为它包含所有相关的子软件包)
有些用户说某些 Linux 发行版希望单独安装 aspnet-runtime
打开 shell 终端并 cd 到要安装的目录
运行 shell 命令
git clone https://github.com/Stability-AI/StableSwarmUI
cd StableSwarmUI
./launch-linux.sh
打开 http://localhost:7801/Install(如果它没有自行启动)
按照页面上的安装说明进行安装。
(TODO):也许可以外链一个专门的文档,提供每个分区的详细信息和其他信息。也许还可以为 Linux 制作一个一键安装程序?

说明文档路径:

StableSwarmUI/docs/README.md at master · Stability-AI/StableSwarmUI · GitHubStableSwarmUI, A Modular Stable Diffusion Web-User-Interface, with an emphasis on making powertools easily accessible, high performance, and extensibility. - StableSwarmUI/docs/README.md at master · Stability-AI/StableSwarmUIhttps://github.com/Stability-AI/StableSwarmUI/blob/master/docs/README.md

更新时间 2024-06-27