안녕하세요
오늘은 Meta의 Segment Anything Model(SAM)을 활용한 Extension 중 하나인 Inpaint Anything 이라는 익스텐션을 사용해보려고 함
Segment Anything 주소
Segment Anything
Meta AI Computer Vision Research
segment-anything.com
위 주소에 Blog를 들어가면 어떻게 사용이 되는지 영상과 짤들이 있어 읽기 힘들면 이미지 참고도 해보면 좋을 것 같음
Demo도 해당 페이지에 있음
초간단 요약: 이미지에 있는 객체들을 감지해서 분리해준다
그래서 위에서 이렇게 SAM을 사용해서 segment 된 것들을 inpaint 한다고 보면됨
아래 그림을 참고하면됨
관련 설명들을 찾아보니 img2img 에서 inpainting 사용 시 전에 색칠했던 것처럼 마스킹이 필요한데
SAM 사용으로 색칠을 나눠서 빠르게 해주니 쉽고 편하게 할 수 있다 뭐 그런거 같음
하.지.만
아래 해당 주소는 자체적으로 설치해서 사용을 해야한다고해서 나는 그림구경 하고 패스 하였음
Inpaint Anything 공식 깃헙
https://github.com/geekyutao/Inpaint-Anything
GitHub - geekyutao/Inpaint-Anything: Inpaint anything using Segment Anything and inpainting models.
Inpaint anything using Segment Anything and inpainting models. - GitHub - geekyutao/Inpaint-Anything: Inpaint anything using Segment Anything and inpainting models.
github.com
그래서 WebUI extension으로 사용가능하게 만든게 아래 주소라고 보면됨
Inpaint Anything for WebUI 깃헙
https://github.com/Uminosachi/sd-webui-inpaint-anything
GitHub - Uminosachi/sd-webui-inpaint-anything: Inpaint Anything extension performs stable diffusion inpainting on a browser UI u
Inpaint Anything extension performs stable diffusion inpainting on a browser UI using masks from Segment Anything. - GitHub - Uminosachi/sd-webui-inpaint-anything: Inpaint Anything extension perfor...
github.com
설명이 길었다...
사용방법
1. Inpaint Anything 익스텐션 설치(아래 사진 참고)
과거 글들을 못본 분이 보면 심란 할수도 있으니 간략한 정리
Extensions → Available → Load from → inpaint Anything 검색 → 설치 → 재시작
2. Inpaint Anything 탭 확인
아래 사진처럼Inpaint Anything 탭이 생긴것 확인 가능함
3. Segment Anthing Model ID에서 사용할 모델 다운 받기 (위에 이미지 참고)
여러개가 있는데 원하는거 받아서 하나씩 해보면 될듯?
일단 모델 뒤에 h,l, b 가 있는데 아래 같은 의미이니 참고하면 될듯함(파일크기 차이 존재)
h = Huge
l = Large
b = Base
받으면 아래 사진처럼 cmd 창으로 받는거 것을 확인할 수 있음
4. 진짜 Inpaint Anything 사용해보기
Inpaint Anything 탭에와서 원하는 이미지를 넣어주고
Run Segment Anything 버튼을 누르면
그림의 화살표 끝에 이미지 처럼 세그멘테이션이 되어서 나옴
사용이미지:
5. 바꾸고 싶은 부분 지정
클릭 하면 점이 찍히는데 이미 나눠져 있기 때문에 점만찍어도됨
점찍은뒤 Create Mask 버튼을 누르면 2번 이미지 처럼 마스킹한부분이 어딘지 잡혀서 나옴
6. 원하는 프롬프트 입력 후 Run Inpainting 누르면 됨
처음에는 모델 다운받느라 좀 걸린다
아래 Inpainting model도 여러개가 있음
7. 1차 결과
ㅇ? 흰색 퍼로 입력했는데 잘못됨을 감지...
바로 inpainting 모델 중 다른 모델들도 해보았는데 결과가 같다...
그리하여... img2img 로 념겨서 해보기로 결정
8. img2img로 넘겨서 해보기
탭을 보면 Mask only 라는 탭이 있음 여기서
Get mask: inpainting 한부분 이미지 저장
Send to img2img inpaint: img2img로 넘겨줌
9.img2img 로 진행해보기
이미 필요한 부분은 다 불러와지기 때문에 사진에는 없지만 위쪽 프롬프트에 변경할 프롬프트 입력을 하고,
필요에 따라 아래 체크한 부분을 입맛에 맞게 변경하면됨
나같은경우 사이즈만 같은 사이즈로 진행하려고 저 삼각형은 누르고 다른 부분은 나중에 조정하였음
Denoise 사용을 해보니 0~1사이인데 0이면 원본에 가깝고 1에 가까워 질수록 자유롭게 생성하는듯
10. 결과
11.아래와 같이 하나씩 순차적으로 변형하고 수정된 이미지를 넣어
계속 진행하면 아래와 같이 나오게 할 수 있음
다른예
위 사진에서도 보이는 문제가 있긴한데 약간 생성하고 빈부분을 채우는게 좀 어색한 부분이 생기긴함
그럼 다음에 또 다른글로 찾아오도록 하겠습니다.

'Stable Diffusion > WebUI' 카테고리의 다른 글
[WebUI] Replacer 사용해보기 (0) | 2024.02.03 |
---|---|
[WebUI] Segment Anything을 img2img를 이용해서 사용 해보기~! (0) | 2024.02.01 |
[WebUI] IP Adapter 사용해서 이미지 생성해보기2~! (1) | 2024.01.22 |
[WebUI] IP Adapter 사용하여 이미지 생성해보기~! (0) | 2024.01.20 |
[WebUI] ControlNet Animal Openpose 사용해서 동물 포즈 바꿔보기~! (1) | 2024.01.11 |