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
### Rebuild xFormers with CUDA Support
To take advantage of GPU acceleration, you’ll need to rebuild xFormers with CUDA support. This step ensures your environment is optimized for performance:
### Modifying `webui-user.sh` to Enable Public Access via Gradio and API
To ensure that you can get a publicly accessible link via Gradio, enable the GPU acceleration by formers, and enable the backend API, follow these steps to modify the `webui-user.sh` file.
- Open the `webui-user.sh` file using a text editor:
```bash
nano webui-user.sh
在其他命令之前添加以下行:
export COMMANDLINE_ARGS="--share --api --xformers"
保存并关闭文件。在 nano 中,可以通过按 CTRL + X,然后输入 Y 确认,最后按 Enter 来完成。
pip uninstall xformers
pip install xformers --extra-index-url https://download.pytorch.org/whl/nightly/cu118
可选步骤:从 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"
This command downloads the SDXL model and saves it in the `models/Stable-diffusion/ directory` with the filename `stable-diffusion-xl.safetensors`. Once the download is complete, the model will be ready for use in your Stable Diffusion setup.
Open your browser and go to `http://your_droplet_ip:7860` to access the interface.
![sd-portal](https://doimages.nyc3.cdn.digitaloceanspaces.com/006Community/Stable-Diffusion-GPU-Droplet/sd-portal.png)
### Optional: Monitor GPU Utilization with `gpustat`
If you want to monitor your GPU utilization while running Stable Diffusion, you can use a tool called `gpustat`. This tool gives you real-time information about your GPU usage, including memory, temperature, and current load.
To install and use `gpustat`, follow these steps:
Install `gpustat` using `pip`:
```bash
pip install gpustat
安装后,你可以通过运行以下命令来监控你的 GPU 利用率:
gpustat --color -i 1
运行 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 产品一起使用的实际用例。敬请期待更多精彩的教程!