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

⭐SmartControl: Enhancing ControlNet for Handling Rough Visual Conditions

目录

0 Abstract

1 Motivation

2 Related Work

2.1 Text-to-Image Diffusion Model

2.2 Controllable Text-to-Image Generation

2.3 ControlNet

2.4 Control Scale Exploration

3 Method

3.1 Framework

3.2 Control Scale Predictor

3.3 Unaligned Data Construction Pipeline

3.4 Learning Objective

3.5 Pipeline for unaligned data construction

4 Experiment

4.1 Experimental Details

Datasets

Evaluation Metrics

4.2 Comparisons with other methods

4.3 Result with IP-Adapters

4.4 Ablation studies

Control Scale

Different levels of conflict

5 Reproduce the results

Installation

Unaligned Text-Condition Dataset

Data Format

Example

Download Models

How to Test

How to Train

6 Conclusion

7 Acknowledgements


GitHub - liuxiaoyu1104/SmartControl

Our proposed SmartControl can perform controllable image generation under rough visual conditions extracted from other images. In contrast, ControlNet adheres to control conditions, which may goes against with human intentions.

0 Abstract

人类的视觉想象通常从类比或粗略的草图开始。例如,给定一张女孩在建筑物前弹吉他的图像,人们可能会类比地想象“如果钢铁侠在埃及的金字塔前弹吉他”会是什么样子。然而,视觉条件往往与文本提示中暗示的想象结果不完全对齐,现有的布局可控的文本到图像(T2I)生成模型通常会生成质量下降并带有明显伪影的图像。

为了解决这个问题,本文提出了一种称为SmartControl的新型T2I生成方法。该方法的设计目标是根据文本提示调整粗略的视觉条件。SmartControl的关键思想是放宽在与文本提示冲突的区域的视觉条件约束。具体而言,SmartControl引入了一个控制尺度预测器(CSP),用于识别冲突区域并预测局部的控制尺度。此外,构建了一个包含文本提示和粗略视觉条件的数据集,用于训练CSP。

值得注意的是,即便使用有限数量的训练样本(如1,000~2,000个),SmartControl在处理未见过的物体时也能很好地进行泛化,展示出出色的适应性。

1 Motivation

现有图像或草图中提取的条件往往无法与我们心中的图像精确对齐,比如建筑物与金字塔之间的建筑差异。现有的布局可控模型通常严格遵循视觉条件,导致在条件与文本不匹配时生成质量下降并带有伪影的图像。

为了解决粗略条件下的图像质量问题,可以采取的一个方法是放宽对视觉条件的限制。例如,LooseControl建议使用3D边界框来控制图像的布局,包括对象的位置、方向和大小,从而实现灵活的控制。但LooseControl的视觉条件过于宽松,无法有效控制对象的姿态和动作。另一种方法是减少视觉条件的控制强度。ControlNet将视觉条件通过添加特征的方式融入生成过程,因此可以通过降低视觉条件的融合权重来放松其影响,使生成模型在文本和视觉条件之间找到平衡。正如图2所示,适当的权重可以产生预期的效果。然而,不同输入的最佳权重各不相同,有时甚至很难找到合适的权重。此外,融合权重是一个全局参数,会影响整个图像,导致在不同区域之间出现妥协。

2 Related Work

2.1 Text-to-Image Diffusion Model

扩散模型在文本到图像(T2I)生成领域取得了显著的成功,能够生成高保真度和多样性的图像。T2I扩散模型通过语言编码器(如CLIP或T5预训练模型)生成的文本嵌入,将图像生成任务重新定义为一个基于文本引导的迭代去噪过程。

一些方法在像素域中采用低分辨率模型,并结合级联的超分辨率扩散模型。另一方面,潜在扩散模型专注于在潜在空间中进行扩散过程,依赖于单独训练的高分辨率自动编码器。Stable Diffusion是潜在扩散模型的一个大规模实现,已被广泛应用于各种任务,例如可控图像生成、定制图像生成、图像操作和视频生成等。

