跳至主要内容

如何运行 Stable Diffusion:分步指南

了解如何使用 Stable Diffusion,这一先进的开源深度学习模型可根据文本描述生成高质量图像。本教程介绍模型工作原理,并提供在线与本地运行 Stable Diffusion 的分步说明。
· 7分钟 阅读

使用 AI 探索

Stability AI 是一家成立于 2019 年的初创公司,与多所学术机构和非营利组织合作开发了 Stable Diffusion 模型,并于 2022 年首次发布。

Stable Diffusion 是一个开源深度学习模型,旨在根据文本描述生成高质量、细节丰富的图像。它还可以根据文本输入修改现有图像,或提升低分辨率图像的质量。该模型不断演进,最新的进展进一步提升了其性能与能力。

本文将介绍 Stable Diffusion 的工作原理,并讲解多种运行它的方法。

What is Stable Diffusion?

Stable Diffusion 是由 Stability AI 开发的先进开源深度学习模型。自 2022 年发布以来,它在根据文本描述生成高质量、细节丰富的图像方面表现出色。该模型用途广泛,既能修改现有图像,也能通过文本输入增强低分辨率图像。

Stable Diffusion 最初在包含 23 亿张图像的海量数据集上训练,利用生成式建模和扩散过程的原理。通过从训练数据中学习模式与结构,它能够创建全新的、逼真的图像。其能力可与其他最前沿模型相媲美,是图像生成与编辑等广泛应用中的强大工具。

2024 年 2 月,Stability AI 发布了 Stable Diffusion 3 的早期预览版,展示了显著的性能提升,尤其是在处理多主体提示、图像质量与拼写方面。Stable Diffusion 3 系列的参数规模从 8 亿到 80 亿不等,强调可扩展性与质量,以满足多样化的创作需求。到 2024 年 6 月,Stable Diffusion 3 Medium(20 亿参数)发布,成为重要里程碑,在标准消费级 GPU 上高效运行的同时,提供了卓越的细节、色彩与写实度。

Stable Diffusion 3 引入了全新的 多模态 Diffusion Transformer(MMDiT)架构,针对图像与语言表示分别使用独立的权重集合。与前代模型相比,这一创新增强了文本理解与拼写能力。基于人类偏好评估,Stable Diffusion 3 在排版与提示遵循方面 优于 DALL·E 3、Midjourney v6 与 Ideogram v1 等其他领先的文生图系统。

Stability AI 发表了全面的研究论文,详细阐述了 Stable Diffusion 3 的底层技术,并突出了其改进点与卓越性能。这些增强使 Stable Diffusion 3 成为从文本描述生成高质量图像的强大工具,尤其在处理复杂提示与生成逼真输出方面有显著提升。

How Does Stable Diffusion Work?

Stable Diffusion 是扩散模型这一类深度学习模型的复杂代表,更具体地说,它属于生成式模型。此类模型旨在生成与训练数据相似的新数据,能够基于所学的模式与结构创造出新的、逼真的输出。

扩散模型的灵感来源于物理学中的扩散概念,即粒子会随着时间从高浓度区域向低浓度区域扩散。在深度学习语境中,扩散模型在高维数据空间中模拟这一过程。模型从随机噪声开始,经过一系列步骤逐步细化这些噪声,从而生成连贯且高质量的图像。

生成式建模是一种无监督学习,通过训练模型自动发现并学习输入数据中的模式。训练完成后,模型可以生成与原始数据相似的新样本。这种能力使生成式模型特别适用于图像合成、数据增强等任务。

如果您希望更深入了解这些模型,欢迎学习我们的 Python 深度学习课程路径。

The Diffusion Process

Stable Diffusion 的扩散过程包含两个主要阶段:正向扩散过程与反向去噪过程。

1. 正向扩散过程:

此阶段会在多个步骤中逐步向训练数据(图像)添加噪声,直到图像变为纯噪声。该过程在数学上被设计为可逆。

2. 反向去噪过程:

在此阶段,模型学习如何逆转加噪过程。从随机噪声开始,模型通过多步迭代对图像去噪,逐渐重建连贯且高质量的图像。该反向过程由模型从训练数据中学到的模式与结构加以引导。

Multimodal Diffusion Transformer (MMDiT) Architecture

Stable Diffusion 3 引入了一种名为 Multimodal Diffusion Transformer(MMDiT,多模态扩散 Transformer)的新架构。该架构针对图像与语言表示分别采用独立的权重集合,增强了模型理解与生成基于文本的提示的能力。通过为图像与文本信息设置不同的处理通道,MMDiT 提升了生成图像的连贯性与准确性,尤其在处理复杂提示与排版方面表现更佳。

Stable Diffusion Practical Applications

Stable Diffusion 可用于多种实用场景,包括:

  • 图像生成:根据文本描述创建新图像。
  • 图像修改:基于文本提示修改现有图像。
  • 图像增强:提升低分辨率图像的质量。

