文生图领域经典-ControlNet介绍

news2024/11/23 0:01:27

引言

2023年的计算机视觉领域顶级学术会议ICCV上,一篇颠覆文生图AI领域的论文《Adding Conditional Control to Text-to-Image Diffusion Models》——ControlNet 荣膺最佳论文奖(Marr奖)。
在这里插入图片描述

自开源以来,ControlNet已经在GitHub上揽获25k星。无论是对扩散模型、还是对整个计算机视觉领域而言,这篇论文获奖都可以说是实至名归。
在这里插入图片描述

基本原理

ControlNet 是一种尖端神经网络,旨在增强图像生成模型的功能,特别是基于Stable Diffuison等扩散过程的模型。
在这里插入图片描述
从本质上讲,ControlNet 充当基于扩散的文本到图像生成模型的指导。虽然传统的图像生成模型可以产生令人惊叹的视觉效果,但它们通常缺乏指导,因此无法生成符合用户所需图像合成的图像。ControlNet 通过允许额外的图像输入来改变游戏规则,该输入可用于调节(影响)最终图像生成。充当指导角色的可以是任何东西,从简单的涂鸦到复杂的深度图或边缘图。通过对这些输入图像进行调节,ControlNet 指示Stable Diffusion模型生成与用户意图紧密一致的图像。

想象一下,能够勾画出粗略的轮廓或提供基本的深度图,然后让人工智能填充细节,生成高质量、连贯的图像。应用范围广泛,从数字艺术和视频游戏设计到高级模拟和虚拟现实。借助 ControlNet,指导和完善图像生成过程的能力现在掌握在用户手中,从而缩小了人类创造力和机器精度之间的差距。

随着我们不断突破人工智能的极限,ControlNet 等工具提醒我们,内容创作的未来不仅仅在于自动化,还在于人与机器之间的协作。

技术架构

ControlNet 是Stable Diffusion模型的迭代。对于那些熟悉复杂神经网络设计的人来说,嵌入 ControlNet 中的 U-Net 模型可能看起来很熟悉。这是因为它是原始SD模型的直接后代。它锁定原始稳定扩散模型,并创建原始模型的可训练副本以及以调节向量 c 作为输入的零卷积层。
在这里插入图片描述
但 ControlNet 真正的亮点在于其创新性的补充。其中包括一个可训练的编码器,它本质上是 U-Net Stable Diffusion编码器的分身。然而,这对双胞胎不仅仅是为了摆样子,它被设计为完全可训练的,赋予它在空间上影响输出图像结果的卓越能力。这是通过向该编码器提供噪声和边缘来实现的。对于外行来说,这里的边缘是目标图像轮廓的表示,提供了构建图像的框架或脚手架。本质上,ControlNet 克隆扩散模型的权重,然后训练克隆的权重以根据输入条件的任务来控制原始模型。

但是那些神秘的“零卷积”层呢?这些层充当控制编码器和Stable Diffusion U-Net 之间的重要管道。ControlNet 上下文中的“零卷积”特指一维卷积层,其中权重和偏差都初始化为零。现在,在神经网络架构的宏伟计划中,权重初始化至关重要。通常,权重和偏差是用小的随机值设置的。这种随机性是战略性的,可确保在训练过程中,神经元不仅同步进化,而且会发散,每个神经元都学习不同的特征和模式。

但 ControlNet 偏离此约定是有原因的。将这些一维卷积层初始化为零有一个独特且深思熟虑的目的。由于零卷积不会向网络添加噪声,因此模型应该始终能够生成高质量的图像。

应用例

让我们一起看看不同领域的 ControlNet 的一些有趣用例。

时尚

借助 ControlNet,时装设计师可以勾勒出服装的粗略想法或轮廓,系统可以生成这些设计的真实描述,并包含复杂的图案、纹理和颜色。这种快速的可视化可以帮助设计师对款式、剪裁和整体设计美学做出快速决策。
在这里插入图片描述

建筑与改造

建筑师可以将建筑设计的草图或基本轮廓输入 ControlNet。然后,系统可以提供详细的可视化效果,填充纹理、材料和潜在的照明场景,从而提供最终结构的更全面的视图。
在这里插入图片描述
装修者和室内设计师可以让他们的客户在 ControlNet 的帮助下直观地了解改造其住宅或家居室内装饰后的输出效果。
在这里插入图片描述

城市规划者可以使用 ControlNet 来可视化城市布局或公园设计。只需向其提供基本的深度图或涂鸦,规划人员就可以清楚地了解开发后整个城市街区或绿地的样子。这些可视化将有助于做出更明智的规划决策,并使利益相关者和当地社区达成共识。

营销

ControlNet 可以帮助营销人员无缝地个性化和调整视觉内容,确保不同地区和文化的不同受众感到得到代表和迎合。

通过将文本提示与输入图像相集成,ControlNet 可以修改种族、性别、年龄、颜色和图案等视觉元素,以符合当地的审美和文化规范,从而简化本地化过程。

这种在生成个人和文化共鸣营销材料方面的灵活性和精确性使企业能够与目标人群更深入地联系,确保更有效和更具吸引力的活动。
在这里插入图片描述

