오늘은 ComfyUI에서 몇개의 커스텀 노드를 활용해 이미지 편집을 직접 진행하는 방법에 대해 살펴보도록 하겠습니다. ComfyUI에서는 이미지 편집을 위해 외부 편집 프로그램을 사용하지 않고, UI위에서 바로 편집이 가능하며, 이 덕분에 복잡한 워크플로우를 자동화하여 놀라운 결과물을 얻어낼 수 있습니다.
기본 이미지 편집
먼저 기본적인 이미지 편집을 위해 설치가 필요한 필수 커스텀노드와, 이미지 크기 및 병합 방법을 살펴봅니다.
필수 커스텀노드
먼저 본문에서 다루는 기초편집 기술인 이미지 크기 변경 및 이미지 오버레이를 모두 사용하기 위해서는 아래의 커스텀 노드 설치가 필요합니다.
모두 ComfyUI Manager에서 검색 및 설치가 가능한 노드들이므로, 메니져를 통해 설치하시거나, 필요하신 경우 위 링크 주소로 깃클론 하여 설치하시기 바랍니다. 커스텀 노드 설치 방법에 대해 익숙하지 않은 분들은 아래 글을 참고하시기 바랍니다.
이미지 크기 변경
이미지 크기를 변경하기 위해서는 ComfyUI Essentials에서 Image Resize 노드를 생성해 사용하면 간단히 해결할 수 있습니다.
기본적으로 ComfyUI Essentials 노드에서 사용자가 width, height 위젯에 직접 변경할 가로, 세로 해상도를 입력하면, 해당 해상도로 출력 이미지가 생성됩니다. 리사이즈 방식으로는 총 네가지 방식이 있으며, 원본 이미지와 동일한 비율을 유지하려면 keep proportion을 선택합니다. 기본값인 stretch를 선택하면, 원본 이미지 비율을 무시하고, 사용자가 입력한 해상도에 맞춰 가로, 또는 세로를 늘려서 이미지 비율이 망가집니다.
이미지 오버레이
이미지 1장의 크기를 바꾸는 기능은 위의 Essentials 노드로 충분합니다. 이제 이렇게 크기를 조정한 이미지들을 병합하기 위해 아래와 같이 Efficiency nodes의 Image Overlay 노드를 활용합니다.
Image Overlay 노드에서는 크게, 이미지 2개를 합하는 기능을 기본으로, 이미지의 크기, 위치, 투명도, 각도(회전) 등을 변경할 수 있습니다. 이미지의 크기는 앞서 이미지 리사이즈 노드로 각각 변경하여 입력하는 경우 크게 필요하지 않은 부분입니다. 따라서 Image Overlay 노드 안에서 이미지의 크기를 변경하는 역할을 하는 가장 첫 위젯인 overlay_resize는 그대로 None으로 두면 됩니다. None 상태에서는 그 아래 resize method, resize factor 및 width, height 모두 적용되지 않습니다.
오버레이를 진행하면서 x_offset, y_offset 값을 설정하면, 이미지의 위치를 바꿀 수 있습니다. 마지막으로 opacity 값을 조정하면 이미지의 투명도를 바꿀 수 있는데요, 투명도를 바꾸기 위해서는 오버레이(위에 올라가는) 이미지를 마스크 입력노드로 함께 전달해줘야 합니다.
이미지 편집 예시
간단한 2가지 기술이지만 이를 잘 활용하면 ComfyUI 내에서 다양한 작업이 가능합니다. 예를 들어, 인물과 배경을 합성하고, 이를 이미지 투 이미지로 재생산하거나, 제품 사진을 배경과 합성하여 멋진 광고 포스터로 바꾸는 등의 일이 가능해집니다. ComfyUI 내에서는 단순 이미지 합성을 넘어, 합성된 이미지를 기준으로 스테이블 디퓨전을 적극 활용한 이미지 재생산 및 보정 등이 가능하므로 그 활용이 무궁무진합니다.
다양한 활용 예는 각각의 활용 방식에 따른 포스팅을 할 때 다시 언급하는 것으로 하고, 여기서는 가장 간단한 활용 예로, 위와 같이 로고를 새기는 것에 대해 살펴봅니다.