这些能力使 Stable Diffusion 成为艺术家、设计师、研究人员以及所有希望探索生成式 AI潜力的人的强大工具。

How To Run Stable Diffusion Online

如果您希望立刻开始使用 Stable Diffusion 模型,可以借助以下工具在线运行。

1. DreamStudio

Stable Diffusion 的创建者 Stability AI 通过其在线工具 DreamStudio,让好奇的用户可以极其便捷地测试这款文生图模型。

DreamStudio 为用户提供对最新 Stable Diffusion 模型版本的访问权限,并可在最短 15 秒内生成图像。

DreamStudio UI

DreamStudio 用户界面。图片来源:DreamStudio。

撰写本教程时,新用户可获赠 100 个免费点数用于体验 DreamStudio,按照默认设置可生成 500 张图像!您也可以在应用内按需购买更多点数,价格为每 1000 点数 10.00 美元。

2. Hugging Face

Hugging Face 是一个倡导开源贡献的 AI 社区与平台。虽然它因其Transformer 模型而广为人知,但 Hugging Face 也提供了对最新 Stable Diffusion 模型的访问,而且秉承开源精神,免费可用。

要在 Hugging Face 上运行 Stable Diffusion,您可以试用官方演示,例如Stable Diffusion 2.1 演示。

使用 Hugging Face 的权衡在于,您无法像在 DreamStudio 中那样自定义参数,而且生成图像的时间也会明显更长。

Hugging Face Stable Diffusion

Hugging Face 中的 Stable Diffusion 演示。图片作者自制。

How to Run Stable Diffusion Locally

如果您希望在本地计算机上体验 Stable Diffusion?我们也已准备好步骤。

在本地运行 Stable Diffusion,您可以尝试多种文本输入,以生成更符合您需求的图像。您还可以在自己的数据上微调模型,以提升在特定输入条件下的效果。

免责声明:本地运行 Stable Diffusion 需要配备 GPU。

步骤 1:安装 Python 和 Git

要从本地计算机运行 Stable Diffusion,您需要 Python 3.10.6。可从官方Python 网站进行安装。如果遇到问题,请参考我们的Python 安装指南。

安装完成后,打开命令提示符,输入 python 并执行命令,以检查是否安装成功。应打印出您所使用的 Python 版本。

免责声明:运行 Stable Diffusion 的推荐版本是 Python 3.10.6。为避免问题,建议不要在没有该版本的情况下继续。

接下来,您需要安装代码仓库管理系统 Git。可参考Git 安装教程,并通过我们的Git 入门课程进一步加深理解。

步骤 2:创建 GitHub 与 Hugging Face 账户

GitHub 是一个软件开发托管平台,开发者在此托管代码,以便在项目上进行追踪与协作。如果您还没有 GitHub 账户,现在就创建一个吧——可参阅GitHub 与 Git 新手教程获取帮助。

Hugging Face 则是一个倡导开源贡献的 AI 社区。它是多个领域 AI 模型的集散地,包括自然语言处理、计算机视觉等。您需要一个账户才能下载最新版本的 Stable Diffusion。我们将在后续步骤中进行。

步骤 3:克隆 Stable Diffusion Web-UI

本步骤将把 Stable Diffusion Web-UI 下载到您的本地计算机。建议为此创建一个专用文件夹(例如 stable-diffusion-demo-project),但并非必须。

1. 打开 Git Bash:

  • 确保您的计算机已安装 Git Bash。

2. 导航到目标文件夹:

  • 打开 Git Bash,使用 cd 命令进入您希望克隆 Stable Diffusion Web-UI 的文件夹。例如:
cd path/to/your/folder

3. 克隆仓库:

  • 运行以下命令克隆 Stable Diffusion Web-UI 仓库:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

4. 验证克隆结果:

  • 若命令执行成功,您应在目标目录中看到一个名为 stable-diffusion-webui 的新文件夹。

Install stable diffusion

注意:您可在 Stable Diffusion Web UI 的 GitHub 仓库中找到针对您硬件与操作系统的更具体说明。

步骤 4:下载最新的 Stable Diffusion 模型

1. 登录 Hugging Face:

2. 下载 Stable Diffusion 模型:

3. 定位模型文件夹:

  • 在您的计算机上导航至:stable-diffusion-webui\models\Stable-diffusion

4. 移动已下载的模型:

  • 在 Stable-diffusion 文件夹中,您会看到一个名为 Put Stable Diffusion Checkpoints here 的文本文件。
  • 将下载好的 Stable Diffusion 模型文件移动到该文件夹中。

步骤 5:设置 Stable Diffusion Web UI

本步骤将安装运行 Stable Diffusion 所需的工具。

1. 打开命令提示符或终端。

