【全网瞩目】最强文生图模型,Stable Diffusion 3技术报告解禁

12号,终于在Hugging Face上出现了 Stable Diffusion 3 Medium。没错,正如他所承诺的,最强文生图模型真的开源了。而且此次开源不仅是以SD2的比较下性能得到了更好的升级,同时也向我们展示了最前沿的DiT技术——MMDiT。

在这里插入图片描述

是什么让 SD3 Medium 脱颖而出?

SD3 Medium 是一款拥有 20 亿参数的 SD3 型号,具有一些显著特点:

  • 整体质量和逼真度: 提供具有卓越细节、色彩和照明的图像,实现逼真输出以及灵活风格的高质量输出。通过 16 通道 VAE 等创新技术,成功解决了手部和面部逼真度等其他模型的常见问题。

  • 理解提示: 可理解涉及空间推理、构图元素、动作和风格的冗长而复杂的提示。通过使用所有三种文本编码器或其组合,用户可以在性能与效率之间进行权衡。

  • 排版: 利用我们的扩散变换器架构,实现前所未有的文本质量,减少拼写、字间距、字母形状和间距错误。

  • 节省资源: 由于 VRAM 占用较少,因此非常适合在标准消费 GPU 上运行,而不会降低性能。

  • 微调: 能够从小型数据集中吸收微妙的细节,非常适合定制。

MMDiT

在这里插入图片描述

这一架构采用了独立的权重集合来处理图像和语言表示,这意味着对于文本和图像两种不同的输入模态,MMDiT 分别使用不同的权重参数来进行编码和处理,以此能够更好地捕捉每种模态的特征和信息。

在这里插入图片描述

在 MMDiT 架构中,文本和图像的表示分别通过预训练模型进行编码。具体地说,MMDiT 采用了三种不同的文本嵌入器(两个 CLIP 模型和 T5 模型),以及一个改进的自动编码模型来编码图像 token。这些编码器能够将文本和图像输入转换为模型可以理解和处理的格式,为后续的图像生成过程提供了基础。

代码实现

这里我们参考 https://github.com/lucidrains/mmdit.git (
在 Pytorch 中实现《Stable Diffusion 3》中提出的单层 MMDiT)

import torch
from mmdit import MMDiTBlock# define mm dit blockblock = MMDiTBlock(dim_joint_attn = 512,dim_cond = 256,dim_text = 768,dim_image = 512,qk_rmsnorm = True
)# mock inputstime_cond = torch.randn(1, 256)text_tokens = torch.randn(1, 512, 768)
text_mask = torch.ones((1, 512)).bool()image_tokens = torch.randn(1, 1024, 512)# single block forwardtext_tokens_next, image_tokens_next = block(time_cond = time_cond,text_tokens = text_tokens,text_mask = text_mask,image_tokens = image_tokens
)

广义的版本如下

import torch
from mmdit.mmdit_generalized_pytorch import MMDiTmmdit = MMDiT(depth = 2, dim_modalities = (768, 512, 384),dim_joint_attn = 512,dim_cond = 256,qk_rmsnorm = True
)# mock inputstime_cond = torch.randn(1, 256)text_tokens = torch.randn(1, 512, 768)
text_mask = torch.ones((1, 512)).bool()video_tokens = torch.randn(1, 1024, 512)audio_tokens = torch.randn(1, 256, 384)# forwardtext_tokens, video_tokens, audio_tokens = mmdit(modality_tokens = (text_tokens, video_tokens, audio_tokens),modality_masks = (text_mask, None, None),time_cond = time_cond,
)

在模型结构上,MMDiT 架构建立在 Diffusion Transformer(DiT)的基础上。由于文本和图像的表示在概念上有所不同,MMDiT 使用了两组独立的权重参数来处理这两种模态。这样一来,模型能够在文本和图像的表示空间中分别进行操作,同时又能够考虑到彼此之间的关联关系,从而实现更好的信息传递和整合。

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

性能

在这里插入图片描述

我们将 Stable Diffusion 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 秒。此外,在最初发布时,Stable Diffusion 3 将有多种变体,从 800m 到 8B 参数模型不等,以进一步消除硬件障碍。

灵活的文本编码器

Stable Diffusion 3 不仅注重了图像生成的质量,还专注于与文本的对齐和一致性。其改进的 Prompt Following 功能使得模型能够更好地理解输入文本并根据其创作图像,而不仅仅是简单地产生图像。这种灵活性使 Stable Diffusion 3 能够根据不同的输入文本生成多样化的图像,满足不同主题和需求。

Stable Diffusion 3 采用了改进的 Rectified Flow(RF)方法,通过线性轨迹将数据和噪声相连接,使得推断路径更直,从而在少量步骤内进行采样。同时,Stable Diffusion 3还引入了一种新的轨迹采样调度,将更多的权重分配给轨迹的中间部分,从而改进了预测任务的难度。这种创新的方法改善了模型的性能,并在文本到图像生成任务中取得了更好的效果。

