Stability AI推出Stable Diffusion XL 1.0,文本到图像模型

Stability AI宣布推出Stable Diffusion XL 1.0,这是一个文本到图像的模型,该公司将其描述为迄今为止“最先进的”版本。

Stability AI表示,SDXL 1.0能生成更加鲜明准确的色彩,在对比度、光线和阴影方面做了增强,可生成100万像素的图像(1024×1024)。而且还支持在网页上直接对生成图像进行后期编辑。

4aba73476c72ae5ec1a08d0bca1afe03.jpeg

提示词也能比之前更简单了。这是因为SDXL 1.0的基础模型参数量达到了35亿,理解能力更强。对比基础版Stable Diffusion,参数量只有10亿左右。由此,SDXL 1.0也成为当前最大规模的开放图像模型之一。

Stability AI博客介绍了SDXL 1.0的更多技术细节。首先,模型在规模和架构上都有了新突破。它创新性地使用了一个基础模型(base model)+一个细化模型(refiner model),二者的参数规模分别为35亿和66亿。

83053fde8496bb70e4d64b58db939ad1.jpeg

这也使得SDXL 1.0成为目前规模最大的开放图像模型之一。

Stability AI创始人莫斯塔克(Emad Mostaque)表示,更大规模的参数量能让模型理解更多概念,教会它更深层次的东西。同时在SDXL 0.9版本还进行了RLHF强化。

这也是为什么现在SDXL 1.0支持短提示词,而且能分清红场(the Red Square)和一个红色的广场(a Red Square)。

在具体合成过程中,第一步,基础模型产生有噪声的latent,然后由细化模型进行去噪。

其中基础模型也可以作为独立模块使用。这两种模型结合能生成质量更好的图像,且不需要消耗更多计算资源。

测试效果:

07e5788e20a4e12a78357324d2f6504c.jpeg


安装:

1.克隆回购

git clone git@github.com:Stability-AI/generative-models.git

cd generative-models

2.设置虚拟环境

这是假设您已经导航到generative-models克隆后的根。

注意:这是在下测试的python3.8和python3.10。对于其他python版本,您可能会遇到版本冲突。

PyTorch 1.13

# install required packages from pypi

python3 -m venv .pt13source .pt13/bin/activate

pip3 install -r requirements/pt13.txt

PyTorch 2.0

# install required packages from pypi

python3 -m venv .pt2source .pt2/bin/activate

pip3 install -r requirements/pt2.txt

3.安装sgm

pip3 install .

4.安装sdata用于培训

pip3 install -e git+https://github.com/Stability-AI/datapipelines.git@main#egg=sdata

包装

该存储库使用符合PEP 517的打包方式舱口.

要构建可分配的轮子,请安装hatch然后跑hatch build(指定-t wheel将跳过构建sdist,这是不必要的)。

pip install hatch

hatch build -t wheel

