Stable Diffusion Controlnet常用控制类型解析与实战课程 5

news2024/12/15 7:18:10

本节内容,是stable diffusion controlnet常用控制类型与实战的第5节课程。在前面几期课程中,我们已经陆续学习了controlnet的多种控制类型,本节课程,我们将继续讲解revision,instructp2p,ip-adapter,t2i-adapter这几种控制类型,这些控制类型提供了丰富的图像控制视角,也为stable diffusion增加了更多维度的应用能力。

一:Revision

我们先看一看revision控制类型

revision控制类型需要配合SDXL模型使用,对SD1.5模型是无效的。该控制类型可以通过上传的参考图来推测图片的内容,然后控制图片的生成。

我们演示一下。先选择sdxl模型,不填写任何提示词,

启用controlnet并选择revision_ignore_prompt预处理器,我们使用一些非stable diffusion绘制的图片作为控制图片

比如上传一张主体内容是一只狗的控制图片,分辨率调整与参考图一致(1024*1024)

点击生成,可以看到,stable diffusion同样输出了一幅关于狗的图片。

再使用另外一张关于主体内容是男人的控制图片,点击生成,可以看到,stable diffusion同样输出了一幅关于男人的图片。

revision控制类型能够识别图片中的内容,比如动物,人物等等,但对于复杂的图像,revision则未必能很准确地识别整体的内容。比如我们上传一张男人和狗的图像作为控制图,此时生成的图片只包含了男人,

如果上传一幅风景图,此时绘制的图片内容与原图会有非常大的差异。

1.1:反推提示词

我们在这里再引申讲解一个stable diffusion提供的一个比较有用的功能-反推提示词,比如上面的复杂图像,我们可以更多会使用反推提示词来解析图像内容,在图生图中上传参考图,生成按钮下方最右侧是两个提供反推提示词功能的按钮clip反推和deepbooru反推,比如,我们刚刚上传的风景图,图生图模式中,作为参考图上传。点击clip或者deepbooru按钮,stable diffusion会帮我们推测出图片内容,并以文字形式填写到提示词输入框中。

我们可以利用这些反推出来的提示词进一步生成图像。

在第一次使用clip和deepbooru反推提示词时,stable diffusion需要下载一些模型文件,所以需要保证外部网络连接正常。另外clip或deepbooru反推出的提示词,也可以进一步按需修改和调整,以便生成的图像更贴近我们的设想和预期。

我们在midjourney的课程中曾经讲述过可以使用describe指令获取图像提示词信息,然后使用垫图加提示词的方式进一步生成新的图像。在stable diffusion中,借助反推提示词功能,也可以实现类似的图像绘制思路。

  

我们回到revision控制类型的讲解,

revision有两个细分预处理器,

刚才演示时使用的是revision_ignore_prompt

使用该预处理器,提示词会被忽略,比如上传的男人图像,即使我们填写了提示词1 dog,生成的图片是没有dog这个元素的,

另外一个预处理器时revision_clipvision,该预处理器会根据提示词和参考图中的信息来控制图片生成过程,但是根据官方解释,目前阶段使用revision_clipvision预处理器,提示词的作用还是影响太强,此时controlnet几乎不起作用或作用比较小,所以该预处理器目前应用场景很少。

二:instructP2P

我们接下来学习另外一个控制类型-instructP2P

该控制类型提供了一种通过人类自然语言指令编辑图像的方法。其模型能够接受一张图像和相应的文字指令(也就是prompt),然后根据指令来编辑图像。

该模型可以在很短的时间内快速完成图片的编辑。

instructP2p常用的指令有make,change等等,结合into等介词来实现图片编辑。我们看一下演示:

文生图模式下(instructP2p主要在文生图下使用,图生图很少用) ,启用controlnet,选择instructP2p,该控制类型不需要使用到预处理器,

上传一幅人物图作为控制图片,我们增加下雪场景,在正向提示词里输入make it snow,点击生成,绘制的图片会增加下雪元素。

希望将女孩的头发换一个颜色,我们可以继续输入change her hair to red,

我们还可以更换衣服,change her clothes to sweater

make it snow,

change her hair to red,

change her clothes to sweater

可以看到,instructP2p对于编辑修改图片场景,有着让人惊讶的表现。利用好该控制类型,很多时候可以让我们a快速地应对图片修改需求

