中企高呈网站建设,陇南网站定制开发公司,公司的网站建设与维护,南昌专业的学校网站建设公司Stability AI宣布推出Stable Diffusion XL 1.0#xff0c;这是一个文本到图像的模型#xff0c;该公司将其描述为迄今为止“最先进的”版本。
Stability AI表示#xff0c;SDXL 1.0能生成更加鲜明准确的色彩#xff0c;在对比度、光线和阴影方面做了增强#xff0c;可生成…Stability AI宣布推出Stable Diffusion XL 1.0这是一个文本到图像的模型该公司将其描述为迄今为止“最先进的”版本。
Stability AI表示SDXL 1.0能生成更加鲜明准确的色彩在对比度、光线和阴影方面做了增强可生成100万像素的图像1024×1024。而且还支持在网页上直接对生成图像进行后期编辑。 提示词也能比之前更简单了。这是因为SDXL 1.0的基础模型参数量达到了35亿理解能力更强。对比基础版Stable Diffusion参数量只有10亿左右。由此SDXL 1.0也成为当前最大规模的开放图像模型之一。
Stability AI博客介绍了SDXL 1.0的更多技术细节。首先模型在规模和架构上都有了新突破。它创新性地使用了一个基础模型base model一个细化模型refiner model二者的参数规模分别为35亿和66亿。 这也使得SDXL 1.0成为目前规模最大的开放图像模型之一。
Stability AI创始人莫斯塔克Emad Mostaque表示更大规模的参数量能让模型理解更多概念教会它更深层次的东西。同时在SDXL 0.9版本还进行了RLHF强化。
这也是为什么现在SDXL 1.0支持短提示词而且能分清红场the Red Square和一个红色的广场a Red Square。
在具体合成过程中第一步基础模型产生有噪声的latent然后由细化模型进行去噪。
其中基础模型也可以作为独立模块使用。这两种模型结合能生成质量更好的图像且不需要消耗更多计算资源。
测试效果 安装:
1.克隆回购
git clone gitgithub.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 githttps://github.com/Stability-AI/datapipelines.gitmain#eggsdata
包装
该存储库使用符合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。我们提供完整文件的文件哈希以及文件中仅保存的张量的文件哈希(参见型号规格让脚本来评估这一点)。目前支持以下型号:
·nbsp;SDXL-base-1.0
File Hash (sha256): 31e35c80fc4829d14f90153f4c74cd59c90b779f6afe05a74cd6120b893f7e5b
Tensordata Hash (sha256): 0xd7a9105a900fd52748f20725fe52fe52b507fd36bee4fc107b1550a26e6ee1d7
·nbsp;SDXL-精炼机-1.0
File Hash (sha256): 7440042bbdc8a24813002c09b6b69b64dc90fded4472613437b7f55f9b7d9c5f
Tensordata Hash (sha256): 0x1a77d21bebc4b4de78c474a90cb74dc0d2217caf4061971dbfa75ad406b75d81
·nbsp;SDXL-base-0.9
·nbsp;SDXL-精炼机-0.9
·nbsp;SD-2.1-512
·nbsp;SD-2.1-768
SDXL的重量:
SDXL-1.0:SDXL-1.0的重量可用(根据CreativeML Open RAIL-M许可证)这里:
·nbsp;基本型号:https://hugging face . co/stability ai/stable-diffusion-XL-base-1.0/
·nbsp;精炼机型号: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 numpy1.17 PyWavelets1.1.1 opencv-python4.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。