2.2 Controllable Text-to-Image Generation

文本到图像的扩散模型在基于文本提示生成高保真图像方面展现了出色的能力。然而,仅通过文本提示传达所需的空间信息仍然是一个重要挑战。为了解决这个问题,已经开发了多种方法,通过添加条件控制来实现可控的文本到图像生成,这些条件包括姿势、二维边界框、分割图以及多种条件(如边缘图、深度图、分割掩膜、法线图和OpenPose等)。

ControlNet通过微调可训练的编码器副本,将视觉条件添加到预训练的文本到图像扩散模型中。T2I-Adapter在不同条件下使用各种适配器来实现可控的引导。基于ControlNet的工作还提出了一些改进,包括模态混合、有效架构设计和宽松控制等。例如,Cocktail允许组合现有的多种模态,并自动平衡它们之间的差异;UniControl使用专家风格的适配器和任务感知的HyperNet来统一各种Condition-to-Image任务,从而压缩模型大小;ControlNet-XS专注于设计一个高效且无信息传输延迟的架构。

LooseControl提出了一种基于3D盒子深度条件的图像生成指导方法,通过广泛的引导增强了用户的创意可能性。然而,该方法控制过于宽松,仅关注位置和大小的保持,往往忽略了姿态这一关键因素。与之不同,FreeControl提供了一种无需训练的多条件T2I生成方法,实现了与引导图像的结构对齐和与无控制生成图像的外观对齐。

2.3 ControlNet

2.4 Control Scale Exploration

3 Method

  • 提出了一种自动化且灵活的T2I生成方法SmartControl,能够根据文本提示和视觉条件之间的不一致性实现局部自适应的控制强度。
  • 设计了一个控制尺度预测器(CSP),可以识别并区分文本提示与视觉条件之间的冲突。
  • 构建了一个包含文本提示和未对齐粗略视觉条件的数据集,并进行了大量实验,结果显示我们的方法在粗略视觉条件下的表现优于现有技术。

3.1 Framework

我们的方法基于ControlNet,并能够在文本提示与粗略的视觉条件不一致的情况下生成逼真的图像(例如,以老虎和鹿的组合作为输入)。为实现这一目标,我们在ControlNet的每个解码器模块中引入了一个控制尺度预测器f。该预测器将特征h和h+h_cond作为输入,并预测一个逐像素的控制尺度图alpha 。条件特征h_cond随后通过与alpha相乘更新,这样可以在冲突区域放宽控制尺度,从而生成合理且逼真的图像。

3.2 Control Scale Predictor

3.3 Unaligned Data Construction Pipeline

ControlNet 使用图像 I 作为输入,生成与文本提示 p 对齐的条件c,这并不适用于训练我们的SmartControl。在本节中,我们将介绍构建未对齐的文本-条件数据集的工作流程,如图4所示。具体来说,我们首先生成未对齐的视觉条件和文本提示。然后,使用ControlNet基于这些未对齐的文本和条件生成配对的图像。

3.4 Learning Objective

3.5 Pipeline for unaligned data construction

  1. 图像与类别的选取:给定一张图像及其对应的类别(如“鹿”),通过预训练的估计器提取其视觉条件(如深度图),称为c_rough。
  2. 未对齐类别的选择:根据类别层次结构,为该类别选择一个替代的未对齐类别(例如“虎”或“马”)。然后,使用这个未对齐的类别生成未对齐的文本提示 p 。
  3. 控制尺度的遍历:通过在ControlNet上遍历不同的控制尺度\( \alpha \),生成一系列图像。然后手动筛选这些图像,保留那些在文本提示和视觉条件上都合理的图像。
  4. 数据集构建:在图示的例子中,对于“虎”,控制尺度\( \alpha = 0.4 \)的图像被认为合理并添加到数据集中;而对于“马”,没有找到合适的控制尺度,因此所有图像都被丢弃。

最终,这些合适的图像连同它们的未对齐视觉条件和文本提示一起构成训练数据集。

4 Experiment

4.1 Experimental Details

