AI 이미지/Stable Diffusion

AI 이미지 수정기 - Clipdrop

하늘이푸른오늘 2023. 7. 27. 11:11

얼마전 SDXL 0.9를 테스트할 수 있는 사이트인 Clipdrop을 소개해 시켜 드렸습니다(소개 글). Clipdrop은 스테이블 디퓨전을 개발한 Stability AI에서 개발한, 공식 테스트 사이트라고 할 수 있습니다. 

이 사이트에는 SDXL 0.9를 테스트할 수 있는 것 이외에 아래와 같이 다양한 기능이 들어 있습니다. 한마디로 인공지능으로 이미지를 편집할 수 있는 여러가지 도구가 모두 모여있다고 보시면 됩니다.

Clipdrop 사이트에 있는 여러가지 도구
Clipdrop 사이트에 있는 여러가지 도구

맨 좌측위가 SDXL 0.9를 테스트할 수 있는 사이트이고, 그 다음부터 이미지 바깥쪽 채우기(Uncrop), 비슷한 이미지 생성(Reimagine), 스케치에서 생성하기(Stable Doodle), 물체 지우기(Cleanup), 배경 지우기(Remove Background), 조명 바꾸기(Relight), 확대도구(Upscaler), 배경 바꾸기(Replace Background), 문자 지우기(Text Remover) 등입니다.

아래는 이러한 기능을 요약한 것입니다. 몇가지는 유용하게 사용할 수 있을 것 같네요. 

기능 대락적 평가 기능 요약
SDXL 0.9 SDXL 0.9 테스트. 이미지 생성
이미지 바깥 채우기(UpCrop) 이미지 바깥쪽을 비슷한 이미지로 넣어 확장
비슷한 이미지 생성(Reimagine XL) 입력한 이미지와 비슷한 분위기의 이미지 생성
스케치에서 생성(Stable Doodle) 프롬프트와 대략적인 스케치로 이미지 생성
물체 지우기(CleanUp) 선택한 영역에 들어 있는 물체를 티안나게 지우기
배경 지우기(Remove Backgroud) 주 피사체를 빼고 나머지는 투명하게 처리
조명 바꾸기(Relight) 조명을 바꿔치기 가능
확대 도구(Image Upscaler) 이미지 확대 도구. 디테일을 살려냄
배경 바꾸기(Replace Background) -- 배경을 지운후 프롬프트로 지정한 배경으로 대체
문자 지우기(Text Remover) 문자를 인식하여 자동 삭제

물론 이러한 기능들은 Stable Diffusion에도 일부 들어있고, 다른 인공지능 이미지 사이트에서 제공하는 것들도 있고, 스마트폰 앱으로 제공되는 것들도 있어서 그리 놀라울 것은 없습니다. 한달에 1200원 으로 Pro  계정에 가입하면 무제한 사용할 수 있다는 점 빼고요.

아래에서는 각각의 도구에 어떠한 기능이 있는지 사용법은 어떤지 간략하게 소개하겠습니다.

1. Stable Diffusion XL

계속 말씀드린 것처럼 SDXL 0.9 버전을 시험할 수 있는 사이트입니다. 사용법은 이 글을 읽어보시면 됩니다. 이미지 품질은 기본적으로 Stable Diffusion보다 훨씬 좋습니다. Stable Diffusion 1.5에서 자주 발생하는 신체구조 이상(머리가 두개라든지 얼굴이 일그러진다던지, 발이 여러개 그려진다던지 등)이 거의 발생하지 않고, 구도도 좋으며 무엇보다 프롬프트를 훨씬 더 잘 표현해줍니다. 아쉽게도 프롬프트를 입력하는 것과 스타일을 지정하는 것 외에는 설정을 바꿀 방법은 없습니다만, 그래도 LoRAControlNet 등을 사용할 필요가 없을 정도로 훌륭한 결과물을 생성해 줍니다.

아래는 대문에 있는 예제중 하나를 시행시켜본 결과입니다. 프롬프트는 "Miniature house with plants in the potted area, hyper realism, dramatic ambient lighting, high detail"이고 스타일은 "Cinematic"입니다.  

SDXL 0.9 - Miniature house with plants
SDXL 0.9 - Miniature house with plants

