当前位置: 首页 > article >正文

AI 文生图快速入门教程:让 Stable Diffusion 更易于上手

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 产品一起使用的实际用例。敬请期待更多精彩的教程!


http://www.kler.cn/news/319033.html

相关文章:

  • vue基础面试题
  • 简单水印通过python去除
  • 数造科技荣获“2024爱分析·数据智能优秀厂商”
  • 传输大咖45 | 跨国传输大文件的高效、安全传输系统
  • 大数据Flink(一百二十一):Flink CDC基本介绍
  • 数据在内存中的存储(上)
  • Spring Boot 学习和使用
  • 大数据新视界 --大数据大厂之探索ES:大数据时代的高效搜索引擎实战攻略
  • 基于SpringBoot的CSGO赛事管理系统
  • 自动化等保测评:提升效率,降低成本的新路径
  • 科研绘图系列:R语言箱线图和连线图(boxplot linechart)
  • Vue.js 与 Flask/Django 后端配合:构建现代 Web 应用的最佳实践
  • uniapp实现触底分页加载
  • 微服务面试-修改nacos配置,不重启服务怎生效
  • Zerotier 内网穿透教程
  • TomCat乱码问题
  • APP自动化中 ADB Monkey用法
  • Python办公自动化案例:将Excel数据批量保存到Word表格中
  • 【大数据入门 | Hive】DDL数据定义语言(数据库DataBase)
  • TON生态系统开发指南:从零开始构建你的Web3应用
  • 动手学深度学习(pytorch土堆)-05-1神经网络
  • C#开发者的新选择:使用ImageSharp进行图像处理
  • 什么是远程过程调用(RPC)
  • 将Uni.app打包好的apk放到IIS服务器上的详细流程
  • Maven重点学习笔记(包入门 2万字)
  • ActiveMQ 的传输协议机制
  • 如何确定SAP 某些凭证或者单号的号码编码范围的 OBJECT 是什么?
  • 无人机飞手培训校企合作特训技术详解
  • 国产操作系统
  • Linux风险应对策略:保障系统安全的有效措施