031_SSS_Imagic Text-Based Real Image Editing with Diffusion Models

news2024/11/29 10:44:35

Imagic: Text-Based Real Image Editing with Diffusion Models

1. Introduction

本文提出了一种新的基于Diffusion的方法称作Imagic,可以实现复杂的基于文本的图像编辑。与之前的方法不同,本文的方法只需要一张输入图像和一个目标文本,并且可以直接用于真实的图像而不需要额外的输入比如mask。

传统方法的缺点

  1. 受限于特定的编辑方式比如添加一个物体,风格迁移。
  2. 只能处理特定类型的图片或者生成的图片。
  3. 需要额外的输入,比如mask,相同物体的多张图片,或者对于原图的文本描述

本文的主要贡献

  1. 提出了Imagic,第一个基于文本的图像语义编辑方法,可以对于单张输入图像实现复杂的非刚性的编辑,同时保持其总体的结构和组成。
  2. 本文展示了两个文本嵌入序列之间具有语义意义的线性插值,揭示了文本到图像扩散模型的强大组合能力。
  3. 本文提出了TEdBench,一种新的具有挑战性的复杂图像编辑benchmark,可以同于比较不同的基于文本的图像编辑方法。

2. Methodology

类似于基于GAN的图像编辑方法,本文首先找到有意义的表示,把这些表示提供给模型可以生成与输入图像相似的图像。然后微调生成模型以更好地重建输入图像,最后操纵隐式表示以获得编辑结果。

在这里插入图片描述

具体分为三个步骤:
对于一个预训练好的文本-图像Diffusion模型

  1. 第一步,优化文本embedding以找到与目标文本embedding相近的与给定图像最匹配的文本嵌入。
  2. 第二步,微调Diffusion模型使其更匹配输入的图像
  3. 第三步,在优化后的文本embedding和目标文本embedding之间进行线性插值,从而找到既能与原图像有较高的保真度,又与目标文本描述一致的图像。

Text embedding optimization

由于本文的方法没有原图像对应的文本,而只有目标文本,因此需要先得到原图像的文本embedding。具体的做法是, 在第一阶段,首先通过text encoder得到目标文本的target embedding e t g t e_{tgt} etgt ,然后将其和原图像一起作为固定文本-图像模型中Diffusion的部分输入,但是固定模型的参数而只优化输入的 e t g t e_{tgt} etgt 训练的目标为Diffusion的目标函数。

在这里插入图片描述

这一步优化只进行很少的step,得到与目标文本很接近而与原图像匹配的embedding e o p t e_{opt} eopt 。并且 e o p t e_{opt} eopt e t g t e_{tgt} etgt 之间可以进行有意义的线性插值。

Model fine-tuning

由于第一部分只优化了很少的步数,因此得到的 e o p t e_{opt} eopt 并不能特别严格的与原图像匹配。因此在第二阶段固定了 e o p t e_{opt} eopt 然后用同样的第一阶段的目标函数来优化Diffusion model的参数。

如果需要得到高分辨率的图像的话,会有一些超分模型之类的辅助模型。而对于这些模型的优化的微调则要用 e t g t e_{tgt} etgt 作为输入,来保证模型最终结果能够保持原图像的细节。

Text embedding interpolation

第三个阶段是在 e t g t e_{tgt} etgt e o p t e_{opt} eopt 之间做线性插值,然后利用 e ˉ \bar{e} eˉ 得到低分辨率的图像。但是最后用辅助模型得到高分辨率图像的输入则需要是 e t g t e_{tgt} etgt

在这里插入图片描述

3. Experiments

Implementation details

具体参数不罗列。本文的实验第一部分训练了100step,第二步训练了1500步,同样对于辅助模型也训练了1500步。

实验结果

在这里插入图片描述

TEdBench

本文收集了100对输入图像和目标文本,作为benchmark

Albation Study

线性插值

对于线性插值的参数 η \eta η 的实验,发现在 η ∈ [ 0.6 , 0.8 ] \eta \in [0.6,0.8] η[0.6,0.8] 时可以达到较好的结果。

在这里插入图片描述

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

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

相关文章

线程私有变量ThreadLocal详解

本文已收录至Github,推荐阅读 👉 Java随想录 烈火试真金,逆境试强者。——塞内加 文章目录什么是ThreadLocalThreadLocal 原理set()方法get()方法remove()方法ThreadLocal 的Hash算法ThreadLocal 1.7和1.8的区别ThreadLocal 的问题ThreadLoca…

StarRocks获评「2022 中国开源社区健康案例」!

近日,OSCHINA 2022年度中国开源项目评选结果正式揭晓,StarRocks开源社区成功入选 OSCHINA “2022中国开源社区健康案例”!开源社区健康指的是围绕一个开源项目形成的社区中关于项目的技术迭代、社区的组织架构、成员构成、开源治理、上下游协…

【手写 Vuex 源码】第十二篇 - Vuex 插件机制的实现

一,前言 上一篇,主要介绍了 Vuex 插件的开发,主要涉及以下几个点: Vuex 插件的使用介绍;Vuex 插件开发和使用分析;Vuex 插件机制的分析; 本篇,继续介绍 Vuex 插件机制的实现&…

moveToCoordinateF3DconcatenateRotations

moveToCoordinate 演示视频: 注意:前提是3~6轴机器人机构且不是PickAndPlace 该方法_3D。Poses.moveToCoordinate 移动由 指定的对象,该对象 对应于支持的机器人配置之一,只要标识的机器人配置支持,其第一个动画指向指定坐标和指定旋转。这无需您定义姿势即可工作。 工…

