Stable Diffusion基础:ControlNet之图片高仿效果

news2024/12/29 4:04:57

今天继续给大家分享AI绘画中 ControlNet 的强大功能,本次的主角是 Reference,它可以将参照图片的风格迁移到新生成的图片中,这句话理解起来很困难,我们将通过几个实例来加深体会,比如照片转二次元风格、名画改造、AI减肥成功图片制作、绘本小故事等等。

还有之前看很多文章说,Reference 可以一定程度上代替Lora,真的是这样吗?今天也来一探究竟。

基本使用

我这里有一张提前生成好的美女图片,现在就用她来实测 Reference 的控制效果。

下面开始生成:

首先是选择一个大模型,这里使用的是和上面生成图片相同的模型:realisticVisionV20;

然后我们填写一些简单的提示词,以免出现一些不太方便的图。这里故意没有使用生成参考图片时的提示词,因为提示词会影响出图效果,就看不出来 Reference 的复刻效果了。

这是我的一些模型生成参数,大家可以参考,没必要完全按照这个来。

最最重要的就是 ControlNet 的设置,如下图所示:

  • 上传参考图片
  • 启用 ControlNet
  • 勾选完美匹配像素
  • 选择 Reference

注意这个 ControlNet 只有一个预处理器,它可以从参考图中提取图片的特征信息,用于生成控制。

Reference 还有一个 Style Fidelity 参数,翻译过来就是风格忠实度,越小越接近使用的大模型的风格,越大越接近参考图的风格,但是越大可能出现图片崩坏的情况,0.5是个平衡值。

然后就可以生图了,看一下效果:

以我个人的眼光,只能说:人物的形态、整体构图是复制出来了,但是气质还是差那么一点的。

局部绘制

很多分享 Reference 技术的文章还提到,Reference 可以起到一定的 Inpaint 效果,那么这里也来看下效果如何。这里的局部重绘是通过提示词发生作用的,下面是几个例子:

裙子变成黑色:1girl, white shirt, ((black skirt)),提示词权重要高一些,否则不容易扭转过来。人物姿态和背景都没啥大变化,裙子也变成了黑色,只是有一张用力过猛,上衣颜色也变了。

黑发变成金色:1girl, white shirt and dress, ((golden hair))。人物姿态和背景都没啥大变化,头发变成金色的了,人脸也没变成外国人。

把背景换成公园:1girl, white shirt and dress, ((the background is park))。背景更换成功,同时人物姿态和衣服颜色都没啥大变化。

不同模型

上边的参考图片和生成图片使用的是同一个大模型,测试结果难免会有说服力不够的问题,下图是我使用三个模型做的对比测试,每个模型使用 Reference 生成两张图片。

提示词还是这个:1girl, white shirt and dress, 其它参数都保持不变。

可以看到,人物的形态、背景、色彩搭配等都被迁移到了新生成的图片中,当然这些图片也还会受到基础模型的很大影响,渲染的笔触、人物的五官都受到模型的紧密约束。

到这一步,你能说 Reference 是 Lora 吗?它能代替 Lora 吗?我认为它们是有很大的不同的。

控制参数

Reference还有一些控制参数,这里给大家看下效果。

为了方便演示,我这里专门生成了一张连环画风格的图片作为参考图:

然后生成图片的大模型选择的是二次元模型 AnythingV5。

Style Fidelity

值为 1 的效果:色彩更偏重参考图。

值为 0 的效果:色彩更偏重模型。

预处理器

这里有三个预处理器:

  • Reference only:生成与参考图类似的风格和脸部。
  • Reference adain:使用 AdaIN 风格迁移算法,结果可能偏离参考图;
  • Reference adain+attn:综合 only 和 adain 方法。

Reference only 我们已经看过了,分别看下另外两个的效果。

Reference adain:确实更接近模型,颜色和脸型的变化特别明显,更加偏重 Anything 的二次元风格。

Reference adain+attn:介于模型风格和参考图风格之间。

用途示例

风格转绘

比如各大短视频平台比较流行的照片转动漫风格,可以在“图生图”中上传一张真实照片,然后使用动漫风格的大模型加上 Reference 进行重绘。下图的效果,提示词只要一个简单的:1girl,重绘强度控制在0.4以下即可。

名画改造

这是利用了 Reference 的局部重绘能力。在“图生图”中使用如下提示词:

女人和猫咪:A woman and a cat

背景改长城:A woman, the background is Badaling Great Wall

注意重绘幅度调整到0.4-0.6。

减肥成功

一个AI减肥成功的故事,还是利用了 Reference 的局部重绘能力。

