浅析扩散模型与图像生成【应用篇】(二十)——TiNO-Edit

news2024/11/20 7:21:34

20. TiNO-Edit: Timestep and Noise Optimization for Robust Diffusion-Based Image Editing

  该文通过对扩散模型中添加噪声的时刻 t k t_k tk和噪声 N N N进行优化,提升SD等文生图模型的图像编辑效果。作者指出现有的方法为了提升文生图模型的图像编辑质量,通常是引入更多的条件信息,如编辑指令(InstructPix2Pix)、边缘图、分割图(ControlNet)等。而较少有人关注扩散模型中的两个关键超参数,时刻 t k t_k tk和噪声 N N N,对于编辑效果的影响。因此,作者专门探索了这两个参数对于编辑效果的影响,并且提出一种自动寻找最优参数的优化方法。
在这里插入图片描述
  如上图所示,当把一个猫的图片和一个“a photo of dog”的文本描述输入到SD模型中进行Img2Img的转换时,扩散过程的最终时刻 T T T(每一列代表一个T)和随机噪声 N N N(每一行代表一种N)的选择都会对转换结果产生显著影响。具体而言,随着扩散过程不断的增长,最终生成的结果会越来越接近文本提示的目标结果,而与原本输入的图像越来越无关,这一洞见在SDEdit这篇论文中也有提及。而选择不同的随机噪声,则会生成完全不同的结果。
  基于上述的观察结果,不同于直接找到一个适用于所有情况的最优的 T T T N N N,TiNO-Edit的目的是实现 T T T N N N相关参数优化过程的自动化。具体而言,就是现有方法都是预先给定相关的参数,然后对每个样本的扩散和生成过程都采用相同的参数。而TiNO-Edit是在每个样本的扩散和生成过程中都加入了一个优化过程,能够自动地寻找最优的时间和噪声参数,使输出的结果达到最佳,可以理解为一个参数自适应的操作。
  在实现过程中,作者并不是直接对扩散过程的最终时刻 T T T进行优化,而是对每次加入噪声的时刻 t k = k T K , k ∈ [ 1 , K ] t_k=k\frac{T}{K},k\in[1,K] tk=kKT,k[1,K]进行优化。其中 T ∈ [ 0 , 1 ] T\in[0,1] T[0,1]表示最终时刻, K K K相当于把时刻 [ 0 , T ] [0,T] [0,T]离散为 K K K个时间点,从中随机选取第 k k k个时间点 t k t_k tk作为添加噪声的时刻。此外还对初始化的随机噪声 N ∼ N ( 0 , I ) N\sim \mathcal{N}(0,I) NN(0,I)进行优化。优化过程如下图所示
