Diffusers 文档

K扩散

Hugging Face's logo
加入 Hugging Face 社区

并获得增强文档体验

开始使用

K-Diffusion

k-diffusion 是由 Katherine Crowson 创建的一个流行库。我们提供了 StableDiffusionKDiffusionPipelineStableDiffusionXLKDiffusionPipeline,允许您使用 k-diffusion 中的采样器运行 Stable Diffusion。

请注意,k-diffusion 中的大多数采样器都在 Diffusers 中实现,我们建议使用现有的调度器。您可以在此处找到 k-diffusion 采样器和 Diffusers 中调度器之间的映射 此处

StableDiffusionKDiffusionPipeline

diffusers.StableDiffusionKDiffusionPipeline

< >

( vae text_encoder tokenizer unet scheduler safety_checker feature_extractor requires_safety_checker: bool = True )

参数

  • vae (AutoencoderKL) — 变分自动编码器 (VAE) 模型,用于将图像编码和解码到潜在表示中,以及从潜在表示中编码和解码图像。
  • text_encoder (CLIPTextModel) — 冻结的文本编码器。Stable Diffusion 使用 CLIP 的文本部分,特别是 clip-vit-large-patch14 变体。
  • tokenizer (CLIPTokenizer) — 类 CLIPTokenizer 的标记器。
  • unet (UNet2DConditionModel) — 用于对编码图像潜在表示进行去噪的条件 U-Net 架构。
  • scheduler (SchedulerMixin) — 与 unet 结合使用以对编码图像潜在表示进行去噪的调度器。可以是 DDIMSchedulerLMSDiscreteSchedulerPNDMScheduler 之一。

  • safety_checker (StableDiffusionSafetyChecker) — 用于评估生成图像是否可能被视为冒犯性或有害的分类模块。请参阅模型卡片以获取详细信息。
  • feature_extractor (CLIPImageProcessor) — 从生成的图像中提取特征的模型,这些特征将用作safety_checker的输入。

使用 Stable Diffusion 进行文本到图像生成的管道。

此模型继承自DiffusionPipeline。请查看超类文档以了解库为所有管道实现的通用方法(例如下载或保存、在特定设备上运行等)。

该管道还继承以下加载方法

这是一个实验性管道,将来可能会发生变化。

encode_prompt

< >

( prompt device num_images_per_prompt do_classifier_free_guidance negative_prompt = None prompt_embeds: Optional = None negative_prompt_embeds: Optional = None lora_scale: Optional = None clip_skip: Optional = None )

参数

  • prompt (strList[str], 可选) — 要编码的提示 device — (torch.device): torch 设备
  • num_images_per_prompt (int) — 每个提示应生成的图像数量
  • do_classifier_free_guidance (bool) — 是否使用分类器自由引导
  • negative_prompt (strList[str], 可选) — 不应引导图像生成的提示或提示。如果未定义,则必须传递negative_prompt_embeds。在不使用引导时被忽略(即,如果guidance_scale小于1则被忽略)。
  • prompt_embeds (torch.Tensor, 可选) — 预生成的文本嵌入。可用于轻松调整文本输入,例如提示加权。如果未提供,则将从prompt输入参数生成文本嵌入。
  • negative_prompt_embeds (torch.Tensor, 可选) — 预生成的负文本嵌入。可用于轻松调整文本输入,例如提示加权。如果未提供,则将从negative_prompt输入参数生成negative_prompt_embeds
  • clip_skip (int, 可选) — 计算提示嵌入时跳过的 CLIP 层数。值为 1 表示将使用倒数第二层的输出计算提示嵌入。

将提示编码为文本编码器隐藏状态。

StableDiffusionXLKDiffusionPipeline

diffusers.StableDiffusionXLKDiffusionPipeline

< >

( vae: AutoencoderKL text_encoder: CLIPTextModel text_encoder_2: CLIPTextModelWithProjection tokenizer: CLIPTokenizer tokenizer_2: CLIPTokenizer unet: UNet2DConditionModel scheduler: KarrasDiffusionSchedulers force_zeros_for_empty_prompt: bool = True )

