Stable Cascade

详情

下载文件

模型描述

演示

Stable Cascade

该模型基于 Würstchen 架构构建,其与 Stable Diffusion 等其他模型的主要区别在于,它在小得多的潜在空间中运行。为什么这很重要?潜在空间越小,推理速度就越,训练成本就越

潜在空间有多小?Stable Diffusion 使用 8 倍压缩因子,将 1024x1024 图像编码为 128x128。而 Stable Cascade 实现了 42 倍压缩因子,这意味着它能够将 1024x1024 图像编码为 24x24,同时仍保持清晰的重建效果。文本条件模型则在高度压缩的潜在空间中进行训练。该架构的先前版本相比 Stable Diffusion 1.5 实现了 16 倍的成本降低。

因此,这类模型非常适合对效率要求较高的应用场景。此外,所有已知的扩展方法,如微调、LoRA、ControlNet、IP-Adapter、LCM 等,也同样适用于此方法。

模型详情

模型描述

Stable Cascade 是一个扩散模型,旨在根据文本提示生成图像。

  • 开发方:Stability AI
  • 资助方:Stability AI
  • 模型类型:生成式文生图模型

模型来源

出于研究目的,我们推荐使用我们的 StableCascade GitHub 仓库:https://github.com/Stability-AI/StableCascade

模型概览

Stable Cascade 由三个模型组成:Stage A、Stage B 和 Stage C,它们共同构成一个图像生成级联结构,因此得名“Stable Cascade”。

Stage A 和 B 用于压缩图像,类似于 Stable Diffusion 中 VAE 的作用。

然而,这种架构能够实现更高的图像压缩率。Stable Diffusion 模型使用 8 倍的空间压缩因子,将 1024x1024 图像编码为 128x128;而 Stable Cascade 实现了 42 倍压缩因子,将 1024x1024 图像编码为 24x24,同时仍能精确解码图像。这带来了训练和推理成本大幅降低的巨大优势。此外,Stage C 负责根据文本提示生成 24x24 的小尺寸潜在表示。下图直观展示了这一过程。

本次发布提供:Stage C 两个检查点、Stage B 两个检查点、Stage A 一个检查点。Stage C 包含 10 亿和 36 亿参数两个版本,但我们强烈推荐使用 36 亿参数版本,因为大部分微调工作都集中于此。Stage B 的两个版本参数量分别为 7 亿和 15 亿,两者均表现优异,但 15 亿版本在重建细微细节方面更胜一筹。因此,若要获得最佳效果,建议每阶段均使用较大版本。最后,Stage A 包含 2000 万参数,因其体积较小,参数固定不变。

评估

根据我们的评估,Stable Cascade 在几乎所有对比中均在提示对齐和美学质量方面表现最佳。上图展示了使用混合了 parti-prompts(链接)和美学提示的人类评估结果。具体而言,Stable Cascade(30 步推理)与 Playground v2(50 步推理)、SDXL(50 步推理)、SDXL Turbo(1 步推理)和 Würstchen v2(30 步推理)进行了比较。

代码示例

⚠️ 重要:要使以下代码正常运行,您必须在 PR 完成前从该分支安装 diffusers

pip install git+https://github.com/kashif/diffusers.git@wuerstchen-v3
import torch

from diffusers import StableCascadeDecoderPipeline, StableCascadePriorPipeline

device = "cuda"

num_images_per_prompt = 2

prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", torch_dtype=torch.bfloat16).to(device)

decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", torch_dtype=torch.float16).to(device)

prompt = "Anthropomorphic cat dressed as a pilot"

negative_prompt = ""

prior_output = prior(

prompt=prompt,

height=1024,

width=1024,

negative_prompt=negative_prompt,

guidance_scale=4.0,

num_images_per_prompt=num_images_per_prompt,

num_inference_steps=20

)

decoder_output = decoder(

image_embeddings=prior_output.image_embeddings.half(),

prompt=prompt,

negative_prompt=negative_prompt,

guidance_scale=0.0,

output_type="pil",

num_inference_steps=10

).images

# 现在 decoder_output 是一个包含 PIL 图像的列表

使用场景

直接使用

目前该模型仅限于研究用途。可能的研究领域和任务包括:

  • 生成式模型研究。
  • 安全部署可能生成有害内容的模型。
  • 探索和理解生成式模型的局限性与偏见。
  • 艺术创作生成及在设计和其他艺术过程中的应用。
  • 教育或创意工具中的应用。

以下用途被排除在外。

超出范围的使用

该模型并未训练用于真实或准确地表现人物或事件,因此使用该模型生成此类内容超出了其能力范围。

不得以任何方式违反 Stability AI 的 可接受使用政策 使用本模型。

局限性与偏见

局限性

  • 面部和人物整体可能无法正确生成。
  • 模型的自编码部分是有损的。

建议

本模型仅限用于研究目的。

如何开始使用该模型

请访问 https://github.com/Stability-AI/StableCascade

此模型生成的图像

未找到图像。