在这里插入图片描述
  输入信息包括:原始输入图像 I I I, 原始输入图像的文字描述 p p p,目标提示 p O p_O pO和其他输入 A = { I ∗ M a , ∗ ∈ { r , s , c } } \mathcal{A}=\{I_*M_a,*\in\{r,s,c\}\} A={IMa,{r,s,c}} M a M_a Ma表示添加物体的掩码, I r I_r Ir表示图像编辑的参考引导图像, I s I_s Is表示涂鸦引导图像, I c I_c Ic表示图像组成(Image Composition)。然后,对 K K K, T T T, t k t_k tk N N N等参数进行初始化,由于TiNO-Edit是对SD这类潜在的扩散模型进行优化,因此需要将输入图像 I I I先经过一个变分自动编码器 V A E e n c {VAE}_{enc} VAEenc映射到潜在空间中,得到潜在特征 L L L M S K MSK MSK表示一种掩码操作,是根据编辑任务只对图像中需要编辑的位置进行掩码,而保持其他位置不变。 W W W表示参数优化迭代的次数, F D FD FD表示前向扩散过程, R D RD RD表示反向采样过程。在每次迭代过程中,都要完成一次完整的扩散和采样过程,并根据目标函数 L t o t a l \mathcal{L}_{total} Ltotal t k t_k tk N N N进行优化,最终将最优的采样结果 L ~ 0 \tilde{L}_0 L~0进行解码得到目标图像。
  目标函数 L t o t a l \mathcal{L}_{total} Ltotal计算方式如下 L total  ( L , L ~ 0 , p O , p , A ) = λ sem  ⋅ L sem  ( L , L ~ 0 , p O , p ) + λ ref  ⋅ L ref  ( L , L r ) + λ perc  ⋅ L perc  ( L , L ~ 0 ) , \begin{array}{l} \mathcal{L}_{\text {total }}\left(L, \tilde{L}_{0}, p_{O}, p, \mathcal{A}\right) \\ =\lambda_{\text {sem }} \cdot \mathcal{L}_{\text {sem }}\left(L, \tilde{L}_{0}, p_{O}, p\right) \\ +\lambda_{\text {ref }} \cdot \mathcal{L}_{\text {ref }}\left(L, L_{r}\right) \\ +\lambda_{\text {perc }} \cdot \mathcal{L}_{\text {perc }}\left(L, \tilde{L}_{0}\right), \end{array} Ltotal (L,L~0,pO,p,A)=λsem Lsem (L,L~0,pO,p)+λref Lref (L,Lr)+λperc Lperc (L,L~0),其中, L sem  \mathcal{L}_{\text {sem }} Lsem 表示语义损失,计算方法为 L sem  ( L , L ~ 0 , p O , p ) = cos ⁡ ( LatentCLIP ⁡ vis  ( L ) , LatentCLIP ⁡ vis  ( L ~ 0 ) ) − cos ⁡ ( CLIP ⁡ text  ( p O ) , CLIP ⁡ text  ( p ) ) , \begin{aligned} & \mathcal{L}_{\text {sem }}\left(L, \tilde{L}_{0}, p_{O}, p\right) \\ = & \cos \left(\operatorname{LatentCLIP}_{\text {vis }}(L), \operatorname{LatentCLIP}_{\text {vis }}\left(\tilde{L}_{0}\right)\right) \\ & -\cos \left(\operatorname{CLIP}_{\text {text }}\left(p_{O}\right), \operatorname{CLIP}_{\text {text }}(p)\right), \end{aligned} =Lsem (L,L~0,pO,p)cos(LatentCLIPvis (L),LatentCLIPvis (L~0))cos(CLIPtext (pO),CLIPtext (p)), LatentCLIP ⁡ vis  \operatorname{LatentCLIP}_{\text {vis }} LatentCLIPvis 是一种视觉编码器,根据输入的潜在特征 L L L,输出与原始图像 I I I的CLIP特征 CLIP ( I ) \text{CLIP}(I) CLIP(I)相似的特征。说白了就是原本的CLIP模型是直接对图像 I I I进行编码的,而这里作者输入的是潜在特征 L L L,为了适应这一改变,作者专门训练了一个 LatentCLIP \text{LatentCLIP} LatentCLIP模型,让其根据 L L L输出与 CLIP ( I ) \text{CLIP}(I) CLIP(I)接近的特征图,其训练过程如下
在这里插入图片描述
CLIP ⁡ text  \operatorname{CLIP}_{\text {text }} CLIPtext 就表示原始的CLIP文本编码器。 L ref  \mathcal{L}_{\text {ref }} Lref 表示参考图像特征 L r L_r Lr与输入图像特征 L L L之间的余弦相似性, L ref  ( L , L r ) = cos ⁡ ( LatentCLIP ⁡ vis  ( L ) , LatentCLIP ⁡ vis  ( L r ) ) \mathcal{L}_{\text {ref }}\left(L, L_{r}\right) =\cos \left(\operatorname{LatentCLIP}_{\text {vis }}(L), \operatorname{LatentCLIP}_{\text {vis }}\left({L}_{r}\right)\right) Lref (L,Lr)=cos(LatentCLIPvis (L),LatentCLIPvis (Lr)) L perc  \mathcal{L}_{\text {perc }} Lperc 表示输入的特征 L L L和生成结果的特征 L ~ 0 \tilde{L}_{0} L~0之间的视觉相似性, L perc  ( L , L ~ 0 ) = ∥ LatentVGG ⁡ ( L ) , LatentVGG ⁡ ( L ~ 0 ) ∥ 1 \mathcal{L}_{\text {perc }}\left(L, \tilde{L}_{0}\right)=\|\operatorname{LatentVGG}(L), \operatorname{LatentVGG}\left(\tilde{L}_{0}\right)\|_1 Lperc (L,L~0)=LatentVGG(L),LatentVGG(L~0)1 LatentVGG ⁡ \operatorname{LatentVGG} LatentVGG LatentCLIP ⁡ vis  \operatorname{LatentCLIP}_{\text {vis }} LatentCLIPvis 的训练过程类似,只是把CLIP的图像编码器换成了VGG。
  经过上述的优化训练过程,TiNO-Edit在多个图像编辑任务中的确取得了优于其他方法的效果,可视化结果对比如下