2. 进入 Stable Diffusion Web UI 文件夹:

  • 使用 cd 命令进入先前克隆的 stable-diffusion-webui 文件夹。例如:
cd path/to/stable-diffusion-webui

3. 运行安装脚本:

  • 进入 stable-diffusion-webui 文件夹后,运行以下命令:
webui-user.bat

该脚本会创建虚拟环境,并安装运行 Stable Diffusion 所需的全部依赖。整个过程大约需要 10 分钟,请耐心等待。

注意:您可在 Stable Diffusion Web UI 的 GitHub 仓库中找到针对您硬件与操作系统的更具体说明。

步骤 6:在本地运行 Stable Diffusion

依赖安装完成后,您的命令提示符中会出现一个 URL:http://127.0.0.1:7860。

  • 将其复制并粘贴到浏览器中即可运行 Stable Diffusion Web UI。
  • 现在,您可以开始输入提示并生成图像了!

Stable diffusion dashboard

本地运行的 Stable Diffusion Web UI。图片作者自制。

Conclusion

Stable Diffusion 标志着生成式 AI 领域的重要进步。它能够根据文本描述生成高质量、细节丰富的图像。无论是修改现有图像、增强低分辨率图像,还是从零创作全新视觉内容,Stable Diffusion 都提供了强大而灵活的工具集。

随着 Stable Diffusion 3 与 Medium 的最新更新与改进,模型能力进一步增强,成为生成式 AI 领域的佼佼者。

通过在本地或借助 DreamStudio、Hugging Face 等在线平台运行 Stable Diffusion,您可以探索并充分利用其潜力。按照本指南中的步骤进行设置,便可开始使用 Stable Diffusion 满足您的创意与实践需求!

进一步了解生成式 AI

生成式 AI 是一种突破性的深度学习范式,能够基于训练数据生成高质量的文本、图像及其他内容。Stable Diffusion、ChatGPT 与 DALL-E 等工具正通过促成全新的创造力与创新形式,重塑各行各业。随着这些技术不断发展,它们为艺术家、开发者与研究人员拓展可能性的边界带来新机遇。

如果您希望更深入地探索生成式 AI,以下资源值得一看:

FAQs

没有独立显卡的电脑可以运行 Stable Diffusion 吗?

运行 Stable Diffusion 需要相当可观的算力,通常由独立显卡(GPU)提供。理论上可以在 CPU 上运行,但过程会非常缓慢且低效。为获得最佳体验,建议使用配备至少 6GB 显存的高性能 GPU 的机器。

如何用我自己的数据集微调 Stable Diffusion?

微调 Stable Diffusion 指的是在您的特定数据集上对模型重新训练,以提升其在您的用例上的表现。这个过程需要对机器学习有良好理解,并具备合适的计算环境。一般而言,您需要准备数据集、修改训练脚本以纳入您的数据,然后使用高性能 GPU 运行训练过程。有关模型微调的详细说明,通常可在诸如 PyTorch 等机器学习框架的文档中找到。

请查看我们的教程《使用 DreamBooth 与 LoRA 微调 Stable Diffusion XL》了解更多信息。

本地运行 Stable Diffusion 可能遇到哪些常见问题?如何排查?

常见问题包括:

  • 安装错误:确保所有依赖正确安装且与您的系统兼容。
  • 显存不足错误:如果 GPU 显存不足,请降低图像尺寸或批大小。
  • 运行缓慢:检查 GPU 驱动是否为最新版本,并确保系统未运行其他高负载进程。

请参阅 GitHub 仓库的 Issues 页面与社区论坛,获取具体的故障排除建议与解决方案。

如何优化 Stable Diffusion 在我的 GPU 上的性能?

要优化 Stable Diffusion 在 GPU 上的性能:

  • 更新驱动:确保您的 GPU 驱动为最新。
  • 调整设置:降低图像分辨率或批大小,以适配 GPU 的显存限制。
  • 使用优化库:对于 NVIDIA GPU,使用 CUDA 与 cuDNN 等优化库与框架。
  • 关闭后台进程:关闭不必要的后台进程以释放系统资源。
  • 监控性能:使用监控工具跟踪 GPU 使用情况,并据此调整设置以获得最佳性能。
我可以用 Stable Diffusion 生成动画或视频吗?

虽然 Stable Diffusion 主要用于生成静态图像,但可以通过生成连续帧并将其合成为动画或视频。常见方法包括:

  • 逐帧生成:对每一帧在输入提示或随机种子上做轻微变化以生成独立帧。
  • 插值:对 Stable Diffusion 生成的关键帧之间进行插值。
  • 视频剪辑软件:使用视频剪辑软件合成帧,生成流畅的动画或视频。请注意,制作高质量动画通常需要大量后期处理与视频剪辑专业能力。
Kurtis Pykes

作者

Kurtis Pykes

主题