Python期末复习知识点大合集(期末不挂科版)

Python期末复习知识点大合集(期末不挂科版) 文章目录Python期末复习知识点大合集(期末不挂科版)一、输入及类型转换二、格式化输出:字符串的format方法三、流程控制四、随机数生成五、字符串六、序列索(含字…

stm32f407探索者开发板(十五)——NVIC中断优先级管理

文章目录零、前言一、NVIC中断优先级分组1.1 中断的管理方法1.2 抢占优先级&相应优先级的区别1.3 举例1.4 特别说明1.5 中断优先级分组函数二、NVIC中断优先级设置2.1 中断设置相关寄存器2.2 中断设置优先级2.2.1 中断优先级控制的寄存器组 IP[240]2.2.2 中断使能寄存器组 …

TCP核心机制之连接管理详解(三次握手,四次挥手)

目录 前言: 建立连接 建立连接主要两个TCP状态: 断开连接 断开连接的两个重要状态 小结: 前言: TCP是如何建立对端连接,如何断开连接,这篇文章会详细介绍。 建立连接 首先明确连接的概念&#xff1a…

Docker系列之九巧用Nginx

前言 Nginx是个很棒的反向代理服务工具,之前我都是直接安装到服务器上去,过程繁琐也许不是难以接受,但是有更简单地Docker镜像服务,我自然没必要再次舍近求远。 一些配置是参考自我以前的文章Docker系列一安装Docker和Hexo历险记…

影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python3.10接入

使用过NAS(Network Attached Storage)的朋友都知道,它可以通过局域网将本地硬盘转换为局域网内的“网盘”,简单理解就是搭建自己的“私有云”,但是硬件和网络成本都太高了,有点可望而不可及的意思。Alist开源库则可以满足我们&…

Docker+Nginx+KeepaLived实现Nginx一主一从高可用

系统版本 Centos7 IP:10.10.11.79 Master IP:10.10.11.81 Slave 虚拟ip:10.10.11.77 客户端发起一个请求 ,请求没有到Nginx的实际IP上,而是请求的虚拟IP(会和实际IP通过配置文件进行绑定) 如果有一台Nginx…

Linux进阶(Shell编程学习一)

由于shell脚本在java项目运维方面极其重要,比如服务的启动脚本,日志的分割脚本,文件的管理脚本大多都是shell脚本去实现的。所以作为java开发者懂linux的基本命令,会基本的shell编程是必要的。 Shell 是一个用 C 语言编写的程序&…

nodejs+vue学生考试成绩数据分析与可视化系统vscode

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.3 B/S结构 4 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:技术背景…

springboot 集成driud

druid官方文档导入jar包<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid-spring.version}</version></dependency>配置数据源spring:datasource:url: jdbc:m…

什么是销售管理?销售管理的五大职能

销售管理听起来很简单&#xff0c;似乎只是负责销售并确保客户满意&#xff0c;但事实上&#xff0c;它远不止于此。 销售管理的实际职能包括监督销售团队的工作&#xff0c;制定计划和设定目标&#xff0c;通常还包括确保销售流程的效率以获得最佳业务结果。 什么是销售管理…

千兆网口down/up偶发link成百兆问题

a. 软硬件环境&#xff1a;​NXP LS1043A IGB211&#xff08;pcie接口千兆网卡&#xff09;:linux 4.9.19 igb driver Nvidia Xavier NX RTL8211F: linux4.9​ ​NXP LS1043A -----(pcie)--- IGB211 <---(PCB走线代替网线)-----> RTL8211F&#xff08;phy&#xff09;…

剑指 Offer 56 - II. 数组中数字出现的次数 II

题目 在一个数组 nums 中除一个数字只出现一次之外&#xff0c;其他数字都出现了三次。请找出那个只出现一次的数字。 思路 这题是剑指 Offer 56 - I. 数组中数字出现的次数的变体&#xff0c;本题只有一个数num出现一次&#xff0c;其余的均出现三次 三次的话使用异或消无法…

云计算与 SaaS 有何区别?

云计算与 SaaS 有何区别&#xff1f;众所周知&#xff0c;SaaS是云计算的三种服务模式其中之一。 三种分别是&#xff1a; Iaas&#xff1a;基础设施即服务Paas&#xff1a;平台即服务SaaS&#xff1a;软件即服务 对于三者的区别&#xff0c;一起来吃顿烤肉&#xff0c;听我慢…

13_FreeRTOS消息队列

目录 队列简介 FreeRTOS队列特点 队列操作基本过程 队列结构体介绍 队列结构体整体示意图 队列相关API函数介绍 创建队列相关API函数介绍 往队列写入消息API函数 往队列写入消息函数入口参数解析 从队列读取消息API函数 实验源码 队列简介 队列是任务到任务、任务…

开发微服务电商项目演示(五)

登录方式调整第1步&#xff1a;从zmall-common的pom.xml中移除spring-session-data-redis依赖注意&#xff1a;本章节中不采用spring-session方式&#xff0c;改用redis直接存储用户登录信息&#xff0c;主要是为了方便之后的jmeter压测&#xff1b;2&#xff09;这里只注释调用…

如何使用ArcGIS转换坐标

1.概述大家都知道ArcGIS提供了坐标转换功能&#xff0c;在我们手里的数据坐标系千差万别&#xff0c;经常会遇到转换坐标的时候&#xff0c;那么是否可以用ArcGIS进行转换&#xff1f;答案是肯定的&#xff0c;但是转换的过程比较复杂&#xff0c;这里为大家介绍一下转换的方法…