我终于发现了一件还没有被 AI 取代的事情

简介: AIGC 是当下最火的概念之一。AIGC 被认为是继专业生成内容(Professional Generated Content, PGC)和用户生成内容(User Generated Content, UGC)之后,利用人工智能技术自动生成内容的新型生产方式。AI 生成内容的形式相当丰富,除了文字外,还可以进行绘画、作曲、演唱、编剧、设计等。最近热度非常高的 Text to Image 就是 AI 加持下非常时髦的一种图片创造方式。本文向大家介绍如何基于 Stable Diffusion 实现文字到图片的生成。

前言

虽然最近几个月 AI 概念火到燃爆地球,据说下面这些,都是 AI 创作出来的图片。

image.png

image.png


对于此事,我一直保持冷静旁(chī)观(guā),因为我一直觉得自己的工作还不会被 AI 取代,直到……

image.png


直到我发现,现在各类平台的 技术博主都已经掌握了 AI 作图的能力,甚至已经授课了。原来最开始卷的,居然是人类自己!

image.png


不行!不行!不行!

作为“高智商”人类,怎么可以真让自己退化成一个程序

image.png


所以我决定,一定要掌握这门手艺!

image.png


简单了解之后我才发现,原来使用 AI 作图早就是个零基础的事情,难怪各类 Up 主们都能录制教程。既然这样,为了体现技术人的专业精神,我必须出一篇关于如何搭建 AI 绘图服务的“专业”教程给到所有萌新。下面开始就是正文了!


正文


人工智能生成内容(Artificial Intelligence Generated Content,简称 AIGC)是当下最火的概念之一。AIGC 被认为是继专业生成内容(Professional Generated Content, PGC)和用户生成内容(User Generated Content, UGC)之后,利用人工智能技术自动生成内容的新型生产方式。AI 生成内容的形式相当丰富,除了文字外,还可以进行绘画、作曲、演唱、编剧、设计等。最近热度非常高的 Text to Image 就是 AI 加持下非常时髦的一种图片创造方式。


许多人可能觉得,使用 AIGC 有很高的门槛,普通人是很难入门的。其实不然,随着 AI 技术的快速发展以及众多开源项目的诞生,我们每个人都可以很轻松且廉价的使用到 AIGC。谁能想到,在 2018 年,人工智能生成的画作在佳士得拍卖价还高达 43.25 万美元,而时隔才数年,让 AI 为我们创作绘画已经成了人人触手可及的事情。


在这些开源项目中,Stable Diffusion 无疑是优秀生之一。Stable Diffusion 是一种扩散模型(Diffusion Model)的变体,称为“潜在扩散模型”(Latent Diffusion Model),由CompVis、Stability AI 和 LAION 的研究人员和工程师创建。它使用来自 LAION-5B 数据库子集的图像进行训练。使用这个模型,可以生成包括人脸在内的任何图像,因为有开源的预训练模型,所以我们也可以在自己的机器上运行它。Stable Diffusion 能够根据我们提供的一些提示词以及可以调整的部分参数,通过模型计算生成一张不错的图片。

image.png


下面向大家介绍如何基于 Stable Diffusion 实现文字到图片的生成。这其中包括了 Stable Diffusion 的安装和基本使用方法,以及使用 Lora 模型调整图片生成的风格。这是一项接近零基础的教程,其中并不会包含复杂的概念或者深奥的算法。换句话说,只要你稍有计算机基础,了解如何敲入命令,知道怎么使用浏览器打开网页,你就能学会。


实验资源

这里,我们会基于 ECS 安装和部署 Stable Diffusion 及其相关的程序和模型。所以,我们首先需要准备好一台 ECS 服务器,我选用的是 Alibaba Cloud Linux 3.2104 LTS 64位 快速启动版 系统

重点来了

如果你还玩不转 ECS 以及其他阿里云服务,希望有一些场景化教程,或者缺少免费资源来体验阿里云服务,那么不要犹豫,赶快打开 云起实验室 把!

在实验室中,我们为大家准备好了 Stable Diffusion 生成图片的体验场景,点开即玩:

https://developer.aliyun.com/adc/scenario/13c7c3f7e06042578862c25b6ce12a80

image.png

云起实验室 是由 阿里云开发者社区 提供的零门槛云上实践平台。一键预置实验环境,提供详细的实验手册指导,快速体验云计算、大数据、人工智能等云服务实验场景,旨在帮助用户快速提升使用云服务的能力。


如果你通过 云起实验室 体验 AI 绘图,那么可以在实验室页面,直接点击 创建资源 来准备搭建环境需要的 ECS 服务器。

image.png

说明:资源创建的过程需要 1 ~ 3 分钟,请耐心等待。


