AIGC初体验:部署Stable Diffusion玩转AI绘画(CPU版)

简介: 本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。

AIGC初体验:部署Stable Diffusion玩转AI绘画(CPU版)


1. 创建实验资源

开始实验之前,您需要先创建实验相关资源。

  1. 在实验室页面,单击创建资源
  2. (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。

说明:资源创建过程需要1~3分钟。完成实验资源的创建后,您可以在 云产品资源 列表查看已创建的资源信息,例如:子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等。



2. 安装 Stable Diffusion WebUI

Stable Diffusion 是一个 Python 命令行程序,我们直接使用需要对它的命令和参数有详尽的了解,有一定学习成本。好在,有一个 Stable Diffusion WebUI 的开源项目,可以直接将 Stable Diffusion 的操作通过网页透出,让我们轻松通过 Web 页面就能使用 Stable Diffusion 生成图片。所以,我们选择安装和使用 Stable Diffusion WebUI 来完成实验。

  1. 安装基础工具。

Stable Diffusion WebUI的安装与运行需要使用到一些工具软件,我们需要先通过Yum安装它们。

执行如下命令,安装基础工具。

sudo yum install -y git conda mesa-libGL
  1. 初始化conda环境。

Conda是一个优秀的跨平台、跨语言包管理工具。同时,它的环境隔离功能也能很好的帮助我们屏蔽服务器间基础设施的不同,为我们提供一个干净、统一的程序运行环境。

依次执行如下命令,在Bash中初始化Conda,同时创建并激活名为aigc的虚拟环境。

sudo bash -c "conda init bash" && bash
conda create -y -n aigc python=3.10.6
conda activate aigc

💡注意:之后的操作都将基于aigc这个虚拟环境,如果你切换了Terminal或者不小心退出了环境,可以再次执行conda activate aigc命令回到aigc虚拟环境中。

  1. 拉取Stable Diffusion WebUI代码。

3.1 执行如下命令,从Github上获取最新的Stable Diffusion WebUI代码。

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

💡说明:由于Github访问存在不稳定性,如果从上述地址clone失败,可以使用我们在Gitee上为大家准备的镜像项目,采用如下命令:

git clone https://gitee.com/developer-aliyun-com/stable-diffusion-webui.git

3.2 项目下载完成后,我们将Web Terminal的操作目录设置为项目所在目录。

cd stable-diffusion-webui
  1. 安装项目依赖。

Stable Diffusion的运行还需要许多依赖包,执行如下命令,把它们都安装到Conda提供的虚拟环境中。

conda install -y pytorch torchvision torchaudio cpuonly -c pytorch
pip3 install opencv-python-headless gfpgan open-clip-torch xformers pyngrok clip-anytorch
pip3 install -r requirements_versions.txt
  1. 启动Stable Diffusion WebUI。

当一切准备就绪,执行如下命令,启动Stable Diffusion WebUI。

python launch.py --listen --lowvram --no-half --skip-torch-cuda-test

💡说明:在启动时,Stable Diffusion WebUI会根据需要下载一些必要模型数据,另外,加载模型也需要花费一些时间,所以我们现在要做的就是耐心等待。当Terminal 中显示出Running on local URL: http://0.0.0.0:7860字样,就表示程序已经启动并对外提供服务了。


3. 使用 Stable Diffusion WebUI 生成图片

  1. 获得Stable Diffusion WebUI访问地址。

当Stable Diffusion WebUI启动后,会对外监听7860端口。我们需要使用http://(ECS公网地址):7860来访问程序。

说明:这里的ECS公网地址需要替换成实验室为大家分配的可以访问ECS的公网IP地址。我们可以在实验室页面左侧导航栏中,单击云产品资源列表查看本次实验资源所分配的ECS公网地址。

💡另外,你还可以使用Web Terminal右上角的+号新建一个Terminal标签页,并在其中执行以下命令直接获得Stable Diffusion WebUI的访问地址:

echo "http://"$(curl -s ifconfig.me)":7860/"

  1. 访问Stable Diffusion WebUI。

接着,让我们打开浏览器,输出刚刚获得的访问地址,就可以进入Stable Diffusion WebUI的操作界面了。

  1. 使用文字生成图片。

生成图片的操作方式非常简单,只需要在左侧的Prompt输出框中填入提示词,之后点击右侧的Generate按钮即可。提示词就是生成图片的依据,既可以是描述需要生成内容的词,如:girl, sunset, forest等;也可以是用于是描述图像属性的词,如:best quality, beautiful, masterpiece等。我们甚至可以通过提示词选择图片生成的视角、光线、画风;人物的姿势、着装、表情;背景的内容等。

图片生成的速度根据机器配置的不同有所差异。在图片生成的过程中,我们可以在页面上看到生成过程的中间图片逐渐变得清晰。同时,也可以通过进度条直观的了解图片生成的进度和预估剩余时间。


4. 学习使用 LoRA 模型

除了使用基础模型生成图片外,我们还可以使用 LoRA 模型(Low-Rank Adaptation of Large Language Models)进行图片的生成。LoRA 直译为大语言模型的低阶适应,这是微软的研究人员为了解决大语言模型微调而开发的一项技术。LoRA 能够冻结预训练好的模型权重参数,然后在每个 Transformer 块里注入可训练的层,由于不需要对模型的权重参数重新计算梯度,从而大大减少了需要训练的计算量。从实际效果来说,LoRA 模型可以帮助我们生成指定风格、面孔、动作等要求的图片。

  1. 使用LoRA模型。

1.1 打开WebUI界面,单击Generate按钮下方的扩展配置图标按钮,之后选择Lora标签,就能看到我们可以使用的LoRA模型了。

在实验场景中,已经准备了数个比较热门的LoRA模型,你可以尝试使用它们生成不同风格的图片。

1.2 当我们单击某个LoRA模型后,Prompt中会加入这些内容。最后的数字代表着LoRA模型的权重,默认为 1。接着,我们输入提示词,再单击 Generate,就可以使用LoRA模型将文字转化为图片了。

  1. 获得更多的LoRA模型。

如果觉得现有的LoRA模型还不符合自己的审美,我们可以从Civitai https://civitai.com/tag/lora等网站里找到许多其他爱好者预先训练好的LoRA模型,我们只需要将这些模型下载到stable-diffusion-webui/models/Lora目录内(在本实验中,需要放置在/root/models/Lora目录内),接着我们就可以在Stable Diffusion WebUI中使用它们。如果是新下载的模型没有出现在页面上,可以单击Refresh重新载入它们。


实验地址:https://developer.aliyun.com/adc/scenario/13c7c3f7e06042578862c25b6ce12a80

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
数据采集 机器学习/深度学习 人工智能
Datawhale AI夏令营第四期魔搭-AIGC文生图方向Task1笔记
这段内容介绍了一个使用Stable Diffusion与LoRA技术创建定制化二次元图像生成模型的全流程。首先,通过安装必要的软件包如Data-Juicer和DiffSynth-Studio准备开发环境。接着,下载并处理二次元图像数据集,利用Data-Juicer进行数据清洗和筛选,确保图像质量和尺寸的一致性。随后,训练一个针对二次元风格优化的LoRA模型,并调整参数以控制模型复杂度。完成训练后,加载模型并通过精心设计的提示词(prompt)生成一系列高质量的二次元图像,展示模型对细节和艺术风格的理解与再现能力。整个过程展示了从数据准备到模型训练及结果生成的完整步骤,为定制化图像提供了方向。
|
10天前
|
算法 测试技术 AI芯片
CPU反超NPU,llama.cpp生成速度翻5倍!LLM端侧部署新范式T-MAC开源
【9月更文挑战第7天】微软研究院提出了一种名为T-MAC的创新方法,旨在解决大型语言模型在资源受限的边缘设备上高效部署的问题。T-MAC通过查表法在CPU上实现低比特LLM的高效推理,支持混合精度矩阵乘法,无需解量化。其通过位级查表实现统一且可扩展的解决方案,优化数据布局和重用率,显著提升了单线程和多线程下的mpGEMV及mpGEMM性能,并在端到端推理吞吐量和能效方面表现出色。然而,表量化和快速聚合技术可能引入近似和数值误差,影响模型准确性。论文详见:[链接](https://www.arxiv.org/pdf/2407.00088)。
39 10
|
1月前
|
SQL 存储 缓存
什么?部署ClickHouse的服务器CPU利用率100%了?
什么?部署ClickHouse的服务器CPU利用率100%了?
|
1月前
|
机器学习/深度学习 人工智能 中间件
解读顺网算力与AI,破局AIGC落地“最后一公里”
解读顺网算力与AI,破局AIGC落地“最后一公里”
|
1月前
|
人工智能 云计算 数据中心
云计算演进问题之阿里云自研CPU倚天710的部署如何解决
云计算演进问题之阿里云自研CPU倚天710的部署如何解决
|
1月前
|
数据采集 机器学习/深度学习 人工智能
Datawhale AI夏令营第四期魔搭-AIGC文生图方向Task1笔记
这段内容介绍了一个使用LoRA技术定制Stable Diffusion模型的工作流程。首先定义了提示词的结构,接着概述了LoRA作为轻量级微调方法的角色。ComfyUI作为一个图形化工具,简化了AI模型的配置与操作。示例脚本展示了如何通过Data-Juicer和DiffSynth-Studio进行数据准备、模型训练,并最终生成特定风格的二次元图像。通过不同的种子和提示词,生成了一系列具有一致风格但内容各异的高质量二次元角色图像。
|
24天前
|
人工智能 PyTorch 算法框架/工具
AI计算机视觉笔记二:基于YOLOV5的CPU版本部署openvino
本文档详细记录了YOLOv5模型在CPU环境下的部署流程及性能优化方法。首先,通过设置Python虚拟环境并安装PyTorch等依赖库,在CPU环境下成功运行YOLOv5模型的示例程序。随后,介绍了如何将PyTorch模型转换为ONNX格式,并进一步利用OpenVINO工具包进行优化,最终实现模型在CPU上的高效运行。通过OpenVINO的加速,即使是在没有GPU支持的情况下,模型的推理速度也从约20帧每秒提高到了50多帧每秒,显著提升了性能。此文档对希望在资源受限设备上部署高性能计算机视觉模型的研究人员和工程师具有较高的参考价值。
|
27天前
|
存储 人工智能 异构计算
就AI 基础设施的演进与挑战问题之通讯墙在AIGC中挑战的问题如何解决
就AI 基础设施的演进与挑战问题之通讯墙在AIGC中挑战的问题如何解决
|
27天前
|
人工智能 弹性计算 芯片
就AI 基础设施的演进与挑战问题之AIGC场景下训练和推理的成本的问题如何解决
就AI 基础设施的演进与挑战问题之AIGC场景下训练和推理的成本的问题如何解决
|
1月前
|
人工智能 自然语言处理 搜索推荐
人工智能的奇妙世界:从 AI 到 AIGC,再到大模型与 AGI
人工智能的奇妙世界:从 AI 到 AIGC,再到大模型与 AGI
41 0