Datasets

我们收集了四种条件类型的训练数据集,包括深度图(Depth)、HED(边缘检测)、分割图(Segmentation)和Canny边缘图。每种条件的数据集大小分别为2000、1500、1500和1000张图像。对于每种类型,我们还收集了一个包含100张图像的评估数据集,其中包括70张有明显冲突的图像、20张有轻微冲突的图像以及10张无冲突的图像,以评估模型在处理不同条件方面的表现。我们的评估数据集包括48个类别,其中有12.5%的类别在训练数据集中未出现,以便评估模型的泛化能力。

Evaluation Metrics

根据参考文献[33],我们使用CLIP分数来衡量文本和图像的对齐程度,并使用自相似距离指标来衡量两张图像在DINO-ViT模型特征空间中的结构相似性。较小的自相似距离表示生成的图像更好地保留了源图像(即提供粗略条件的图像)的结构。此外,我们引入了一个名为类别置信度的指标,以评估生成的图像是否与目标类别对齐。较高的类别置信度表明生成的图像更接近目标类别,不受粗略条件中固有类别的影响。

为了综合评估结构保留和图像-文本对齐,我们提出使用GPT-4V作为新的评估指标。给定不同方法生成的两张图像,我们请求GPT-4V从两个方面进行判断:首先,图像的姿态或布局是否符合条件图像,其次,它是否更准确地与给定文本对齐。具体的提示词可以在补充材料中找到。

4.2 Comparisons with other methods

4.3 Result with IP-Adapters

4.4 Ablation studies

Control Scale

In ControlNet, we can tune the fusion weight of visual conditions (h+α∗h_cond) to relax the inconsistency between text prompts and visual conditions. We vary the value of α from 1.0 to 0.0 to explore its influence.

Different levels of conflict

SmartControl performs exceptionally well across levels degrees of conflict.

5 Reproduce the results

Installation

pip install -r requirements.txt
# please install diffusers==0.25.1 to align with our forward

Unaligned Text-Condition Dataset

If you want to train, you can visit this page to download our dataset for depth condition. Otherwise, you can directly refer to the testing section. We also provide the datasets for other conditions in here.

Data Format

The data is structured as follows:

  • Image for <$\texttt{cls}{init}$> vs. Image for <$\texttt{cls}{alt}$>
  • Condition for <$\texttt{cls}{init}$> vs. Condition for <$\texttt{cls}{alt}$>

Example

Download Models

you can download our control scale predictor models from depth condition and other conditions. To run the demo, you should also download the following models:

  • stabilityai/sd-vae-ft-mse
  • SG161222/Realistic_Vision_V5.1_noVAE
  • ControlNet models
  • realisticvision-negative-embedding

How to Test

  • If you are interested in SmartControl, you can refer to smartcontrol_demo

  • For integration our SmartControl to IP-Adapter, please download the IP-Adapter models and refer to smartcontrol_ipadapter_demo

    # download IP-Adapter models
    cd SmartControl
    git lfs install
    git clone <https://huggingface.co/h94/IP-Adapter>
    mv IP-Adapter/models models
    

How to Train

Our training code is based on the official ControlNet code. To train on your datasets:

  1. Download the training datasets and place them in the train\\data directory.

  2. Download the pre-trained models:

    • Stable Diffusion
    • ControlNet

    Place these models in the train\\models directory.

To start the training, run the following commands:

cd train
python tutorial_train.py

6 Conclusion

本文提出了SmartControl,一种在粗略视觉条件下实现灵活可控图像生成的方法。与现有方法不同,SmartControl能够自适应地处理视觉条件和文本提示之间存在不一致的情况。我们引入了控制尺度预测器,可以识别视觉条件和提示之间的冲突区域,并基于冲突程度预测局部自适应的控制尺度。为进行训练和评估,我们构建了一个包含未对齐文本提示和视觉条件的数据集。大量实验表明,SmartControl在粗略视觉条件下的表现优于现有的最新方法。

7 Acknowledgements