在实验资源创建完成后,实验室会自动通过 Web Terminal 连接至服务器,我们可以直接在页面上操作服务器。同时,我们可以在实验室页面左侧导航栏中,点击 云产品资源列表 查看本次实验资源相关信息(例如 ECS 服务器的公网地址、登录账号等)。

image.png


安装 Stable Diffusion WebUI

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


安装基础工具

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

sudo yum install -ygit conda mesa-libGL


初始化 conda 环境

Conda 是一个优秀的跨平台、跨语言包管理工具。同时,它的环境隔离功能也能很好的帮助我们屏蔽服务器间基础设施的不同,为我们提供一个干净、统一的程序运行环境。下面的命令可以帮助我们在 Bash 中初始化 Conda,同时创建并激活名为 aigc 的虚拟环境。

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

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


拉取 Stable Diffusion WebUI 代码

接着,我们从 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


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

cd stable-diffusion-webui


安装项目依赖

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


启动 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字样,就表示程序已经启动并对外提供服务了。


使用 Stable Diffusion WebUI 生成图片

当 Stable Diffusion WebUI 启动后,会对外监听 7860 端口。我们需要使用http://(ECS公网地址):7860来访问程序。这里的ECS公网地址需要替换成实验室为大家分配的可以访问 ECS 的公网 IP 地址。我们可以在实验室页面左侧导航栏中,点击 云产品资源列表 查看本次实验资源所分配的 ECS 公网地址。

image.png


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

image.png

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

image.png


访问 Stable Diffusion WebUI

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

image.png


使用文字生成图片

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

image.png


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

image.png


学习使用 LoRA 模型

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


使用 LoRA 模型

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

image.png


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

image.png


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

image.png


获得更多的 LoRA 模型

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

image.png

如果还不会,你还能在 云起实验室 再次体验这个场景哦!

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
人工智能 算法 数据库
孕妇最担心的一件事,阿里 AI 正在努力解决
如果有一场糖尿病的中国保卫战,孕期糖尿病将会是第一战场。
944 0
孕妇最担心的一件事,阿里  AI  正在努力解决
|
人工智能 云计算
孕妇最担心的一件事,阿里 AI 正在努力解决
在中国,中国妊娠糖尿病发病率高达18.9%左右,每6个孕妇中就有一个“糖妈妈”。病症对妈妈和胎儿危害很大,会增加孕妇妊娠期高血压、胎停育、羊水过多等风险,胎儿早产、巨大儿等的发生率明显升高。
7472 0
|
6天前
|
人工智能 算法
通义语音AI技术问题之预训练语言模型句子嵌入存在的各向异性问题如何解决
通义语音AI技术问题之预训练语言模型句子嵌入存在的各向异性问题如何解决
14 5
|
3天前
|
机器学习/深度学习 人工智能 算法
解密巴黎奥运会中的阿里云AI技术
2024年巴黎奥运会圆满结束,中国代表团金牌数与美国并列第一,展现了卓越实力。阿里云作为官方云服务合作伙伴,通过先进的AI技术深度融入奥运的各项环节,实现了大规模的云上转播,超越传统卫星转播,为全球观众提供流畅、高清的观赛体验。其中,“子弹时间”回放技术在多个场馆的应用,让观众享受到了电影般的多角度精彩瞬间。此外,8K超高清直播、AI智能解说和通义APP等创新,极大地提升了赛事观赏性和互动性。能耗宝(Energy Expert)的部署则助力实现了赛事的可持续发展目标。巴黎奥运会的成功举办标志着体育赛事正式进入AI时代,开启了体育与科技融合的新篇章。
解密巴黎奥运会中的阿里云AI技术
|
6天前
|
人工智能 数据处理 语音技术
通义语音AI技术问题之查看KAN-TTS在ModelScope上的模型列表如何解决
通义语音AI技术问题之查看KAN-TTS在ModelScope上的模型列表如何解决
22 10
|
6天前
|
人工智能 语音技术
通义语音AI技术问题之semantic 的 residualquantizer 模块的作用如何解决
通义语音AI技术问题之semantic 的 residualquantizer 模块的作用如何解决
22 9
|
6天前
|
人工智能 语音技术
通义语音AI技术问题之服务端对于音频数据如何解决
通义语音AI技术问题之服务端对于音频数据如何解决
20 7
|
6天前
|
存储 人工智能 语音技术
通义语音AI技术问题之动态加权采样策略的工作原理如何解决
通义语音AI技术问题之动态加权采样策略的工作原理如何解决
18 5
|
6天前
|
人工智能 数据处理
通义语音AI技术问题之行动项识别任务中的问题如何解决
通义语音AI技术问题之行动项识别任务中的问题如何解决
14 5