2. 이미지 바깥쪽 채우기(Uncrop)

Uncrop은 자르기(Crop)과는 반대로 아무것도 없는 이미지 바깥쪽을 인공지능이 채워주는 기능입니다. 물론 현실은 아니고 그럴 듯한 것들로 채워주죠. 

예를 들어, 아래는 2020년 서울시 건축상을 받은 통의동 브릭웰(BRICKWELL)(서울시 종로구 자하문로6길 18-8)사진입니다. 

통의동 브릭웰(BRICKWELL)
통의동 브릭웰(BRICKWELL)

이 기능을 테스트해보기 위해 아래와 같이 일부만 잘라냈습니다. 

통의동 브릭웰(BRICKWELL) 사진중 일부
통의동 브릭웰(BRICKWELL) 사진중 일부

이제 이 이미지를 업로드한 뒤, 상하좌우에 있는 파란색 굵은 핸들 혹은 이미지에 있는 까만색 작은 점 등을 이용해 위치를 조정한 뒤 마지막으로 Next  버튼을 클릭해주면 됩니다. 

이미지 Uncrop 설정
이미지 Uncrop 설정

아래는 결과입니다. 원 사진과 비교할 수 있도록 아래위로 배치했습니다. 총 8장을 생성했는데, 그중에서 그나마 제일 낫다 싶은 것을 골랐습니다. 

Uncrop전
Uncrop전
Uncrop 후
Uncrop전
Uncrop 후
Uncrop전
Uncrop 후
Uncrop 후

위에서 보는 것처럼 전체적으로 비슷한 분위기로 채워진 것 같기는 한데, Uncrop으로 추가된 부분은 흐릿합니다. 이게 제가 잘못 설정했거나, 해상도가 낮은 사진을 사용했기 때문인지는 잘 모르겠으나, 이 도구는 그다지 쓸만하지 못한 것 같네요.

3. 비슷한 이미지 생성(Reimagine)

여기는 아무 사진이나 올리면, 그와 분위기가 비슷한 사진을 임의로 생성해주는 기능입니다. 예를 들어 아래와 같은 사진을 올리면...

북한산 삼각산
북한산 삼각산

아래와 같은 결과들을 만들어줍니다.

그런데 인물 사진으로 테스트하니 원본보다 못생긴 버전으로 나오네요. 

아마도 이 기능은 Img2Img에 이미지를 올린 뒤, [Interrogate CLIP] 버튼을 눌러 프롬프트를 만든 뒤...

이 프롬프트로 txt2img를 시행하는 것과 비슷하지 않을까... 하는 생각이 드네요. 이미지가 비슷하다는 게 아니라 내부 프로세스가 비슷할 것 같다는 뜻입니다. 아래는 Stable Diffusion 1.5 기반인 Realistic Vision v2.0을 사용해 생성한 결과입니다. 잘 모르지만 Reimagine에서 사용하는 모델을 사용하면 비슷하지 않을까... 싶습니다.

4. 스케치에서 생성하기(Stable Doodle)

대충 구도를 스케치로 그리고 원하는 내용을 프롬프트로 지정하면 이미지를 생성해주는 기능입니다. 저는 아래와 같이 스케치를 하고 프롬프트는 ChatGPT를 사용해서 "A young woman enjoying the scenery from an observation deck, surrounded by trees and a distant mountain landscape"로 지정했습니다.

Stable Doodle
Stable Doodle

아래는 결과입니다. 위는 Cinematic 스타일, 아래는 Anime 스타일로 지정했습니다. 좋네요. 마음에 듭니다.

그런데, 이것은 Stable Diffusion img2img에 있는 스케치 기능과 비슷한 것 같습니다. 아래는 가능한 한 동일한 조건에 맞춰 sketch 기능을 적용해본 것입니다. 이렇게 노출이 오버된 사진만 나온 이유는 아마도 제가 올린 이미지가 흰 바탕에 선이 몇개 있는 정도라서 그런 게 아닐까... 생각해봤습니다. 

5. 물체 지우기(Cleanup)

사진에서 관계없는 물체를 감쪽같이 지워주는 기능입니다. 포토샵에서 일부분을 지울 때 Context-Aware 채우기를 선택하는 것과 비슷한 기능입니다.