大模型使用realisticVisionV20_v20,参数参考:

A strong man lifts up his shirt, eight-pack abs, strong chest muscles, and biceps.
Negative prompt: EasyNegative
Steps: 30, Sampler: DPM++ 2M SDE Karras, CFG scale: 7, Seed: 1734015608, Size: 512x768, Model hash: c0d1994c73, Model: realisticVisionV20_v20, Denoising strength: 0.75, Clip skip: 2, Style Selector Enabled: True, Style Selector Randomize: False, Style Selector Style: base, ControlNet 0: "preprocessor: reference_adain+attn, model: None, weight: 1, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: True, control mode: My prompt is more important, preprocessor params: (-1, 0.5, -1)", TI hashes: "EasyNegative: c74b4e810b03", Version: v1.5.1

如果感觉脸不像,可以使用 roop 插件处理下,使用方法参见我另一篇教程:真人AI写真的制作方法-文生图换脸

绘本小故事

故事情节

小女孩走在放学回家的路上,步履匆匆;

她在路边发现了一只受伤的狗子,表情痛苦,怎么办呢;

小女孩一咬牙,抱着狗子来到了医院;

狗子得到了救治有点开心,女孩花光了钱有点不高兴;

小女孩和狗子欢快的走在回家的路上,因为他们成了好朋友。

狗子从此有了一个家。

制作方法:

提前生成一张女孩的图片,然后使用 Reference 加不同的提示词生成不同的图片。

这里使用的大模型是 toonyou_beta3。

资源下载

本文使用的模型、插件,生成的图片,都已经上传到了我整理的SD绘画资源中,后续也会持续更新,如有需要,请/关/注/公/众\号:萤火遛AI(yinghuo6ai),发消息:SD,即可获取下载地址。


以上就是本文的主要内容了,如有问题,欢迎给我留言沟通交流。

如果你还没有使用过Stable Diffusion WebUI,可以先看这几篇文章,了解下如何使用:

手把手教你在本机安装Stable Diffusion秋叶整合包

手把手教你在云环境炼丹(部署Stable Diffusion WebUI)

SDXL 1.0出图效果直逼Midjourney!手把手教你快速体验!

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

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

相关文章

C#字符串占位符替换

