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

【多模态MLLMs+图像编辑】MGIE:苹果开源基于指令和大语言模型的图片编辑神器(24.02.03开源)

项目主页:https://mllm-ie.github.io/
论文 :基于指令和多模态大语言模型图片编辑 2309.Guiding Instruction-based Image Editing via Multimodal Large Language Models (加州大学圣巴拉分校+苹果)
代码:https://github.com/apple/ml-mgie | gradio_UI
媒体:机器之心的解析https://mp.weixin.qq.com/s/c87cUuyz4bUgfW2_ma5xpA

封面图
在这里插入图片描述
网友实测
在这里插入图片描述

一些概念

MLLMs: 多模态大语言模型

多模态大语言模型(Multimodal large language models ),是从预训练的LLM(大语言模型)初始化参数,MLLM添加了一个视觉编码器(visual encoder 例如,CLIP-L )来提取视觉特征 f f f,以及一个适配器(adapter) W W W(一般为简单神经网络)将特征 f f f投影到语言模态中。根据论文2304.Visual Instruction Tuning(LLaVA) :MLLMs的训练可以概括为:
在这里插入图片描述
其中 l l l C C C 中单词切分后(word token)的长度。 C C C可以是图像标题(特征对齐)或数据的多模态指令(指令调优)。MLLM 遵循下一个单词预测的标准自回归训练,然后可以作为各种视觉任务的视觉助手(visual assistant),例如视觉问答(visual question answering)和复杂的推理(complex reasoning)。尽管 MLLM 能够通过上述训练进行视觉感知,但它的输出仍然仅限于文本

MGIE : 多模态大语言模型引导的图像编辑

MGIE 表示:Multimodal large language model-Guided Image Editing (MGIE)

原文摘要:

基于指令(Instruction-based)的图像编辑通过自然命令提高了图像操作的可控性和灵活性,而无需详细描述或区域掩模。然而,人类的指令有时过于简短,目前的方法无法捕捉和遵循。多模态大语言模型(Multimodal large language models (MLLMs))在跨模态理解和视觉感知响应生成方面显示出很好的能力。
我们研究了(investigate) MLLM如何促进编辑指令(instructions),并提出 MLLM 引导的图像编辑 (MGIE)。
MGIE学习推导表达指令(derive expressive instructions)并提供明确指导(explicit guidance)。编辑模型共同捕获这种视觉想象,并通过端到端训练执行操作。我们评估了photoshop方式的修改全局照片优化局部编辑的各个方面。

大量的实验结果表明,表达性指令对于基于指令的图像编辑至关重要,我们的MGIE可以在保持竞争性推理效率的同时显著改善自动度量和人工评估。

Instruction-based image editing improves the controllability and flexibility of image manipulation via natural commands without elaborate descriptions or regional masks. However, human instructions are sometimes too brief for current methods to capture and follow. Multimodal large language models (MLLMs) show promising capabilities in cross-modal understanding and visual-aware response generation via LMs. We investigate how MLLMs facilitate edit instructions and present MLLM-Guided Image Editing (MGIE). MGIE learns to derive expressive instructions and provides explicit guidance. The editing model jointly captures this visual imagination and performs manipulation through end-to-end training. We evaluate various aspects of Photoshop-style modification, global photo optimization, and local editing. Extensive experimental results demonstrate that expressive instructions are crucial to instruction-based image editing, and our MGIE can lead to a notable improvement in automatic metrics and human evaluation while maintaining competitive inference efficiency.

主要方法

基本架构参考

InstructPix2Pix,LLaMA-7B为基线 ,着重借鉴了 LLaVA的模型

22.11.InstructPix2Pix: Learning to Follow Image Editing Instructions.
23.02.LLaMA: Open and Efficient Foundation Language Models
23.04.LLaVA: Large Language and Vision Assistant(Visual Instruction Tuning)
在这里插入图片描述

MGIR模型框架

使用的MLLMs预训练多模态模型 LLaVA-7B 进行指令调优(instruction tuning)并获得相应的视觉tokens : https://huggingface.co/liuhaotian/LLaVA-Lightning-7B-delta-v1-1 (只微调了词嵌入(word embedding)和LM head)

一个预训练的文本总结模型 Flan-T5-XXL(summarizer)获得对简洁的叙述:https://huggingface.co/google/flan-t5-xxl ,用在训练中,与生成精炼题词计算loss.
w一个是借助外部模型生成题词总结,一个是MLLM微调后输出的总结。
在这里插入图片描述

