体会在线 AI 画图服务

Midjourney

Midjourney 是一个由同名研讨实验室开发的人工智能程序,可依据文本生成图画,于2022年7月12日进入公开测试阶段,用户可透过 Discord 的机器人指令进行操作。该研讨实验室由 Leap Motion 的创办人大卫霍尔兹担任领导。—— Wikipedia

【附教程】亲身体验AI绘画的艺术之旅——EP0
能够加入 Beta 计划从 Discord 群中向机器人提交作图指令。官网服务也供给付费订阅。

Microsoft Bing Image Creator

微软凭借 OpenAI 的 DALL-E 图画生成 AI ,供给了这个在线图片生成服务。用户输入一段文本提示,仅需数秒即可获得一组 AI 生成的与之匹配的图画。

【附教程】亲身体验AI绘画的艺术之旅——EP0
Preview 阶段,每位普通用户媒体能够快速生成 25 次,超越次数需求排队等待。

建立自己的 AI 作图环境

在线服务作用好,可是有运用次数限制。假设你需求更多的自由度,那么能够考虑自己建立一套 AI 做图环境。

准备

Stable Diffusion GUI

AI 绘图现已火出圈,自然开源社区里也有许多 Stable Diffusion 的图形界面,便利用户上手体会。 有专门供给给 MacOS 桌面端的 DiffusionBee,还有跨平台的 Stable Diffusion UI v2 。

而本文咱们着重介绍能够布置在云端的 Web UI 。 AUTOMATIC1111(简称 A1111)Stable Diffusion Web UI 是为高档用户供给的 Stable Diffusion GUI。 多亏了活跃的开源社区,大多数新功能都会先支撑上这个免费的 Stable Diffusion GUI 。 但要运用它并不简略。文档不够详尽,以及供给的茫茫功能列表都会让新手苍茫。

购买一台云主机

初度体会,先试试最廉价的 GPU 主机。 P.S 最低配的也彻底够用,生成图片很快!

我注册的云主机的装备如下:

  • 体系: Ubuntu22.04
  • 显卡: 1 * NVIDIA T4
  • CPU/内存: 4 核 32 G
  • 体系盘: 200GB
  • 带宽: 10Mbps

顺畅的网络环境

略,自己想办法

装置

机器注册后,能够直接从 Web 端一键登录:

【附教程】亲身体验AI绘画的艺术之旅——EP0
也能够运用 ssh 登录,在 “更多操作” 下拉菜单中挑选重制暗码,即可重新设定一个 root 账号的登录暗码,然后云主机会重启。

具体的你能够参阅文档产品文档。

登录云主机后,能够先检查一下显卡型号:

$ lspci | grep -i nvidia
00:06.0 3D controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1) 

货真价实,没有问题,那么开端建立吧!

装置一些必要的依赖软件

# 更新软件包索引
sudo apt-get -y update
# 必要软件
sudo apt-get -y install wget git python3 python3-venv python3-pip
sudo apt-get -y install aria2 screen
# 装置 cuda 软件包,让显卡发挥超能力
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda
# 清理 deb 装置包
rm *.deb
# 装置 cuda 之后,需求重启收效
sudo reboot

验证 cuda 是否装置成功:

$ nvidia-smi
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 530.30.02              Driver Version: 530.30.02    CUDA Version: 12.1     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                  Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf            Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla T4                        On | 00000000:00:06.0 Off |                    0 |
| N/A   38C    P0               26W /  70W|   2279MiB / 15360MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A    103851      C   python3                                    2274MiB |
+---------------------------------------------------------------------------------------+

写在前面的一点主张

主张你在运用 ssh 登录云主机时,运用 screen 指令进入一个虚拟终端会话,这能够防止因为网络不稳定而中断了正在执行的指令。因为接下来的一些指令需求下载大文件而耗时比较长。

screen 指令速记:

# 新建一个 screen 会话,我的会话取名为 workspace
screen -R workspace

# 退出 screen 会话
## 先按组合键 Ctrl+A
## 然后按字母 D

# 当需求重新进入 screen 会话
screen -r -d workspace

具体的指令运用阐明,参阅 How To Use Linux Screen 。

布置 Web UI

你能够直接 clone 项目 AUTOMATIC1111/stable-diffusion-webui (又称 A1111 ) 的最新代码,然后依照 README 中的阐明装置即可。

而我参阅了另一个项目:

假设你想快速开端体会,就跟我相同脚本一把梭,以免消耗时刻找各种插件/模型; 假设你很在意这些指令在干什么,我简略增加了一些注释; 看不懂?没关系,这个系列今后会有文章深入这些细节。