using System;namespace myprog {class test{static void Main(string[] args){string str1 string.Format("{0}今年{1}岁,身高{2}cm,月收入{3}元;", "小李", 23, 177, 5000);Console.WriteLine(str1);Console.ReadKey(…

一百五十三、Kettle——Linux上安装的kettle9.3启动后说缺少libwebkitgtk-1.0(真是坑爹啊,刚龟速下载又忍痛卸载)

一、问题 在kettle9.3可以在本地连接hive312后,在Linux中安装了kettle9.3,结果启动时报错WARNING: no libwebkitgtk-1.0 detected, some features will be unavailable 而且如果直接下载libwebkitgtk的话也没有用 [roothurys22 data-integration]# yu…

C#软件外包开发流程

C# 是一种由微软开发的多范式编程语言,常用于开发各种类型的应用程序,从桌面应用程序到移动应用程序和Web应用程序。下面和大家分享 C# 编程学习流程,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&#…

基于灰狼算法改进深度信念网络的分类预测,gwo-dbn分类预测

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) 灰狼算法原理 灰狼算法改进深度信念网络的分类预测 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,是一种非常好的分类算法,本文…

【Python】进阶之 MySQL入门教程

文章目录 数据库概述Mysql概述Mysql安装与使用Navicat安装和使用Mysql终端指令操作Mysql和python交互订单管理案例实现 数据库概述 数据库的由来 发展历程说明人工管理阶段用纸带等进行数据的存储文件系统阶段数据存储在文件中数据库阶段解决了文件系统问题高级数据库阶段分布式…

生成式 AI 在泛娱乐行业的应用场景实践 – 助力风格化视频内容创作

感谢大家阅读《生成式 AI 行业解决方案指南》系列博客,全系列分为 4 篇,将为大家系统地介绍生成式 AI 解决方案指南及其在电商、游戏、泛娱乐行业中的典型场景及应用实践。目录如下: 《生成式 AI 行业解决方案指南与部署指南》《生成式 AI 在…

ios swift5 collectionView 瀑布流(两列)

文章目录 1.瀑布流1.1 demo地址1.2 记得把部署的最低版本由8改成11,13甚至更高。不然编译会报错 2.动态计算图片和文字的高度 1.瀑布流 1.1 demo地址 CollectionViewWaterfallLayout - github 1.2 记得把部署的最低版本由8改成11,13甚至更高。不然编译会报错 2.动态计算图片和…

Fiddler模拟请求发送和修改响应数据

fiddler模拟伪造请求 方法一:打断点模拟HTTP请求 1、浏览器页面填好内容后(不要操作提交),打开fiddler,设置请求前断点,点击菜单fiddler,”Rules”\”Automatic Breakpoints”\”Before Requests” 2、在…

3.文件目录

第四章 文件管理 3.文件目录 ​   对于D盘这个根目录来说它对应的目录文件就是图中的样子,其实就是用一个所谓的目录表来表示这个目录下面存放了哪些东西。在D盘中的每一个文件,每一个文件夹都会对应这个目录表中的一个表项,所以其实这些一…

魔改 axuanup 的 aardio和python 猜拳游戏 代码

根据 axuanup 的 aardio和python 猜拳游戏 代码,魔改了一个风格不一样的代码。 争取做到代码尽量“简”,但还没到“变态简”的程度,因为还能看懂。 原文:aardio和python 猜拳游戏-自由交流乐园-Aardio资源网 代码如下&#xff…

Java课题笔记~ 过滤器

概念 过滤器:顾名思义,就是在源数据和目的数据之间起过滤作用的中间组件。 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。 filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放…

使用VLC轻松体验本地视频推流、拉流、播放功能

VLC 前言一、VLC是什么?二、VLC推流(服务器推流)VLC客户端拉流参考 前言 本章主要讲解如何通过VLC开源免费工具对本地视频实现推流、拉流、播放演示。 一、VLC是什么? VLC 是一款自由、开源的跨平台多媒体播放器及框架&#xf…

.netcore grpc双向流方法详解

一、双向流处理概述 简单来讲客户端可以向服务端发送消息流,服务端也可以向客户端传输响应流,即客户端和服务端可以互相通讯客户端无需发送消息即可开始双向流式处理调用 。 客户端可选择使用 RequestStream.WriteAsync 发送消息。 使用 ResponseStream…

new BigDecimal(double val)注意事项 / JWT解析BigDecimal类型数据

前言: 公司项目中有一个板块需要解析JWT令牌获取载荷里面封装的数据,遇到要解析一个BigDecimal类型的数据 问题发现过程: 正常来说,我们解析一个JWT令牌的步骤如下: public static Claims getDataFromToken(String tok…

python 多个字符替换为一个字符(简洁代码)

在windows系统当中的文件命名&#xff0c;有些特殊字符是不能存在&#xff0c;下面我们来看一下哪些字符不能存在。 文件名称中不能包含\ / : * ? " < > |一共9个特殊字符 一开始想用replace()替换&#xff0c;但是要处理多个字符&#xff0c;写起来代码不整洁 每次…

k8s认证详解 k8s证书详解 2023推荐

推荐阅读 https://www.yii666.com/blog/478731.html?actiononAll 在 Kube-apiserver 中提供了很多认证方式&#xff0c;其中最常用的就是 TLS 认证&#xff0c;当然也有 BootstrapToken&#xff0c;BasicAuth 认证等&#xff0c;只要有一个认证通过&#xff0c;那么 Kube-api…

Jupyter并发测试以后出现EOFError marshal data too short

Jupyter 并发测试以后出现EOFError: marshal data too short 背景 由于项目需求需要用户能进行网页在线运行python代码程序&#xff0c;调研后决定使用Jupyter的服务接口实现此功能&#xff0c;目前使用docker进行容器化部署&#xff0c;测试针对次服务进行并发测试。测试并发…

tkinter的Frame控件

文章目录 Frame和LabelFrame控件Frame参数LabelFrame参数 tkinter系列&#xff1a; GUI初步&#x1f48e;布局&#x1f48e;绑定变量&#x1f48e;绑定事件&#x1f48e;消息框&#x1f48e;文件对话框Frame控件&#x1f48e;PanedWindow和notebook控件扫雷小游戏&#x1f48e…

K8S系列二:实战入门

I. 配置kubectl 1.1 什么是kubectl&#xff1f; 官方文档中介绍kubectl是&#xff1a; Kubectl 是一个命令行接口&#xff0c;用于对 Kubernetes 集群运行命令。Kubectl的配置文件在$HOME/.kube目录。我们可以通过设置KUBECONFIG环境变量或设置命令参数–kubeconfig来指定其他…

Android布局【LinearLayout】

文章目录 常见属性orientation的选择项解释项目结构主要代码 常见属性 orientation&#xff1a;布局中组件的排列方式gravity&#xff1a;控制组件所包含的子元素的对齐方式&#xff0c;可多个组合layout_gravity&#xff1a;控制该组件在父容器里的对齐方式background&#x…