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

2024-05-11 03:36

本文主要是介绍浅析扩散模型与图像生成【应用篇】(二十三)——Imagic,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

23. Imagic: Text-Based Real Image Editing with Diffusion Models

  该文提出一种基于文本的真实图像编辑方法,能够根据纯文本提示,实现复杂的图像编辑任务,如改变一个或多个物体的位姿和组成,并且保持其他特征不变。相比于其他文本-图像编辑工作,Imagic具备更丰富的编辑方式,并且能够更好的保留编辑对象原有的特征。下面先展示一波结果,秀一下肌肉。可以看到编辑的效果非常逼真,而且是对图像中目标物体直接进行编辑,而不是重新生成一个新的对象。
在这里插入图片描述
  基于扩散模型的文本-图像编辑和生成的基础理论我这里就不再赘述了,不清楚的可以参考本博客该专栏下的其他文章。笼统点来讲,我们要把输入的文本描述转化为一个嵌入式向量,并将其作为一种条件信息引入到图像生成过程中,从而实现图像的编辑。本文提出的方法包含三个步骤:文本嵌入特征的优化,扩散模型的微调,以及特征插值与图像生成,如下图所示。
在这里插入图片描述
  首先,输入的文本描述经过一个文本编码器得到一个目标文本特征 e t g t e_{tgt} etgt,并使用一个预训练好的文本-图像生成模型 f θ f_{\theta} fθ对文本特征 e t g t e_{tgt} etgt进行优化,损失函数如下 L ( x , e , θ ) = E t , ϵ [ ∥ ϵ − f θ ( x t , t , e ) ∥ 2 2 ] \mathcal{L}(\mathbf{x},\mathbf{e},\theta)=\mathbb{E}_{t,\epsilon}\left[\left\|\boldsymbol{\epsilon}-f_{\theta}(\mathbf{x}_{t},t,\mathbf{e})\right\|_{2}^{2}\right] L(x,e,θ)=Et,ϵ[ϵfθ(xt,t,e)22]其中初始的 e \mathbf{e} e就是我们上文得到的 e t g t e_{tgt} etgt,在这个过程中生成模型 f θ f_{\theta} fθ的参数是固定不变的。随着训练的过程, e t g t e_{tgt} etgt被不断地更新,使其与输入图像 x x x的特征更加对齐,最终得到优化后的文本特征 e o p t e_{opt} eopt
  然后,我们再固定输入的文本特征 e o p t e_{opt} eopt不变,还是用上面的损失函数,对生成模型 f θ f_{\theta} fθ进行微调训练;同时如果还有其他的辅助模型,如提升分辨率的模型,也在这个过程中进行微调,只不过文本条件仍使用目标文本特征 e t g t e_{tgt} etgt,而不是优化过的 e o p t e_{opt} eopt。不要问为什么,问就是实验显示 e t g t e_{tgt} etgt效果更好。
  最后,我们使用一个线性插值函数来计算 e t g t e_{tgt} etgt e o p t e_{opt} eopt之间的插值,如下式 e ˉ = η ⋅ e t g t + ( 1 − η ) ⋅ e o p t \bar{\mathbf{e}}=\eta\cdot\mathbf{e}_{tgt}+(1-\eta)\cdot\mathbf{e}_{opt} eˉ=ηetgt+(1η)eopt η \eta η是可调的超参数,将插值得到的条件 e ˉ \bar{\mathbf{e}} eˉ输入到微调后的文本-图像生成模型中,即可得到对应的编辑结果。如下图所示,通过调整 η \eta η的大小,我们可以得到有原始图像到目标图像的渐进变化过程,作者表示 η \eta η取值为0.6-0.8时编辑的效果是最好的。
在这里插入图片描述
  作者与许多现有的图像编辑方法进行了比较,结果如下图所示
在这里插入图片描述

这篇关于浅析扩散模型与图像生成【应用篇】(二十三)——Imagic的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978396

相关文章

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”

python如何生成指定文件大小

《python如何生成指定文件大小》:本文主要介绍python如何生成指定文件大小的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python生成指定文件大小方法一(速度最快)方法二(中等速度)方法三(生成可读文本文件–较慢)方法四(使用内存映射高效生成

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结