在controlnet控制类型列表中,可以看到几个带有adapter关键字的控制类型。

带有adapter字样的控制类型实际上是使用适配器的方式将控制单元接入到controlnet中,这些控制单元通常设计为可插拔方式,可以按需接入到系统中,

controlnet目前包含了两个adapter,ip-adapter和t2i-adapter,这两个adapter都是由腾讯主导开发,为stable diffusion提供特别的绘图控制方式。

三:IP-Adapter

我们先看一下ip-adapter控制类型

ip-adapter可以识别参考图的艺术风格和内容,然后生成相似的作品,ip-adapter的常用方式是将参考图的风格迁移融合到新的图片中,

ip-adapter的模型是需要单独下载的,其官方网址为github上的项目地址,https://github.com/tencent-ailab/IP-Adapter,模型则需要到hugging face下载, https://huggingface.co/h94/IP-Adapter/tree/main/models。其中有多个模型,比如有针对面部带有face关键字的模型,

我们根据使用需要下载对应的模型文件即可,我们在下面的演示使用到的是ip-adapter-plus-face_sd15.safetensors这个模型,将这个模型下载好放置到sd-controlnet的models目录中,刷新controlnet模型列表,就可以看到新添加的controlnet模型,

我们演示一下ip-adapter提供的功能,

文生图模式下,启用controlnet,选择ip-adapter,同时选择我们刚刚下载的对应模型文件. 上传一张赛博朋克风格的图片作为控制图像

在提示词中填入1 girl, wearing a hat,  beach 描述了一个戴帽子的女孩在沙滩的场景

点击生成,可以看到生成的也是赛博朋克风格的图片

在早前如果期望生成赛博朋克风格人物图片,往往需要去寻找赛博朋克Lora或LyCoris,而使用ip-adapter,只需要一张赛博朋克风格的人物图片,便能控制绘制过程,使生成的图片具有赛博朋克的风格。

我们再看一看ip-adapter的一个应用方式:

在文生图中,提示词只简单地填入 1 girl,。我们启用两个controlnet控制单元,

第一个控制单元使用ip-adapter,并上传赛博朋克风格的图片作为参考图,该控制类型的控制权重可以适当调整,这里设置为0.5

第二个控制单元使用canny并上传一张人物参考图

ip-adapter的参考图人物戴有眼镜,我们希望生成的图片不带眼镜,可以添加反向提示词描述,(glass:2)

点击生成,可以看到,赛博朋克风格已经融入到canny上传的人物参考图中。

可以看到这种应用方式非常适合人物特定风格化应用场景,比如上传个人照片,打造专属的赛博朋克人物肖像。

四:T2I-Adapter

演示了ip-adapter的用法,最后我们来看一下t2i-adapter。

t2i-adapter是腾讯推出的可以对预训练模型提供引导的一个控制类型集合。

t2i-adapter提供了很多控制方式,包括controlnet本身就已经具备的canny,depth,sketch等等。

但t2i-adapter相比controlnet有很多优势,比如t2i-adapter的模型更小,占用存储空间更少,t2i-adapter可以在整个去噪过程中仅运行一次,所以其运行速度也更快。我们甚至可以根据不同的情况和需求去训练适配器,以实现想要的控制和编辑效果。

除了canny,depth这些controlnet常用控制方式,t2i-adapter也提供了一些另外的控制方式,比如color_grid。我们这里就演示一下t2i_color_grid的用法,模型的下载地址如下https://huggingface.co/TencentARC/T2I-Adapter/tree/main/models,

下载后将文件放置到sd-controlnet-webui程序主目录的models文件夹下,

我们这里t2i_color_grid使用的是coadapter-color-sd15v1.pth这个模型文件,

t2i_color_grid主要从参考图中学习图片的颜色风格特征,然后引入到图像生成过程中。

在文生图中,填入简单的提示词1 girl

启用两个controlnet控制单元,

第一个控制单元。启用t2i_adapter控制类型,选择t2i_color_grid预处理器以及下载好的对应的color模型(实测,模型不选择,生成的图片不会收到颜色特征引导),提高控制权重到1.5,并上传控制参考图

第二个控制单元,启用canny并上传人物图片作为控制图像。

点击生成,可以看到生成的图片,引入了t2i_adapter控制单元下参考图的颜色特征。

