一、介绍
SD
的环境搭建与使用,搭配各种特色模型文件,SD
的文生图功能就可以根据我们输入的提示词(Prompt),绘制出各种各样的精美图片。但是,在深度使用之后你会发现,想让 AI绘制出自己满意的图片并不容易,甚至多次调整提示词(Prompt)也生成不出来我们想要的画面。
这时你需要一个大杀器 ControlNet
,SD
搭配上 ControlNet
之后,就可以做到精准控图了,先来看看几个ControlNet
能做到的效果:
- ControlNet 官方仓库:github.com/lllyasviel/…
二、安装
跟 SD
一样,ControlNet
官方仓库不适合新手直接使用,我们可以安装 stable-diffusion-webui
的一个插件(sd-webui-controlnet
)来使用 ControlNet
,这是插件的
github 地址:
1、安装插件
安装这个插件很简单,在 webui
页面上找到 Extensions
-> Install from URL
,输入插件的
git 地址
https://github.com/Mikubill/sd-webui-controlnet.git
,点击 Install
即可:
等待 loading 结束后,页面底部会出现 Installed into xxx. Use Installed tab to restart.
提示,这时再依次找到 Extensions
-> Installed
-> Apply and restart UI
重启 webui
:
重启完成后,就可以在 txt2img
和 img2img
中看到会多出来一个 ControlNet
选项,这样插件就安装完成了:
2、安装模型
sd-webui-controlnet
插件安装完成之后,还需要配置一下 ControlNet
的专属模型(注意:不要跟 SD
的模型搞混了)。在此之前,先来了解一下 ControlNet
的绘画流程:
- 用户提供一张参考图,
ControlNet
根据指定的模式对参考图进行预处理,得到一张新图,作为另一张参考图。 - 根据提示词(Prompt),结合前面的(1 张 或 2 张)参考图,进行图像绘制。
上述流程的两个阶段,对应用到的模型有两种,以下是它们的下载地址:
- 预处理器模型(
annotator
):huggingface.co/lllyasviel/… - 预训练模型(
models
):huggingface.co/lllyasviel/…
注:预训练模型(裁剪过的
models
):[huggingface.co/webui/Contr…](https://link.juejin.cn/?target=https%3A%2F%2Fsiteproxy.ruqli.workers.dev%3A443%2Fhttps%2Fhuggingface.co%2Fwebui%2FControlNet-
modules-safetensors%2Ftree%2Fmain “https://huggingface.co/webui/ControlNet-
modules-safetensors/tree/main”)
打开预处理器模型(annotator
)网址,将需要用到的模型下载下来后,保存到插件的 annotator
目录下:
注意:预处理器模型需按分类目录存放,例如
body_pose_model.pth
和hand_pose_model.pth
应保存到
openpose
目录;而upernet_global_small.pth
则是保存到uniformer
目录;其他模型文件可根据关键字,找到对应存放目录。插件的
annotator
目录:stable-diffusion-webui\extensions\sd-webui- controlnet\annotator
。
打开预训练模型(models
)网址,将需要用到的模型下载下来后,保存到插件的 models
目录下:
注意:这步别急着动手,下面有体积更小的模型。⚠️⚠️⚠️
插件的
models
目录:stable-diffusion-webui\extensions\sd-webui- controlnet\models
。
ControlNet
官方存放在 huggingface
上的预训练模型文件一个个都是 5 个 G 起步,这是因为它们内部都包含了 SD
那个将近 4 个 G 的 v1-5-pruned-emaonly
模型,这在 stable-diffusion-webui
环境下是没必要的,这时我们可以使用专门裁剪过的预训练模型文件,体积会少很多:
- 预训练模型(裁剪过的
models
):huggingface.co/webui/Contr…
注:一般把所有
control_xxx.safetensors
文件下载下来保存到本地 models
目录下即可,如果你觉得模型文件太多,磁盘空间占用太大,也可以按需下载。
三、使用
sd-webui-controlnet
插件和模型文件(预处理器模型、预训练模型)都安装完成之后,再重启一次 webui
就可以正常使用
ControlNet
功能了。
1、人体姿势(Human Pose
)
根据 civitai
网站上的 Deliberate
模型案例,生成一张牛奶工的图片:
现在我们希望 AI 绘制出来的牛奶工他是坐着的,这时,就可以用上 ControlNet
选项了。展开 ControlNet
选项之后,把
Enable
勾上使其生效,之后,指定 openpose
所需的预处理器模型(Preprocessor)和预训练库模型(Model):
注:如果你使用的是 8G 以下显存(或者想获取更大的批量大小),可以把
Low VRAM
勾上。
github.com/lllyasviel/…
ControlNet
选项配置完成后,其它保持不变,点击 “Generate” 按钮重新生成,这时绘制出来的牛奶工的姿势就跟我们提供的参考图基本一致了:
注:图中牛奶工的小腿摆向与骨架图中的小腿摆向不符,不过整体效果已经很不错了,相信后续
ControlNet
能优化好这一点。
你也可以看到,SD
同时还生成出了一张骨架图,这骨架图是在 ControlNet
的预处理阶段生成的。而且 openpose
主要依据的参考图就是这张骨架图,也就是说,当我们手上有现成的骨架图时,完全可以直接将骨架图作为参考图,跳过预处理阶段(设为
“none”),直接进入绘图阶段。有兴趣的可以动手试试,效果是一样的:
2、重新着色和风格化(Canny Edge
、HED Boundary
)
如果你希望对现有的图片重新着色或换一种风格,可以使用 ControlNet
以下两个模型,它们的主要区别是边缘检测算法不同:
Canny Edge
模型:采用 Canny 边缘检测算法HED Boundary
模型:采用 HED(Holistically-Nested Network) 边缘检测算法
下面我们就分别采用这两种模型来试试,这是 Canny Edge
模型:
这是 HED Boundary
模型:
可以直观看到,两种模型生成的 边缘检测图
不同,从而最终绘制出来的图片细节上也有差别(注意看小女孩头发上的 3
个反光点),至于哪个更好,看个人感觉吧,我觉得 HED Boundary
模型好一点。关于这两种边缘检测算法的说明,可以查看以下文章了解:
- 边缘检测的三种算法介绍:zhuanlan.zhihu.com/p/35694372
- 边缘检测之 HED:zhuanlan.zhihu.com/p/43600043
3、草图绘制(Scribbles
)
使用 Scribbles
模型,可以根据草图(涂鸦)绘制出精美的图片,对于那些没有学过美术或者没有绘画天赋的人来说,简直太棒了。
提示词(Prompt):hot air balloon
如果你懒得自己画草图,也可以将一张现成的作品交给 ControlNet
,由它帮你画,注意,此时的预处理器模型换成了
fake_scribble
(从成品图中提取出草图),而预训练模型还是 control_scribble-fp16
(根据草图绘制作品):
注:这里是我唯一一处勾选了
Low VRAM
的地方,因为在进行提取草图的预处理阶段,控制台报了显存不足的错误,此时草图也就没能提取成功,勾选
Low VRAM
之后,一切就正常了。
4、建筑物绘制(M-LSD Lines
)
如果你希望是对建筑物进行重新上色和风格化,可以使用 M-LSD
模型:
5、语义分割绘制(Semantic Segmentation
)
Semantic Segmentation
语义分割是一种深度学习算法,重点关注 语义
一词,这种算法将一个标签或类别与图像联系起来,被用来识别形成不同类别的像素集合。这么说有点抽象,我们先直接使用这个模型,看会生成出什么东西:
注意:如果语义分割图没有生成出来,请查看控制台是否有报错,另外,检查一下
upernet_global_small.pth
是否有保存到
extensions\sd-webui-controlnet\annotator\uniformer
目录。因为SD
自己也有一个
models\uniformer
目录,如果你前面没有手动放置好upernet_global_small.pth
模型文件,那么在用到
Semantic Segmentation
模型时,SD
会自动帮你下载一个到它自己的models\uniformer
目录,这是个大坑,不过还好,这种情况控制台会报错,可以排查到这个问题。
可以看到,预处理阶段生成了一张花花绿绿的图片,这就是语义分割图,这图中的每一种颜色都代表了一类物品,比如紫色(#cc05ff)代表床(bed),橙黄色(#ffc207)代表垫子(cushion),金黄色(#e0ff08)代表台灯(lamp),
ControlNet
的 Semantic Segmentation
模型使用的是 ADE20K
协议,这些颜色值都可以在下面网址中找到对应的含义:
既然如此,那我们可以反向操作,修改某个物品的颜色,替换最终生成出来的图中的某样物品,比如把台灯(#e0ff08)换成花(#ff0000):
注:跟
openpose
直接提供骨架图一样,这里我们直接提供了语义分割图,所以预处理器选择 “none”。另外,注意此处我固定了 Seed
的值,这样最终生成出来的图片能跟上面的例子保持基本一致。
可以看到,最终绘制出来的图中,床边的台灯被替换成了花。
6、三维制图(Depth
、Normal Map
)
如果你希望能对图中 3D 物体比较细致的把控,可以使用 ControlNet
提供的以下 2 种模型:
Depth
模型:从原图中提取深度图,能较好的掌握复杂的三维结构层次,并将其复现。Normal Map
模型:从原图中提取 3D 物体的法线向量,绘制的新图与原图的光影效果完全相同。
下面我们就使用相同提示词(Plaster statue of Abraham Lincoln),分别采用这两种模型来试试,这是 Depth
模型:
这是 Normal Map
模型:
相比于 Depth
模型,Normal Map
模型能更好的保留几何形状,并且有更多的细节信息,注意看男人头发的形状。
注:建议
Depth
模型用于 3D 场景,Normal Map
模型用于 3D 物体。
四、试验特性
我们先明确一点,提示词(Prompt、Negative Prompt)是使用 SD
必不可少的一环,你需要对最终生成的图片进行描述,才能让 SD
更准确的绘制出你要的图片效果,而 ControlNet
只是以 SD
为基础的功能扩展(更好的控制图片的生成,辅助性的),不是单独的程序。目前
ControlNet
有 2 个强大但还处于试验阶段的功能,分别是:
Guess Mode
:猜测模式(或者叫non-prompt mode
)Multiple ControlNets
:多个ControlNet
ControlNet
的 Guess Mode
(猜测模式)的主要作用就是根据提供的参考图猜测你可能要使用的内容映射(深度?边缘?涂鸦?),即使在你不提供任何提示词(Prompt、Negative
Prompt)的情况下,也能进行准确猜测。但实际测试的结果,并没有官方说的那么强(可能是我使用方法不对吧~),这里就有不多介绍了,感兴趣的可以阅读下官方介绍和案例:
Guess Mode
介绍:github.com/lllyasviel/…
下面主要来介绍 Multiple ControlNets
,在搞懂它之前,我们先将该功能开启准备好。在 Settings
页面中,找到
ControlNet
分类,指定 Multi ControlNet
的个数(默认为 1),点击 Apply settings
保存配置,最后还得重启一次 webui
:
注:最多可以开启 10 个,根据情况调整即可。
重启之后,再回到 txt2img 查看 ControlNet 选项,可以看到现在 ControlNet 选项中有 2 个 ControlNet Model
子页面了:
顾名思义,Multiple ControlNets
就是开启多个 ControlNet
,而 ControlNet
是可组合的,当多个
ControlNet
组合使用时,就可以对 SD
进行多条件控制,将多个 ControlNet
的产物,结合提示词(Prompt)绘制出图片,简单理解的话,就是多图合成。现在,我在没有使用 Multiple ControlNets
的情况下,让
AI 绘制一张宇航员在彩色科幻山太空场景中的图片,效果如下:
提示词:astronaut in colorful scifi mountain space scene
看起来一切都很完美,但是呢,如果我想控制整个构图,比如背景轮廓(山体、地面、月亮等等),以及宇航员的姿态位置的话,应该怎么办呢?根据前面列举出来的所有
ControlNet
模型效果可知,背景轮廓可以使用 Depth
模型,能根据提供的背景参考图进行三维结构的复刻并重新着色风格化,而宇航员的姿态则可以使用 openpose
模型进行控制。前面的所有案例,都是单个
ControlNet
模型的使用,而现在,这里就可以使用 Multiple ControlNets
组合多个 ControlNet
模型来控图了。先来配置第 1 个 ControlNet
,用来控制背景的 Depth
模型:
注:如果手上有现成的深度图,那么可以跳过预处理阶段(Preprocessor 配置为 “none”),缩短时间。另外,注意这个
Weight
值我调整为 0.35 了,因为如果使用默认值 1 的话,与下面宇航员姿态的权重相当,最终生成的图片里宇航员的姿态不可控。
再来配置第 2 个 ControlNet
,用来控制宇航员姿态的 openpose
模型:
注:这个骨架图使用了
openpose-editor
插件制作,也是一个SD
插件,安装步骤参考本文中sd-webui- controlnet
插件的安装流程,除了 git 地址不同,其他都一样。
这时再使用相同的提示词,点击 “Generate” 按钮,最终生成出来的图片效果如下:
AI绘画SD整合包、各种模型插件、提示词、GPT人工智能学习资料都已经打包好放在网盘中了,有需要的小伙伴文末扫码自行获取。
针对各位AIGC初学者,这里列举了一条完整的学习计划,感兴趣的可以阅读看看,希望对你的学习之路有所帮助,废话不多说,进入正题:
目标应该是这样的:
第一阶段(30天):AI-GPT从入门到深度应用
该阶段首先通过介绍AI-GPT从入门到深度应用目录结构让大家对GPT有一个简单的认识,同时知道为什么要学习GPT使用方法。然后我们会正式学习GPT深度玩法应用场景。
-----------
- GPT的定义与概述
- GPT与其他AI对比区别
- GPT超强记忆力体验
- 万能GPT如何帮你解决一切问题?
- GPT表达方式优化
- GPT多类复杂应用场景解读
- 3步刨根问底获取终极方案
- 4步提高技巧-GPT高情商沟通
- GPT深度玩法应用场景
- GPT高级角色扮演-教学老师
- GPT高级角色扮演-育儿专家
- GPT高级角色扮演-职业顾问
- GPT高级角色扮演-专业私人健身教练
- GPT高级角色扮演-心理健康顾问
- GPT高级角色扮演-程序UX/UI界面开发顾问
- GPT高级角色扮演-产品经理
- GPT高级技巧-游戏IP角色扮演
- GPT高级技巧-文本冒险游戏引导
- GPT实操练习-销售行业
- GPT实操练习-菜谱推荐
- GPT实操练习-美容护肤
- GPT实操练习-知识问答
- GPT实操练习-语言学习
- GPT实操练习-科学减脂
- GPT实操练习-情感咨询
- GPT实操练习-私人医生
- GPT实操练习-语言翻译
- GPT实操练习-作业辅导
- GPT实操练习-聊天陪伴
- GPT实操练习-育儿建议
- GPT实操练习-资产配置
- GPT实操练习-教学课程编排
- GPT实操练习-活动策划
- GPT实操练习-法律顾问
- GPT实操练习-旅游指南
- GPT实操练习-编辑剧本
- GPT实操练习-面试招聘
- GPT实操练习-宠物护理和训练
- GPT实操练习-吸睛爆款标题生成
- GPT实操练习-自媒体爆款软件拆解
- GPT实操练习-自媒体文章创作
- GPT实操练习-高效写作推广方案
- GPT实操练习-星座分析
- GPT实操练习-原创音乐创作
- GPT实操练习-起名/解梦/写诗/写情书/写小说
- GPT提升工作效率-Word关键字词提取
- GPT提升工作效率-Word翻译实现
- GPT提升工作效率-Word自动填写、排版
- GPT提升工作效率-Word自动纠错、建议
- GPT提升工作效率-Word批量生产优质文章
- GPT提升工作效率-Excel自动化实现数据计算、分析
- GPT提升工作效率-Excel快速生成、拆分及合并实战
- GPT提升工作效率-Excel生成复杂任务实战
- GPT提升工作效率-Excel用Chat Excel让效率起飞
- GPT提升工作效率–PPT文档内容读取实现
- GPT提升工作效率–PPT快速批量调整PPT文档
- GPT提升工作效率-文件批量创建、复制、移动等高效操作
- GPT提升工作效率-文件遍历、搜索等高效操作
- GPT提升工作效率-邮件自动发送
- GPT提升工作效率-邮件自动回复
- GPT接入QQ与QQ群实战
- GPT接入微信与微信群实战
- GPT接入QQ与VX多用户访问实战
- GPT接入工具与脚本部署实战
第二阶段(30天):AI-绘画进阶实战
该阶段我们正式进入AI-绘画进阶实战学习,首先通过了解AI绘画定义与概述 ,AI绘画的应用领域 ,PAI绘画与传统绘画的区别 ,AI绘画的工具分类介绍的基本概念,以及AI绘画工具Midjourney、Stable Diffusion的使用方法,还有AI绘画插件和模板的使用为我们接下来的实战设计学习做铺垫。
- -----------
AI绘画定义与概述 - AI绘画的应用领域
- AI绘画与传统绘画的区别
- AI绘画的工具分类介绍
- AI绘画工具-Midjourney
- AI绘画工具-百度文心一格
- AI绘画工具-SDWebUI
- AI绘画工具-Vega AI
- AI绘画工具-微信中的AI绘画小程序
- Midjourney学习-Discord账号的注册
- Midjourney Bot界面讲解
- Midjourney提示词入门
- Midjourney高级提示词
- Midjourney版本参数学解读
- Midjourney功能参数
- Midjourney上采样参数
- AI绘画组合应用1-Midjourney + GPT
- AI绘画组合应用2-Stable Diffusion + GPT
- AI绘画组合应用3-AI绘画+ GPT +小红书
- AI绘画组合应用4-AI绘画+ GPT +抖音
- AI绘画组合应用5-AI绘画+ GPT +公众号
- AI绘画组合应用6-AI绘画+ GPT + AI视频
- AI绘画组合应用7-AI绘画+ GPT + 小说人物/场景
- AI绘画设计-Logo设计
- AI绘画设计-套用万能公式
- AI绘画设计-引用艺术风格
- AI绘画设计-GPT加速设计方案落地
- AI绘画设计-Vega AI渲染线稿生成设计
- AI绘画设计-摄影
- AI绘画设计-头像设计
- AI绘画设计-海报设计
- AI绘画设计-模特换装
- AI绘画设计-家具设计
- AI绘画设计-潘顿椅设计
- AI绘画设计-沙发设计
- AI绘画设计-电视柜设计
- AI绘画设计-包装设计的提示词构思
第三阶段(30天):AI-视频高段位
恭喜你,如果学到这里,你基本可以找到一份AIGC副业相关的工作,比如电商运营、原画设计、美工、安全分析等岗位;如果新媒体运营学的好,还可以从各大自媒体平台收获平台兼职收益。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- -----------
AI视频定义与概述 - AI视频制作-方案与创新
- AI视频制作-各种工具实操
- AI视频制作-美学风格(油画/插画/日漫/水墨)
- AI视频制作-形象设定(人物形象服装/造型/表情)
- AI视频画面特效处理
- AI视频画面拼接
- AI视频画面配音
- AI视频画面包装
- AI视频锁定人物逐一精修
- 多种表情动作/情节
- 动态模型转换-视频内部元素关键帧
- 动态模型转换-图像整体运动
- 动态模型转换-虚拟人
- 动态模型转换-表面特效
- AI自媒体视频-深问GPT,获取方案
- AI自媒体视频-风格设置(诗歌/文言文等)
- AI自媒体视频-各行业创意视频设计思路
- AI视频风格转换
- AI视频字数压缩
- AI视频同类型衍生
- AI视频Pormpt公式
第四阶段(20天):AI-虚拟数字人课程
- -----------
AI数字人工具简介 - AI工作台界面功能展示及介绍
- AI数字人任务确定
- AI数字人素材准备
- AI知识、语料的投喂
- AI模型训练
- AI训练成果展示及改进
- AI数字人直播系统工具使用
- AI人物在各平台直播
- AI数字人在OBS平台直播
第五阶段(45天以上):AIGC-多渠道变现课程
该阶段是项目演练阶段,大家通过使用之前学习过的AIGC基础知识,项目中分别应用到了新媒体、电子商务等岗位能帮助大家在主流的新媒体和电商平台引流和带货变现。
-----------
- AI-小红书引流变现
- AI-公众号引流变现
- AI-知乎引流变现
- AI-抖音引流/带货变现
- AI-写作变现
- AI-B站引流变现
- AI-快手引流变现
- AI-百家号引流变现
- AI-制作素材模板出售变现
- AI-周边定制变现
- AI-手机壳图案定制变现
- AI-周边产品定制变现
- AI-服装图案定制变现
- AI-个性头像定制变现
- AI-起号与知识付费变现
- AI-实现淘宝销售变现
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名AIGC的正确特征了。
这份完整版的AIGC资料我已经打包好,需要的点击下方二维码,即可前往免费领取!