#!/usr/bin/env bash
# A1111 项目没有打 tag 的习惯,你拉取到的最新版别代码或许无法复现本文的内容,
# 而这个项目 Fork 自 A1111 ,还贴心肠打上了 tag ,主张你和我相同运用这份源码
git clone -b v2.2 https://github.com/camenduru/stable-diffusion-webui
# 指定之后操作的根目录
base_dir="$(pwd)/stable-diffusion-webui"
# 简化 ariac2 下载指令
download="aria2c --console-log-level=error -c -x 16 -s 16 -k 1M"
# Extra network / Textual Inversion
# 负面词,功能阐明 https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Negative-prompt
git clone https://huggingface.co/embed/negative ${base_dir}/embeddings/negative
# Extra network / Lora
# 支撑把 Lora 模型作为关键词
git clone https://huggingface.co/embed/lora ${base_dir}/models/Lora/positive
# 4x-UltraSharp ,一个通用模型,能够进步图片的分辨率。
# 原始模型发布在 MEGA 网盘,为了下载便利运用 huggingface 上的备份。
${download} https://huggingface.co/embed/upscale/resolve/main/4x-UltraSharp.pth -d ${base_dir}/models/ESRGAN -o 4x-UltraSharp.pth
# 一些便利的插件,能够去他们的 Github 主页查看功能介绍
## 便利从 Web 端下载 civitai 市场的模型
git clone -b v2.0 https://github.com/camenduru/sd-civitai-browser ${base_dir}/extensions/sd-civitai-browser
## 便利从 Web 端下载 huggingface 市场的模型
git clone https://github.com/camenduru/stable-diffusion-webui-huggingface ${base_dir}/extensions/stable-diffusion-webui-huggingface
## 一个图片阅读器,便利阅读保存过的图片
git clone https://github.com/AlUlkesh/stable-diffusion-webui-images-browser ${base_dir}/extensions/stable-diffusion-webui-images-browser
# 主模型
models="${base_dir}/models"
## Stable Diffuison v1.5,SD1.5 的模型 (可选)
${download} https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors -d ${models}/Stable-diffusion -o v1-5-pruned-emaonly.safetensors
## 国风3 https://huggingface.co/xiaolxl/GuoFeng3
${download} https://huggingface.co/xiaolxl/GuoFeng3/resolve/main/GuoFeng3.2.safetensors -d ${models}/Stable-diffusion -o GuoFeng3.2.safetensors
# LoRA 模型
mkdir -p ${models}/Lora
## 墨心 MoXin https://civitai.com/models/12597/moxin
${download} https://civitai.com/api/download/models/14856 -d ${models}/Lora -o MoXin_v10.safetensors

最终咱们发动 Web UI

直接通过 launch.py 发动,而不是 webui.sh ,这样能够加载额外装置的插件。 一些 Python 依赖包会在初度运行时装置。

cd stable-diffusion-webui
## 初始化并启用新的 python venv 环境
python3 -m venv .venv
source .venv/bin/activate
## 装置支撑 cuda 11.8 的 pytorch, xformer
pip install torch torchvision torchaudio torchtext torchdata --extra-index-url https://download.pytorch.org/whl/cu118 -U
pip install xformers==0.0.18 triton==2.0.0 -U
## 在 10000 端口上发动 Web 服务
python3 launch.py --listen --xformers --enable-insecure-extension-access --gradio-queue --port 10000

阅读器打开 http://${host_ip}:10000 就能够看到 Stable Diffusion Web 页面了。

把 ${host_ip} 换成你的云主机 ip 地址。 P.S 装置脚本中省掉了部分本文用不到的插件,所以 Web 截图会略有不同。

【附教程】亲身体验AI绘画的艺术之旅——EP0

运用自建的 AI 作图环境

挑选一个根底模型(主模型)在 Stable Diffusion checkpoint 下拉菜单中,挑选 GuoFeng3.2.safetensors 。

GuoFeng3 这是一个中国华丽古风风格模型,也能够说是一个古风游戏人物模型,具有2.5D的质感。来自: huggingface.co/xiaolxl/Guo…

【附教程】亲身体验AI绘画的艺术之旅——EP0

点击 Generate 下面的 Show/hide extra networks 图标,能够看到现已装置的模型。

【附教程】亲身体验AI绘画的艺术之旅——EP0

切换选项卡,能够看到咱们现已装置的一切 LoRA 模型。

