缩略图: >-
https://huggingface.co/OFA-Sys/small-stable-diffusion-v0/resolve/main/sample_images_compressed.jpg
数据集:
- ChristophSchuhmann/improved_aesthetics_6plus
许可证: openrail
标签:
- 稳定扩散
- 稳定扩散-扩散器
- 文本到图像
语言:
- 英语
管道标签: 文本到图像
小型稳定扩散模型卡
【2023年02月07日更新】 我们最近发布了扩散部署仓库,以加速在GPU(基于TensorRT,约4倍加速)和CPU(基于IntelOpenVINO,约12倍加速)上的推理。
结合此仓库,小型稳定扩散模型在CPU上仅需5秒即可生成图像*。
测试环境:Intel(R) Xeon(R) Platinum 8369B CPU,DPMSolverMultistepScheduler 10步,转换为Onnx时固定通道/高度/宽度
相似的图像生成质量,但体积几乎缩小了一半!
以下是一些示例:

Gradio
我们支持通过Gradio Web UI运行small-stable-diffusion-v0:
我们还为small-stable-diffusion-v0 + diffusion-deploy
提供了一个空间演示。
由于huggingface为空间演示提供了AMD CPU,生成一张15步的图像大约需要35秒,这比基于Intel OpenVINO的diffusion-deploy在Intel CPU环境下的速度慢得多。
示例
使用Diffusers
>=0.8.0,不支持更低版本。
import torch
from diffusers import StableDiffusionPipeline
model_id = "OFA-Sys/small-stable-diffusion-v0/"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "一个苹果,4k"
image = pipe(prompt).images[0]
image.save("apple.png")
训练
初始化
此模型从stable-diffusion v1-4初始化。由于模型结构与stable-diffusion不同且参数数量较少,无法直接利用稳定扩散的参数。因此,小型稳定扩散模型设置layers_per_block=1
,并选择原始稳定扩散中每个块的第一个层来初始化小型模型。
训练过程
初始化后,模型在8xA100 GPU上训练了1100k步。训练过程分为三个阶段。第一阶段是简单的预训练过程。在后两个阶段中,原始稳定扩散模型作为教师模型用于向小型模型蒸馏知识。在所有阶段中,仅训练unet部分的参数,其他参数被冻结。
-
硬件: 8 x A100-80GB GPU
-
优化器: AdamW
-
阶段1 - 预训练模型的unet部分。
- 步数: 500,000
- 批次: 批次大小=8,GPU=8,梯度累积=2。总批次大小=128
- 学习率: 在前10,000步预热至1e-5,之后保持恒定
-
阶段2 - 使用stable-diffusion v1-4作为教师模型进行蒸馏。除了真实标签外,此阶段的训练还使用教师模型生成的软标签(pred_noise
)。
- 步数: 400,000
- 批次: 批次大小=8,GPU=8,梯度累积=2。总批次大小=128
- 学习率: 在前5,000步预热至1e-5,之后保持恒定
- 软标签权重: 0.5
- 硬标签权重: 0.5
-
阶段3 - 使用stable-diffusion v1-5作为教师模型进行蒸馏。使用Knowledge Distillation of Transformer-based Language Models Revisited
中的几种技术,包括基于相似性的层匹配以及软标签。
- 步数: 200,000
- 批次: 批次大小=8,GPU=8,梯度累积=2。总批次大小=128
- 学习率: 在前5,000步预热至1e-5,之后保持恒定
- 软标签权重: 0.5
- 硬标签权重: 0.5
训练数据
模型开发者使用以下数据集训练模型:
- LAION-2B en aesthetic
- LAION-Art
- LAION-HD
引用
@article{Lu2022KnowledgeDO,
title={Knowledge Distillation of Transformer-based Language Models Revisited},
author={Chengqiang Lu and Jianwei Zhang and Yunfei Chu and Zhengyu Chen and Jingren Zhou and Fei Wu and Haiqing Chen and Hongxia Yang},
journal={ArXiv},
year={2022},
volume={abs/2206.14366}
}
用途
以下部分改编自Stable Diffusion模型卡
直接使用
该模型仅用于研究目的。可能的研究领域和任务包括:
- 安全部署可能生成有害内容的模型。
- 探索和理解生成模型的局限性和偏见。
- 生成艺术作品并用于设计和其他艺术过程。
- 教育或创意工具中的应用。
- 生成模型的研究。
以下描述了排除的用途。
滥用、恶意使用和超出范围的用途
该模型不应被用于故意创建或传播为人们创造敌对或疏远环境的图像。这包括生成人们可预见地感到不安、痛苦或冒犯的图像;或传播历史或当前刻板印象的内容。
超出范围的用途
该模型未经过训练以生成关于人或事件的真实或准确表示,因此使用该模型生成此类内容超出了该模型的能力范围。
滥用和恶意使用
使用该模型生成对个人残忍的内容是对该模型的滥用。这包括但不限于:
- 生成贬低、非人化或以其他方式伤害人们或其环境、文化、宗教等的内容。
- 故意宣传或传播歧视性内容或有害刻板印象。
- 未经同意冒充个人。
- 未经可能看到的人的同意生成性内容。
- 错误和虚假信息
- 极端暴力和血腥的描绘
- 违反使用条款共享受版权或许可的材料。
- 违反使用条款共享受版权或许可材料的修改版本。
局限性和偏见
局限性
- 该模型无法实现完美的照片级真实感
- 该模型无法渲染可读的文本
- 该模型在涉及组合性的更复杂任务上表现不佳,例如渲染“蓝色球体上的红色立方体”对应的图像
- 面部和人物可能无法正确生成。
- 该模型主要使用英文标题进行训练,在其他语言中表现不佳。
- 模型的自动编码部分是有损的
- 该模型在大规模数据集LAION-5B上训练,其中包含成人内容,未经额外的安全机制和考虑不适合产品使用。
- 未使用额外的去重措施。因此,我们观察到训练数据中重复图像的某种程度的记忆。可以通过https://rom1504.github.io/clip-retrieval/搜索训练数据,可能有助于检测记忆的图像。
偏见
虽然图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏见。
Stable Diffusion v1在LAION-2B(en)的子集上训练,这些图像主要限于英文描述。
使用其他语言的社区和文化的文本和图像可能未被充分代表。
这影响了模型的整体输出,因为白人和西方文化通常被设置为默认。此外,模型生成非英语提示内容的能力明显比英语提示差。
安全模块
该模型的预期用途是与Diffusers中的安全检查器一起使用。
该检查器通过将模型输出与已知的硬编码NSFW概念进行比较来工作。
这些概念被故意隐藏以减少逆向工程此过滤器的可能性。
具体来说,检查器在生成图像后比较CLIPModel
嵌入空间中有害概念的类别概率。
这些概念与生成的图像一起传入模型,并与每个NSFW概念的手工权重进行比较。
此模型卡由Justin Pinkney编写,基于Stable Diffusion模型卡。