Diffusion 기반 생성형 AI 활용기/Stable Infinity 배경 생성

2. Stable Diffusion Infinity 알아보기[AI Outpainting] : 주요 기능 소개와 유용한 팁

누군가의 이야기 2023. 2. 18. 02:59
728x90

이전 포스팅에선 Stable Diffusion Infinity 모델을 활용하여

Colab 환경에서 Outpainting 하기 위한 실행 환경과 기본적인 설정을 해주었다.

본 포스팅을 따라해보고자 하면 아래 포스팅을 먼저 확인하면 좋다.

 

https://kosonkh7.tistory.com/93

 

1. Stable Diffusion Infinity 알아보기 [AI Outpainting] : 기본 설정 가이드

진주 귀걸이를 한 소녀 그림을 바탕으로 흔히 Outpainting의 예시 영상으로 떠도는 결과물을 보면서 와 이건 정말 해보고 싶다는 느낌을 받았었다. Outpainting에 특화된 Stable Diffusion Infinity 모델을 활

kosonkh7.tistory.com

 

이번 포스팅에선 Outpainting을 직접 해보면서 사용 방법과 유용한 팁을 소개하려 한다.

 

실습에 활용한 이미지 출처를 먼저 밝힌다.

월드오브워크래프트의 일리단 스톰레이지 일러스트를 사용하였다

https://www.facebook.com/WarcraftKR/photos/%EC%9D%BC%EB%A6%AC%EB%8B%A8-%EC%8A%A4%ED%86%B0%EB%A0%88%EC%9D%B4%EC%A7%80-httpkrbattlenetwowkomediaartworkwow-charactersviewillidan-stormrage1ke/1061949087182458/

 

 

 

728x90

 

- 주요 기능 소개

 

1. 캔버스를 초기화하는 기능

2. 불러오기 / 캔버스 파일 형식으로 저장 / png로 저장

3. 캔버스에 이미지를 올리기

4. Outpainting 할 영역의 위치를 옮길 때

5. 캔버스의 위치를 조정할 때

6. 지우개

7. Outpainting (실행 버튼)

8. Outpainting 할 영역 크기 조정

9. 캔버스 크기 조정

 


- 실행 방법

 

1. Outpainting 하고자 하는 이미지를 업로드하고,

2. 캔버스 내에서 위치 및 크기를 조정하고,

3. Confirm 해준다 

 

위치 및 크기는 계속 조정할 수 있으니 신중하지 않아도 괜찮다.

 

 

캔버스(Outpainting 할 영역)의 위치를 적절히 옮기고, 그 영역에 생성되길 원하는 바를 프롬프트로 작성한다.

 

꼭 프롬프트를 작성하지 않아도 알아서 주변 이미지와 어울리게 생성해주기 때문에,

필요하다면 프롬프트 창을 비워도 좋다.

 

Outpainting 버튼을 클릭해서 해당 영역의 새로운 그림을 얻을 수 있다.

 

Sample Number를 조정하여 여러 이미지를 동시에 얻을 수 있고,

 

마음에 들면 Accept, 그렇지 않으면 Cancel 또는 Retry 해준다.

 

 

맘에 들지 않으면 취소할 수 있지만,

 

특정 부분만 마음에 든다면, 마음에 들지 않는 부분만 지우개로 지울 수 있다.

 

지우개 크기를 조정하여 섬세하게 지워내고 생성하길 반복하면 원하는 결과물에 더 가까워진다.

 


 

- 결과 및 유용한 팁

 

왼쪽이 원본, 오른쪽이 Outpainting으로 배경을 생성한 결과물

 

꽤나 그럴 듯한 이미지를 얻었다.

 

뚝딱 만든 이미지는 아니고, 생각처럼 나오지 않을 때 이것 저것 많이 손 보며 시간 들여 얻은 이미지다.

 

사실 답답하면 프롬프트를 비워놓고 Outpainting 하는게 가장 자연스럽긴 했는데,

 

의도하는 바가 명확하면 더 창의적인 이미지를 얻을 수 있었을 것 같다.

 

저는 짧은 시간 머리 싸매서 떠올린게 초록색 달이었습니다..

 

사실 이 이미지는 원본이 따로 있는데,

원본 일러스트레이션

 

원본과 비교해서 본인의 결과물이 크게 위화감이 느껴지지 않는다 믿어 나름 만족한다.

 

시행착오를 겪으며 느낀 점으로는,

 

한 번의 샘플마다 곧바로 좋은 결과물을 얻길 바라지 않고,

지우개로 조금씩 지워가며 손보면 보다 나은 결과 이미지를 얻을 수 있고,

 

Outpainting 하는 구간을 조금씩 좁게 가져가야 보다 자연스러운 이미지를 얻을 수 있었다.

한 번에 큰 구역을 생성하려 하면, 원본 이미지와 무관하게 생성될 확률이 높기 때문이다.

 

불편했던 점으로는, 마우스 스크롤을 조금이라도 움직이면 캔버스 크기가 마구 커졌다 줄었다 해서

주의하면서 작업하면 좋겠다. 한 번이라도 해보면 무슨 말인지 안다. 답답해 죽음...

 

초기 모드로 patchmatch를 권장한다고 한다.

구글링해서 찾은 이야기라 근거는 모르겠지만, 기본 모드보다 잘 된다는 게 체감이 되는 수준이었으니 바꿔서 작업해보면 좋을 것 같다.

 

728x90