当前位置: 首页 > news >正文

可控生成:ControlNet原理

🤗关注公众号funNLPer体验更佳阅读🤗
论文:Adding Conditional Control to Text-to-Image Diffusion Models
代码:lllyasviel/ControlNet
简单来说ControlNet希望通过输入额外条件来控制大型图像生成模型,使得图像生成模型根据可控。

文章目录

  • 1. 动机
  • 2. ControlNet原理
  • 3. ControlNet inStable Diffusion Model
    • 3.1 网络结构
    • 3.2 训练过程
  • 4. 生成效果
  • 5. 参考

1. 动机

当前文生图任务中会出现如下问题:

  • 特定任务中往往无法获取大规模的训练数据
  • 对于大部分人来说,并没有大规模计算集群资源
  • 各种图像生成任务中会有多种问题定义、用户控制条件、图像标注的形式

从而造成当前基于prompt控制的模型并不能满足特定业务需求。ControlNet的提出就是为了解决上面几个问题。

此外,我们在使用Stable Diffusion通过prompt生成图片时,很多时候我们希望能够生成一些固定姿态的物体,如下图所示,可能我们就想生成一只和最左边参考图像中鹿的姿态一摸一样的鹿,很显然如果直接通过prompt很难控制,这里主要有两个难点:

  • 如何非常准确详细的描述左边鹿的姿态
  • 即使参考图片鹿的姿态被描述的很准确,将prompt送入到模型中,依然无法控制姿势不变
    在这里插入图片描述

而通过controlNet即可非常方便的解决这个问题,如下图所示,只需使用canny边缘检测,将参考图片的物体的边缘识别出来,然后将边缘轮廓图作为条件输入到模型中,即可轻松生成与参考图像姿势一样的鹿,同时通过prompt来控制鹿的颜色
在这里插入图片描述
当然,ControlNet功能强大,其输入条件可以是边缘轮廓图、手绘轮廓图、语义分割图、深度图等,从而使得控制变得更加简单。

2. ControlNet原理

如图1左图所示,在一个扩散模型中,如果不加ControlNet的扩散模型,其中原始的神经网络 F \mathcal{F} F 输入 x x x 获得 y y y,其中 Θ \mathcal{\Theta} Θ 是扩散模型的参数。
y = F ( x ; Θ ) y={\mathcal{F}}(x;\Theta) y=F(x;Θ)
在这里插入图片描述

图2.1 controlNet示意图

图1的右图展示了如何在原始神经网络上 F \mathcal{F} F 上构建ControlNet;ControlNet 将一个大型扩散模型的权重克隆为一个“可训练副本”和一个“锁定副本”:锁定的副本 (locked) 保留了从数十亿张图像中学习到的网络能力,而可训练副本 (trainable copy) 在特定任务的数据集上进行训练,以学习条件控制。经过上图所示的改变后,神经网络的输出变成如下式所示:

y c = F ( x ; Θ ) + Z ( F ( x + Z ( c ; Θ z 1 ) ; Θ c ) ; Θ z 2 ) y_{c}={\mathcal{F}}(x;\Theta)+{\mathcal{Z}}({\mathcal{F}}(x+{\mathcal{Z}}(c;\Theta_{z1});\Theta_{c});\Theta_{z2}) yc=F(x;Θ)+Z(F(x+Z(c;Θz1);Θ

http://www.lryc.cn/news/149641.html

相关文章:

  • 【极客时间】MySQL 必知必会-20230901
  • 53 个 CSS 特效 3(完)
  • 简单数学题:找出最大的可达成数字
  • [C++ 网络协议] 套接字的多种可选项
  • 2022年03月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • ***数据转换中常用的两个函数 sscanf,sprintf
  • 软件工程(十九) 软件测试
  • go中读写锁(rwmutex)源码解读实现原理
  • 【人工智能】—_深度优先搜索、代价一致搜索、深度有限搜索、迭代深度优先搜索、图搜索
  • uni-app 客服按钮可上下拖动动
  • 基于Android的旅游管理系统 微信小程序
  • python-数据可视化-下载数据-CSV文件格式
  • 时序预测 | MATLAB实现SSA-XGBoost(麻雀算法优化极限梯度提升树)时间序列预测
  • leetcode 823 带因子的二叉树
  • 钉钉消息已读、未读咋实现的嘞?
  • Java 读取TIFF JPEG GIF PNG PDF
  • 研磨设计模式day14模板方法模式
  • 7 集群基本测试
  • chrono学习(一)
  • 后端面试话术集锦第 十 篇:springMVC面试话术
  • 基于Django 框架搭建的机器学习在线平台源代码+数据库,实现KNN、ID3、C4.5、SVM、朴素贝叶斯、BP神经网络等算法及流程管理
  • 大数据组件-Flume集群环境搭建
  • 想系列服务迁移专有云效实操
  • 2020 牛客多校第三场 C Operation Love (叉积判断顺逆时针)
  • 基于OFDM的水下图像传输通信系统matlab仿真
  • Docsify + Gitalk详细配置过程讲解
  • React中的setState的执行机制
  • 2023最新任务悬赏平台源码uniapp+Thinkphp新款悬赏任务地推拉新充场游戏试玩源码众人帮威客兼职任务帮任务发布分销机
  • 微服务事务管理(Dubbo)
  • Springboot整合ClickHouse