t2i-adapter是一个控制集合,提供了多种控制方式,包括 canny,depth,sketch,这些控制方式与controlnet本身的canny,depth,sketch控制效果是类似的,我们就不再演示。

好了,本节课程到这里就结束了,我们在最近的五节课程中,完整讲解了stable diffusion controlnet的不同控制类型,课程的内容有些多,大家可能需要一定时间去消化。也建议大家多实操,这样能更好地理解这些控制类型的作用以及在哪些应用和实战场景可以引入这些控制方式。学习完十几节的stable diffusion课程,相信大家对stable diffusion已经有了全面的认识和理解,stable diffusion是一个非常强大的AI绘画工具,相比midjourney,stable diffusion强大的控图能力使其能完成更多场景的绘图任务。除了stable diffusion软件本身,其生态也在飞速发展,我们也需要多多关注stable diffusion生态相关的信息与资源,这些信息与资源也会带来非凡的价值。学习完stable diffusion,我们将进入AI音视频应用的学习课程,我们将陆续学习AI技术在视频人物换脸,声音克隆,声音转换,唇形对齐,数字人等领域的应用方式,这些技术不仅为整个AI生态注入了丰富的活力,也推动AI技术更深入地融入到我们的日常工作、学习和生活中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2259808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spark如何自定义函数

UDF:一对一的函数【User Defined Functions】 substr、split、concat、instr、length、from_unixtime UDAF:多对一的函数【User Defined Aggregation Functions】 聚合函数 count、sum、max、min、avg、collect_set/list UDTF:一对多的函…

linux网络编程 | c | select实现多路IO转接服务器

poll实现多路IO转接服务器 基于该视频完成 04-poll函数实现服务器_哔哩哔哩_bilibili 通过响应式–多路IO转接实现 要求:能看懂看,看不懂也没啥大事,现在基本都用epoll代替了 大家看视频思路吧,代码就是从讲义里面copy了一份…

数据结构(顺序表)JAVA方法的介绍

前言 在 Java 中,集合类(Collections)是构建高效程序的核心组件之一,而 List 接口作为集合框架中的重要一员,是一个有序、可重复的元素集合。与 Set 接口不同,List 保证了元素的顺序性,并允许存…

HTML+CSS+Vue3的静态网页,免费开源,可当作作业使用

拿走请吱一声&#xff0c;点个关注吧&#xff0c;代码如下&#xff0c;网页有移动端适配 HTML <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width…

内网穿透讲解

什么是内网穿透 内网穿透是一种网络技术&#xff0c;它允许外网或者其他局域网的用户来访问这个局域网的服务器资源&#xff0c;让资源的利用率更高&#xff0c;更加灵活&#xff0c;但是也要确保网络安全。 工作原理 如果你在公司&#xff0c;但是你需要使用到你家里的那台电…

Harmonyos之深浅模式适配

Harmonyos之换肤功能 概述实现原理颜色适配颜色资源配置工具类编写界面代码编写适配效果 概述 深色模式&#xff08;Dark Mode&#xff09;又称之为暗色模式&#xff0c;是与日常应用使用过程中的浅色模式&#xff08;Light Mode&#xff09;相对应的一种UI主题。 换肤功能应…

蓝桥杯刷题——day4

蓝桥杯刷题——day4 题目一题干题目解析代码 题目二题干题目解析代码 题目一 题干 小蓝和朋友们在玩一个报数游戏。由于今年是2024 年&#xff0c;他们决定要从小到大轮流报出是20或24倍数的正整数。前10个被报出的数是&#xff1a;20,24,40,48,60,72,80,96,100,120。请问第2…

Git:常用命令

一、查看当前分支 git branch 二、查看所有分支 git branch -a 三、切换到远程分支 git checkout origin/分支名 示例&#xff1a;git checkout origin/dev 四、拉取远程分支代码 git pull origin 分支名 示例&#xff1a;git pull origin dev 五、常用指令 查看暂存区…

算法题(4):报数游戏

审题&#xff1a;首先这题本质上是数学题中的找规律问题&#xff0c;我们需要用到编程的地方也只是辅助计算 思路&#xff1a;首先先用枚举法多算几个数出来&#xff0c;然后观察规律 枚举之后我们发现从第一个位置开始每过十个数就会增加120&#xff0c;所以每十个数可以算一个…