您将在中找到构建的包dist/。您可以用以下工具安装车轮pip install dist/*.whl.

请注意,该包当前指定的依赖项;根据您的用例以及PyTorch版本,您需要手动安装所需的包。

推理

我们提供一个细流文本到图像和图像到图像采样演示scripts/demo/sampling.py。我们提供完整文件的文件哈希,以及文件中仅保存的张量的文件哈希(参见型号规格让脚本来评估这一点)。目前支持以下型号:

· SDXL-base-1.0

File Hash (sha256): 31e35c80fc4829d14f90153f4c74cd59c90b779f6afe05a74cd6120b893f7e5b

Tensordata Hash (sha256): 0xd7a9105a900fd52748f20725fe52fe52b507fd36bee4fc107b1550a26e6ee1d7

· SDXL-精炼机-1.0

File Hash (sha256): 7440042bbdc8a24813002c09b6b69b64dc90fded4472613437b7f55f9b7d9c5f

Tensordata Hash (sha256): 0x1a77d21bebc4b4de78c474a90cb74dc0d2217caf4061971dbfa75ad406b75d81

· SDXL-base-0.9

· SDXL-精炼机-0.9

· SD-2.1-512

· SD-2.1-768

SDXL的重量:

SDXL-1.0:SDXL-1.0的重量可用(根据CreativeML Open RAIL++-M许可证)这里:

· 基本型号:https://hugging face . co/stability ai/stable-diffusion-XL-base-1.0/

· 精炼机型号:https://hugging face . co/stability ai/stable-diffusion-XL-refiner-1.0/

SDXL-0.9:SDXL-0.9的重量可用,并受a研究许可证。如果您想访问这些模型进行研究,请使用以下链接之一进行申请:SDXL-base-0.9型号,以及SDXL-精炼机-0.9。这意味着你可以申请这两个链接中的任何一个,如果你被批准,你就可以访问这两个链接。请使用您的组织电子邮件登录到您的拥抱脸帐户以请求访问。

获得重量后,将它们放入checkpoints/。接下来,使用

streamlit run scripts/demo/sampling.py --server.port <your_port>

不可见水印检测

用我们的代码生成的图像使用不可见水印库将不可见的水印嵌入到模型输出中。我们还提供了一个脚本来轻松检测水印。请注意,此水印与之前的稳定扩散1.x/2.x版本不同。

要运行该脚本,您需要有一个如上所述的工作安装或尝试一个实验的仅使用最少量的包导入:

python -m venv .detectsource .detect/bin/activate


pip install "numpy>=1.17" "PyWavelets>=1.1.1" "opencv-python>=4.1.0.25"

pip install --no-deps invisible-watermark

要运行该脚本,您需要有一个如上所述的工作安装。该脚本可以通过以下方式使用(不要忘记提前激活您的虚拟环境,例如source .pt1/bin/activate):

# test a single file

python scripts/demo/detect.py <your filename here># test multiple files at once

python scripts/demo/detect.py <filename 1> <filename 2> ... <filename n># test all files in a specific folder

python scripts/demo/detect.py <your folder name here>/*

培训:

我们在中提供了示例培训配置configs/example_training。要启动培训,请运行

python main.py --base configs/<config1.yaml> configs/<config2.yaml>

其中配置从左到右合并(后面的配置会覆盖相同的值)。这可用于组合模型、训练和数据配置。然而,所有这些也可以在单个配置中定义。例如,要在MNIST上运行基于类条件像素的扩散模型训练,请运行

python main.py --base configs/example_training/toy/mnist_cond.yaml

注1:使用非玩具数据集配置configs/example_training/imagenet-f8_cond.yaml,&nbsp;configs/example_training/txt2img-clipl.yaml和configs/example_training/txt2img-clipl-legacy-ucg-training.yaml对于训练,将需要根据所使用的数据集进行编辑(数据集预计存储在web dataset-格式).要查找需要修改的部分,请搜索包含以下内容的注释USER:在各自的配置中。

注2:该存储库支持这两者pytorch1.13和pytorch2用于训练生成模型。但是,对于自动编码器培训,例如configs/example_training/autoencoder/kl-f4/imagenet-attnfree-logvar.yaml,仅pytorch1.13受支持。

注3:训练潜在的生成模型(例如configs/example_training/imagenet-f8_cond.yaml)需要从检索检查点拥抱脸并替换了CKPT_PATH占位符在这条线。对于所提供的文本到图像的配置,也要做同样的事情。

建立新的扩散模型

调节器

这GeneralConditioner是通过conditioner_config。它唯一的属性是emb_models不同嵌入器的列表(都继承自AbstractEmbModel)用于调节生成模型。所有嵌入器应该定义它们是否是可训练的(is_trainable,默认False),使用无分类器的引导丢失率(ucg_rate,默认0),以及输入键(input_key),比如,txt用于文本调节或cls为了阶级调节。当计算条件时,嵌入器将获得batch[input_key]作为输入。我们目前支持二维到四维条件,并且不同嵌入器的条件被适当地连接起来。请注意,嵌入程序在conditioner_config很重要。

网络

神经网络是通过network_config。这曾被称为unet_config,这还不够普遍,因为我们计划用基于变压器的扩散主干进行实验。

失败

损耗通过以下方式配置loss_config。对于标准扩散模型训练,您必须设置sigma_sampler_config.

采样器配置

如上所述,采样器独立于模型。在……里sampler_config,我们设置数值解算器的类型、步骤的数量、离散化的类型,以及例如用于无分类器引导的引导包装器。

数据集处理

对于大规模培训,我们建议使用我们的数据管道数据管道项目。该项目包含在需求中,并在遵循安装部分。小型地图样式数据集应在存储库中定义(例如,MNIST、CIFAR-10、...),并返回数据键/值的字典,例如,

example = {"jpg": x, &nbsp;# this is a tensor -1...1 chw

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"txt": "a beautiful image"}

我们期望图像在-1...1,渠道优先的格式。


官方介绍SDXL 1.0可以运行在8GB VRAM的消费级GPU上,或者是云端。除此之外,SDXL 1.0在微调也有了提升,可以生成自定义LoRAs或者checkpoints。

Stability AI团队现在也正在构建新一代可用于特定任务的结构、风格和组合控件,其中T2I/ControlNet专门用于SDXL。



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

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

相关文章

MySQL使用xtrabackup备份和恢复教程

1、xtrabackup说明 xtrabackup是percona开源的mysql物理备份工具。 xtrabackup 8.0支持mysql 8.0版本的备份和恢复。 xtrabackup 2.4支持mysql 5.7及以下版本的备份和恢复。 这里我以xtrabackup 8.0为例讲解备份和恢复的具体操作方法。 xtrabackup 2.4版本的使用上和8.0版本相…

【HDFS】Block、BlockInfo、BlockInfoContiguous、BlockInfoStriped的分析记录

本文主要介绍如下内容: 关于几个Block类之间的继承、实现关系;针对文章标题中的每个类,细化到每个成员去注释分析列出、并详细分析BlockInfo抽象类提供的抽象方法、非抽象方法的功能针对几个跟块组织结构的方法再进行分析。moveBlockToHead、listInsert、listRemove等。一、…

【计算机网络】应用层协议 -- HTTP协议

文章目录 1. 认识HTTP协议2. 认识URL3. HTTP协议格式3.1 HTTP请求协议格式3.2 HTTP响应协议格式 4. HTTP的方法5. HTTP的状态码6. HTTP的Header7. Cookie和Session 1. 认识HTTP协议 协议。网络协议的简称&#xff0c;网络协议是通信计算机双方必须共同遵守的一组约定&#xff0…

C# 全局响应Ctrl+Alt+鼠标右键

一、简述 某些应用&#xff0c;我们希望全局自定义热键。按键少了会和别的应用程序冲突&#xff0c;按键多了可定用户操作不变。因此我计划左手用CtrlAlt&#xff0c;右手用鼠标右键呼出我自定义的菜单。 我使用键盘和鼠标事件进行简单测试&#xff08;Ctrl鼠标右键&#xff…

【Ajax】笔记-jsonp实现原理

JSONP JSONP是什么 JSONP(JSON With Padding),是一个非官方的跨域解决方案&#xff0c;纯粹凭借程序员的聪明才智开发出来的&#xff0c;只支持get请求。JSONP 怎么工作的&#xff1f; 在网页有一些标签天生具有跨域能力&#xff0c;比如&#xff1a;img link iframe script. …

【Python数据分析】Python常用内置函数(一)

&#x1f389;欢迎来到Python专栏~Python常用内置函数&#xff08;一&#xff09; ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;Python学习专栏 文章作者技术和水平有限&#xff0c;如果文…

Redis实战(3)——缓存模型与缓存更新策略

1 什么是缓存? 缓存就是数据交换的缓冲区&#xff0c; 是存贮数据的临时区&#xff0c;一般读写性能较高 \textcolor{red}{是存贮数据的临时区&#xff0c;一般读写性能较高} 是存贮数据的临时区&#xff0c;一般读写性能较高。缓存可在多个场景下使用 以一次 w e b 请求为例…

计算机网络——学习笔记

付费版&#xff1a;直接在上面的CSDN资源下载 免费版&#xff1a;https://wwsk.lanzouk.com/ijkcj13tqmyb 示例图&#xff1a;

基于MOT数据集的高精度行人检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于MOT数据集的高精度行人检测系统可用于日常生活中检测与定位行人目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的行人目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集&…

数据可视化(3)

1.饼状图 #饼状图 #pie&#xff08;x,labels,colors,labeldistance,autopct,startangle,radius,center,textprops&#xff09; #x,每一块饼状图的比例 #labels:每一块饼形图外侧显示的文字说明 #labeldistance&#xff1a;标记的绘制位置&#xff0c;相对于半径的比例&#xf…

[论文笔记] CLRerNet: Improving Confidence of Lane Detection with LaneIoU

Honda, Hiroto, and Yusuke Uchida. “CLRerNet: Improving Confidence of Lane Detection with LaneIoU.” arXiv preprint arXiv:2305.08366 (2023). 2023.05 出的一篇车道线检测的文章, 效果在CULane, CurveLanes SOTA 文章目录 简介LaneIoULineIoU存在问题为什么使用LaneIo…

阿里Java开发手册~集合处理

1. 【强制】关于 hashCode 和 equals 的处理&#xff0c;遵循如下规则&#xff1a; 1 &#xff09; 只要重写 equals &#xff0c;就必须重写 hashCode 。 2 &#xff09; 因为 Set 存储的是不重复的对象&#xff0c;依据 hashCode 和 equals 进行判断&#xff…

【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境3

4、下载MaixPy IDE&#xff0c;MaixPy 使用Micropython 脚本语法&#xff0c;所以不像 C语言 一样需要编译&#xff0c;要使用MaixPy IDE , 开发板固件必须是V0.3.1 版本以上&#xff08;这里使用V0.5.0&#xff09;, 否则MaixPy IDE上会连接不上&#xff0c; 使用前尽量检查固…

基于fpga_EP4CE6F17C8实现的呼吸灯

文章目录 前言实验手册&#xff08;EP4CE6F17C8&#xff09;一、实验目的二、实验原理理论原理 三、系统架构设计四、模块说明1&#xff0e;模块端口信号列表2&#xff0e;状态转移图3&#xff0e;时序图 五、仿真波形图六、引脚分配七、代码实现八、仿真代码九、板级验证效果 …

深入浅出索引(上)

场景引入 某一个 SQL 查询比较慢&#xff0c;分析完原因之后&#xff0c;你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引&#xff0c;索引又是如何工作的呢&#xff1f; 一句话简单来说&#xff0c;索引的出现其实就是为了提高数据查询的效率&#xff…

Golang Devops项目开发(1)

1.1 GO语言基础 1 初识Go语言 1.1.1 开发环境搭建 参考文档&#xff1a;《Windows Go语言环境搭建》 1.2.1 Go语言特性-垃圾回收 a. 内存自动回收&#xff0c;再也不需要开发人员管理内存 b. 开发人员专注业务实现&#xff0c;降低了心智负担 c. 只需要new分配内存&#xff0c;…

Mysql定时删除表数据

由于用户环境有张日志表每天程序都在狂插数据&#xff0c;导致不到一个月时间&#xff0c;这张日志表就高达200多万条记录&#xff0c;但是日志刷新较快&#xff0c;里面很多日志没什么作用&#xff0c;就写了个定时器&#xff0c;定期删除这张表的数据。 首先查看mysql是否开启…

L---泰拉瑞亚---2023河南萌新联赛第(三)场:郑州大学

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 示例1 输入 1 10 3 5 输出 3 说明 只有一把回旋镖&#xff0c;你可以先打两次伤害为3的&#xff0c;再打一次倾尽全力的&#xff0c;造成的伤害为5。总伤害为33511&#xff0c;即可获得胜…

FPGA设计时序分析三、恢复/去除时间

目录 一、背景说明 二、工程设计 2.1 工程代码 2.2 综合结果 一、背景说明 ​恢复时间recovery和去除时间removal和setup、holdup类型&#xff0c;不同点是数据信号为控制信号&#xff0c;如复位&#xff0c;清零&#xff0c;使能信号&#xff0c;更多的是异步的复位信号&a…

Spring Cloud Eureka 服务注册和服务发现超详细(附加--源码实现案例--及实现逻辑图)

文章目录 EurekaEureka组件可以实现哪些功能什么是CAP原则&#xff1f;服务注册代码实战搭建注册中心服务A搭建服务B搭建启动服务启动注册中心启动服务A启动服务B 结束语 Eureka 这篇文章先讲述一下Eureka的应用场景、代码实现案例&#xff0c;多个服务模块注册到Euraka中&…