赞
踩
目前文生图的主流 AI 绘画平台主要有三种:Midjourney、Stable Diffusion、DALL·E。如果要在实际工作场景中应用,我更推荐 Stable Diffusion。
温馨提示:下方多图预警 1. 注册、创建服务器 ① 打开Midjourney官网,右下角选择"J
通过对比,Stable Diffusion 在数据安全性(可本地部署)、可扩展性(成熟插件多)、风格丰富度(众多模型可供下载,也可以训练自有风格模型)、费用版权(开源免费、可商用)等方面更适合我们的工作场景。
那么如何在实际工作中应用 Stable Diffusion 进行 AI 绘画?
要在实际工作中应用 AI 绘画,需要解决两个关键问题,分别是:图像的精准控制和图像的风格控制。
图像精准控制推荐使用 Stable Diffusion 的 ControlNet 插件。在 ControlNet 出现之前,AI 绘画更像开盲盒,在图像生成前,你永远都不知道它会是一张怎样的图。ControlNet 的出现,真正意义上让 AI 绘画上升到生产力级别。简单来说 ControlNet 它可以精准控制 AI 图像的生成。
ControlNet 主要有 8 个应用模型:OpenPose、Canny、HED、Scribble、Mlsd、Seg、Normal Map、Depth。以下做简要介绍:
OpenPose 姿势识别
通过姿势识别,达到精准控制人体动作。除了生成单人的姿势,它还可以生成多人的姿势,此外还有手部骨骼模型,解决手部绘图不精准问题。以下图为例:左侧为参考图像,经 OpenPose 精准识别后,得出中间的骨骼姿势,再用文生图功能,描述主体内容、场景细节和画风后,就能得到一张同样姿势,但风格完全不同的图。
Canny 边缘检测
Canny 模型可以根据边缘检测,从原始图片中提取线稿,再根据提示词,来生成同样构图的画面,也可以用来给线稿上色。
HED 边缘检测
跟 Canny 类似,但自由发挥程度更高。HED 边界保留了输入图像中的细节,绘制的人物明暗对比明显,轮廓感更强,适合在保持原来构图的基础上对画面风格进行改变时使用。
Scribble 黑白稿提取
涂鸦成图,比 HED 和 Canny 的自由发挥程度更高,也可以用于对手绘线稿进行着色处理。
Mlsd 直线检测
通过分析图片的线条结构和几何形状来构建出建筑外框,适合建筑设计的使用。
Seg 区块标注
通过对原图内容进行语义分割,可以区分画面色块,适用于大场景的画风更改。
Normal Map 法线贴图
适用于三维立体图,通过提取用户输入图片中的 3D 物体的法线向量,以法线为参考绘制出一副新图,此图与原图的光影效果完全相同。
Depth 深度检测
通过提取原始图片中的深度信息,可以生成具有同样深度结构的图。还可以通过 3D 建模软件直接搭建出一个简单的场景,再用 Depth 模型渲染出图。
ControlNet 还有项关键技术是可以开启多个 ControlNet 的组合使用,对图像进行多条件控制。例如:你想对一张图像的背景和人物姿态分别进行控制,那我们可以配置 2 个 ControlNet,第 1 个 ControlNet 使用 Depth 模型对背景进行结构提取并重新风格化,第 2 个 ControlNet 使用 OpenPose 模型对人物进行姿态控制。此外在保持 Seed 种子数相同的情况下,固定出画面结构和风格,然后定义人物不同姿态,渲染后进行多帧图像拼接,就能生成一段动画。
以上通过 ControlNet 的 8 个主要模型,我们解决了图像结构的控制问题。接下来就是对图像风格进行控制。
Stable Diffusion 实现图像风格化的途径主要有以下几种:Artist 艺术家风格、Checkpoint 预训练大模型、LoRA 微调模型、Textual Inversion 文本反转模型。
Artist 艺术家风格
主要通过画作种类 Tag(如:oil painting、ink painting、comic、illustration),画家/画风 Tag(如:Hayao Miyazaki、Cyberpunk)等控制图像风格。网上也有比较多的这类风格介绍,如:
但需要注意的是,使用艺术家未经允许的风格进行商用,会存在侵权问题。
Checkpoint 预训练大模型
Checkpoint 是根据特定风格训练的大模型,模型风格强大,但体积也较大,一般 5-7GB。模型训练难度大,需要极高的显卡算力。目前网上已经有非常多的不同风格的成熟大模型可供下载使用。如:https://huggingface.co/models?pipeline_tag=text-to-image
LoRA 微调模型
LoRA 模型是通过截取大模型的某一特定部分生成的小模型,虽然不如大模型的能力完整,但短小精悍。因为训练方向明确,所以在生成特定内容的情况下,效果会更好。LoRA 模型也常用于训练自有风格模型,具有训练速度快,模型大小适中,配置要求低(8G 显存)的特点,能用少量图片训练出风格效果。常用 LoRA 模型下载地址:
Textual Inversion 文本反转模型
Textual Inversion 文本反转模型也是微调模型的一种,它是针对一个风格或一个主题训练的风格模型,一般用于提高人物还原度或优化画风,用这种方式生成的模型非常小,一般几十 KB,在生成画作时使用对应 Tag 在 prompt 中进行调用。
自有风格模型训练
Stable Diffusion 的强大之处还在于能够自定义训练风格模型,如果现有风格无法满足要求,我们还可以自己训练特定风格模型。Stable Diffusion 支持训练大模型和微调模型。我比较推荐的是用 LoRA 模型训练方法,该方法训练速度快,模型大小适中(100MB 左右),配置要求低(8G 显存),能用极少量图片训练出风格效果。例如:下图中我用了 10 张工作中的素材图,大概花了 20 分钟时间训练出该风格的 LoRA 模型,然后使用该模型就可以生成风格类似的图片。如果将训练样本量增大,那么训练出来的风格样式会更加精确。
了解了 Stable Diffusion 能干什么后,再来介绍下如何部署安装使用它。
以下主要介绍三种部署安装方式:云端部署、本地部署、本机安装,各有优缺点。当本机硬件条件支持的情况下,推荐本地部署,其它情况推荐云端方式。
通过 Google Colab 进行云端部署,推荐将成熟的 Stable Diffusion Colab 项目复制到自己的 Google 云端硬盘运行,省去配置环境麻烦。这种部署方式的优点是:不吃本机硬件,在有限时间段内,可以免费使用 Google Colab 强大的硬件资源,通常能给到 15G 的 GPU 算力,出图速度非常快。缺点是:免费 GPU 使用时长不固定,通常情况下一天有几个小时的使用时长,如果需要更长时间使用,可以订阅 Colab 服务。
推荐两个目前比较好用的 Stable Diffusion Colab,选择相应模型版本运行即可:
Colab 运行界面如下,点击连接虚拟机,连接成功后点击左侧运行代码,等待环境自动配置完成后,点击 WebUI URL 即可运行 Stable Diffusion。
Stable Diffusion WebUI 运行界面如下,在后面的操作方法里我会介绍下 Stable Diffusion 的基础操作。
相较于 Google Colab 云端部署,本地部署 Stable Diffusion 的可扩展性更强,可自定义安装需要的模型和插件,隐私性和安全性更高,自由度也更高,而且完全免费。当然缺点是对本机硬件要求高,Windows 需要 NVIDIA 显卡,8G 以上显存,16G 以上内存。Mac 需要 M1/M2 芯片才可运行。
本地部署方式主要分四步,以 Mac M1 为例:
第 1 步:安装 Homebrew 和 Python3.10 环境
Homebrew 是一个包管理工具,具体安装方法可参考:快速安装Homebrew教程 - Homebrew 中文网
Python3.10 安装:brew install cmake protobuf rust python@3.10 git wget
第 2 步:克隆 Stable Diffusion WebUI 项目仓库
推荐下载 AUTOMATIC1111 的 Stable Diffusion WebUI,能很好的支持 ControlNet 扩展。
克隆项目仓库:git clone GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
第 3 步:下载并存放 Stable Diffusion 模型
Stable Diffusion 模型可以下载官方提供的 1.5 或 2.0 版本的 ckpt 文件,其它风格模型则根据自己需要下载。下载地址:huggingface.co/models?pipeline_tag=text-to-image
下载完后找到 stable-diffusion-webui 文件夹,把下载的 ckpt 大模型文件存放到 stable-diffusion-webui/models/Stable-diffusion 目录下。
如果下载了 LoRA 模型的 safetensors 文件,则存放到 stable-diffusion-webui/models/Lora 目录中。
Textual Inversion 文本反转模型的 pt 文件,存放到 stable-diffusion-webui/embeddings 目录中。
第 4 步:运行 Stable Diffusion WebUI
模型文件存放完成后,运行 Stable Diffusion WebUI:
先输入 cd stable-diffusion-webui 再输入 ./webui.sh,程序会自动完成下载安装。
运行完毕后显示:Running on local URL: http://127.0.0.1:7860 To create a public link, set `share=True` in `launch()`
在浏览器中打开 http://127.0.0.1:7860 ,即可运行 Stable Diffusion WebUI
需要用到的资源:
ControlNet 的安装
安装完 Stable Diffusion WebUI 后,我们再安装 ControlNet 扩展,以便进行图像的精准控制。
安装方法:
第 1 步:安装 ControlNet 插件
点击扩展,选择从 URL 安装,输入插件地址 GitHub - Mikubill/sd-webui-controlnet: WebUI extension for ControlNet ,点击 Install 后重启 WebUI。
第 2 步:安装 ControlNet 模型
打开模型下载页面 https://huggingface.co/lllyasviel/ControlNet/tree/main
将 models 目录中的文件下载至本地 stable-diffusion-webui/extensions/sd-webui-controlnet/models 目录
解决 ControlNet 在 Mac M1 上无法运行问题
对于 Mac M1 芯片的电脑来说,直接运行 ControlNet 会报错,导致无法使用 ControlNet。原因是 CUDA 是适用于 NVIDIA GPU 的计算框架,当前 Mac OS 无法使用此框架,因此脚本会尝试使用 CPU,但 M1 不支持半精度数字。因此我们需要跳过 CUDA 并使用 no-half。
解决方法:
如果觉得云端部署和本地部署比较繁琐,或对使用要求没有那么高,那就试下最简单的一键安装方式。下载 Diffusionbee 应用:diffusionbee.com/download。优点是方便快捷,缺点是扩展能力差(可以安装大模型,无法进行插件扩展,如 ControlNet)。
文生图
如图所示 Stable Diffusion WebUI 的操作界面主要分为:模型区域、功能区域、参数区域、出图区域。
图生图
img2img 功能可以生成与原图相似构图色彩的画像,或者指定一部分内容进行变换。可以重点使用 Inpaint 图像修补这个功能:
ControlNet
安装完 ControlNet 后,在 txt2img 和 img2img 参数面板中均可以调用 ControlNet。操作说明:
LoRA 模型训练说明
前面提到 LoRA 模型具有训练速度快,模型大小适中(100MB 左右),配置要求低(8G 显存),能用少量图片训练出风格效果的优势。
以下简要介绍该模型的训练方法:
第 1 步:数据预处理
在 Stable Diffusion WebUI 功能面板中,选择 Train 训练功能,点选 Preprocess images 预处理图像功能。在 Source directory 栏填入你要训练的图片存放目录,在 Destination directory 栏填入预处理文件输出目录。width 和 height 为预处理图片的宽高,默认为 512x512,建议把要训练的图片大小统一改成这个尺寸,提升处理速度。勾选 Auto focal point crop 自动焦点裁剪,勾选 Use deepbooru for caption 自动识别图中的元素并打上标签。点击 Preprocess 进行图片预处理。
第 2 步:配置模型训练参数
在这里可以将模型训练放到 Google Colab 上进行,调用 Colab 的免费 15G GPU 将大大提升模型训练速度。LoRA 微调模型训练工具我推荐使用 Kohya,运行 Kohya Colab:https://colab.research.google.com/github/Linaqruf/kohya-trainer/blob/main/fast-kohya-trainer.ipynb
配置训练参数:
先在 content 目录建立 training_dir/training_data 目录,将步骤 1 中的预处理文件上传至该数据训练目录。然后配置微调模型命名和数据训练目录,在 Download Pretrained Model 栏配置需要参考的预训练模型文件。其余的参数可以根据需要调整设置。
第 3 步:训练模型
参数配置完成后,运行程序即可进行模型训练。训练完的模型将被放到 training_dir/output 目录,我们下载 safetensors 文件格式的模型,存放到 stable-diffusion-webui/models/Lora 目录中即可调用该模型。由于直接从 Colab 下载速度较慢,另外断开 Colab 连接后也将清空模型文件,这里建议在 Extras 中配置 huggingface 的 Write Token,将模型文件上传到 huggingface 中,再从 huggingface File 中下载,下载速度大大提升,文件也可进行备份。
文生图模型的精髓在于 Prompt 提示词,如何写好 Prompt 将直接影响图像的生成质量。
提示词结构化
Prompt 提示词可以分为 4 段式结构:画质画风 + 画面主体 + 画面细节 + 风格参考
提示词语法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。