纯文本引导
在这里插入图片描述
参考图像引导
在这里插入图片描述

涂鸦引导
在这里插入图片描述

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

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

相关文章

VISO流程图之子流程的使用

子流程的作用 整个流程图的框图多而且大,进行分块;让流程图简洁对于重复使用的流程,可以归结为一个子流程图,方便使用,避免大量的重复性工作; 新建子流程 方法1: 随便布局 框选3 和4 &#…

基于YOLOv8的水稻虫害识别系统,加入BiLevelRoutingAttention注意力进行创新优化

💡💡💡本文摘要:基于YOLOv8的水稻虫害识别,阐述了整个数据制作和训练可视化过程,并加入BiLevelRoutingAttention注意力进行优化,最终mAP从原始的 0.697提升至0.732 博主简介 AI小怪兽&#xff…

MATLAB - 自定义惯性矩阵

系列文章目录 前言 一、关键惯性约定 Simscape 多体软件在惯性定义中采用了一系列约定。请注意这些约定,因为如果手动进行惯性计算,这些约定可能会影响计算结果。如果您的惯性数据来自 CAD 应用程序或其他第三方软件,这些约定还可能影响到您需…

【计算机毕设】在线商城系统设计与开发 - 免费源码(私信领取)

免费领取源码 | 项目完整可运行 | v:chengn7890 诚招源码校园代理! 1. 研究目的 本项目旨在设计并实现一个在线商城系统,提供商品展示、购物车管理、订单管理等功能,为用户提供便捷的购物体验,…

并发-启动线程的正确姿势

目录 启动线程的正确姿势 Start方法原理解读 Run方法原理解读 常见问题 启动线程的正确姿势 start()与run()方法的比较测试结果可以看出,runnable.run()方法是由main线程执行的,而要子线程执行就一定要先调用start()启动新线程去执行run方法并不能成…

人工智能|推荐系统——工业界的推荐系统之召回

基于物品的协同过滤 ⽤索引,离线计算量⼤,线上计算量⼩ Swing额外考虑重合的⽤户是否来⾃⼀个⼩圈⼦,两个⽤户重合度⼤,则可能来⾃⼀个⼩圈⼦,权重降低。 基于用户的协同过滤 同样是离线计算索引,在线召回的流程 离散特征处理 Embedding 层参数数量=向量维度 类别数量 矩

知识图谱需求

文章目录 公共安全数字经济金融科技资源优化科学研究制造业转型公共健康人文发展 公共安全 公共安全领域信息化以现代通信、网络、数据库技术为基础,将所研究对象各要素汇总至数据库,并针对各个业务领域进行定制化开发,以满足公共安全实战需求…

网易研发休闲游戏,AI技术助力提升品质

易采游戏网5月3日消息,在数字化时代,游戏已经成为人们休闲娱乐的重要方式。作为国内领先的互联网科技公司,网易一直在游戏领域深耕细作,不断推出高质量的游戏产品。近期,网易宣布正在研发一系列休闲游戏,并…

【k8s】利用Kubeadm搭建k8s1.29.x版本+containerd

文章目录 前言1.准备的三台虚拟机2.安装 kubeadm 前的准备工作3.安装containerd1.解压安装包2.生成默认配置文件3.使用systemd托管containerd4.修改默认配置文件 4.安装runc5.安装 CNI plugins6.安装 kubeadm、kubelet 和 kubectl6.1 配置crictl 7.初始化集群1.打印初始化配置到…