Q: 什么是 LoRA 模型? A: 依据特定概念更改现有 Stable Diffusion 模型成果的文件。这能够是一种艺术风格、一个人物、一个实际中的人、一个物体或一个主题。一些著名的例子:Arcane Style LoRA(奥术风格 LoRA) ,Makima from Chainsaw Man LoRA(来主动漫《电锯人》中的玛奇玛)。(来自:aituts.com/stable-diff…)

【附教程】亲身体验AI绘画的艺术之旅——EP0
点击一个 LoRA 模型,能够看到在 Prompts 输入框中,主动填写上了模型称号:

【附教程】亲身体验AI绘画的艺术之旅——EP0

我挑选 Moxin_10 这个模型。

墨心 MoXin 1.0 昔涓子《琴心》,王孙《巧心》,心哉美矣,故用之焉。 来自: civitai.com/models/1259… (非常适合与国风3 调配运用的 LoRA 模型,能够生成水墨画风格的图片。)

从最简略的开端

准备创作,首要要有个想法: 假设我想画一只熊。

在关键词 (Prompt) 输入框中增加一句描绘: a bear

提示词目前只支撑英语。 假设你有更杂乱的描绘,可是表达不出来?翻译软件一大把。

然后点击 Generate 进行生成,大概花了 10s,图片就生成好了。

【附教程】亲身体验AI绘画的艺术之旅——EP0

说实话,这虎头虎脑的黑熊,作用还挺萌!顿时对咱们的 AI 绘画之旅,充满信心了有木有?

假设要再次生成,就持续点击 Generate ;假设要一次生成多张图片,能够调整 Batch count 。 显卡有多还能够调整 Batch size 进行并发生成。

点击 Generate 进行批量生成,大概花了 13s,多张图片就生成好了。

【附教程】亲身体验AI绘画的艺术之旅——EP0

多生成几张之后会发现,奇奇怪怪的图片真不少,质量参差不齐。

获得更好的作用

首要咱们能够点开模型的介绍页面,看看模型的作者都有什么主张。 依据作者的主张,我做了如下调整:

加上负面词(Negative prompt): lowres, worstquality, low quality, normal quality, text, error, extra digit, jpegartifacts, signature, watermark, username, blurry 这些负面词,略微翻译下,就能懂他们的意思。

修正了参数:

  • Sampler: DPM++ SDE Karras
  • Sampling steps: 35
  • CFG Scale: 5 这儿先不介绍这些参数的含义,仅仅是依照模型作者引荐的来设置。

再来点击 Generate ,生成看看。

【附教程】亲身体验AI绘画的艺术之旅——EP0

生成时刻长了一些,大概 40s。 而且通过负面词筛掉了许多质量不佳的图片素材,出图作用确实变好了许多。

赋予图片主题

咱们供给的关键词过于简略,所以生成的图片没有一个一致的主题,所以咱们需求细化一下需求,扩大一下提示词中的画面描绘。

比方,现在我想要画一只黑熊站在枫叶林中操练挥剑。 修正关键词,把图片描绘的更细致: A black bear stood in the maple leaf forest and practiced waving his sword.

为了快速看到构图作用,能够调低 Batch count。

再次尝试生成:

【附教程】亲身体验AI绘画的艺术之旅——EP0
图片里的这只黑熊有“剑客”内味儿了,仅仅手指看起来怪怪的。

手指的的生成问题,在运用 Stable Diffusion 时很常见,咱们能够暂时通过负面词去绕过这个问题。 Tips: 你假设运用和我相同的参数和关键词,填入相同的 Seed 就能复现我这张图哦~ 图片生成信息中可见 Seed: 620974436 。

举一反三

当有一张图片让咱们感觉不错,希望再得到相似的构思怎么做? 接下来咱们以这张”灰熊剑客”的构图为基准,来生成其他的图片。 点击生成图片下方的 Send to img2img 按钮。

【附教程】亲身体验AI绘画的艺术之旅——EP0

点击后会主动跳转到 img2img 标签页。仔细观察能够发现,比较之前的页面又多了 2 个可调整的参数:

【附教程】亲身体验AI绘画的艺术之旅——EP0
Denoising strength,去噪强度,操控与原始图画比较,它将产生多少改变:

  • 设置成 0 时,不会有任何改变;
  • 设置成 1 时,会得到一个无关的绘图。

那咱们坚持之前的参数都不变,仅仅调整 Denoising strength ,来看生成多张图片的作用。

  • Denoising strength: 0.75

【附教程】亲身体验AI绘画的艺术之旅——EP0

  • Denoising strength: 0.35

