🚀 Sygil Diffusion模型
Sygil Diffusion是基于Stable Diffusion微调的图像生成模型,它在多语言支持和图像生成多样性上表现出色。通过使用命名空间,能有效避免上下文错误,生成高质量的各类图像,如概念艺术、幻想森林等。
🚀 快速开始
安装依赖
使用 🤗的Diffusers库 可以简单高效地运行Sygil Diffusion。
pip install diffusers transformers accelerate scipy safetensors
运行示例
运行管道(如果不更换调度器,将使用默认的DDIM,在本示例中,我们将其更换为DPMSolverMultistepScheduler):
import torch
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
model_id = "Sygil/Sygil-Diffusion"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")
prompt = "a beautiful illustration of a fantasy forest"
image = pipe(prompt).images[0]
image.save("fantasy_forest_illustration.png")
⚠️ 重要提示
- 尽管 xformers 不是必需依赖,但我们强烈建议安装它以实现内存高效的注意力机制(更好的性能)。
- 如果你的GPU显存较低,请在将管道发送到
cuda
后添加 pipe.enable_attention_slicing()
以减少显存使用(代价是速度)。
✨ 主要特性
- 多语言支持:该模型除了英语之外,还能部分理解中文、日语和西班牙语的提示。目前正在进行更多训练,以使模型能够完全理解这些语言,并像处理英语提示一样工作。
- 命名空间控制:使用多个命名空间(标记标签)来控制最终生成的各个部分,避免模型出现“上下文错误”,例如不会将“seal”(海豹)误解为歌手Seal,或将“DC”(DC漫画)误解为华盛顿特区。
- 图像生成多样性:由于模型在各种内容上进行了微调,它能够生成多种类型的图像和构图,在肖像、建筑、反射、幻想、概念艺术、动漫、风景等方面轻松超越原始模型,且不像其他社区微调模型那样过于专业化。
📦 安装指南
使用以下命令安装运行模型所需的依赖:
pip install diffusers transformers accelerate scipy safetensors
💻 使用示例
基础用法
import torch
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
model_id = "Sygil/Sygil-Diffusion"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")
prompt = "a beautiful illustration of a fantasy forest"
image = pipe(prompt).images[0]
image.save("fantasy_forest_illustration.png")
📚 详细文档
可用检查点
稳定版
测试版
目前没有活跃的测试版。
注意:测试版部分的检查点每天或每周至少更新3 - 4次。这通常相当于1 - 2次训练会话,直到它们足够稳定,可以转移到正式版本,通常每1或2周进行一次。虽然测试版检查点可以直接使用,但仓库中只保留最新版本,上传新的检查点时会删除旧的检查点以保持仓库整洁。HuggingFace推理API和Diffusers库将始终使用Diffusers格式的最新测试版检查点。对于特殊情况,我们可能会创建额外的仓库来保留Diffusers模型的副本,例如当模型使用不同的Stable Diffusion模型作为基础时(如Stable Diffusion 1.5与2.1)。
训练信息
训练数据
该模型在以下数据集上进行训练:
硬件和其他信息
属性 |
详情 |
硬件 |
1 x Nvidia RTX 3050 8GB GPU |
训练时长 |
约857小时 |
优化器 |
AdamW |
Adam Beta 1 |
0.9 |
Adam Beta 2 |
0.999 |
Adam权重衰减 |
0.01 |
Adam Epsilon |
1e - 8 |
梯度检查点 |
True |
梯度累积 |
400 |
批次 |
1 |
学习率 |
1e - 7 |
学习率调度器 |
cosine_with_restarts |
学习率热身步数 |
10,000 |
Lora unet学习率 |
1e - 7 |
Lora文本编码器学习率 |
1e - 7 |
分辨率 |
512像素 |
总训练步数 |
2,370,200 |
注意:关于学习率,在v0.3发布后,从使用 constant
调度器改为 cosine_with_restarts
调度器后,我发现它在尝试最小化损失值的同时,实际上使用了最优学习率。因此,每次训练会话结束后,我会将上一次会话最后几步显示的最新学习率值用于下一次会话,这样随着时间的推移,学习率将以恒定速率下降。当我一次性向训练数据集添加大量数据时,我会将学习率调回1e - 7,然后调度器会随着从新数据中学习而再次降低学习率,这样可以避免训练过拟合或使用过低的学习率导致模型在一段时间内无法学习新内容。
社区贡献
🔧 技术细节
该模型是基于Stable Diffusion进行微调的,在 Imaginary Network Expanded Dataset 数据集上进行训练。通过使用命名空间(标记标签)来控制最终生成的各个部分,避免了模型常见的“上下文错误”。在训练过程中,使用了AdamW优化器和 cosine_with_restarts
学习率调度器,经过2370200步的训练,使得模型在多种图像生成任务上表现出色。
📄 许可证
该模型是开放访问的,所有人都可以使用,遵循CreativeML Open RAIL++ - M许可证,该许可证进一步规定了权利和使用方式。请在此处阅读完整许可证。
开发人员:ZeroCool94 ,所属团队 Sygil-Dev
展示

如果你觉得我的工作有用,请考虑在 GitHub Sponsors 上支持我!
该模型仍处于起步阶段,随着时间的推移,将不断使用更多数据进行更新和训练。如果你有任何反馈,请在我们的 Discord服务器 或Hugging Face的讨论区告诉我们。我们计划在未来使用更多、更好的标签来改进它,欢迎任何形式的帮助 😛