短视频矩阵源码开发部署全流程解析

在当今的数字化时代&#xff0c;短视频已成为人们娱乐、学习和社交的重要方式。短视频矩阵系统的开发与部署&#xff0c;对于希望在这一领域脱颖而出的企业和个人而言&#xff0c;至关重要。本文将详细阐述短视频矩阵源码的开发与部署流程&#xff0c;并附上部分源代码示例&…

【FLASH、SRAM和DRAM、CISC和RISC、冯诺依曼和哈佛】单片机内存结构的了解

【FLASH、SRAM和DRAM、CISC和RISC、冯诺依曼和哈佛】单片机内存结构的了解 一、单片机概念 单片机&#xff1a;Single-Chip Microcomputer&#xff0c;单片微型计算机&#xff0c;是一种集成电路芯片 1.1RAM里的SRAM和DRAM SRAM&#xff08;Static Random Access Memory&…

STM32仿真——01创建工程

目录 1.需要用到的软件工具​编辑 2.第一步Proteus软件新建工程​编辑 3.第二步——stm32cubumx 4、MDK代码编写 #注意安装的过程或者使用过程使用英文&#xff0c;以防报错&#xff1b; 1.需要用到的软件工具 2.第一步Proteus软件新建工程 选中&#xff0c;默认 先布局&…

Spark3.2.0集群部署ON YARN

环境说明 准备三台服务器&#xff0c;分别为&#xff1a;bigdata141&#xff08;hadoop 主节点&#xff09;、bigdata142、bigdata143确保 hadoop 集群先启动好&#xff0c;我这边的 hadoop 版本为 3.2.0另准备一台服务器&#xff0c;bigdata144&#xff0c;作为 hadoop 客户端…

GLM-4-Plus初体验

引言&#xff1a;为什么高效的内容创作如此重要&#xff1f; 在当前竞争激烈的市场环境中&#xff0c;内容创作已成为品牌成功的重要支柱。无论是撰写营销文案、博客文章、社交媒体帖子&#xff0c;还是制作广告&#xff0c;优质的内容不仅能够帮助品牌吸引目标受众的注意力&a…

C++获取时间戳/计算运行时长

一、便于使用&#xff0c;使用chrono封装一个简单的类 #pragma once#include <chrono>using CTime_point std::chrono::high_resolution_clock::time_point;class CElapsedTime final { public:static CTime_point now() {return std::chrono::high_resolution_clock::…

IDEA方法注释模板设置

目录 创建模板 新建模板&#xff1a;命名为* 设置模板内容-IDEA格式模板 设置模板应用场景 设置参数 创建模板 /**Enter这里我们也按照这种习惯来设置IDEA的方法注释&#xff1a;File-->Settings-->Editor-->Live Templates 先新建模板组&#xff0c;然后在模板组中…

Xcode

info.plist Appearance Light 关闭黑暗模式 Bundle display name 设置app名称&#xff0c;默认为工程名 Location When In Use Usage Description 定位权限一共有3个key 1.Privacy - Location When In Use Usage Description 2.Privacy - Location Always and When In U…

探索 Cesium 的未来:3D Tiles Next 标准解析

探索 Cesium 的未来&#xff1a;3D Tiles Next 标准解析 随着地理信息系统&#xff08;GIS&#xff09;和 3D 空间数据的快速发展&#xff0c;Cesium 作为领先的开源 3D 地球可视化平台&#xff0c;已成为展示大规模三维数据和进行实时渲染的强大工具。近年来&#xff0c;随着…

掘金电影市场的新机遇:开发特惠电影票小程序api文档

随着电影市场的不断扩大&#xff0c;特惠电影票小程序成为创业者和企业争相布局的新蓝海。本文将带你深入了解特惠电影票小程序的开发要点&#xff0c;以及如何通过这个项目实现盈利。 项目背景及市场分析 电影市场规模的不断扩大为特惠电影票小程序提供了广阔的市场空间。 根…

JaxaFx学习(一)

目录&#xff1a; &#xff08;1&#xff09;基本结构 &#xff08;2&#xff09;Application &#xff08;3&#xff09;Stage窗口显示 &#xff08;4&#xff09;Scene场景切换 &#xff08;5&#xff09;UI控件通用属性 &#xff08;6&#xff09;UI控件属性绑定很属性…