ControlNet 的流行控制机制

控制机制可满足不同的需求,并为用户提供广泛的选项来指导和定制 ControlNet 的图像生成过程。让我们看一下稳定扩散 ControlNet 中使用的一些流行控件及其用例:

ControlNet Canny

Canny方法是计算机视觉领域最流行的边缘检测技术之一。它以其创建者的名字命名,旨在检测图像中的各种边缘。

ControlNet 的功能:当合并到 ControlNet 中时,Canny 方法可以充当引导输入,以关注图像中的突出边缘和结构。给定原始图像或草图,Canny 会提取图像的轮廓和边缘,可能适合用于建筑可视化或时尚草图的图像生成。

在这里插入图片描述

控制网络深度

深度图表示图像场景中物体与视点的距离,通常以灰度形式表示,其中白色表示近距离物体,黑色表示远处物体。

ControlNet 的功能: ControlNet Depth 将利用这些深度图来指导生成具有三维感的图像。这对于虚拟现实或游戏设计等交互式技术的图像生成非常有用,其中理解和可视化深度和空间关系是关键。

ControlNet OpenPose

OpenPose是一个实时多人系统,可在单张图像上联合检测人体、手部和面部关键点。

ControlNet 的功能:通过 ControlNet OpenPose,用户可以输入人物图像,并指导系统以准确的姿势/姿势生成图像。这对于舞蹈、瑜伽、时尚和运动设计特别有利,在这些领域中,生成模仿身体姿势和运动细节的图像至关重要。
在这里插入图片描述

ControlNet 涂鸦

涂鸦是粗糙的手绘图或涂鸦。

ControlNet 的功能: ControlNet Scribble 将允许用户通过这些徒手输入来指导图像生成。例如,用户可能会画出粗略的轮廓或涂鸦,ControlNet 会连贯地填充细节。这种方法促进了一种更具互动性和实践性的方法,适合艺术家和设计师。
在这里插入图片描述

ControlNet M-LSD

M -LSD算法的优势在于能够高精度地提取和描述直线。通过辨别这些线性结构,它为AI提供了一个清晰的框架,使其能够渲染具有清晰、明确的边缘和直线的图像。这种复杂的线条识别使其能够高度可靠地描绘设计的结构方面。

ControlNet 的功能: M-LSD ControlNet 在建筑领域大放异彩。它对于可视化房间内部尤其有价值,因为墙壁、地板和天花板之间的区别至关重要。此外,它对于等距建筑设计非常有效,结构线的准确表示可确保忠实地描绘建筑愿景。

ControlNet SoftEdge

SoftEdge 专注于图像中对象和背景之间的柔和过渡,而不是锐利边缘检测。

ControlNet 的功能: SoftEdge ControlNet 将指导图像生成过程,以产生更柔和、更混合的过渡的视觉效果。这对于创建环境、梦幻或空灵的视觉效果(例如背景或环境艺术)特别有益。

结论

ControlNet 开创了用户引导图像生成的新时代,展示了各个领域的巨大潜力。现在,创造力的掌控力比以往任何时候都更加掌握在​​创作者自己的手中。通过允许人类创造者指导生成过程,它不仅提供了精确性,而且还增强了创造力的协作方面。

资源

[1] 官方论文
[2] 官方实现: 基于Stable Diffusion 1.5
[3] HuggingFace 实现: 基于Stable Diffusion 2.1

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

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

相关文章

物理层之码分复用(内含相关例题)

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

yml转properties工具

目前搜索到的大部分代码都存在以下问题: 复杂结构解析丢失解析后顺序错乱 所以自己写了一个,经过不充分测试,基本满足使用。可以直接在线使用 在线地址 除了yml和properties互转之外,还可以生成代码、sql转json等,可…

数据库系统概述之国产数据库

当今世界,数据已成为重要的生产要素,数据库管理系统更是广泛应用于信息化行业各领域,国内数据库产业能否健康可持续的发展,在很大程度上影响着国民经济发展和网络空间安全。 当前,国产数据库行业竞争非常激烈&#xf…

亚马逊云科技Aurora MySQL在复制性能提升上的不断优化和尝试

前言 Amazon Aurora是亚马逊云科技自研的云原生关系数据库,它在提供和开源数据库MySQL、PostgreSQL的完好兼容性同时,也能够提供和商业数据库媲美的性能和可用性。 Aurora的性能提升不仅包含应用读写吞吐量的提升,也包含复制延迟的降低。一个…

数据结构 / day02作业

1. 有若干个学校人员的信息,包括学生和教师。 其中学生的数据包括:姓名、性别、职业s/S、分数。 教师的数据包括:姓名、性别、职业t/T、职务。 1,定义指针指向堆区内存 2.循环输入 3.计算老师的个数 4.计算学生的平均值 5.循环输出 6释放堆区空间 #inc…

41.0/查询/sql注入安全问题以及解决方式。

41.1. 回顾 1. jdbc:[java database connection] java连接数据库 2. 完成了增删改操作。 [1]加载驱动。Class.forName("com.mysql.cj.jdbc.Driver"); [2]获取连接对象: Connection connDriverManager.getConnection(url,user,pass); url: jdb…