参数

  • vae (AutoencoderKL) — 变分自动编码器 (VAE) 模型,用于将图像编码和解码为潜在表示。
  • text_encoder (CLIPTextModel) — 冻结的文本编码器。Stable Diffusion XL 使用 CLIP 的文本部分,具体来说是 clip-vit-large-patch14 变体。
  • text_encoder_2 ( CLIPTextModelWithProjection) — 第二个冻结的文本编码器。Stable Diffusion XL 使用 CLIP 的文本和池化部分,具体来说是 laion/CLIP-ViT-bigG-14-laion2B-39B-b160k 变体。
  • tokenizer (CLIPTokenizer) — 类 CLIPTokenizer 的分词器。
  • tokenizer_2 (CLIPTokenizer) — 类 CLIPTokenizer 的第二个分词器。
  • unet (UNet2DConditionModel) — 用于对编码图像潜在表示进行去噪的条件 U-Net 架构。
  • scheduler (SchedulerMixin) — 用于与 unet 结合对编码图像潜在变量进行去噪的调度器。可以是 DDIMSchedulerLMSDiscreteSchedulerPNDMScheduler 之一。
  • force_zeros_for_empty_prompt (bool, 可选,默认为 "True") — 是否强制将负提示嵌入设置为 0。另请参阅 stabilityai/stable-diffusion-xl-base-1-0 的配置。

使用 Stable Diffusion XL 和 k-diffusion 进行文本到图像生成的管道。

此模型继承自DiffusionPipeline。请查看超类文档以了解库为所有管道实现的通用方法(例如下载或保存、在特定设备上运行等)。

该管道还继承以下加载方法

encode_prompt

< >

( prompt: str prompt_2: Optional = None device: Optional = None num_images_per_prompt: int = 1 do_classifier_free_guidance: bool = True negative_prompt: Optional = None negative_prompt_2: Optional = None prompt_embeds: Optional = None negative_prompt_embeds: Optional = None pooled_prompt_embeds: Optional = None negative_pooled_prompt_embeds: Optional = None lora_scale: Optional = None clip_skip: Optional = None )

参数

  • prompt (strList[str], 可选) — 要编码的提示
  • prompt_2 (strList[str], 可选) — 要发送到 tokenizer_2text_encoder_2 的提示或提示。如果未定义,则两个文本编码器都使用 prompt device — (torch.device): torch 设备
  • num_images_per_prompt (int) — 每个提示应生成的图像数量
  • do_classifier_free_guidance (bool) — 是否使用分类器免费引导
  • negative_prompt (strList[str], 可选) — 不引导图像生成的提示或提示。如果未定义,则必须传递 negative_prompt_embeds。在不使用引导时被忽略(即,如果 guidance_scale 小于 1,则被忽略)。
  • negative_prompt_2 (strList[str], 可选) — 发送到 tokenizer_2text_encoder_2 的提示或提示,用于引导图像生成。如果未定义,则两个文本编码器都使用 negative_prompt
  • prompt_embeds (torch.Tensor, 可选) — 预生成的文本嵌入。可用于轻松调整文本输入,例如 提示加权。如果未提供,则将从 prompt 输入参数生成文本嵌入。
  • negative_prompt_embeds (torch.Tensor, 可选) — 预生成的负面文本嵌入。可用于轻松调整文本输入,例如 提示加权。如果未提供,则将从 negative_prompt 输入参数生成 negative_prompt_embeds。
  • pooled_prompt_embeds (torch.Tensor, 可选) — 预生成的池化文本嵌入。可用于轻松调整文本输入,例如 提示加权。如果未提供,则将从 prompt 输入参数生成池化文本嵌入。
  • negative_pooled_prompt_embeds (torch.Tensor, 可选) — 预生成的负面池化文本嵌入。可用于轻松调整文本输入,例如 提示加权。如果未提供,则将从 negative_prompt 输入参数生成池化 negative_prompt_embeds。
  • lora_scale (float, 可选) — 如果加载了 LoRA 层,则将应用于文本编码器所有 LoRA 层的 LoRA 比例。
  • clip_skip (int, 可选) — 计算提示嵌入时要从 CLIP 跳过的层数。值为 1 表示将使用倒数第二层的输出计算提示嵌入。

将提示编码为文本编码器隐藏状态。

< > 在 GitHub 上更新