TL; DR:用戶可以通過單擊來選擇圖像中的任何對象。借助強大的視覺模型,例如SAM、LaMa和穩定擴散 (SD),Inpaint Anything能夠順利地移除對象(即Remove Anything)。此外,在用戶輸入文本的提示下,Inpaint Anything 可以用任何想要的內容填充對象(即Fill Anything)或任意替換其背景(即Replace Anything)。
下載方式:
1、Github 開源項目Release 0.1.0 · geekyutao/Inpaint-Anything · GitHub
2、網盤【點擊下載】
🌟 功能
- 移除任何內容
- 填充任意內容
- 替換任何內容
- 刪除任何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 click``click
演示
![]() | ![]() | ![]() |
---|---|---|
![]() | ![]() | ![]() |
---|---|---|
![]() | ![]() | ![]() |
---|---|---|
![]() | ![]() | ![]() |
---|---|---|
📌 填充任意內容
文字提示:“長凳上的一只泰迪熊”
單擊一個對象,輸入您想要填充的內容, 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)。