【Cisco Packet Tracer】DHCP/FTP/WEB/DNS实验

本文使用CiscoPacketTracer仿真软件实现了DHCP/FTP/WEB/DNS实验,拓扑中包含2个客户机和3个服务器(DHCP服务器、DNS服务器、FTP/WEB公用一个服务器),客户机的IP地址由DHCP服务器动态分配。 DHCP服务器IP地址:192.168.0…

制作电脑微信双开快捷方式

一、介绍 电脑下载的微信正常只能打开一个,那有时候需要双开甚至多开微信我们需要怎么操作呢? 我这里就讲一个制作微信双开快捷键方式的办法,争对其他应用也是一样的原理。 二、制作过程 1、右击微信快捷方式 2、点击属性 3、复制目标 …

nodejs+vue+elementui图书馆教室自习室座位预约管理系统93c8r

本系统利用nodejsVue技术进行开发自习室预约管理系统是未来的趋势。该系统使用的编程语言是nodejs,数据库采用的是MySQL数据库,基本完成了系统设定的目标,建立起了一个较为完整的系统。建立的自习室预约管理系统用户使用浏览器就可以对其进行…

AI旅游:旅游行业的人工智能成熟艺术适应从实践到表现报告

今天分享的是AI系列深度研究报告:《AI旅游:旅游行业的人工智能成熟艺术适应从实践到表现报告》。 (报告出品方:accenture) 报告共计:25页 旅行还没有充分利用AI所能做的一 而旅游业比两年前强多了。公司…

电脑格式化了怎么恢复原来的数据?您可以这样做

电脑是我们日常生活和工作中不可或缺的工具,然而,在一些情况下我们可能需要进行电脑格式化,比如为了清理系统垃圾、解决系统故障等。然而,格式化会导致所有数据被删除,给用户带来不便和困扰。本文将介绍电脑格式化了怎…

一文搞定XMLHttpRequest,AJAX,Promise,Axios及操作实战

XMLHttpRequest,AJAX,Promise,Axios都是发送异步请求的工具,只是使用的场合和方式有所不同。都是一种用于创建快速动态网页的技术 1、认识同步请求和异步请求? 1.1、认识同步请求? 1、我们点击淘宝首页的男装,进入男装页面的这…

vue3+vite+ts项目打包时出错

项目中引入了element-plus国家化的配置,然后进行项目打包,报下面的错误 解决方法: 在main.ts中添加 // ts-ignore

Ubuntu 22.04安装Go 1.21.4编译器

lsb_release -r看到操作系统版本是22.04,uname -r看到内核版本是uname -r。 sudo wget https://studygolang.com/dl/golang/go1.21.4.linux-amd64.tar.gz下载编译器。 sudo tar -zxf go1.21.4.linux-amd64.tar.gz -C /goroot将文件解压到/goroot目录下,这个命令…

基于多模态大数据的国家安全风险态势感知模型构建

源自:情报杂志 “人工智能技术与咨询” 发布 摘要 [研究目的]为强化国家安全情报能力,推动风险监测预警能力提升,构建基于多模态大数据的国家安全风 险态势感知模型。 [研究方法]首先,对国家安全风险态势感知进行阐释;然后,分析多模态大数据驱动下…

JSP forEach标签遍历 java bean类型的list集合

好 之前我讲了 forEach 标签 但只是说了基本的使用 但我们实际开发中 还是循环遍历对象数组最多 就是一个java bean类型的list集合 那么 首先 我们要提供一个java bean 我们在java目录下 创建一个目录 我这里叫 attribute 下面创建一个类 叫users 参考代码如下 package com.e…

网络篇---第六篇

系列文章目录 文章目录 系列文章目录前言一、HTTP1.0、HTTP1.1、HTTP2.0的关系和区别二、说说HTTP协议与TCP/IP协议的关系三、如何理解HTTP协议是无状态的?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章…

信息可视化在数字孪生中的应用:打造直观决策支持系统

在当今的数字化时代,数字孪生和信息可视化已成为推动各行业发展的重要力量。数字孪生为物理世界提供了一个虚拟的副本,而信息可视化则将复杂的数据以易于理解的方式呈现出来。两者之间的关系密切,相辅相成,为决策者提供了更全面、…

程序设计基础中可能出现的简单编程题2(以郑大为主体)

我们在学习编程过程中往往不仅有C语言实验报告,还有程序设计实验报告。程序设计这一科目主要是为了培养我们写代码时的计算思维,养成从问题到代码实现逐步分析,逐步深入的好习惯。前面有一篇文章介绍了部分程序设计实验报告中的编程题&#x…

Python 分解IP段获取所有IP(子网掩码)

需求 192.168.1.0/24,192.168.2.1-192.168.2.254,192.168.3.3 IP段格式已 "," 分割,获取所有IP 注意 1. 判断 IP 是否合规 2. 去除多余的字符,例如空格、换行符 3. 去重 代码 import re import ipaddressdef isIP(ip):p re.compile(^((…