Inpaint Anything 修复图像、视频和3D 场景中的任何内容!开源!
suiw9 2024-11-13 14:49 27 浏览 0 评论
Inpaint Anything 可以修复图像、视频和3D 场景中的任何内容!
L; DR:用户可以通过单击来选择图像中的任何对象。借助强大的视觉模型,例如SAM、LaMa和稳定扩散 (SD),Inpaint Anything能够顺利地移除对象(即Remove Anything)。此外,在用户输入文本的提示下,Inpaint Anything 可以用任何想要的内容填充对象(即Fill Anything)或任意替换其背景(即Replace Anything)。
新闻
[2023/9/15] Remove Anything 3D代码可用!
[2023/4/30] Remove Anything 视频可用!您可以从视频中删除任何对象!
[2023/4/24]支持本地 Web UI!您可以在本地运行演示网站!
[2023/4/22]网站可用!您可以通过界面体验 Inpaint Anything!
[2023/4/22] Remove Anything 3D可用!您可以从 3D 场景中删除任何 3D 对象!
[2023/4/13] arXiv 上的技术报告可用!
功能
- 移除任何内容
- 填充任意内容
- 替换任何内容
- 删除任何3D内容(新功能)
- 填充任意3D内容
- 替换任何3D内容
- 删除任何视频(新功能)
- 填充任何视频
- 替换任何视频
亮点
- 支持任意宽高比
- 支持2K分辨率
- arXiv 上的技术报告可用(新)
- 网站已上线 ( 新)
- 本地网页用户界面可用(新)
- 支持多种模式(即图像、视频和 3D 场景)(新)
删除所有内容
单击图像中的某个对象,Inpainting Anything 将立即将其删除!
- 点击一个对象;
- 分割任何模型(SAM)将对象分割出来;
- 修复模型(例如,LaMa)填补了“空洞”。
安装
需要python>=3.8
python -m pip install torch torchvision torchaudio
python -m pip install -e segment_anything
python -m pip install -r lama/requirements.txt
在 Windows 中,我们建议您首先安装miniconda并Anaconda Powershell Prompt (miniconda3)以管理员身份打开。然后 pip install ./lama_requirements_windows.txt而不是 ./lama/requirements.txt。
用法
下载Segment Anything和LaMa中提供的模型检查点(例如sam_vit_h_4b8939.pth和big-lama),并放入./pretrained_models。为了简单起见,你也可以前往这里,直接下载pretrained_models,将目录放入./,即可获得./pretrained_models。
对于 MobileSAM,sam_model_type 应使用“vit_t”,sam_ckpt 应使用“./weights/mobile_sam.pt”。对于 MobileSAM 项目,请参阅MobileSAM
bash script/remove_anything.sh
指定一个图像和一个点,“Remove Anything”将会删除该点处的对象。
python remove_anything.py \
--input_img ./example/remove-anything/dog.jpg \
--coords_type key_in \
--point_coords 200 450 \
--point_labels 1 \
--dilate_kernel_size 15 \
--output_dir ./results \
--sam_model_type "vit_h" \
--sam_ckpt ./pretrained_models/sam_vit_h_4b8939.pth \
--lama_config ./lama/configs/prediction/default.yaml \
--lama_ckpt ./pretrained_models/big-lama
如果你的机器有显示设备,可以改为--coords_type key_in。如果设置了,运行上述命令后,图像就会显示出来。(1)使用左键单击记录单击的坐标。它支持修改点,并且只记录最后一个点的坐标。(2)使用右键单击完成选择。--coords_type clickclick
演示
填充任意内容
单击一个对象,输入您想要填充的内容,Inpaint Anything 就会填充它!
点击一个对象;
SAM将物体分割出来;
输入文本提示;
文本提示引导的修复模型(例如,稳定扩散)根据文本填补“空洞”。
安装
需要python>=3.8
python -m pip install torch torchvision torchaudio
python -m pip install -e segment_anything
python -m pip install diffusers transformers accelerate scipy safetensors
用法
下载Segment Anything中提供的模型检查点(例如sam_vit_h_4b8939.pth)并放入./pretrained_models。为了简单起见,您也可以前往,直接下载pretrained_models,将目录放入./,即可获得./pretrained_models。
对于 MobileSAM,sam_model_type 应使用“vit_t”,sam_ckpt 应使用“./weights/mobile_sam.pt”。对于 MobileSAM 项目,请参阅MobileSAM
bash script/fill_anything.sh
指定图像、点和文本提示,然后运行:
python fill_anything.py \
--input_img ./example/fill-anything/sample1.png \
--coords_type key_in \
--point_coords 750 500 \
--point_labels 1 \
--text_prompt "a teddy bear on a bench" \
--dilate_kernel_size 50 \
--output_dir ./results \
--sam_model_type "vit_h" \
--sam_ckpt ./pretrained_models/sam_vit_h_4b8939.pth
演示
文字提示:“手里拿着相机镜头”
文字提示:“墙上有一幅毕加索的画”
替换任何东西
文字提示:“办公室里的一名男子”
单击一个对象,输入您想要替换的背景,Inpaint Anything 将替换它!
- 点击一个对象;
- SAM将物体分割出来;
- 输入文本提示;
- 文本提示引导的修复模型(例如,稳定扩散)根据文本替换背景。
安装
需要python>=3.8
python -m pip install torch torchvision torchaudio
python -m pip install -e segment_anything
python -m pip install diffusers transformers accelerate scipy safetensors
用法
下载Segment Anything中提供的模型检查点(例如sam_vit_h_4b8939.pth)并放入./pretrained_models。为了简单起见,您也可以前往,直接下载pretrained_models,将目录放入./即可./pretrained_models。
对于 MobileSAM,sam_model_type 应使用“vit_t”,sam_ckpt 应使用“./weights/mobile_sam.pt”。对于 MobileSAM 项目,请参阅MobileSAM
bash script/replace_anything.sh
指定图像、点和文本提示,然后运行:
python replace_anything.py \
--input_img ./example/replace-anything/dog.png \
--coords_type key_in \
--point_coords 750 500 \
--point_labels 1 \
--text_prompt "sit on the swing" \
--output_dir ./results \
--sam_model_type "vit_h" \
--sam_ckpt ./pretrained_models/sam_vit_h_4b8939.pth
演示
文字提示:“坐在秋千上”
删除任何 3D 内容
只需单击源视图的第一个视图中的对象,Remove Anything 3D 就可以从整个场景中删除该对象!
- 单击源视图的第一个视图中的一个对象;
- SAM将对象分割出来(使用三个可能的掩码);
- 选择一个面具;
- 利用OSTrack等跟踪模型来跟踪这些视图中的对象;
- SAM根据跟踪结果在每个源视图中分割出对象;
- 利用LaMa等修复模型来修复每个源视图中的对象。
- 利用NeRF等新颖视图合成模型来合成没有物体的场景的新颖视图。
- 安装
- 需要python>=3.8
- python -m pip install torch torchvision torchaudio
python -m pip install -e segment_anything
python -m pip install -r lama/requirements.txt
python -m pip install jpeg4py lmdb - 用法
- 下载Segment Anything和LaMa中提供的模型 checkpoint (如sam_vit_h_4b8939.pth),放入./pretrained_models。另外,从这里下载OSTrack预训练模型(如vitb_384_mae_ce_32x4_ep300.pth)放入。另外,下载 [nerf_llff_data](如horns),放入。为了简单起见,你也可以到这里,直接下载pretrained_models,将目录放入,即可获得。另外,下载pretrain,将目录放入,即可获得。./pytracking/pretrain./example/3d././pretrained_models./pytracking./pytracking/pretrain
- 对于 MobileSAM,sam_model_type 应使用“vit_t”,sam_ckpt 应使用“./weights/mobile_sam.pt”。对于 MobileSAM 项目,请参阅MobileSAM
- bash script/remove_anything_3d.sh
- 指定一个 3d 场景、一个点、场景配置和遮罩索引(指示使用第一个视图的哪个遮罩结果),然后 Remove Anything 3D 将从整个场景中删除该对象。
- python remove_anything_3d.py \
--input_dir ./example/3d/horns \
--coords_type key_in \
--point_coords 830 405 \
--point_labels 1 \
--dilate_kernel_size 15 \
--output_dir ./results \
--sam_model_type "vit_h" \
--sam_ckpt ./pretrained_models/sam_vit_h_4b8939.pth \
--lama_config ./lama/configs/prediction/default.yaml \
--lama_ckpt ./pretrained_models/big-lama \
--tracker_ckpt vitb_384_mae_ce_32x4_ep300 \
--mask_idx 1 \
--config ./nerf/configs/horns.txt \
--expname horns - 通常--mask_idx设置为 1,这通常是第一帧最可信的掩码结果。如果对象没有被很好地分割出来,你可以尝试其他掩码(0 或 2)。
删除所有视频
只需单击视频第一帧中的某个对象,“Remove Anything Video”即可从整个视频中删除该对象!
- 点击视频第一帧中的某个对象;
- SAM将对象分割出来(使用三个可能的掩码);
- 选择一个面具;
- 利用OSTrack等跟踪模型来跟踪视频中的对象;
- SAM根据跟踪结果在每帧中分割出物体;
- 利用STTN等视频修复模型来修复每一帧中的对象。
安装
需要python>=3.8
python -m pip install torch torchvision torchaudio
python -m pip install -e segment_anything
python -m pip install -r lama/requirements.txt
python -m pip install jpeg4py lmdb
用法
下载Segment Anything和STTN中提供的模型检查点(例如sam_vit_h_4b8939.pth和sttn.pth),并将它们放入./pretrained_models。此外,从这里下载OSTrack预训练模型(例如vitb_384_mae_ce_32x4_ep300.pth)并将其放入。为了简单起见,您也可以前往这里,直接下载pretrained_models,将目录放入并获取。另外,下载pretrain,将目录放入并获取。./pytracking/pretrain././pretrained_models./pytracking./pytracking/pretrain
对于 MobileSAM,sam_model_type 应使用“vit_t”,sam_ckpt 应使用“./weights/mobile_sam.pt”。对于 MobileSAM 项目,请参阅MobileSAM
bash script/remove_anything_video.sh
指定一个视频、一个点、视频 FPS 和蒙版索引(表示使用第一帧的哪个蒙版结果),Remove Anything Video 将从整个视频中删除该对象。
python remove_anything_video.py \
--input_video ./example/video/paragliding/original_video.mp4 \
--coords_type key_in \
--point_coords 652 162 \
--point_labels 1 \
--dilate_kernel_size 15 \
--output_dir ./results \
--sam_model_type "vit_h" \
--sam_ckpt ./pretrained_models/sam_vit_h_4b8939.pth \
--lama_config lama/configs/prediction/default.yaml \
--lama_ckpt ./pretrained_models/big-lama \
--tracker_ckpt vitb_384_mae_ce_32x4_ep300 \
--vi_ckpt ./pretrained_models/sttn.pth \
--mask_idx 2 \
--fps 25
通常--mask_idx设置为 2,这通常是第一帧最可信的掩码结果。如果对象没有被很好地分割出来,你可以尝试其他掩码(0 或 1)。
演示
素材来源网络致谢!
相关推荐
- 俄罗斯的 HTTPS 也要被废了?(俄罗斯网站关闭)
-
发布该推文的ScottHelme是一名黑客,SecurityHeaders和ReportUri的创始人、Pluralsight作者、BBC常驻黑客。他表示,CAs现在似乎正在停止为俄罗斯域名颁发...
- 如何强制所有流量使用 HTTPS一网上用户
-
如何强制所有流量使用HTTPS一网上用户使用.htaccess强制流量到https的最常见方法可能是使用.htaccess重定向请求。.htaccess是一个简单的文本文件,简称为“.h...
- https和http的区别(https和http有何区别)
-
“HTTPS和HTTP都是数据传输的应用层协议,区别在于HTTPS比HTTP安全”。区别在哪里,我们接着往下看:...
- 快码住!带你十分钟搞懂HTTP与HTTPS协议及请求的区别
-
什么是协议?网络协议是计算机之间为了实现网络通信从而达成的一种“约定”或“规则”,正是因为这个“规则”的存在,不同厂商的生产设备、及不同操作系统组成的计算机之间,才可以实现通信。简单来说,计算机与网络...
- 简述HTTPS工作原理(简述https原理,以及与http的区别)
-
https是在http协议的基础上加了一层SSL(由网景公司开发),加密由ssl实现,它的目的是为用户提供对网站服务器的身份认证(需要CA),以至于保护交换数据的隐私和完整性,原理如图示。1、客户端发...
- 21、HTTPS 有几次握手和挥手?HTTPS 的原理什么是(高薪 常问)
-
HTTPS是3次握手和4次挥手,和HTTP是一样的。HTTPS的原理...
- 一次安全可靠的通信——HTTPS原理
-
为什么HTTPS协议就比HTTP安全呢?一次安全可靠的通信应该包含什么东西呢,这篇文章我会尝试讲清楚这些细节。Alice与Bob的通信...
- 为什么有的网站没有使用https(为什么有的网站点不开)
-
有的网站没有使用HTTPS的原因可能涉及多个方面,以下是.com、.top域名的一些见解:服务器性能限制:HTTPS使用公钥加密和私钥解密技术,这要求服务器具备足够的计算能力来处理加解密操作。如果服务...
- HTTPS是什么?加密原理和证书。SSL/TLS握手过程
-
秘钥的产生过程非对称加密...
- 图解HTTPS「转」(图解http 完整版 彩色版 pdf)
-
我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。...
- HTTP 和 HTTPS 有何不同?一文带你全面了解
-
随着互联网时代的高速发展,Web服务器和客户端之间的安全通信需求也越来越高。HTTP和HTTPS是两种广泛使用的Web通信协议。本文将介绍HTTP和HTTPS的区别,并探讨为什么HTTPS已成为We...
- HTTP与HTTPS的区别,详细介绍(http与https有什么区别)
-
HTTP与HTTPS介绍超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的...
- 一文让你轻松掌握 HTTPS(https详解)
-
一文让你轻松掌握HTTPS原文作者:UC国际研发泽原写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。...
- 如何在Spring Boot应用程序上启用HTTPS?
-
HTTPS是HTTP的安全版本,旨在提供传输层安全性(TLS)[安全套接字层(SSL)的后继产品],这是地址栏中的挂锁图标,用于在Web服务器和浏览器之间建立加密连接。HTTPS加密每个数据包以安全方...
- 一文彻底搞明白Http以及Https(http0)
-
早期以信息发布为主的Web1.0时代,HTTP已可以满足绝大部分需要。证书费用、服务器的计算资源都比较昂贵,作为HTTP安全扩展的HTTPS,通常只应用在登录、交易等少数环境中。但随着越来越多的重要...
你 发表评论:
欢迎- 一周热门
-
-
Linux:Ubuntu22.04上安装python3.11,简单易上手
-
宝马阿布达比分公司推出独特M4升级套件,整套升级约在20万
-
MATLAB中图片保存的五种方法(一)(matlab中保存图片命令)
-
别再傻傻搞不清楚Workstation Player和Workstation Pro的区别了
-
Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
-
如何提取、修改、强刷A卡bios a卡刷bios工具
-
Element Plus 的 Dialog 组件实现点击遮罩层不关闭对话框
-
日本组合“岚”将于2020年12月31日停止团体活动
-
SpringCloud OpenFeign 使用 okhttp 发送 HTTP 请求与 HTTP/2 探索
-
tinymce 号称富文本编辑器世界第一,大家同意么?
-
- 最近发表
- 标签列表
-
- dialog.js (57)
- importnew (44)
- windows93网页版 (44)
- yii2框架的优缺点 (45)
- tinyeditor (45)
- qt5.5 (60)
- windowsserver2016镜像下载 (52)
- okhttputils (51)
- android-gif-drawable (53)
- 时间轴插件 (56)
- docker systemd (65)
- slider.js (47)
- android webview缓存 (46)
- pagination.js (59)
- loadjs (62)
- openssl1.0.2 (48)
- velocity模板引擎 (48)
- pcre library (47)
- zabbix微信报警脚本 (63)
- jnetpcap (49)
- pdfrenderer (43)
- fastutil (48)
- uinavigationcontroller (53)
- bitbucket.org (44)
- python websocket-client (47)