模型简介
模型特点
模型能力
使用案例
🚀 Animagine XL 3.0
Animagine XL 3.0是一款先进的开源动漫文生图模型的最新版本,它基于前作Animagine XL 2.0的能力进行开发。该模型基于Stable Diffusion XL构建,在图像生成方面表现卓越,尤其在手部解剖结构、标签排序效率和动漫概念理解等方面有显著提升。与前作不同的是,本版本着重让模型学习概念而非美学风格。
🚀 快速开始
Animagine XL 3.0可通过Gradio和Google Colab等用户友好的平台访问:
要使用Animagine XL 3.0,请按以下步骤安装所需库:
pip install diffusers --upgrade
pip install transformers accelerate safetensors
以下是使用Animagine XL 3.0生成图像的示例脚本:
import torch
from diffusers import (
StableDiffusionXLPipeline,
EulerAncestralDiscreteScheduler,
AutoencoderKL
)
# 加载VAE组件
vae = AutoencoderKL.from_pretrained(
"madebyollin/sdxl-vae-fp16-fix",
torch_dtype=torch.float16
)
# 配置管道
pipe = StableDiffusionXLPipeline.from_pretrained(
"Linaqruf/animagine-xl-3.0",
vae=vae,
torch_dtype=torch.float16,
use_safetensors=True,
)
pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config)
pipe.to('cuda')
# 定义提示并生成图像
prompt = "1girl, arima kana, oshi no ko, solo, upper body, v, smile, looking at viewer, outdoors, night"
negative_prompt = "nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name"
image = pipe(
prompt,
negative_prompt=negative_prompt,
width=832,
height=1216,
guidance_scale=7,
num_inference_steps=28
).images[0]
✨ 主要特性
- 先进的图像生成能力:基于Stable Diffusion XL开发,在图像生成方面表现卓越,尤其在手部解剖结构、标签排序效率和动漫概念理解等方面有显著提升。
- 概念学习优先:着重让模型学习概念而非美学风格,能够更好地理解和生成特定概念的动漫图像。
- 支持多种平台:可通过Gradio和Google Colab等用户友好的平台访问。
📦 安装指南
要使用Animagine XL 3.0,请按以下步骤安装所需库:
pip install diffusers --upgrade
pip install transformers accelerate safetensors
💻 使用示例
基础用法
import torch
from diffusers import (
StableDiffusionXLPipeline,
EulerAncestralDiscreteScheduler,
AutoencoderKL
)
# 加载VAE组件
vae = AutoencoderKL.from_pretrained(
"madebyollin/sdxl-vae-fp16-fix",
torch_dtype=torch.float16
)
# 配置管道
pipe = StableDiffusionXLPipeline.from_pretrained(
"Linaqruf/animagine-xl-3.0",
vae=vae,
torch_dtype=torch.float16,
use_safetensors=True,
)
pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config)
pipe.to('cuda')
# 定义提示并生成图像
prompt = "1girl, arima kana, oshi no ko, solo, upper body, v, smile, looking at viewer, outdoors, night"
negative_prompt = "nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name"
image = pipe(
prompt,
negative_prompt=negative_prompt,
width=832,
height=1216,
guidance_scale=7,
num_inference_steps=28
).images[0]
高级用法
在使用过程中,可以根据需要调整提示词和参数,以获得不同风格和质量的图像。例如,使用特殊标签和质量修饰符可以更好地控制图像的质量和风格。
📚 详细文档
模型详情
属性 | 详情 |
---|---|
开发者 | Linaqruf |
模型类型 | 基于扩散的文生图生成模型 |
模型描述 | Animagine XL 3.0旨在根据文本提示生成高质量的动漫图像。它具有增强的手部解剖结构、更好的概念理解和提示解释能力,是该系列中最先进的模型。 |
许可证 | Fair AI Public License 1.0 - SD |
微调基础模型 | Animagine XL 2.0 |
提示词使用指南
标签排序
本次迭代的提示词使用方式略有不同,为了获得最佳效果,建议遵循以下结构化提示模板,因为模型是按照这种方式进行训练的:
1girl/1boy, 角色名称, 出自哪个系列, 其他内容可任意排序。
特殊标签
与前作一样,本模型在训练时使用了一些特殊标签,以引导生成结果在质量、评级和发布时间等方面达到更好的效果。即使不使用这些特殊标签,模型也能正常工作,但如果希望更轻松地控制模型,建议使用它们。
质量修饰符
质量修饰符 | 得分标准 |
---|---|
masterpiece |
>150 |
best quality |
100 - 150 |
high quality |
75 - 100 |
medium quality |
25 - 75 |
normal quality |
0 - 25 |
low quality |
-5 - 0 |
worst quality |
<-5 |
评级修饰符
评级修饰符 | 评级标准 |
---|---|
rating: general |
通用 |
rating: sensitive |
敏感 |
rating: questionable , nsfw |
有问题 |
rating: explicit , nsfw |
明确 |
年份修饰符
这些标签有助于引导生成结果呈现现代或复古的动漫艺术风格,范围从newest
到oldest
。
年份标签 | 年份范围 |
---|---|
newest |
2022 到 2023 |
late |
2019 到 2021 |
mid |
2015 到 2018 |
early |
2011 到 2014 |
oldest |
2005 到 2010 |
推荐设置
为了引导模型生成具有高美学价值的图像,建议使用以下负面提示词:
nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name
为了获得更高质量的结果,建议在提示词前添加:
masterpiece, best quality
然而,使用masterpiece
和best quality
时要小心,因为许多高分数据集包含NSFW内容。最好在负面提示词中添加nsfw
和rating: sensitive
,在正面提示词中添加rating: general
。建议使用较低的无分类器引导(CFG Scale),约为5 - 7,采样步数低于30,并使用Euler Ancestral(Euler a)作为采样器。
多 aspect 分辨率
本模型支持生成以下尺寸的图像:
尺寸 | 纵横比 |
---|---|
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 纵向 |
🔧 技术细节
训练和超参数
- Animagine XL 3.0 在配备80GB内存的2x A100 GPU上训练了21天,超过500个GPU小时。训练过程包括三个阶段:
- 基础阶段:
- 特征对齐阶段:使用120万张图像让模型熟悉基本的动漫概念。
- UNet 精炼阶段:使用2500个精选数据集仅对UNet进行微调。
- 精选阶段:
- 美学调整阶段:使用3500个高质量精选数据集来优化模型的艺术风格。
- 基础阶段:
超参数
阶段 | 轮数 | UNet学习率 | 是否训练文本编码器 | 文本编码器学习率 | 批量大小 | 混合精度 | 噪声偏移 |
---|---|---|---|---|---|---|---|
特征对齐阶段 | 10 | 7.5e - 6 | True | 3.75e - 6 | 48 x 2 | fp16 | N/A |
UNet精炼阶段 | 10 | 2e - 6 | False | N/A | 48 | fp16 | 0.0357 |
美学调整阶段 | 10 | 1e - 6 | False | N/A | 48 | fp16 | 0.0357 |
模型对比
配置项 | Animagine XL 2.0 | Animagine 3.0 |
---|---|---|
GPU | A100 80G | 2 x A100 80G |
数据集 | 170k + 83k 张图像 | 1271990 + 3500 张图像 |
打乱分隔符 | N/A | True |
全局轮数 | 20 | 20 |
学习率 | 1e - 6 | 7.5e - 6 |
批量大小 | 32 | 48 x 2 |
是否训练文本编码器 | True | True |
是否训练特殊标签 | True | True |
图像分辨率 | 1024 | 1024 |
桶分辨率 | 2048 x 512 | 2048 x 512 |
源代码和训练配置可在以下链接找到:https://github.com/cagliostrolab/sd - scripts/tree/main/notebook
📄 许可证
Animagine XL 3.0现在使用Fair AI Public License 1.0 - SD,该许可证与Stable Diffusion模型兼容。主要要点如下:
- 修改共享:如果您修改了Animagine XL 3.0,必须同时共享您的修改内容和原始许可证。
- 源代码可访问性:如果您的修改版本可以通过网络访问,需要提供一种方式(如下载链接)让他人获取源代码。这同样适用于派生模型。
- 分发条款:任何分发都必须遵循此许可证或具有类似规则的其他许可证。
- 合规性:如果违反规定,必须在30天内进行修复,否则许可证将被终止,强调透明度和遵守开源价值观。
选择此许可证的目的是确保Animagine XL 3.0保持开放和可修改性,符合开源社区的精神。它保护了贡献者和用户的权益,鼓励建立一个协作、道德的开源社区。这不仅确保模型受益于社区的投入,还尊重了开源开发的自由。
局限性
⚠️ 重要提示
虽然“Animagine XL 3.0”在动漫文生图生成方面取得了显著进展,但了解其局限性对于明确其最佳使用场景和未来改进方向至关重要。
- 概念优先于艺术风格:模型更注重学习概念而非特定的艺术风格,与前作相比,美学吸引力可能会有所不同。
- 非写实设计:Animagine XL 3.0并非用于生成逼真或写实的图像,而是专注于动漫风格的艺术作品。
- 解剖结构挑战:尽管有所改进,但模型在处理复杂的解剖结构时仍可能遇到困难,尤其是在动态姿势中,偶尔会出现不准确的情况。
- 数据集局限性:120万张图像的训练数据集可能无法涵盖所有动漫角色或系列,限制了模型生成不太知名或较新角色的能力。
- 自然语言处理:模型未针对自然语言解释进行优化,为了获得最佳结果,需要更结构化和具体的提示词。
- NSFW内容风险:使用“masterpiece”或“best quality”等高质量标签时,由于高分训练数据集中此类图像的普遍性,存在无意中生成NSFW内容的风险。
这些局限性指出了未来迭代中可能需要改进的方向,强调了精心设计提示词以获得最佳结果的重要性。了解这些限制可以帮助用户更好地利用模型的能力,并合理调整期望。
致谢
我们衷心感谢为Animagine XL 3.0的开发做出贡献的整个团队和社区,包括提供资源和重要见解的合作伙伴和协作者。
- 主要支持方:感谢提供开源资助支持我们的研究。
- Cagliostro Lab协作者:感谢在预训练期间进行质量检查和在微调期间整理数据集。
- Kohya SS:感谢提供重要的训练脚本,并合并了我们关于
keep_tokens_separator
或打乱分隔符的PR。 - Camenduru服务器社区:感谢提供宝贵的见解、支持和质量检查。
- NovelAI:感谢启发了如何构建数据集并使用标签排序进行标注。
协作者

