模型简介
模型特点
模型能力
使用案例
🚀 Stable Diffusion x4 图像超分辨率模型卡片
本模型卡片聚焦于与 Stable Diffusion 图像超分辨率器相关的模型,可在 此处 获取。该模型能够基于文本提示生成和修改图像,为图像生成和处理提供了强大的工具。
🚀 快速开始
使用方式
- 结合
stablediffusion
仓库使用:可从 这里 下载x4-upscaler-ema.ckpt
。 - 结合 🧨
diffusers
使用。
示例代码
import requests
from PIL import Image
from io import BytesIO
from diffusers import StableDiffusionUpscalePipeline
import torch
# 加载模型和调度器
model_id = "stabilityai/stable-diffusion-x4-upscaler"
pipeline = StableDiffusionUpscalePipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipeline = pipeline.to("cuda")
# 下载一张图像
url = "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-upscale/low_res_cat.png"
response = requests.get(url)
low_res_img = Image.open(BytesIO(response.content)).convert("RGB")
low_res_img = low_res_img.resize((128, 128))
prompt = "a white cat"
upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]
upscaled_image.save("upsampled_cat.png")
注意事项
- 尽管
xformers
并非必需依赖项,但我们强烈建议安装 xformers 以实现内存高效的注意力机制(提升性能)。 - 若你的 GPU 显存有限,在将模型发送到
cuda
后,务必添加pipe.enable_attention_slicing()
以减少显存使用(但会牺牲一定速度)。
✨ 主要特性
- 该模型在包含
>2048x2048
图像的 1000 万 LAION 子集中进行了 125 万步的训练。 - 模型在
512x512
大小的裁剪图像上进行训练,是一种文本引导的 潜在超分辨率扩散模型。 - 除文本输入外,模型还接收
noise_level
作为输入参数,可根据 预定义的扩散时间表 向低分辨率输入添加噪声。
📦 安装指南
使用以下命令安装所需依赖:
pip install diffusers transformers accelerate scipy safetensors
📚 详细文档
模型详情
属性 | 详情 |
---|---|
开发者 | Robin Rombach, Patrick Esser |
模型类型 | 基于扩散的文本到图像生成模型 |
支持语言 | 英语 |
许可证 | CreativeML Open RAIL++-M 许可证 |
模型描述 | 这是一个可用于基于文本提示生成和修改图像的模型。它是一个 潜在扩散模型,使用固定的预训练文本编码器 (OpenCLIP-ViT/H)。 |
更多信息资源 | GitHub 仓库 |
用途
直接使用
该模型仅用于研究目的,可能的研究领域和任务包括:
- 安全部署有可能生成有害内容的模型。
- 探索和理解生成模型的局限性和偏差。
- 生成艺术作品并应用于设计和其他艺术过程。
- 在教育或创意工具中的应用。
- 生成模型的研究。
禁止使用情况
模型不应被用于故意创建或传播会给人们造成敌对或疏离环境的图像。这包括生成人们可预见会感到不安、痛苦或冒犯的图像;或传播历史或当前刻板印象的内容。
- 超出范围的使用:该模型并非用于生成事实或真实的人物或事件表征,因此使用该模型生成此类内容超出了其能力范围。
- 滥用和恶意使用:使用该模型生成对个人残酷的内容属于滥用行为,包括但不限于:
- 生成贬低、非人化或以其他方式伤害人们或其环境、文化、宗教等的表征。
- 故意推广或传播歧视性内容或有害刻板印象。
- 在未经他人同意的情况下冒充他人。
- 未经可能看到的人同意的色情内容。
- 错误信息和虚假信息。
- 严重暴力和血腥场面的表征。
- 违反使用条款分享受版权保护或许可的材料。
- 违反使用条款分享对受版权保护或许可材料的修改内容。
局限性和偏差
局限性
- 模型无法实现完美的照片级真实感。
- 模型无法渲染清晰可读的文本。
- 模型在涉及组合性的更复杂任务上表现不佳,例如渲染对应于 “一个红色立方体放在蓝色球体上” 的图像。
- 面部和人物总体上可能无法正确生成。
- 模型主要使用英语字幕进行训练,在其他语言中的效果不佳。
- 模型的自动编码部分存在信息损失。
- 模型在大规模数据集 LAION-5B 的子集上进行训练,该数据集包含成人、暴力和色情内容。为部分缓解此问题,使用 LAION 的 NSFW 检测器对数据集进行了过滤。
偏差
虽然图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏差。Stable Diffusion v2 主要在 LAION-2B(en) 的子集上进行训练,该子集由仅限于英语描述的图像组成。使用其他语言的社区和文化的文本和图像可能未得到充分考虑。这影响了模型的整体输出,因为白人和西方文化通常被设定为默认值。此外,模型使用非英语提示生成内容的能力明显低于使用英语提示的情况。Stable Diffusion v2 在很大程度上反映和加剧了偏差,因此无论输入或意图如何,都建议观众谨慎使用。
训练
训练数据
模型开发者使用以下数据集进行模型训练:
- LAION-5B 及其子集(详情如下)。训练数据进一步使用 LAION 的 NSFW 检测器进行过滤,“p_unsafe” 分数为 0.1(保守)。更多详情,请参考 LAION-5B 的 NeurIPS 2022 论文和关于该主题的评审讨论。
训练过程
Stable Diffusion v2 是一个潜在扩散模型,它将自动编码器与在自动编码器潜在空间中训练的扩散模型相结合。在训练过程中:
- 图像通过编码器进行编码,将图像转换为潜在表征。自动编码器使用相对下采样因子 8,将形状为 H x W x 3 的图像映射到形状为 H/f x W/f x 4 的潜在表征。
- 文本提示通过 OpenCLIP-ViT/H 文本编码器进行编码。
- 文本编码器的输出通过交叉注意力机制输入到潜在扩散模型的 UNet 主干中。
- 损失是添加到潜在表征的噪声与 UNet 预测之间的重建目标。还使用了所谓的 v-objective,详见 https://arxiv.org/abs/2202.00512。
目前提供以下检查点:
512-base-ema.ckpt
:在过滤了明确色情材料的 LAION-5B 子集上,以256x256
分辨率训练 550k 步,使用 LAION-NSFW 分类器,punsafe=0.1
且 美学分数 >=4.5
。在相同数据集上以512x512
分辨率(分辨率>= 512x512
)训练 850k 步。768-v-ema.ckpt
:从512-base-ema.ckpt
恢复训练,在相同数据集上使用 v-objective 训练 150k 步。在数据集的768x768
子集上继续训练 140k 步。512-depth-ema.ckpt
:从512-base-ema.ckpt
恢复训练并微调 200k 步。添加一个额外的输入通道来处理 MiDaS (dpt_hybrid
) 产生的(相对)深度预测,作为额外的条件。处理此额外信息的 U-Net 额外输入通道初始化为零。512-inpainting-ema.ckpt
:从512-base-ema.ckpt
恢复训练并训练 200k 步。遵循 LAMA 中提出的掩码生成策略,结合掩码图像的潜在 VAE 表征作为额外的条件。处理此额外信息的 U-Net 额外输入通道初始化为零。使用相同策略训练 1.5-inpainting 检查点。x4-upscaling-ema.ckpt
:在包含>2048x2048
图像的 1000 万 LAION 子集中训练 125 万步。模型在512x512
大小的裁剪图像上进行训练,是一种文本引导的 潜在超分辨率扩散模型。除文本输入外,模型还接收noise_level
作为输入参数,可根据 预定义的扩散时间表 向低分辨率输入添加噪声。
训练参数
- 硬件:32 x 8 x A100 GPUs
- 优化器:AdamW
- 梯度累积:1
- 批次大小:32 x 8 x 2 x 4 = 2048
- 学习率:在 10000 步内预热到 0.0001,然后保持不变。
评估结果
使用不同的无分类器引导尺度(1.5、2.0、3.0、4.0、5.0、6.0、7.0、8.0)和 50 步 DDIM 采样步骤进行评估,显示了检查点的相对改进:
使用 50 步 DDIM 采样和来自 COCO2017 验证集的 10000 个随机提示进行评估,评估分辨率为 512x512。未针对 FID 分数进行优化。
环境影响
估计排放量
基于相关信息,使用 Lacoste 等人 (2019) 中提出的 机器学习影响计算器 估计以下 CO2 排放量。利用硬件、运行时间、云服务提供商和计算区域来估计碳影响。
- 硬件类型:A100 PCIe 40GB
- 使用时长:200000 小时
- 云服务提供商:AWS
- 计算区域:美国东部
- 碳排放(功耗 x 时间 x 基于电网位置的碳排放量):15000 kg CO2 当量。
🔧 技术细节
该模型是文本引导的 潜在超分辨率扩散模型,在训练过程中结合了自动编码器和扩散模型。图像通过编码器转换为潜在表征,文本提示通过 OpenCLIP-ViT/H 文本编码器进行编码,两者通过交叉注意力机制输入到 UNet 主干中。训练损失基于重建目标,并使用了 v-objective。
📄 许可证
该模型遵循 CreativeML Open RAIL++-M 许可证。
引用
@InProceedings{Rombach_2022_CVPR,
author = {Rombach, Robin and Blattmann, Andreas and Lorenz, Dominik and Esser, Patrick and Ommer, Bj\"orn},
title = {High-Resolution Image Synthesis With Latent Diffusion Models},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2022},
pages = {10684-10695}
}
本模型卡片由 Robin Rombach、Patrick Esser 和 David Ha 编写,基于 Stable Diffusion v1 和 DALL-E Mini 模型卡片。