【附教程】亲身体验AI绘画的艺术之旅——EP0
因而假设咱们想要生成与原图片相似的构图,Denoising strength 取值在 0.5 以下更佳。

Resize mode,假设方针图画的宽高比与输入图画的宽高比不同,有如下几种方法能够调和差异:

  • Just resize: 简略地将源图画调整为方针分辨率,或许导致不正确的宽高比。
  • Crop and resize: 调整源图画的巨细,保留宽高比,使其占据整个方针分辨率,并裁剪杰出的部分。
  • Resize and fill: 调整源图画的巨细,坚持宽高比,使其彻底适合方针分辨率,并从源图画中按行/列填充空白。
  • Just resize (latent upscale):相似于 “Just resize”,但缩放是在潜在空间中完成的。运用大于 0.5 的 Denoising strength 来防止图画模糊。

咱们固定 Denoising strength 为 0 (即不生成新的绘图),尝试将 512×512 分辨率的原图调整为 300×600 的图片,观察在不同 Resize mode 下的改变。

【附教程】亲身体验AI绘画的艺术之旅——EP0
Just resize

【附教程】亲身体验AI绘画的艺术之旅——EP0
Crop and resize

【附教程】亲身体验AI绘画的艺术之旅——EP0
Crop and resize

【附教程】亲身体验AI绘画的艺术之旅——EP0
Just resize (latent upscale)

起初我不是很能理解 Just resize (latent upscale) 的含义 ,感觉就是让原图变得更抽象了。 当我依据阐明中的提示把 Denoising strength 设置为 0.6 (即大于 0.5),再次生成:

【附教程】亲身体验AI绘画的艺术之旅——EP0

这样生成的图片是明晰的,AI 发挥了构思的同时让这一组图片中的灰熊,变得更瘦了。看来 Just resize (latent upscale) 模式主要是用来和 Denoising strength 合作的。

进步分辨率

在不那么充裕的算力资源下,为了更多更快地生成图画,咱们不会设定过高的图片分辨率,可是当生成的成果让咱们满足时,分辨率不达预期怎么办? 在 Stable Diffusion 中供给了 Image AI upscaler (图画 AI 升频器),比方: ESRGAN 。 找到中意的图片,点击下方的 Send to extras 按钮。

【附教程】亲身体验AI绘画的艺术之旅——EP0

点击后会主动跳转到 Extras 标签页。可是这儿的选项比较多,篇幅有限,简略给各位看官演示一下,今后文章中细聊。

【附教程】亲身体验AI绘画的艺术之旅——EP0

【附教程】亲身体验AI绘画的艺术之旅——EP0
原图

【附教程】亲身体验AI绘画的艺术之旅——EP0
Postprocess upscale by: 4, Postprocess upscaler: 4x-UltraSharp

持续探索

运用文本生成图片依赖适宜的模型,发挥构思组合关键词(Prompts),辅以调整参数获得满足的作用。

学习资源很多,能够多看看其他人的作品。 比方: prompthero.com/prompt-buil…

【附教程】亲身体验AI绘画的艺术之旅——EP0
一幅作品用到的模型,做图参数,关键词都会共享出来。尽管仅凭这些不一定能复刻一个相同的作品,可是就算是照抄关键词也能发现不少风趣的东西。

下面是我运用 Stable Diffusion 1.5 根底模型和相同的关键词生成的作品:

【附教程】亲身体验AI绘画的艺术之旅——EP0

引荐一些发布 AI 艺术作品网站:

  • prompthero.com/
  • pixai.art/ 引荐一些 Prompts 学习笔记:
  • www.creativindie.com/best-midjou…
  • stable-diffusion-art.com/prompts/ 引荐一些模型市场:
  • civitai.com/
  • huggingface.co/models

总结

本次给我们共享了怎么开启你的 AI 绘图之旅,而 AI 艺术却不仅限于图画,假设我们对 AI 艺术感兴趣的话,引荐我们去看看这篇文章,它相当于是一个资源导航。 利用 AI 去发挥更多的构思吧!

引用 拓宽考虑 Q: AI 能作图,那么 AI 能够帮忙写作图关键词吗? A: 当然能够!可是下回再说。敬请期待之后的共享!

参阅

  • github.com/AUTOMATIC11…
  • github.com/camenduru/s…
  • huggingface.co/xiaolxl/Guo…
  • civitai.com/models/1259…
  • developer.nvidia.com/cuda-11-8-0…
  • pytorch.org/get-started…
  • stable-diffusion-art.com/inpainting_…
  • stable-diffusion-art.com/ai-upscaler…
  • pharmapsychotic.com/tools.html