디지털 이미지 생성 및 수정 기술의 발전은 창작자들에게 무한한 가능성을 제공합니다. 특히 인페인트 기술은 이미지의 작은 결점이나 원하지 않는 요소를 마법처럼 지울 수 있게 해 주어, 디지털 아티스트와 디자이너들 사이에서 인기를 끌고 있습니다. 이 글에서는 인페인트 기술의 기초, 활용 방법 및 효과적인 인페인트 설정에 대해 자세히 설명하고, 성공적인 인페인트 작업을 위한 팁도 공유해드리겠습니다.
1. 인페인트란 무엇인가?
인페인트는 이미지의 일부분을 자연스럽게 복원하거나 수정하는 기술입니다. 이 기술은 원본 이미지에서 원하지 않는 요소를 제거하거나, 손상된 부분을 복구하는 데 사용됩니다. 예를 들어, 사진 속 불필요한 워터마크를 제거하거나, 손상된 고전 예술 작품을 디지털로 복원할 때 효과적입니다.
2. 인페인트 작업의 기본 설정
- 모델 선택: 인페인트 작업에 적합한 모델을 선택하는 것이 중요합니다. 예를 들어, Stable Diffusion 인페인트 모델은 특히 이미지의 세밀한 부분까지 자연스럽게 복원할 수 있습니다.
- 프롬프트 설정: 인페인트를 수행하기 전에, 원하는 이미지 스타일과 세부 사항을 명확하게 설정합니다. 프롬프트는 인페인트 결과의 정확도와 자연스러움을 결정하는 데 중요한 역할을 합니다.
우선, 아래의 프롬프트로 이미지를 하나 생성하겠습니다. 모델은 DreamShaper XL를 사용하고, 다른 설정은 기본 설정을 사용했습니다.
프롬프트:
cinematic film still, close up, photo of redheaded girl near grasses, fictional landscapes, (intense sunlight:1.4), realist detail, brooding mood, ue5, detailed character expressions, light amber and red, amazing quality, wallpaper, analog film grain, jacket
부정적 프롬프트:
(low quality, worst quality:1.4), cgi, text, signature, watermark, extra limbs, cleavage
인페인트 전용 모델 사용하기
인페인트를 위해 학습된 스테이블 디퓨전 모델이 있습니다. 최적의 결과를 얻고 싶다면 이 모델을 사용하는 것이 좋겠죠? 물론 이미지를 생성했던 원래의 모델을 사용해도 괜찮습니다.
인페인트 전용 모델인 stable-diffusion-inpainting은 huggingface에서 다운받을 수 있습니다.
다운로드 받은 파일은 “stable-diffusion-webui/models/Stable-diffusion”에 넣어주면 됩니다.
3. 인페인트 마스크의 생성과 적용
- 마스크 생성: 수정하고 싶은 이미지 부분에 마스크를 적용합니다. 마스크는 인페인트 할 영역을 정의하며, 이 영역만 수정됩니다.
- 프롬프트 적용: 마스크된 영역에 적절한 프롬프트를 적용하여, 원하는 결과를 얻을 수 있습니다. 예를 들어, ‘A sunlit hilltop, cinematic landscape’라는 프롬프트는 자연스러운 풍경 이미지를 생성하는 데 도움을 줍니다.
생성된 그림중에서 수정하고 싶은 이미지가 있다면, 해당 그림 아래의 Send to inpaint 버튼을 누릅니다.
다른 이미지를 수정하고 싶다면, 인페인트 탭을 누르고 캔버스를 클릭해 원하는 이미지를 불러올 수도 있는데, 그러면 아래와 같은 상태가 됩니다. 여기에서 마우스로 드래그하면서 새로 그리고 싶은 곳을 칠해주면 됩니다. 만약 브러시의 크기를 바꾸고 싶다면 오른쪽 상단의 아이콘을 누르면 됩니다.
아래는 간단하게 마스크를 생성한 모습니다. 이외에도 이미지 영역 아래의 다양한 설정을 통해 마스크 내부 혹은 마스크 바깥쪽만 변경시킬 수도 있습니다.
4. 인페인트의 설정 옵션
- 프롬프트: txt2img와 동일하게 인페이트에서 변경하고 싶은 내용을 프롬프트로 작성합니다.
- 얼굴 복원: 사람의 얼굴이 포함된 이미지를 인페인트 할 경우, ‘Settings > Face restoration’ 설정을 활성화하여 얼굴 부분을 더욱 정교하게 복원할 수 있습니다.
- Masked mode: Inpaint masked는 마스크로 칠해둔 부분을 새로 생성하고, Inpaint not masked는 그 반대의 기능을 합니다.
- Mask content: 대부분의 경우 original을 선택합니다. 원래의 이미지(마스크로 가려진 부분)에 있던 색과 형태를 기반으로 사용합니다.
- Inpaint Area: Whole picture는 마스크 생성 영역 이외의 바깥쪽도 새로 그리고, Only masked는 마스크를 생성한 영역만 새로 그립니다. latent noise 또는 latent nothing은 원래 이미지와는 완전히 다른 이미지를 재생성하는데, 마스크 내부의 원본 이미지는 완전히 무시하고 새로운 noise를 넣어 생성합니다.
- Denoising strength: 잡음 제거 강도로 원본 이미지와 비교해 얼마나 많이 변경시킬 것인지를 제어하는 옵션입니다. 0으로 설정하면 마스크로 가려두었던 원본이 그대로 나타나게 되고, 1로 설정하면 원본과는 아무 관련이 없는 내용으로 새로 그리게 됩니다. 이 옵션을 조절하면 latent noise를 굳이 사용하지 않아도 됩니다.
아래는 만족스러운 결과물은 아니지만 인페인트 기능을 사용하여 머리카락의 색상을 검은색으로 바꾼 이미지입니다.
인페인트의 주요 매개 변수들
잡음 제거 강도
잡음 제거 강도는 최종 이미지가 원본 콘텐트를 얼마나 반영할지를 제어합니다. 0으로 설정하면 아무것도 변화하지 않고, 1로 설정하면 관계없는 이미지가 생성됩니다.
CFG 척도
text-to-image와 마찬가지로 CFG(분류 자유도 척도, Classifier Free Guidance scale)는 최종 이미지가 프롬프트를 얼마나 따르느냐를 결정하는 매개변수입니다. 1이면 거의 프롬프트를 무시하고 30이면 프롬프트를 완전히 따릅니다. 대부분 7 정도가 적당합니다.
마스크 콘텐트
마스크된 영역을 어떻게 초기화시킬지를 결정합니다.
- Fill(채우기): 원본 이미지를 흐리게 만듧니다.
- Origianl(원본): 원본 이미지를 그대로 사용합니다.
- Latent noise(잠재 잡음): 마스크 지역을 fill 로 채운 후, 잠재 공간에 무작위 잡음을 채워넣습니다.
- Latent nothing(잠재 없음): 잠재 잡음과 비슷하되, 무작위 잡음은 넣지 않습니다.
인페인트 활용 팁
이 기술은 원본과 일치하는 텍스처, 색상, 그리고 빛의 세부 사항을 사용하여 이미지의 눈에 띄는 부분을 자연스럽게 복원할 수 있어, 사진에서 워터마크를 제거하는 용도로도 활용할 수 있습니다.
예를 들어, 사진에서 워터마크를 제거하려면 먼저 인페인트 마스크를 사용하여 워터마크가 있는 부분을 선택합니다. 이렇게 하면 해당 부분만 수정할 수 있어 이미지의 나머지 부분은 영향을 받지 않는 것이죠. 참고로, 다음과 같은 사항을 준수하면 더 좋은 결과물을 얻을 수 있습니다.
- 한지역을 한번에 수정하세요.
- 마스크 콘텐트를 Original로 두고 잡음제거 강도만 조정하세요.
- 마스크 콘텐트를 바꿔가며 어떤 것이 최적인지 시험해 보세요.
- 설정을 아무리 바꿔봐도 마음에 들지 않으면, 포토샵이나 GIMP등을 사용해 마스크하고 싶은 지역을 지우고 원하는 형태와 색상으로 대층 채운뒤 업로드시켜 인페인트를 적용해 보세요.
마치며
인페인트 기술은 디지털 아트와 디자인의 필수적인 도구로 자리 잡았습니다. 이 기술을 통해 사용자는 이미지를 원하는 대로 수정하고, 더욱 완벽하게 만들 수 있습니다.
제공된 기본 설정과 팁을 활용하여, 여러분도 고품질의 인페인트 작업을 수행할 수 있을 것입니다. 기술의 발전과 함께, 인페인트는 앞으로도 더 많은 창작자들에게 무한한 가능성을 제공할 것입니다.