Stable Diffusion 是一个强大的 AI 图像生成工具,但它可能会消耗大量资源。在本指南中,我们将学习如何使用 AUTOMATIC1111 的 Stable Diffusion WebUI 来设置它。同时,我们将在 DigitalOcean GPU Droplet 云服务器上运行它,通过 H100 GPU 来提供最好的计算性能。而且通过 DIgitalOcean 的 GPU 云服务器可以让这个开发过程变得足够简单,即使你不是技术专家,也不用担心——只需跟随操作即可轻松实现!
准备工作
- 注册一个 DigitalOcean 云服务的账户。
- 在 DigitalOcean 后台开启一台 GPU Droplet 服务器。GPU Droplet 目前处于早期申请制阶段,但你可以访问卓普云官网申请。 目前 GPU Droplet 可提供配置了 H100, A100, A6000, A4000 几种型号 GPU 的服务器。
- 熟悉 Linux 命令行。
- 安装 Git 和 Python 3.10。
为什么使用 GPU Droplet?
技术上讲,Stable Diffusion 可以在 CPU 上运行,但速度较慢。而在 GPU 上运行可以显著提高性能——DigitalOcean 的 GPU Droplet 采用的是 NVIDIA H100,你可以按需申请实例——今天我们会启动一个 GPU Droplet 来实现本教程。
步骤 1:设置 GPU Droplet
1、创建一个 GPU Droplet
登录到你的 DigitalOcean 账户,创建一个新的 Droplet,并选择一个包含 GPU Plan(可以理解为套餐配置)。一个基本 GPU 计划(Basic GPU Plan)应该足以进行图像生成。
2、添加一个新用户(推荐)
出于安全原因,最好不要对所有事情都使用 root 用户:创建一个新用户会更好:
adduser do-shark
usermod -aG sudo do-shark
su do-shark
cd ~/
步骤 2:安装依赖项
登录进去后,更新 Droplet 并安装必要的工具:
sudo apt update
sudo apt install -y wget git python3 python3-venv
步骤 3:克隆 Stable Diffusion 仓库
从 GitHub 克隆此仓库:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
步骤 4:配置并运行 Stable Diffusion
设置一个 Python 虚拟环境
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
重建支持 CUDA 的 xFormers
为了利用 GPU 加速的优势,你需要重建支持 CUDA 的 xFormers。这一步确保您的环境针对性能进行了优化:
pip uninstall xformers
pip install xformers --extra-index-url https://download.pytorch.org/whl/nightly/cu118
可选步骤:使用 gpustat 监控 GPU 利用率
在运行 Stable Diffusion 时,您可以使用一个名为 gpustat 的工具来监控您的 GPU 利用率。这个工具为您提供 GPU 使用情况的实时信息,包括内存、温度和当前负载。
要安装和使用 gpustat,请按照以下步骤操作:
使用 pip 安装 gpustat:
pip install gpustat
安装后,您可以通过在另一个终端运行以下命令来监控您的 GPU 利用率:
gpustat --color -i 1
可选步骤:从 Direct Link 安装模型
如果你有模型下载链接,你可以使用 wget 命令轻松安装。以下是如何下载并安装 SDXL 模型的方法:
wget -O models/Stable-diffusion/stable-diffusion-xl.safetensors "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors"
此命令下载 SDXL 模型,并将其保存在 models/Stable-diffusion/ 目录中,文件名为 stable-diffusion-xl.safetensors。下载完成后,该模型将准备好在您的 Stable Diffusion 设置中使用。
运行 WebUI
现在,是时候启动 Stable Diffusion WebUI 了。运行以下命令以启动界面,启用 Gradio 分享、xFormers 用于 GPU 加速以及 API 访问:
./webui.sh --share --xformers --api --enable-insecure-extension-access
WebUI 运行后,打开你的浏览器并访问 https://[HASHING].gradio.live 来使用界面。请注意,此链接将在 72 小时后过期。
使用 CivitAI 浏览器扩展安装模型
运行 web-ui.sh 脚本后,你可以按照以下步骤通过 CivitAI 浏览器扩展安装模型:
1、导航到 WebUI 中的“Extensions”标签页。
2、转到“Available”子标签页。
3、点击标有“Load from”的橙色按钮,从仓库中加载可用的扩展。
4、在搜索栏中输入“CivitAI Browser+ ”并点击安装按钮。
5、安装完成后,转到“Installed”子标签页。
6、点击“Apply and restart UI”以激活扩展。
7、点击重启按钮后,由于重新启动,你的控制台可能会在“Reloading”处停止。从终端点击新的 https://[HASHING].gradio.live 链接。
WebUI 重新启动后,你将看到一个名为“CivitAI Browser+ ”的新标签页。这个扩展让你能够轻松地从 CivitAI 搜索和安装模型。
针对本教程,让我们在 CivitAI Browser+ 标签页中搜索“Western Animation”并安装它。选择带有超人缩略图的那个。我们将在速成课程的下一部分使用这个模型,通过文本到图像(txt2img)生成图像。
Stable Diffusion 提示应该如何写?
Stable Diffusion 是一个强大的 AI 图像生成工具,它使用正面提示和负面提示来指导 AI 创建特定图像。本教程将向你展示如何编写与海洋生物相关的提示,以及如何使用负面提示在 Stable Diffusion WebUI 中提高你的图像质量。
如何编写提示
提示是生成图像的核心部分。正面提示告诉 AI 你想要看到的内容,而负面提示有助于排除不需要的元素。以下是一些与海洋生物相关的示例,向你展示如何编写提示。
1、编写正面提示
编写提示时,使用英语描述你想要生成的内容。你可以使用简单的句子或逗号分隔的关键词来描述特征。以下是一些与海洋生物相关的示例:
生成一只在珊瑚礁上游泳的海龟:
a sea turtle swimming over a coral reef
或者简化成关键词:
sea turtle, swimming, coral reef, ocean
生成一群五颜六色的鱼:
colorful fish, swimming in the ocean, school of fish, tropical fish
2、使用负面提示
负面提示有助于排除不需要的元素,特别是在生成多张图像时。以下是一些常见的负面提示,以避免低质量或错误的结果:
lowres, bad anatomy, blurry, text, error, cropped, worst quality, jpeg artifacts, watermark, signature, low quality, worst quality
你还可以添加你不希望出现在海洋生物图像中的特定元素,比如人类角色或建筑物:
nsfw, weapon, blood, human, car, city, building
如何在 Stable Diffusion 中使用 txt2image
Stable Diffusion WebUI 的 txt2image 功能支持文生图。以下是如何使用它:
1、输入正面和负面提示: 在左侧文本框中,输入与海洋生物相关的提示,例如:
colorful fish, coral reef, underwater, ocean, vibrant colors
对于负面提示,排除不需要的元素:
lowres, bad anatomy, text, blurry, weapon, human
2、选择采样方法: 尝试使用“DPM++ 2M SDE Heun”,或“Euler a”作为采样方法。
3、设置图像尺寸和步骤: 将宽度和高度设置为1024x512,采样步骤设置为30。你还可以选择“Hires. fix”默认值来改善图像的细节,这甚至可能对海洋生物有所帮助。
4、生成图像: 点击右上角的“Generate”按钮开始生成图像。完成后,你可以根据需要保存或调整图像。
常见语法和扩展
Stable Diffusion WebUI 提供了不同的语法以提高图像生成的精确度。以下是一些有用的语法:
- 注意力/强调: 使用括号 ( ) 来强调提示中的某些元素。例如,要突出海豚的颜色:
dolphin, ((blue)), ocean, swimming
- 提示切换: 你可以在生成过程中使用这种语法切换提示:
shark : whale : 10] swimming in the ocean
示例提示
1、生成一只水下的章鱼:
octopus, underwater, ocean, coral reef, vibrant colors
负面提示:
lowres, blurry, bad anatomy, text, human
2、生成一只跃出水面的海豚:
dolphin, jumping out of the water, ocean, sunset, splash, realistic
负面提示:
lowres, bad anatomy, blurry, text, car, building
3、生成一只在深水中游泳的鲨鱼:
shark, swimming, deep ocean, dark blue water, scary, realistic
负面提示:
lowres, bad anatomy, blurry, text, human, building
小结
这只是你使用 DigitalOcean 的 GPU Droplets 与 Stable Diffusion 创造生成式 AI 艺术之旅的开始。在即将推出的系列内容中,我们将更深入地探讨如何运行 Docker 化的 Stable Diffusion API 与搭载了 GPU 的 DigitalOcean Kubernetes,并探索与其他 DigitalOcean 产品一起使用的实际用例。