Our codes are built upon ControlNet and IP-Adapter.

相关文章:

⭐SmartControl: Enhancing ControlNet for Handling Rough Visual Conditions

目录 0 Abstract 1 Motivation 2 Related Work 2.1 Text-to-Image Diffusion Model 2.2 Controllable Text-to-Image Generation 2.3 ControlNet 2.4 Control Scale Exploration 3 Method 3.1 Framework 3.2 Control Scale Predictor 3.3 Unaligned Data Constructi…...

wordpress站外调用指定ID分类下的推荐内容

在WordPress中&#xff0c;如果你想从站外调用指定ID分类下的推荐内容&#xff0c;你可以使用WordPress REST API来实现。以下是一个基本的步骤指南&#xff1a; 1. 启用REST API 确保你的WordPress站点已经启用了REST API。大多数现代WordPress版本默认启用此功能。 2. 获取…...

Ente: 我们的 Monorepo 经验

原文&#xff1a;manav - 2024.10.29 九个月前&#xff0c;我们切换到了 monorepo。在此&#xff0c;我将介绍我们迄今为止的切换经验。 这并不是一份规范性的建议&#xff0c;而是一个经验的分享&#xff0c;目的是希望能够帮助其他团队做出明智的决策。 与大多数岔路不同&…...

Kafka java 配置

前言&#xff1a; 大家好&#xff0c;大家在springboot项目中&#xff0c;经常采用 KafkaListener 做为消费者。这个是spring为我们封装的。 但是某些情况 注解的方式并不能满足需求。这个时候就需要手动版本了。 介绍&#xff1a; 我们已经集成spring-Kafka 就不需要再…...

网络安全现状:复杂的威胁形势导致压力水平飙升

《2024 年网络安全状况》报告深入分析了当前网络安全挑战和趋势。 该报告重点介绍了几个关键的关注领域&#xff0c;包括人员短缺、技能差距、不断演变的威胁和预算限制&#xff0c;同时还指出了取得进展的领域&#xff0c;例如对威胁响应能力的信心增强以及对网络风险评估的认…...

【机器学习】强化学习(1)——强化学习原理浅析(区分强化学习、监督学习和启发式算法)

文章目录 强化学习介绍强化学习和监督学习比较监督学习强化学习 强化学习的数学和过程表达动作空间序列决策策略&#xff08;policy&#xff09;价值函数&#xff08;value function&#xff09;模型&#xff08;model&#xff09; 强化学习和启发式算法比较强化学习步骤代码走…...

【SoC设计指南 基于Arm Cortex-M】学习笔记1——AMBA

AMBA简介 先进微控制器总线架构&#xff08;Advanced Microcontroller Bus Architecture&#xff0c;AMBA&#xff09;是用在arm处理器上的片上总线协议规范集。 AMBA总线协议规范集包含AHB、APB、AXI等。 AHB&#xff1a;先进高性能总线(Advanced High-performance Bus) APB&…...

flutter鸿蒙模拟器 Win环境调试报错问题记录(暂未解决)

前情提要&#xff1a; 1、flutter项目已经正确生成了ohos项目 2、flutter和鸿蒙的环境变量配置正确 3、ohos项目执行flutter build hap成功 4、没有真机&#xff0c;使用win环境创建的x86模拟器 问题状态 使用模拟器运行ohos&#xff0c;控制台提示“安装HAP 报 code:9568347错…...

详解Rust标准库:HashSet

## 查看本地官方文档安装rust后运行 rustup doc查看The Standard Library即可获取标准库内容 std::collections::hash_set::HashSet定义 HashSet是一种集合数据结构&#xff0c;它只存储唯一的元素。它主要用于检查元素是否存在于集合中&#xff0c;或者对元素进行去重操作&…...

记录学习react的一些内容

由于是在公司实际项目中学习&#xff0c;所以不是很完整 需要一点一点的学 1.React.useState 类似于vue中的ref 可以修改状态 但是是异步的 感觉不好用 const [wishData, setWishData] React.useState<any>(null); 只能使用setxxx来修改 2.useEffect(()>{},[]) 类…...

