模型简介
模型特点
模型能力
使用案例
🚀 Segmind-Vega模型卡片
Segmind-Vega模型是Stable Diffusion XL (SDXL)的蒸馏版本,尺寸显著减小,推理速度大幅提升,同时保留了高质量的文生图能力。它基于知识蒸馏策略,结合多个专家模型的优势,能够根据文本提示生成丰富多样的视觉内容。
🚀 快速开始
你可以在 Segmind-Vega 体验Segmind-Vega模型,享受 ⚡ 极速推理。
✨ 主要特性
- 文生图能力:Segmind-Vega模型擅长根据文本提示生成图像,适用于各种创意应用场景。
- 蒸馏提速:经过优化设计,该模型实现了100%的速度提升,非常适合实时应用和需要快速生成图像的场景。
- 多样训练数据:基于多样化的数据集进行训练,能够有效处理各种文本提示并生成相应图像。
- 知识蒸馏:通过从多个专家模型中蒸馏知识,Segmind-Vega模型融合了它们的优势,减少了局限性,提升了性能。
📦 安装指南
此模型可通过 🧨 Diffusers 库使用。
首先,确保通过以下命令安装 diffusers
:
pip install diffusers
此外,请安装 transformers
、safetensors
和 accelerate
:
pip install transformers accelerate safetensors
💻 使用示例
基础用法
from diffusers import StableDiffusionXLPipeline
import torch
pipe = StableDiffusionXLPipeline.from_pretrained("segmind/Segmind-Vega", torch_dtype=torch.float16, use_safetensors=True, variant="fp16")
pipe.to("cuda")
# if using torch < 2.0
# pipe.enable_xformers_memory_efficient_attention()
prompt = "A cute cat eating a slice of pizza, stunning color scheme, masterpiece, illustration" # Your prompt here
neg_prompt = "(worst quality, low quality, illustration, 3d, 2d, painting, cartoons, sketch)" # Negative prompt here
image = pipe(prompt=prompt, negative_prompt=neg_prompt).images[0]
高级用法
请使用负提示和大约9.0的CFG以获得最佳质量!
📚 详细文档
模型描述
- 开发者:Segmind
- 开发人员:Yatharth Gupta 和 Vishnu Jaddipal
- 模型类型:基于扩散的文生图生成模型
- 许可证:Apache 2.0
- 蒸馏来源:stabilityai/stable-diffusion-xl-base-1.0
模型架构
Segmind-Vega模型是一个紧凑版本,与基础SDXL模型相比,尺寸缩小了70%。
训练信息
以下是训练过程中使用的关键超参数:
属性 | 详情 |
---|---|
训练步数 | 540,000 |
学习率 | 1e-5 |
批量大小 | 16 |
梯度累积步数 | 8 |
图像分辨率 | 1024 |
混合精度 | fp16 |
模型来源
出于研究和开发目的,可以通过Segmind AI平台访问Segmind-Vega模型。如需更多信息和访问详情,请访问 Segmind。
用途
直接使用
Segmind-Vega模型适用于多个领域的研究和实际应用,包括:
- 艺术与设计:可用于生成艺术作品、设计和其他创意内容,为创意过程提供灵感和支持。
- 教育:可应用于教育工具,为教学和学习创建视觉内容。
- 研究:研究人员可以使用该模型探索生成模型,评估其性能,推动文生图技术的发展。
- 安全内容生成:提供了一种安全可控的内容生成方式,降低了有害或不当输出的风险。
- 偏差与局限性分析:研究人员和开发者可以利用该模型探究其局限性和偏差,有助于更好地理解生成模型的行为。
下游使用
Segmind-Vega模型还可以直接与 🧨 Diffusers 库的训练脚本结合使用,进行进一步训练,包括:
- LoRA:
export MODEL_NAME="segmind/Segmind-Vega"
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="vega-pokemon-model-lora" \
--validation_prompt="cute dragon creature" --report_to="wandb" \
--push_to_hub
export MODEL_NAME="segmind/Segmind-Vega"
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=1024 --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="vega-pokemon-model" \
--push_to_hub
export MODEL_NAME="segmind/Segmind-Vega"
export INSTANCE_DIR="dog"
export OUTPUT_DIR="lora-trained-vega"
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-Vega模型不适用于创建人物、事件或现实世界信息的事实性或准确性表示,不适合需要高精度和准确性的任务。
🔧 技术细节
图像对比(Segmind-Vega vs SDXL)
速度对比(Segmind-Vega vs SD-1.5 vs SDXL)
测试在A100 80GB GPU上进行。
(注:所有时间均使用各自的tiny-VAE报告!)
参数对比(Segmind-Vega vs SD-1.5 vs SDXL)
📄 许可证
本模型采用Apache 2.0许可证。
局限性与偏差
Segmind-Vega模型在实现绝对的照片级真实感方面存在挑战,特别是在人物描绘上。由于其自动编码方法,在融入清晰文本和保持复杂构图的保真度方面可能会遇到困难,但这些挑战也为未来的改进提供了机会。重要的是,尽管模型接触了多样化的数据集,但这并不能完全消除根深蒂固的社会和数字偏差,不过这是迈向更公平技术的基础一步。建议用户在使用这个开创性工具时,了解其当前的局限性,促进有意识的使用,并期待其持续发展。
引用
@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}
}