图 2:方法概述。

利用 MLLM 来增强基于指令的图像编辑 (“what will this image be like if [instruction]” ,来重写)。
训练好后,大视觉语言模型直接推导出简洁明确的表达指令(concise expressive instruction),并为预期目标提供明确的视觉相关指导(visual token)然后通过Edit head 注入到Diffusion模型。 扩散模型以端到端的方式通过编辑头联合训练和实现具有潜在想象的图像编辑。
其中,
Edit Head 表示:序列到序列模型 (4层transformer),它将来自 MLLM 的顺序视觉标记(sequential visual tokens)映射到语义上有意义的潜在编码 U = {u1, u2,…, uL} 作为编辑指导
在这里插入图片描述

具体算法训练流程

V V V表示:输入图片
X X X表示:指令(例如具体修改意图:改颜色、修改内容)
O O O表示: 最终的目标图像
T T T:表示: 序列到序列模型 (4层transformer),它将来自 MLLM 的顺序视觉标记(sequential visual tokens)映射到语义上有意义的潜在编码 U = {u1, u2,…, uL} 作为编辑指导
u u u表示: 最终提示修改的视觉语义编辑
F F F表示:stable diffusion的预训练模型
算法 1 展示了 MGIE 学习过程。
MLLM 通过指令损失 L_ins 导出简洁指令 ε。借助 [IMG] 的潜在想象,图片转变其模态并引导 图片合成结果图像。编辑损失 L_edit 用于扩散训练。由于大多数权重可以被冻结(MLLM 内的自注意力块),因而可以实现参数高效的端到端训练。
在这里插入图片描述
公式2
在这里插入图片描述
公式5
在这里插入图片描述

与主流方法对比

在这里插入图片描述

相关文章:

【多模态MLLMs+图像编辑】MGIE:苹果开源基于指令和大语言模型的图片编辑神器(24.02.03开源)

项目主页:https://mllm-ie.github.io/ 论文 :基于指令和多模态大语言模型图片编辑 2309.Guiding Instruction-based Image Editing via Multimodal Large Language Models (加州大学圣巴拉分校苹果) 代码:https://github.com/appl…...

hpp文件:C++开发中的利器

1 什么是hpp文件? hpp文件是C程序中一种特殊头文件,它可以包含类的声明和实现。与传统的h文件相比,hpp文件具有以下特点: 将类的声明和实现放在同一个文件里,减少了代码量,提高了代码的可读性。无需再将c…...

如何查看电脑连接的wifi的密码

问题 很多时候我们电脑连上wifi之后就把密码忘记了,这个时候如果同事问自己密码是多少,如果作为程序员说不知道是不是感觉有点不好意思,哈哈…… 解决 我使用的是windows电脑,就以windows为例说明下自己是如何查看的。 打开wi…...

QTabWidget和QTabBar控件样式设置(qss)

QTabWidget和QTabBar控件样式设置 1、QTabWidget样式可自定义的有哪些示例:效果图 2、QTabBar样式可自定义的有哪些示例效果图 1、QTabWidget样式可自定义的有哪些 QTabWidget::pane{} 定义tabWidgetFrameQTabWidget::tab-bar{} 定义TabBar的位置QTabWidget::tab{}定…...

【智能家居入门3】(MQTT服务器、MQTT协议、微信小程序、STM32)

前面已经写了三篇博客关于智能家居的,服务器全都是使用ONENET中国移动,他最大的优点就是作为数据收发的中转站是免费的。本篇使用专门适配MQTT协议的MQTT服务器,有公用的,也可以自己搭建(应该要钱)&#xf…...

C语言第二十四弹---指针(八)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 指针 1、数组和指针笔试题解析 1.1、字符数组 1.1.1、代码1: 1.1.2、代码2: 1.1.3、代码3: 1.1.4、代码4: 1…...

m1芯片xcode15编译cocos2dx一些报错处理

报错1: No matching function for call to ‘iconv’ No matching function for call to ‘iconv_close’ 解决: 强转: iconv_close((iconv_t)_iconv); iconv((iconv_t)_iconv, (char**)&pin, &inLen, &pout, &outLen); 报错2: Proper…...

代码+视频基于R语言进行K折交叉验证

我们在建立数据模型后通常希望在外部数据验证模型的检验能力。然而当没有外部数据可以验证的时候,交叉验证也不失为一种方法。交叉验验证(交叉验证,CV)则是一种评估模型泛化能力的方法,广泛应用…...