이미지를 불러온 후, 아래와 같이 원하지 않는 부분을 마스크 씌우고 클린 버튼을 눌러주면 됩니다. 아주 간단하죠.

Clipdrop의 CleanUp 마스크
Clipdrop의 CleanUp 마스크

아래는 결과입니다. 왼쪽이 원본이니 비교해보시면 됩니다. 클릭해서 확대해보시면 아시겠지만, 상당히 깔끔하게 편집됩니다. 포토샵 등의 전문 이미지 편집 도구를 사용하지 않고도 쉽게 편집할 수 있어 편할 것 같습니다.

6. 배경 지우기(Remove Background)

말 그대로 주 피사체를 제외한 나머지 부분을 모두 삭제하고, 배경을 투명으로 만드는 기능입니다. 포토샵을 사용하시는 분들이라면 Lasso 도구를 사용해서 피사체를 선택한 뒤 나머지를 지워야 할텐데, 이걸 자동화시켜줍니다. magnetic lasso tool을 사용하는 것보다는 훨씬 간단합니다.

예를 들면 아래의 그림을 넣어주면...

photo-of-young-beautiful-Caucasian-woman-holding-a-sign-saying-_SDXL_
photo-of-young-beautiful-Caucasian-woman-holding-a-sign-saying-_SDXL_

아래와 같이 처리해 줍니다. 왼쪽에 있는 동그란 핸들을 좌우로 끌고 다니면 지워진 배경을 확인할 수 있습니다.

SD - clipdrop 배경 지우기
SD - clipdrop 배경 지우기

아래는 결과입니다. 그냥 흰색으로 보이지만, 이 블로그의 배경색이 달랐다면 이 그림의 배경이 투명하다는 걸 쉽게 알아볼 수 있었을텐데 아쉽습니다. 

SD - clipdrop 배경 지우기 결과
SD - clipdrop 배경 지우기 결과

대체적으로 주 피사체를 골라내는 수준은 뛰어납니다. 위의 예제에서는 오른쪽으로 보이는 귀고리와 사람 사이를 지우지 못한 것 빼고는 완벽하네요.

7. 조명 바꾸기(Relight)

이미지에서 조명을 인식해서 다른 위치에 조명이 주어지는 상황에 맞춰 이미지를 변경시키는 기능입니다. 방금 위에서 사용했던 이미지를 사용해 테스트 해보겠습니다. 이미지를 올리면 잠시후에 아래 왼쪽 위와 같이 세개의 조명이 나타납니다.

오른쪽 위는 초록색 조명을 좀더 밝게 했을 때(아래의 슬라이더를 보세요), 아래 왼쪽은 빨간색 고명을 밝게 했을 때, 아래 오른쪽은 초록색과 빨간색 조명을 0으로 만든 후, 파란색 조명을 흰색 조명으로 바꾸고 위치를 옮겨준 경우입니다.

제가 조정을 하니 이미지 품질이 더 나빠졌지만, 그것은 제가 예술적인 감각이 없기 때문이고, 이 기능 자체는 아주 쓸만한 것 같습니다. 조명을 드래그해서 여기저기로 옮기면 그림자가 실시간으로 바뀌는 것까지 확인할 수 있어서 재미있고, 이정도면 전문가들도 잘 사용할 수 있을 것 같네요.

8. 확대도구(Upscaler)

잘 아시겠지만 Upscaler는 단순히 픽셀크기를 키워 확대하는 게 아니라, 확대한 뒤 모자라는 디테일을 채워주는 것을 말합니다. 이 기능은 인공지능 확대도구(Upscaler)에서 설명한 것처럼, 이미 다양한 확대기가 존재하며 널리 사용되고 있는데, 이것을 별로의 기능으로 구현한 것 같습니다. 

제가 위의 글을 작성할 때 사용했던 이미지를 사용해 이 기능을 테스트해보겠습니다. 아래가 원본(512x512)입니다.

SD - futuristic city of evening sunset
SD - futuristic city of evening sunset

아래와 같이 IMAGE UPSCALER 화면에서 이미지를 가져오고 확대 배율을 지정하고 [Upscale] 버튼을 눌러주면...