在文本到图像生成领域,Stable Diffusion 3 的问世标志着技术的重大进步。通过 MMDiT 架构的创新、Rectified Flow 的优化以及对硬件设备和模型规模的灵活调整,Stable Diffusion 3 在视觉美感、文本遵循和排版等方面表现出色,超越了当前的文本到图像生成系统。

在这里插入图片描述

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

在这里插入图片描述

源文件

文件结构

├── comfy_example_workflows/
│   ├── sd3_medium_example_workflow_basic.json
│   ├── sd3_medium_example_workflow_multi_prompt.json
│   └── sd3_medium_example_workflow_upscaling.json
│
├── text_encoders/
│   ├── README.md
│   ├── clip_g.safetensors
│   ├── clip_l.safetensors
│   ├── t5xxl_fp16.safetensors
│   └── t5xxl_fp8_e4m3fn.safetensors
│
├── LICENSE
├── sd3_medium.safetensors
├── sd3_medium_incl_clips.safetensors
├── sd3_medium_incl_clips_t5xxlfp8.safetensors
└── sd3_medium_incl_clips_t5xxlfp16.safetensors

为了方便用户,我们为 SD3 Medium 型号准备了三种包装形式,每种都配备了相同的 MMDiT 和 VAE 配重。

  • sd3_medium.safetensors 包括 MMDiT 和 VAE 配重块,但不包括任何文本编码器。
  • sd3_medium_incl_clips_t5xxlfp16.safetensors 包含所有必要的权重,包括 fp16 版本的 T5XXL 文本编码器。
    -sd3_medium_incl_clips_t5xxlfp8.safetensors 包含所有必要的权重,包括 fp8 版本的 T5XXL 文本编码器,在质量和资源需求之间取得了平衡。
  • sd3_medium_incl_clips.safetensors 包含除 T5XXL 文本编码器之外的所有必要权重。它需要的资源极少,但如果没有 T5XXL 文本编码器,模型的性能会有所不同。
  • text_encoders 文件夹包含三个文本编码器及其原始模型卡链接,以方便用户使用。text_encoders 文件夹中的所有组件(以及嵌入到其他软件包中的相应组件)均受其各自原始许可证的约束。
  • example_workfows 文件夹包含 comfy 工作流程示例。

Diffusers

import torch
from diffusers import StableDiffusion3Pipelinepipe = StableDiffusion3Pipeline.from_pretrained("stabilityai/stable-diffusion-3-medium-diffusers", torch_dtype=torch.float16)
pipe = pipe.to("cuda")image = pipe("A cat holding a sign that says hello world",negative_prompt="",num_inference_steps=28,guidance_scale=7.0,
).images[0]
image

官方推荐

ComfyUI: https://github.com/comfyanonymous/ComfyUI
StableSwarmUI: https://github.com/Stability-AI/StableSwarmUI
Tech report: https://stability.ai/news/stable-diffusion-3-research-paper
Demo: https://huggingface.co/spaces/stabilityai/stable-diffusion-3-medium
Diffusers support: https://huggingface.co/stabilityai/stable-diffusion-3-medium-diffusers

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/26883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【乐吾乐2D可视化组态编辑器】导出HTML,下载离线部署包

乐吾乐2D可视化组态编辑器地址:https://2d.le5le.com/ 使用步骤 1. 从“文件”菜单导出HTML 导出为 HTML 需要一定的开发能力,后续不再维护,即将下线,推荐使用 下载离线部署包(html) 2. 解压 3. 下载后端…

shell脚本的for循环

循环: 循环是一种重复执行代码的结构。只要满足循环的条件,会一直执行这个代码。 循环条件:在一定范围之内,按照指定的次数来执行循环。 循环体:在指定的次数内,执行的命令序列。只要条件满足&#xff0…

阿里云运维第一步(监控):开箱即用的监控

作者:仲阳 这是云的时代,现在云计算已经在各行各业广泛的应用。但是上云对于大多数客户来说,依然有很大的学习成本,如下图仅是阿里云都有几百款产品,怎么选择?怎么用?对于客户来说都是问题。“…

手撕设计模式——计划生育之单例模式

1.业务需求 ​ 大家好,我是菠菜啊。80、90后还记得计划生育这个国策吗?估计同龄的小伙伴们,小时候常常被”只生一个好“”少生、优生“等宣传标语洗脑,如今国家已经放开并鼓励生育了。话说回来,现实生活中有计划生育&…

2024网络安全学习路线 非常详细 推荐学习

关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊,学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间,光语言都有几门,有些人会倒在学习 linux 系统及命令的路上&#…

嵌套查询(二)-谓词EXISTS实现嵌套查询

一、EXISTS谓词 1、作用:用于判断一个子查询的结果是否为空 2、使用语法: 【NOT】EXISTS(子查询) 语义:如果子查询的查询结果不为空,则EXISTS为真,否则为假 二、举例 1、举例1&#xff1a…

【数据结构 |集合框架、泛型】初始集合框架、时间(空间)复杂度、简单认识泛型

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 🎈丠丠64-CSDN博客🎈 ✨✨ 帅哥美女们,我们共同加油!一起…