2024五一杯数学建模B题思路分析 - 未来新城背景下的交通需求规划与可达率问题

文章目录 1 赛题选题分析 2 解题思路详细的思路过程放在文档中 ! ! !!!!!3 最新思路更新 1 赛题 B题 未来新城背景下的交通需求规划与可达率问题 随着城市化的持续发展,交通规划在新兴城市建设中显得尤为关…

Idea 自动生成测试

先添加测试依赖&#xff01;&#xff01; <!--Junit单元测试依赖--><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.9.1</version><scope>test</scope><…

【Python可视化】pyecharts

Echarts 是一个由百度开源的数据可视化&#xff0c;凭借着良好的交互性&#xff0c;精巧的图表设计&#xff0c;得到了众多开发者的认可。而 Python 是一门富有表达力的语言&#xff0c;很适合用于数据处理。当数据分析遇上数据可视化时&#xff0c;pyecharts 诞生了。 需要安…

【idea-sprongboot项目】SSH连接云服务器进行远程开发

继上一篇博客【阿里云服务器】ubuntu 22.04.1安装docker以及部署java环境-CSDN博客 目录 五、远程开发方式 1&#xff09;SSH进行远程开发 步骤 配置文件同步 window电脑远程操控 正式通过window电脑远程操控 运行在linux服务器上的远程程序 调试在linux服务器上的远程程…

【无标题】数模数电的教学文章与资料

在电子技术领域&#xff0c;数模&#xff08;Digital-to-Analog, DA&#xff09;和模数&#xff08;Analog-to-Digital, AD&#xff09;转换器是核心组件&#xff0c;它们连接了模拟世界与数字世界&#xff0c;使得电子设备能够处理现实世界中的连续信号与数字信号系统的交互。…

电话号码的字母组合 【C++】【力扣刷题】

解题思路&#xff1a; 以第一个为例,digits “23”&#xff0c;表明从电话号码的按键中选取2和3这两个字符&#xff0c;然后去寻找它们各自所对应的字母&#xff0c;这里每一个数字字符所对应的字母的不同&#xff0c;0对应的是空字符&#xff0c;而1的话题目中讲到是不对应任…

使用macof发起MAC地址泛洪攻击

使用macof发起MAC地址泛洪攻击 MAC地址泛洪攻击原理&#xff1a; MAC地址泛洪攻击是一种针对交换机的攻击方式&#xff0c;目的是监听同一局域网中用户的通信数据。交换机的工作核心&#xff1a;端口- MAC地址映射表。这张表记录了交换机每个端口和与之相连的主机MAC地址之间…

MATLAB实现遗传算法优化第三类生产线平衡问题

第三类生产线平衡问题的数学模型 假设&#xff1a; 工作站数量&#xff08;m&#xff09;和生产线节拍&#xff08;CT&#xff09;是预设并固定的。每个任务&#xff08;或作业元素&#xff09;只能分配到一个工作站中。任务的执行顺序是预先确定的&#xff0c;且不可更改。每…

JavaScript 动态网页实例 —— 文字移动

前言 介绍文字使用的特殊效果。本章介绍文字的移动效果,主要包括:文字的垂直滚动、文字的渐隐渐显、文字的闪烁显示、文字的随意拖动、文字的坠落显示、页面内飘动的文字、漫天飞舞的文字、文字的下落效果。对于这些效果,读者只需稍加修改,就可以应用在自己的页面设计中。 …

vue快速入门(五十)重定向

注释很详细&#xff0c;直接上代码 上一篇 本篇建立在之前篇目前提下针对重定向进行演示 新增内容 路由重定向写法 源码 src/router/index.js //导入所需模块 import Vue from "vue"; import VueRouter from "vue-router"; import myMusic from "/v…

uniapp乡村社区户籍问外来人员管理系统 微信小程序python+java+node.js+php

基于微信小程序的外来人员管理系统项目的概述设计分析&#xff0c;主要内容有的私教预约平台系统平台的具体分析&#xff0c;进行数据库的是设计&#xff0c;数据采用MySQL数据库&#xff0c;并且对于系统的设计采用比较人性化的操作设计&#xff0c;对于系统出现的错误信息可以…