【RealFill】一种新的用于图像补全的生成式模型

news/2024/7/10 21:44:20 标签: AIGC, stable diffusion

文章目录

  • RealFill
    • 1. 背景
    • 2. 模型结构
      • 2.1 Training 流程
      • 2.2 Inference 阶段
    • 3. 应用场景
      • 3.1 outpainting
      • 3.2 Inpainting
    • 4. 局限性

RealFill

论文链接:https://arxiv.org/abs/2309.16668

项目地址:https://realfill.github.io/

代码仓库:https://github.com/thuanz123/realfill 截止国庆假期前夕,代码尚未公开完整。

1. 背景

虽然模型可以在未知区域生成高质量、合理的图像内容,但由于缺乏真实场景的上下文信息,这些模型幻觉出的内容必然是不真实的。只依赖于prompts,缺乏参考图像。比如说衣服变了,类似于生成视频中的一致性不好等问题。

本文定义了一个全新的问题:「真实图像补全」Authentic Image Completion

RealFill 是首个通过在过程中添加更多的条件(即添加参考图像)来扩展生成型图像修复模型表达力的方法。

RealFill 模型的优势是可以使用少量的场景参考图像进行个性化设置,而这些参考图像无须与目标图像对齐,甚至可以在视角、光线条件、相机光圈或图像风格等方面有极大的差异。一旦完成个性化设置,RealFill 就能够以忠实于原始场景的方式,用视觉上引人入胜的内容来补全目标图像。

2. 模型结构

在这里插入图片描述
I r e f I_{ref} Iref:输入的参考图像。
I t g t I_{tgt} Itgt:输入的目标图像。
I o u t I_{out} Iout:Training阶段的输出,通常为一个集合,进行筛选。
I g e n I_{gen} Igen:Inference阶段的输出。

2.1 Training 流程

  • 输入:3~5张 reference images & target images & prompt
  • 输出:output images
  • Loss:
    在这里插入图片描述

对于reference images:

  • 随机进行mask
  • 训练lora
  • 放入diffusion model

模型仅仅对mask掉的部分进行loss计算。

最终生成的 I o u t {I_{out}} Iout集合,如果生成的图像与参考图像之间的对应关系较差或不够准确,它们就会被筛选掉,不会被包含在最终的生成结果中。

2.2 Inference 阶段

为了保证非生成部分能够更好的还原,对 I t g t I_{tgt} Itgt的非mask区域,设置 α \alpha α通道,保证 I t g t I_{tgt} Itgt的还原性良好。

3. 应用场景

3.1 outpainting

在这里插入图片描述
给定左侧的参考图像,RealFill 能够在右侧绘制相应的目标图像。将白盒内的区域作为已知像素提供给网络,并生成白盒外的区域。结果表明,RealFill 产生高质量的图像忠实于参考,即使参考和目标之间存在显着差异,包括视点、光圈、照明、图像风格和物体运动的变化。

3.2 Inpainting

在这里插入图片描述
给定左边的参考图像,RealFill不仅能够去除目标图像中不希望看到的物体,忠实地揭示遮挡的内容(左列),而且还能够在场景中插入对象,尽管参考图像和目标图像之间的视点变化显著(右列)。在左下角的例子中,参考图像和目标图像之间的孔径也不同,RealFill不仅恢复了杯子后面的建筑物,而且保持了目标图像中看到的适当数量的模糊。

4. 局限性

在这里插入图片描述

RealFill 无法恢复精确的 3D 场景结构;RealFill 无法处理对基本 T2I 模型(例如文本)也具有挑战性的情况。


http://www.niftyadmin.cn/n/5067336.html

相关文章

目前制造企业生产计划现状是什么?有没有自动化排产系统?

大家都知道,人的指挥中心是大脑,大脑对我们的发出各种各样的指令,告诉我们:“手”做什么事情,“眼睛”看什么地方,“耳朵”听什么声音,然后再将摸到的、看到的、听到的信息传递给大脑&#xff0…

使用云服务器部署SpringBoot+Vue项目

一、购买云服务器并配置安全组 二、准备好前后端项目并先打包好 对于前端文件。新建文件 .env.development VUE_APP_BASEURLhttp://localhost:9090 还有新建文件 .env.production VUE_APP_BASEURLhttp://:9090 main.js 设置全局变量 $baseUrl Vue.prototype.$baseUrlproc…

<一>Qt斗地主游戏开发:开发环境搭建--VS2019+Qt5.15.2

1. 开发环境概述 对于Qt的开发环境来说,主流编码IDE界面一般有两种:Qt Creator或VSQt。为了简单起见,这里的操作系统限定为windows,编译器也通用VS了。Qt版本的话自己选择就可以了,当然VS的版本也是依据Qt版本来选定的…

大模型部署手记(4)MOSS+Jetson AGX Orin

1.简介 组织机构:复旦大学 代码仓:GitHub - OpenLMLab/MOSS: An open-source tool-augmented conversational language model from Fudan University 模型:fnlp/moss-moon-003-sft-int4 下载:https://huggingface.co/fnlp/mos…

【C语言】八大排序算法

文章目录 一、冒泡排序1、定义2、思想及图解3、代码 二、快速排序1、hoare版本2、挖坑法3、前后指针法4、非递归快排5、快速排序优化1)三数取中选key值2)小区间优化 三、直接插入排序1、定义2、代码 四、希尔排序1、定义2、图解3、代码 五、选择排序1、排…

Docker01基础操作

目录 1、docker 发展历史 2、Docker 概述 2.1 容器 2.2 Docker与虚拟机的区别 2.3 容器在内核中支持2种重要技术 2.4 namespace的六项隔离 2.5 Docker核心概念 2.6 安装 Docker 2.7 Docker 镜像操作 2.8 Docker 容器操作 2.9 面试题 1、docker 发展历史 https://www.…

【“栈、队列”的应用】408数据结构代码

王道数据结构强化课——【“栈、队列”的应用】代码&#xff0c;持续更新 链式存储栈&#xff08;单链表实现&#xff09;&#xff0c;并基于上述定义&#xff0c;栈顶在链头&#xff0c;实现“出栈、入栈、判空、判满”四个基本操作 #include <stdio.h> #include <…

如何将图片存到数据库(以mysql为例), 使用ORM Bee更加简单

如何将图片存到数据库 1. 创建数据库: 2. 生成Javabean public class ImageExam implements Serializable {private static final long serialVersionUID 1596686274309L;private Integer id;private String name; // private Blob image;private InputStream image; //将In…