学习AI 机器学习,深度学习需要用到的python库

学习人工智能(AI)时,Python是最流行的编程语言之一。以下是一些常用的Python库和工具,它们可以帮助你入门并深入学习AI和机器学习: 数据处理和分析库 NumPy: 用于处理大型多维数组和矩阵运算,并提供数学函…

【启明智显彩屏应用】Model3A 7寸触摸彩屏的充电桩应用方案

一、充电桩概述 (一)充电桩诞生背景 随着社会的进步和人们生活质量的提升,汽车已逐渐融入每个家庭的日常生活中。然而,汽车数量的激增也带来了严重的环境污染问题,特别是尾气排放。为了应对这一挑战,新能源…

详解 Flink Table API 和 Flink SQL 之函数

一、系统内置函数 1. 比较函数 API函数表达式示例Table API&#xff0c;>&#xff0c;<&#xff0c;!&#xff0c;>&#xff0c;<id1001&#xff0c;age>18SQL&#xff0c;>&#xff0c;<&#xff0c;!&#xff0c;>&#xff0c;<id‘1001’&…

用PlayCanvas打造一个3D模型

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 基于 PlayCanvas 的 3D 物理场景开发 应用场景介绍 PlayCanvas 是一款功能强大的 3D 引擎&#xff0c;可用于创建各种类型的 3D 体验&#xff0c;包括游戏、模拟和交互式可视化。本技术博客将介绍如何使用 Pl…

怎么把wma格式转化为mp3格式?四种wma格式转成MP3格式的方法

怎么把wma格式转化为mp3格式&#xff1f;转换WMA格式音频文件为MP3格式是一个常见的需求&#xff0c;尤其是在我们希望在不同设备或平台上播放音频时。WMA格式虽然在Windows系统中较为常见&#xff0c;但在其他平台上的兼容性可能不如MP3格式。因此&#xff0c;将WMA转换为MP3是…

基于Spring Boot的智能分析平台

项目介绍&#xff1a; 智能分析平台实现了用户导入需要分析的原始数据集后&#xff0c;利用AI自动生成可视化图表和分析结论&#xff0c;改善了传统BI系统需要用户具备相关数据分析技能的问题。该项目使用到的技术是SSMSpring Boot、redis、rabbitMq、mysql等。在项目中&#…

在 Wed 中应用 MyBatis(同时使用MVC架构模式,以及ThreadLocal 事务控制)

1. 在 Wed 中应用 MyBatis&#xff08;同时使用MVC架构模式&#xff0c;以及ThreadLocal 事务控制&#xff09; 文章目录 1. 在 Wed 中应用 MyBatis&#xff08;同时使用MVC架构模式&#xff0c;以及ThreadLocal 事务控制&#xff09;2. 实现步骤&#xff1a;1. 第一步&#xf…

Vulnhub-DC-1,7

靶机IP:192.168.20.141 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 前言 1和7都是Drupal的网站&#xff0c;只写了7&#xff0c;包含1的知识点 信息收集 用nmap扫描端口及版本号 进入主页查看作者给的提示&#xff0c;不是暴力破解的…

nodejs湖北省智慧乡村旅游平台-计算机毕业设计源码00232

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;旅游行业当然也不能排除在外。智慧乡村旅游平台是以实际运用为开发背景&#xff0c;运用软件工程开发方法&#xff0c;采…

Weighted A* 改进型(1):XDP

本文的主要内容来自于文献[1]&#xff0c;总的来说这篇文献给我的感觉就是理论证明非常精妙&#xff0c;最后的实际效果也是提升的非常明显。 在Introduction中作者给出了一般Best first search&#xff08;BFS&#xff0c;常用的包括A *&#xff0c;weighted A * &#xff0c…

TK防关联引流系统:全球多账号运营,一“键”掌控!

在TikTok的生态系统中&#xff0c;高效管理多个账号对于品牌推广的成功起着决定性的作用。TK防关联引流系统&#xff0c;作为一款专门为TikTok用户打造的强大工具&#xff0c;为全球范围内的多账号运营提供了坚实的支持。 TK防关联引流系统的核心优势体现在以下几个方面&#x…

2024.6.13

2024.6.13 【痛苦的&#xff0c;热烈的&#xff0c;误解的&#xff0c;无解的&#xff0c;快乐的&#xff0c;解脱的】 Thursday 五月初八 <theme oi-“game theory”> P4018 Roy&October之取石子 Roy&October之取石子 题目背景 Roy 和 October 两人在玩一个…

anaconda安装pytorch-快速上手99%可以(可以虚拟环境OR不进行虚拟环境)

一、预备工作 先检查自己是否有anaconda 在cmd里面输入conda --version查看 二、在anaconda中创建虚拟环境 1.1 打开Anaconda Prompt 1.2 进行自定义安装python 将其中的自定义地址和版本换成自己想安装的地址和版本 我这里安装的地址是E:\Anaconda\DL,python版本是3.8.3…