Project Icon

Inpaint-Anything

基于AI的图像编辑工具实,现对象移除填充和背景替换

Inpaint Anything是一款结合先进计算机视觉模型的图像编辑工具。用户只需点击即可选择图像中的任意对象,然后可以移除对象、根据文本提示填充新内容或替换背景。该项目还支持视频和3D场景编辑,提供灵活强大的图像处理功能。

万物修复:分割任何物体与图像修复的结合

万物修复可以修复图像视频3D场景中的任何物体!

  • 作者:于涛、冯润森、冯若愚、刘金明、金鑫、曾文军和陈志波。
  • 机构:中国科学技术大学;东方高等研究院。
  • [论文] [网站] [Hugging Face主页]

简而言之:用户可以通过点击选择图像中的任何对象。借助强大的视觉模型,如SAMLaMaStable Diffusion (SD),万物修复能够顺畅地移除对象(即移除任何物体)。此外,在用户输入文本的提示下,万物修复可以用任何所需的内容填充对象(即填充任何物体)或任意替换其背景(即替换任何物体)。

📜 新闻

[2023/9/15] 移除任何3D物体代码已发布!
[2023/4/30] 移除任何视频中的物体已发布!您可以从视频中移除任何物体!
[2023/4/24] 支持本地网页界面!您可以在本地运行演示网站!
[2023/4/22] 网站上线!您可以通过界面体验万物修复!
[2023/4/22] 移除任何3D物体已发布!您可以从3D场景中移除任何3D物体!
[2023/4/13] arXiv上的技术报告已发布!

🌟 功能

💡 亮点

📌 移除任何物体

image

在图像中点击一个物体,万物修复将立即移除它!

安装

需要 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安装./lama_requirements_windows.txt, 而不是./lama/requirements.txt

使用方法

下载Segment AnythingLaMa提供的模型检查点(例如,sam_vit_h_4b8939.pthbig-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

指定一张图像和一个点,移除任何物体将移除该点处的物体。

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更改为--coords_type click。如果设置为click,运行上述命令后,图像将被显示。(1)使用左键单击记录点击坐标。支持修改点,只记录最后一个点的坐标。(2)使用右键单击完成选择。

演示

📌 填充任何物体

文本提示: "长凳上的泰迪熊"

image

点击一个物体,输入您想填充的内容,万物修复将填充它!

  • 点击一个物体;
  • SAM将物体分割出来;
  • 输入文本提示;
  • 文本引导的修复模型(如Stable Diffusion)根据文本填充"空洞"。

安装

需要 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 "长凳上的泰迪熊" \
    --dilate_kernel_size 50 \
    --output_dir ./results \
    --sam_model_type "vit_h" \
    --sam_ckpt ./pretrained_models/sam_vit_h_4b8939.pth

演示

文本提示: "手中的相机镜头"
文本提示: "墙上的毕加索画作"
文本提示: "海上的航空母舰"
文本提示: "道路上的跑车"

📌 替换任何物体

文本提示: "办公室里的男人"

image

点击一个对象,输入你想替换的背景,Inpaint Anything 就会替换它!

  • 点击一个对象;
  • SAM分割出该对象;
  • 输入文本提示;
  • 文本提示引导的修复模型(例如Stable Diffusion)根据文本替换背景。

安装

需要 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 "坐在秋千上" \
    --output_dir ./results \
    --sam_model_type "vit_h" \
    --sam_ckpt ./pretrained_models/sam_vit_h_4b8939.pth

演示

文本提示: "坐在秋千上"
文本提示: "一辆公交车,在乡间公路中央,夏天"
文本提示: "早餐"
文本提示: "城市中的十字路口"

📌 3D移除任何物体

只需在源视图的第一个视图中对一个对象进行单次点击,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 AnythingLaMa提供的模型检查点(例如sam_vit_h_4b8939.pth),并将它们放入./pretrained_models。此外,从这里下载OSTrack预训练模型(例如vitb_384_mae_ce_32x4_ep300.pth)并将其放入./pytracking/pretrain。另外,下载nerf_llff_data,并将它们放入./example/3d。为简便起见,你也可以直接到这里下载pretrained_models,将目录放入./中得到./pretrained_models。此外,下载pretrain,将目录放入./pytracking中得到./pytracking/pretrain

对于MobileSAM,sam_model_type应使用"vit_t",sam_ckpt应使用"./weights/mobile_sam.pt"。 关于MobileSAM项目,请参考MobileSAM

bash script/remove_anything_3d.sh

指定一个3D场景、一个点、场景配置和掩码索引(指示使用第一个视图的哪个掩码结果),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 \
      --
## <span id="remove-anything-video">📌 移除视频中的任何物体</span>
<table>
    <tr>
      <td><img src="https://yellow-cdn.veclightyear.com/2b54e442/5f000ef6-c4e4-47fc-a051-b8ecfe869eba.gif" width="100%"></td>
      <td><img src="https://yellow-cdn.veclightyear.com/2b54e442/205b529e-570b-4de8-b698-3e5c584f1a16.gif" width="100%"></td>
      <td><img src="https://yellow-cdn.veclightyear.com/2b54e442/82a65b64-4c2f-4fdd-9da3-c1b02fd8c4f8.gif" width="100%"></td>
    </tr>
</table>

只需在视频第一帧中**单击**一个物体,"移除视频中的任何物体"功能就可以从整个视频中删除该物体!
- 在视频第一帧中点击一个物体;
- [SAM](https://segment-anything.com/)对物体进行分割(提供三种可能的蒙版);
- 选择一个蒙版;
- 使用如[OSTrack](https://github.com/botaoye/OSTrack)等跟踪模型在视频中跟踪该物体;
- SAM根据跟踪结果在每一帧中分割出该物体;
- 使用如[STTN](https://github.com/researchmm/STTN)等视频修复模型对每一帧中的物体进行修复。

### 安装
需要`python>=3.8`
```bash
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 AnythingSTTN提供的模型检查点(例如,sam_vit_h_4b8939.pthsttn.pth),并将它们放入./pretrained_models。此外,从这里下载OSTrack预训练模型(例如,vitb_384_mae_ce_32x4_ep300.pth)并将其放入./pytracking/pretrain。为简便起见,你也可以直接前往这里,下载pretrained_models,将目录放入./中并获得./pretrained_models。另外,下载pretrain,将目录放入./pytracking中并获得./pytracking/pretrain

对于MobileSAM,sam_model_type应使用"vit_t",sam_ckpt应使用"./weights/mobile_sam.pt"。 关于MobileSAM项目,请参考MobileSAM

bash script/remove_anything_video.sh

指定一个视频、一个点、视频FPS和蒙版索引(表示使用第一帧的哪个蒙版结果),"移除视频中的任何物体"功能将从整个视频中删除该物体。

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)。

演示

致谢

其他有趣的仓库

引用

如果你发现这项工作对你的研究有用,请引用我们:

@article{yu2023inpaint,
  title={Inpaint Anything: Segment Anything Meets Image Inpainting},
  author={Yu, Tao and Feng, Runseng and Feng, Ruoyu and Liu, Jinming and Jin, Xin and Zeng, Wenjun and Chen, Zhibo},
  journal={arXiv preprint arXiv:2304.06790},
  year={2023}
}

Star History Chart

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号