第一篇【传奇开心果系列】Python的pyttsx3库技术点案例示例:文本转换语言

传奇开心果短博文系列 系列短博文目录Python的pyttsx3库技术点案例示例系列 短博文目录前言一、pyttsx3主要特点和功能介绍二、pyttsx3文字转语音操作步骤介绍三、多平台支持介绍和示例代码四、多语言支持介绍和示例代码五、自定义语言引擎介绍和示例代码六、调整语速和音量介绍…...

@ 代码随想录算法训练营第7周(C语言)|Day43(动态规划)

代码随想录算法训练营第7周(C语言)|Day43(动态规划) Day41、动态规划(包含题目 ● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零 ) 1049. 最后一块石头的重量 II 题目描述 有一堆石头&am…...

深度学习的新进展:探索人工智能的未来

文章目录 📑引言深度学习技术概述计算机视觉领域的深度应用自然语言处理的深度革命跨领域应用的深度拓展深度学习的挑战与未来展望结语 📑引言 在科技日新月异的今天,深度学习作为人工智能领域的一颗璀璨明珠,正在引领着技术创新…...

Vue中@change、@input和@blur、@focus的区别及@keyup介绍

Vue中change、input和blur、focus的区别及keyup介绍 1. change、input、blur、focus事件2. keyup事件3. 补充:el-input的change事件自定义传参 1. change、input、blur、focus事件 change在输入框发生变化且失去焦点后触发; input在输入框内容发生变化后…...

Raspbian简易RTSP服务

Raspbian简易RTSP服务 1. 源由2. 搭建简易RTSP服务器2.1 系统安装2.2 软件安装2.3 命令介绍2.3.1 libcamera-hello2.3.2 libcamera-vid2.3.3 cvlc 3. 实测4. 参考资料 1. 源由 鉴于前期的一些准备工作: 《ArduPilot开源飞控之Companion Computers简单分析》《Ardu…...

【ASP.NET 6 Web Api 全栈开发实战】--前言

《ASP.NET 6 Web Api 实战》专栏通过一步一步的开发并完善一个记账软件项目,来引导大家学习相关的知识,其中的知识包括但不限于如下内容: Web Api 开发.NET 6 项目微服务架构的搭建身份认证移动端应用开发more。。。 专栏结构 专栏分为单体…...

跳过mysql8.0密码重置密码 Shell脚本

要在 MySQL 8.0 中通过 Shell 脚本跳过密码验证以重置密码,你可以遵循以下步骤:首先,确保你有足够的权限来编辑配置文件和重启 MySQL 服务。下面是一个简单的 Shell 脚本示例,该脚本展示了如何跳过密码验证以重置 MySQL 8.0 的 ro…...

Maven之安装自定义jar到本地Maven仓库中

Maven之安装自定义jar到本地Maven仓库中 文章目录 Maven之安装自定义jar到本地Maven仓库中1. 命令行窗口安装方式1. 常用参数说明2. 安装实例 2. IDEA中安装方式3. 使用 1. 命令行窗口安装方式 安装指定文件到本地仓库命令:mvn install:install-file; 在windows的cm…...

SPI控制8_8点阵屏

协议与硬件概述 SPI SPI是串行外设接口(Serial Peripheral Interface)的缩写。是一种高速的(10Mbps)的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线。 引脚介绍 SCLK:…...

2.10

头文件&#xff1a; #include <sqlite3.h> 编译时候要加上-lsqlite3 gcc a.c -lsqlite3 1&#xff09;sqlite3_open 打开一个数据库&#xff0c;如果数据库不存在&#xff0c;则创建一个数据库 2&#xff09;sqlite3_close 关闭数据库&#xff0c;断开句柄所拥有的资…...

计算机服务器中了360后缀勒索病毒怎么办?360后缀勒索病毒处理流程

网络技术的不断应用与发展&#xff0c;为企业的生产运营提供了有利保障&#xff0c;越来越多的企业走向数字化办公模式&#xff0c;并且企业的发展离不开数据支撑&#xff0c;重视数据安全成为了众多企业关心的主要话题。春节前后&#xff0c;云天数据恢复中心接到很多企业的求…...

BigDecimal的常用API

BigDecimal用于解决浮点型运算时结果出现失真的问题。 这里0.20.1等于0.3就出现了失真 import java.math.BigDecimal; import java.math.RoundingMode;public class Test {public static void main(String[] args) {//BigDeciaml的使用&#xff1a;解决小数运算失真的问题doub…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

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;…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...