SSD 1B
SSD-1B是稳定扩散XL(SDXL)的蒸馏缩小50%版本,在保持高质量文本生成图像能力的同时,提供60%的速度提升。
下载量 35.08k
发布时间 : 10/19/2023
模型简介
Segmind稳定扩散模型(SSD-1B)是一个基于扩散的文本生成图像模型,通过知识蒸馏技术从SDXL模型缩小50%参数规模,同时保持高质量生成能力。
模型特点
高效蒸馏
通过知识蒸馏技术,模型规模缩小50%,同时保持高质量生成能力
快速推理
相比基础SDXL模型,推理速度提升60%
多分辨率支持
支持从640x1536到1536x640等多种分辨率输出
多样化训练数据
在Grit和Midjourney等多样化数据集上训练,增强生成能力
模型能力
文本生成图像
超现实图像生成
多风格图像生成
快速图像生成
使用案例
艺术与设计
艺术创作
生成艺术作品和创意内容
高质量视觉输出
设计辅助
为设计过程提供灵感和素材
多样化设计概念
教育
教学辅助
为教学创建视觉内容
增强学习体验
研究
生成模型研究
探索文本到图像生成技术
推动技术边界
🚀 Segmind Stable Diffusion 1B (SSD-1B) 模型卡片
Segmind Stable Diffusion 1B (SSD-1B) 是一个基于知识蒸馏的文本到图像生成模型,相比 Stable Diffusion XL (SDXL) 体积缩小 50%,速度提升 60%,同时保持了高质量的图像生成能力。
🚀 快速开始
兼容性说明
- AUTOMATIC1111 兼容性已添加,支持文件 点击此处 获取。
在线体验
- 你可以在 Segmind SSD-1B 体验该模型,以获得 ⚡ 最快推理速度。也可以在 🤗 Spaces 上尝试。
安装依赖
确保通过以下命令从源代码安装 diffusers
:
pip install git+https://github.com/huggingface/diffusers
此外,请安装 transformers
、safetensors
和 accelerate
:
pip install transformers accelerate safetensors
使用示例
from diffusers import StableDiffusionXLPipeline
import torch
# 从预训练模型加载管道
pipe = StableDiffusionXLPipeline.from_pretrained("segmind/SSD-1B", torch_dtype=torch.float16, use_safetensors=True, variant="fp16")
# 将模型移动到 GPU 上
pipe.to("cuda")
# 如果使用的 PyTorch 版本低于 2.0,可以启用 xformers 以提高内存效率
# pipe.enable_xformers_memory_efficient_attention()
# 定义文本提示
prompt = "An astronaut riding a green horse" # 你的文本提示
neg_prompt = "ugly, blurry, poor quality" # 负向提示
# 生成图像
image = pipe(prompt=prompt, negative_prompt=neg_prompt).images[0]
更新说明
- 现在该模型可以在 ComfyUI 中使用。
- 建议使用负向提示,并将 CFG 设置为 9.0 左右以获得最佳质量!
✨ 主要特性
- 文本到图像生成:该模型擅长根据文本提示生成图像,可应用于各种创意领域。
- 蒸馏加速:经过知识蒸馏,模型体积缩小 50%,速度提升 60%,适用于实时应用场景。
- 多样化训练数据:在多种数据集上进行训练,能够处理各种文本提示并生成相应的高质量图像。
- 知识蒸馏策略:借鉴多个专家模型的优势,结合它们的长处,减少局限性,提高性能。
📦 安装指南
环境依赖
- 确保已安装
diffusers
、transformers
、safetensors
和accelerate
库。安装命令如下:
pip install git+https://github.com/huggingface/diffusers
pip install transformers accelerate safetensors
💻 使用示例
基础用法
from diffusers import StableDiffusionXLPipeline
import torch
pipe = StableDiffusionXLPipeline.from_pretrained("segmind/SSD-1B", torch_dtype=torch.float16, use_safetensors=True, variant="fp16")
pipe.to("cuda")
# if using torch < 2.0
# pipe.enable_xformers_memory_efficient_attention()
prompt = "An astronaut riding a green horse" # Your prompt here
neg_prompt = "ugly, blurry, poor quality" # Negative prompt here
image = pipe(prompt=prompt, negative_prompt=neg_prompt).images[0]
高级用法
LoRA 微调
export MODEL_NAME="segmind/SSD-1B"
export VAE_NAME="madebyollin/sdxl-vae-fp16-fix"
export DATASET_NAME="lambdalabs/pokemon-blip-captions"
accelerate launch train_text_to_image_lora_sdxl.py \
--pretrained_model_name_or_path=$MODEL_NAME \
--pretrained_vae_model_name_or_path=$VAE_NAME \
--dataset_name=$DATASET_NAME --caption_column="text" \
--resolution=1024 --random_flip \
--train_batch_size=1 \
--num_train_epochs=2 --checkpointing_steps=500 \
--learning_rate=1e-04 --lr_scheduler="constant" --lr_warmup_steps=0 \
--mixed_precision="fp16" \
--seed=42 \
--output_dir="sd-pokemon-model-lora-ssd" \
--validation_prompt="cute dragon creature" --report_to="wandb" \
--push_to_hub
全量微调
export MODEL_NAME="segmind/SSD-1B"
export VAE_NAME="madebyollin/sdxl-vae-fp16-fix"
export DATASET_NAME="lambdalabs/pokemon-blip-captions"
accelerate launch train_text_to_image_sdxl.py \
--pretrained_model_name_or_path=$MODEL_NAME \
--pretrained_vae_model_name_or_path=$VAE_NAME \
--dataset_name=$DATASET_NAME \
--enable_xformers_memory_efficient_attention \
--resolution=512 --center_crop --random_flip \
--proportion_empty_prompts=0.2 \
--train_batch_size=1 \
--gradient_accumulation_steps=4 --gradient_checkpointing \
--max_train_steps=10000 \
--use_8bit_adam \
--learning_rate=1e-06 --lr_scheduler="constant" --lr_warmup_steps=0 \
--mixed_precision="fp16" \
--report_to="wandb" \
--validation_prompt="a cute Sundar Pichai creature" --validation_epochs 5 \
--checkpointing_steps=5000 \
--output_dir="ssd-pokemon-model" \
--push_to_hub
Dreambooth LoRA
export MODEL_NAME="segmind/SSD-1B"
export INSTANCE_DIR="dog"
export OUTPUT_DIR="lora-trained-xl"
export VAE_PATH="madebyollin/sdxl-vae-fp16-fix"
accelerate launch train_dreambooth_lora_sdxl.py \
--pretrained_model_name_or_path=$MODEL_NAME \
--instance_data_dir=$INSTANCE_DIR \
--pretrained_vae_model_name_or_path=$VAE_PATH \
--output_dir=$OUTPUT_DIR \
--mixed_precision="fp16" \
--instance_prompt="a photo of sks dog" \
--resolution=1024 \
--train_batch_size=1 \
--gradient_accumulation_steps=4 \
--learning_rate=1e-5 \
--report_to="wandb" \
--lr_scheduler="constant" \
--lr_warmup_steps=0 \
--max_train_steps=500 \
--validation_prompt="A photo of sks dog in a bucket" \
--validation_epochs=25 \
--seed="0" \
--push_to_hub
📚 详细文档
模型描述
属性 | 详情 |
---|---|
开发团队 | Segmind |
开发者 | Yatharth Gupta 和 Vishnu Jaddipal |
模型类型 | 基于扩散模型的文本到图像生成模型 |
许可证 | Apache 2.0 |
蒸馏来源 | stabilityai/stable-diffusion-xl-base-1.0 |
模型架构
SSD-1B 模型是一个 13 亿参数的模型,从基础 SDXL 模型中移除了若干层。
训练信息
以下是训练过程中使用的关键超参数:
- 步数:251000
- 学习率:1e-5
- 批次大小:32
- 梯度累积步数:4
- 图像分辨率:1024
- 混合精度:fp16
多分辨率支持
SSD-1B 支持以下输出分辨率:
- 1024 x 1024 (1:1 方形)
- 1152 x 896 (9:7)
- 896 x 1152 (7:9)
- 1216 x 832 (19:13)
- 832 x 1216 (13:19)
- 1344 x 768 (7:4 横向)
- 768 x 1344 (4:7 纵向)
- 1536 x 640 (12:5 横向)
- 640 x 1536 (5:12 纵向)
速度比较
- 与基础 SDXL 模型相比,SSD-1B 速度最多可提升 60%。以下是在 A100 80GB 上的比较结果:
- 以下是在 RTX 4090 GPU 上的加速指标:
模型来源
如需进行研究和开发,可通过 Segmind AI 平台访问 SSD-1B 模型。更多信息和访问详情,请访问 Segmind。
用途
直接使用
Segmind Stable Diffusion 模型适用于多个领域的研究和实际应用,包括:
- 艺术与设计:可用于生成艺术作品、设计和其他创意内容,为创作过程提供灵感。
- 教育:可应用于教育工具,为教学和学习创建视觉内容。
- 研究:研究人员可使用该模型探索生成模型,评估其性能,推动文本到图像生成技术的发展。
- 安全内容生成:提供了一种安全可控的内容生成方式,降低有害或不当输出的风险。
- 偏差和局限性分析:研究人员和开发人员可使用该模型探索其局限性和偏差,有助于更好地理解生成模型的行为。
下游使用
Segmind Stable Diffusion 模型还可以直接与 🧨 Diffusers 库的训练脚本一起使用,进行进一步训练,包括:
不适用场景
SSD-1B 模型不适合创建人物、事件或现实世界信息的事实或准确表示,不用于需要高精度和准确性的任务。
🔧 技术细节
蒸馏方法
📣 阅读我们的 技术报告 以获取有关蒸馏方法的更多详细信息。
局限性和偏差
SSD-1B 模型在实现绝对的照片级真实感方面存在一些挑战,特别是在人物描绘方面。由于其自动编码方法,在融入清晰文本和保持复杂构图的保真度方面存在困难,这些问题为未来的改进提供了方向。重要的是,尽管模型接触了多样化的数据集,但这并不能完全消除根深蒂固的社会和数字偏差,不过这是迈向更公平技术的基础一步。建议用户在使用此开创性工具时,了解其当前的局限性,促进有意识的使用,并期待其持续发展。
📄 许可证
本模型使用 Apache 2.0 许可证。
引用
@misc{gupta2024progressive,
title={Progressive Knowledge Distillation Of Stable Diffusion XL Using Layer Level Loss},
author={Yatharth Gupta and Vishnu V. Jaddipal and Harish Prabhala and Sayak Paul and Patrick Von Platen},
year={2024},
eprint={2401.02677},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Stable Diffusion V1 5
Openrail
稳定扩散是一种潜在的文本到图像扩散模型,能够根据任何文本输入生成逼真的图像。
图像生成
S
stable-diffusion-v1-5
3.7M
518
Stable Diffusion Inpainting
Openrail
基于稳定扩散的文本到图像生成模型,具备图像修复能力
图像生成
S
stable-diffusion-v1-5
3.3M
56
Stable Diffusion Xl Base 1.0
SDXL 1.0是基于扩散的文本生成图像模型,采用专家集成的潜在扩散流程,支持高分辨率图像生成
图像生成
S
stabilityai
2.4M
6,545
Stable Diffusion V1 4
Openrail
稳定扩散是一种潜在文本到图像扩散模型,能够根据任意文本输入生成逼真图像。
图像生成
S
CompVis
1.7M
6,778
Stable Diffusion Xl Refiner 1.0
SD-XL 1.0优化器模型是Stability AI开发的图像生成模型,专为提升SDXL基础模型生成的图像质量而设计,特别擅长最终去噪步骤处理。
图像生成
S
stabilityai
1.1M
1,882
Stable Diffusion 2 1
基于扩散的文本生成图像模型,支持通过文本提示生成和修改图像
图像生成
S
stabilityai
948.75k
3,966
Stable Diffusion Xl 1.0 Inpainting 0.1
基于Stable Diffusion XL的潜在文本到图像扩散模型,具备通过遮罩进行图像修复的功能
图像生成
S
diffusers
673.14k
334
Stable Diffusion 2 Base
基于扩散的文生图模型,可根据文本提示生成高质量图像
图像生成
S
stabilityai
613.60k
349
Playground V2.5 1024px Aesthetic
其他
开源文生图模型,能生成1024x1024分辨率及多种纵横比的美学图像,在美学质量上处于开源领域领先地位。
图像生成
P
playgroundai
554.94k
723
Sd Turbo
SD-Turbo是一款高速文本生成图像模型,仅需单次网络推理即可根据文本提示生成逼真图像。该模型作为研究原型发布,旨在探索小型蒸馏文本生成图像模型。
图像生成
S
stabilityai
502.82k
380
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98