json绘制热力图

首先需要一段热力信息的json&#xff0c;我放在头部了。 然后就是需要de-geo库了。 实现代码如下&#xff1a; import * as d3geo from d3-geoimport trafficJSON from ../assets/json/traffic.jsonlet geoFun;// 地理投影函数// let info {max: Number.MIN_SAFE_INTEGER,mi…...

linux 下查看程序启动的目录

以azkaban为例 第一步、ps -ef | grep azkaban 查询出进程号 第二步、cd /proc/ 第三步 、cd 进程号 第四部 ll 查看详情 查看jar 位置 查看jar 启动命令...

书生浦语第四期基础岛L1G2000-玩转书生「多模态对话」与「AI搜索」产品

文章目录 一、MindSearch二、书生浦语三、书生万象四、进阶任务 一、MindSearch MindSearch 是一个开源的 AI 搜索引擎。它会对你提出的问题进行分析并拆解为数个子问题&#xff0c;在互联网上搜索、总结得到各个子问题的答案&#xff0c;最后通过模型总结得到最终答案。书生浦…...

保护Kubernetes免受威胁:容器安全的有效实践

安全并非“放之四海而皆准”的解决方案&#xff0c;相反地&#xff0c;它更多的是一个范围&#xff0c;受其应用的特定上下文的影响。安全领域的专业人士很少宣称什么产品是完全安全的&#xff0c;但总有方法可以实现更强的安全性。在本文中&#xff0c;我们将介绍各种方法来支…...

【客观理性深入讨论国产中间件及数据库-科创基础软件】

随着国产化的进程&#xff0c;越来越多的国企央企开始要求软件产品匹配过程化的要求&#xff0c; 最近有一家银行保险的科技公司对行为验证码产品就要求匹配国产中间件&#xff0c; 于是开始了解国产中间件都有哪些厂家 一&#xff1a;国产中间件主要产品及厂商 1 东方通&…...

MFC中Excel的导入以及使用步骤

参考地址 在需要对EXCEL表进行操作的类中添加以下头文件&#xff1a;若出现大量错误将其放入stdafx.h中 #include "resource.h" // 主符号 #include "CWorkbook.h" //单个工作簿 #include "CRange.h" //区域类&#xff0c;对Excel大…...

AWS S3在客户端应用不能使用aws-sdk场景下的文件上传与下载

简介 通常情况下&#xff0c;应用程序上传文件到AWS S3&#xff0c;会使用aws-sdk&#xff0c;但是有些情况下&#xff0c;客户端应用会有安装限制&#xff0c;比如不能安装aws-sdk&#xff0c;此时我们就需要通过其他方式实现文件上传与下载。 这里我们提供一个服务端&#…...

深入解析 Transformers 框架(四):Qwen2.5/GPT 分词流程与 BPE 分词算法技术细节详解

前面我们已经通过三篇文章&#xff0c;详细介绍了 Qwen2.5 大语言模型在 Transformers 框架中的技术细节&#xff0c;包括包和对象加载、模型初始化和分词器技术细节&#xff1a; 深入解析 Transformers 框架&#xff08;一&#xff09;&#xff1a;包和对象加载中的设计巧思与…...

【Python-AI篇】K近邻算法(KNN)

0. 前置----机器学习流程 获取数据集数据基本处理特征工程机器学习模型评估在线服务 1. KNN算法概念 如果一个样本在特征空间中的K个最相似&#xff08;即特征空间中最邻近&#xff09;的样本中大多数属于某一个类别&#xff0c;则该样本也属于这一个类别 1.1 KNN算法流程总…...

aws xray如何实现应用log和trace的关联关系

参考资料 https://community.aws/tutorials/solving-problems-you-cant-see-using-aws-x-ray-and-cloudwatch-for-user-level-observability-in-your-serverless-microservices-applicationshttps://stackoverflow.com/questions/76000811/search-cloudwatch-logs-for-aws-xra…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...