Stable Diffusion 简介
在个人简介部分简洁介绍自己 #生活技巧# #工作学习技巧# #个人简历撰写技巧#
本章介绍 Stable Diffusion 的构建模块,它是一种生成式人工智能 (generative AI) 模型,可以根据文本和图像提示生成独特的逼真图像。它最初于 2022 年发布,得益于 Stability AI、RunwayML 和慕尼黑大学 LMU 的 CompVis Group 之间的合作,并遵循 论文。
本章将学到什么?
Stable Diffusion 的基本组成部分 如何使用 text-to-image(文本到图像)、image2image(图像到图像)和 inpainting(图像修复)管道Stable Diffusion 工作需要什么?
为了让这一节更有趣,我们将尝试回答一些问题来理解 Stable Diffusion 过程的基本组成部分。我们将简要讨论每个组成部分,因为它们在我们的 Diffusers 课程中已经涵盖。此外,您可以访问我们之前关于 GAN 和扩散模型的详细介绍的部分。
Stable Diffusion 采用什么策略来学习新信息?它使用了扩散模型的前向和反向过程。在前向过程中,我们向图像添加高斯噪声,直到只剩下随机噪声。通常我们无法识别图像的最终噪声版本。 在反向过程中,我们有一个经过训练的神经网络,它能够从纯噪声开始逐步对图像进行去噪,直到最终得到一张实际的图像。这两个过程都发生在有限的步数 T(根据 DDPM 论文,T=1000)内。您从时间t0
当您有大图像时,它们需要更多的计算能力来处理。在一种称为自注意力的特定操作中,这一点尤为明显。图像越大,需要的计算越多,这些计算随着图像的大小增加得非常快(用数学家的话来说是“二次方”增长)。例如,一张 128 像素宽高的图像,其像素数量是 64 像素宽高的图像的四倍。由于自注意力的工作方式,处理这张更大的图像不仅需要四倍的内存和计算能力,实际上需要十六倍(因为 4 乘以 4 等于 16)。这使得处理高分辨率图像变得具有挑战性,因为它们需要大量的资源来处理。潜在扩散模型通过使用变分自编码器 (VAE) 将图像缩小到更易于管理的尺寸,来解决处理大图像的高计算需求。其思想是,许多图像包含重复或不必要的信息。VAE 在经过大量数据训练后,可以将图像压缩成更小、更浓缩的形式。这个较小的版本仍然保留了原始图像的关键特征。
我们如何在生成图像时融合文本(因为我们使用提示)?我们知道,在推理时,我们可以输入我们想要看到的图像的描述和一些纯噪声作为起点,然后模型会尽力将随机输入“去噪”成与标题匹配的内容。SD 利用了一个基于 CLIP 的预训练 Transformer 模型。CLIP 的文本编码器旨在将图像标题处理成可用于比较图像和文本的形式,因此非常适合从图像描述中创建有用的表示。输入提示首先被分词(基于一个大型词汇表,其中每个单词或子单词都被分配一个特定的词元),然后通过 CLIP 文本编码器进行处理,为每个词元生成一个 768 维(SD 1.X 版本)或 1024 维(SD 2.X 版本)的向量。为了保持一致性,提示总是被填充/截断为 77 个词元长,因此我们作为条件使用的最终表示是每个提示的 77x1024 形状的张量。
如何添加良好的归纳偏置?既然我们要生成新的东西(例如,一只逼真的宝可梦),我们就需要一种方法来超越我们之前看过的图像(例如,一只动漫宝可梦)。这就是 U-Net 和自注意力的用武之地。给定图像的噪声版本,模型需要根据附加线索(例如图像的文本描述)来预测去噪后的版本。好的,我们如何将这种条件信息馈送到 U-Net 中,以便它在进行预测时使用?答案是所谓的交叉注意力。U-Net 的各个位置都可以“关注”文本条件中的不同词元,从而带来提示中的相关信息。
如何使用 Diffusers 中的文本到图像、图像到图像、图像修复模型
本节介绍有用的用例以及如何使用 Diffusers 库执行这些任务。
text-to-image(文本到图像)推理步骤:将文本提示传递进去,然后将其转换为输出图像。使用 diffusers 库,您可以在 2 个步骤中完成 text-to-image(文本到图像)操作。
首先,让我们安装 diffusers 库。
pip install diffusers
现在我们将初始化管道,传入我们的提示并进行推理。
from diffusers import AutoPipelineForText2Image import torch pipeline = AutoPipelineForText2Image.from_pretrained( "runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16, variant="fp16" ).to("cuda") generator = torch.Generator(device="cuda").manual_seed(31) image = pipeline( "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k", generator=generator, ).images[0] image-to-image(图像到图像)推理步骤:类似地,我们可以初始化管道,但传入一个图像和一个文本提示。
import torch from diffusers import AutoPipelineForImage2Image from diffusers.utils import load_image, make_image_grid pipeline = AutoPipelineForImage2Image.from_pretrained( "kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16, use_safetensors=True, ) pipeline.enable_model_cpu_offload() pipeline.enable_xformers_memory_efficient_attention() init_image = load_image( "https://hugging-face.cn/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png" ) prompt = "cat wizard, gandalf, lord of the rings, detailed, fantasy, cute, adorable, Pixar, Disney, 8k" image = pipeline(prompt, image=init_image).images[0] make_image_grid([init_image, image], rows=1, cols=2) Inpainting(图像修复)步骤:对于图像修复管道,我们需要传入一个图像、一个文本提示以及一个基于图像中对象的掩码,该掩码指示要在图像中修复什么。在此示例中,我们还传入了一个负面提示,以进一步影响推理,让我们知道要避免什么。
import torch from diffusers import AutoPipelineForInpainting from diffusers.utils import load_image, make_image_grid pipeline = AutoPipelineForInpainting.from_pretrained( "kandinsky-community/kandinsky-2-2-decoder-inpaint", torch_dtype=torch.float16 ) pipeline.enable_model_cpu_offload() pipeline.enable_xformers_memory_efficient_attention() init_image = load_image( "https://hugging-face.cn/datasets/huggingface/documentation-images/resolve/main/diffusers/inpaint.png" ) mask_image = load_image( "https://hugging-face.cn/datasets/huggingface/documentation-images/resolve/main/diffusers/inpaint_mask.png" ) prompt = ( "a black cat with glowing eyes, cute, adorable, disney, pixar, highly detailed, 8k" ) negative_prompt = "bad anatomy, deformed, ugly, disfigured" image = pipeline( prompt=prompt, negative_prompt=negative_prompt, image=init_image, mask_image=mask_image, ).images[0] make_image_grid([init_image, mask_image, image], rows=1, cols=3)
进一步阅读
Diffusers 文档 Diffusers 安装 在 GitHub 上更新网址:Stable Diffusion 简介 https://klqsh.com/news/view/360540
相关内容
AI绘画Stable Diffusion 电商教程,带你解析电商成功秘籍!来自秋叶aaaki的Stable Diffusion整合包v4.10 下载
罗霄教授莅临三亚学院艺术学院,开展《生成式AI艺术原理与创作过程》夏季短学期专题讲座
Diffusion Creep in Perovskite: Implications for the Rheology of the Lower Mantle
10+ 好用的 AI 图像生成工具:释放你的创意潜能
ComfyUI 完全入门:ControlNet 使用教程
星绘网页版入口、使用教程
来自秋叶aaaki的ComfyUI整合包 v1.6 下载
Mivelle 65mm Large Bearing Silent Stable Hamster Smart Digital Display Running Wheel
AI批量出小红书旅游笔记,火兔工具箱轻松搞定!