Upscaler 설정
Upscaler 설정

아래와 같은 화면이 나타납니다. 왼쪽은 Upscale 전, 오른쪽은 후로서, 가운데 있는 핸들을 좌우로 이동시켜가며 비굫할 수 있습니다. 

Upscaler 적용 결과
Upscaler 적용 결과

아래는 원본과 4배 확대한 결과를 비교해본 것입니다. 클릭하면 비교해보실 수 있습니다.

아래는 일부 영역만 확대해서 비교해본 결과입니다. 

확대 도구의 성능은 쓸만하네요. 구지 이런 저런 설정해서 사용하는 것보다, 그냥 여기를 이용하는 게 훨씬 편할 듯 싶습니다.

9. 배경 바꾸기(Replace Backgroud)

6. 배경 지우기에서는 배경을 투명하게 지웠다면, 여기에서는 다른 그림으로 채워주기까지 하는 기능입니다. 어떤 그림으로 채울지는 프롬프트로 지정하면 됩니다. 이를테면 찌개 그림을 가져오면 아래와 같이 배경이 지워지고 본 피사체 이미지 크기를 조정할 수 있는 설정화면이 나옵니다.

적당히 프롬프트를 입력하고(여기서는 "A farmer harvesting various vegetables from the fields") [Generate] 버튼을 누르면 4장의 이미지가 생성되는데, 필요한 것을 다운로드 받으면 됩니다. 

Clipdrop - 찌개와 들판 배경
Clipdrop - 찌개와 들판 배경

이 기능을 이용하면 아래와 같이 여행사진을 원하는 아무 곳에서나 찍은 걸로 바꿔치기도 가능합니다. 물론 여기에서도 본 피사체의 크기와 위치는 변경가능하고요.

여러가지로 쓸모가 많은 기능 같습니다.

그런데... 프롬프트가 잘 먹지를 않습니다. 위쪽 찌개의 예를 봐도 농부의 모습은 없습니다. 아래 그랜드 캐년의 경우에도 4개중 2개는 배경이 하늘만 보이는 등 이상하게 생성되었습니다. 아래는 진주 귀고리를 한 소녀의 그림에서 배경을 16세기 네덜란드 부엌으로 생성해달라고 했는데(프롬프트: "16th-century Dutch kitchen. The rustic space is filled with the aroma of freshly baked bread, simmering soups, and savory stews. An array of copper pots and pans hang from the walls, while the glow of candlelight illuminates the scene, creating a warm and inviting atmosphere.", ChatGPT 로 생성) 아래처럼 현재식 부엌이 생성되었습니다.

진주귀고리 소녀와 현대식 주방
진주귀고리 소녀와 현대식 주방

그런데... SDXL 0.9에서 동일한 프롬프트를 입력하면 아래와 같이 그 시절의 분위기가 반영된 부엌 풍경이 나옵니다. 즉, 배경 바꾸기 기능은 SDXL 0.9와 통합이 안되었다고 봐야겠네요. 많이 아쉽습니다.

10. 문자 지우기(Text Remover)

이미지에 들어있는 문자를 자동으로 인식해서 지워주는 기능입니다. 예를 들면 아래와 같은 그림을 불러들이면...

전포카페거리
전포카페거리

자동처리를 해서 아래 왼쪽과 같이 이미지를 생성해줍니다. 이처럼 완전하지 않을 때에는 우측과 같이 Edit를 누르고 [Clean imperfections]를 눌러, 위의 5번 물체 지우기 기능으로 마저 편집해 주면 됩니다. 

전포카페거리 - Clipdrop 문자 지우기
전포카페거리 - Clipdrop 문자 지우기

아래가 최종 결과물입니다.

전포카페거리 -  clipdrop 문자 지우기 후 Cleanup
전포카페거리 -  clipdrop 문자 지우기 후 Cleanup

그런데 완전하지는 않습니다. 라스베이거스 입구에 있는 유명한 입간판을 던져줬더니 저따구로 만들어버렸네요.

아무튼... 가능하기는 합니다. 

===

이상입니다. 여러가지 기능 중에 꽤 쓸만한 것도 있는 것 같네요.

민, 푸른하늘