안녕하세요,
AI를 사용해 이미지를 생성하는 것은 이제 흔한 일이 되었습니다. 생성된 이미지를 AI로 편집할 수도 있지만, 이를 위해서는 여러 단계를 거쳐야 했기 때문에 다소 어렵게 느껴지기도 했습니다. 그런데 하나의 AI만으로 이미지 생성과 편집을 모두 할 수 있다면 어떨까요? 이번 포스팅에서 소개드릴 내용은 바로 OmniGen AI 입니다. OmniGen은 텍스트 입력만으로 이미지 생성뿐만 아니라 편집까지 손쉽게 수행할 수 있는 생성형 AI 입니다. 그럼 이제 OmniGen에 대해 자세히 알아보겠습니다.
OmniGen이란
OmniGen은 VAE(Variational Autoencoder)와 변환기(Transformer) 모델로 구성된 간소화된 통합 이미지 생성 모델입니다. 기존의 이미지 생성 모델들이 ControlNet이나 IP-Adapter 같은 추가 모듈을 사용해야 하는 반면, OmniGen은 이러한 추가적인 네트워크 없이 폭넓은 이미지 생성 기능을 제공합니다. 이러한 간단한 구조 덕분에 사용자는 복잡한 전처리나 추가 플러그인 없이도 효율적으로 다양한 이미지를 생성할 수 있습니다.
OmniGen은 단순하면서도 강력한 기능을 통해 AI 이미징 작업의 효율성을 크게 높이고, 다양한 산업에서의 활용 가능성을 제시합니다. 특히, OmniGen의 다중 모드 입력 지원은 사용자로 하여금 텍스트와 이미지 모두를 기반으로 창의적인 결과물을 만들어낼 수 있도록 합니다.
- OmniGen 깃허브 : https://github.com/VectorSpaceLab/OmniGen
주요 기능
- Text to Image 생성
- 사용자가 입력한 텍스트 설명을 바탕으로 원하는 이미지를 생성합니다. 간단한 설명을 통해 다양한 스타일과 주제를 반영한 이미지 결과물을 얻을 수 있습니다.
- Image to Image 생성 (이미지 편집)
- 기존 이미지를 수정하고 개선할 수 있는 기능입니다. 특정 객체를 추가하거나 제거하고, 배경을 변경하는 등 이미지에 원하는 대로 수정을 가할 수 있습니다.
- 주제 기반 이미지 생성
- 특정 주제를 기반으로 이미지 생성이 가능합니다. 특정 인물이나 사물의 특성을 바탕으로 이미지들을 통일된 스타일로 생성하여 일관된 결과를 제공합니다.
- 시각적 조건 기반 이미지 생성
- 참조 이미지를 입력하여 그 이미지의 특정 특징이나 스타일을 반영한 새로운 이미지를 생성합니다. 예를 들어, 참조 이미지의 색상이나 분위기를 새로운 이미지에 반영할 수 있습니다.
- 정체성 보존 생성
- 여러 이미지 생성 작업에서도 일관된 인물의 특징이나 캐릭터의 개성을 유지하며 이미지를 생성합니다. 이는 캐릭터 디자인이나 개인화된 콘텐츠를 제작하는 데 매우 유용합니다.
- 자동 객체 및 특징 인식
- 입력된 이미지에서 객체, 포즈, 깊이와 같은 주요 특징들을 자동으로 인식하고 이를 바탕으로 새로운 이미지를 생성하거나 기존 이미지를 수정할 수 있습니다. 추가적인 전처리 없이 특징을 인식해 작업이 가능합니다.
이미지 생성 속도
OmniGen 모델을 A800과 RTX 3090 GPU를 기준으로 테스트한 결과는 다음과 같습니다.
- 입력 이미지 크기를 1024x1024로 설정한 경우, A800 GPU에서는 텍스트만 입력 시 약 31초가 소요되며, RTX 3090 GPU에서는 1분 17초가 걸립니다. 이 경우 텍스트 + 두 이미지 생성 시 1분 20초~3분 23초 정도가 걸릴 수 있습니다.
- 입력 이미지 크기를 512x512로 줄일 경우, A800 GPU에서 9초 정도로 처리 시간이 크게 단축되며, RTX 3090 GPU에서도 19초 정도로 빨라집니다. 또한 텍스트 + 두 이미지 생성 시에는 1분 이하로 처리가 가능합니다.
라이선스
OmniGen의 MIT 라이선스는 이 소프트웨어를 누구나 자유롭게 사용할 수 있도록 허용하고 있습니다. 사용자는 소프트웨어를 복사하거나 수정하고, 병합하거나 배포할 수 있으며, 서브라이선스를 부여하거나 상업적으로 판매하는 것도 가능합니다. 이러한 모든 작업은 무료로 제공됩니다. 단, 소프트웨어를 사용할 때는 저작권 표시와 이 라이선스 내용을 모든 복사본에 반드시 포함시켜야 합니다. 또한, 이 소프트웨어는 "있는 그대로" 제공되며, 소프트웨어에 대한 어떠한 형태의 보증도 없습니다. 즉, 상업성, 특정 목적 적합성 등에 대해 명시적이거나 묵시적인 보증을 하지 않으며, 소프트웨어 사용으로 인해 발생하는 문제나 손해에 대해 저작자나 저작권자는 어떠한 책임도 지지 않습니다. 쉽게 말해, 사용자는 OmniGen을 자유롭게 활용할 수 있지만, 그로 인한 위험이나 문제는 전적으로 사용자가 감수해야 합니다.
사전준비사항
이 포스팅은 ComfyUI에서 OmniGen 모델을 활용하는 방법에 대한 내용입니다. 따라서 본문을 읽기 전에 ComfyUI와 ComfyUI-Manager를 미리 설치해 주시기 바랍니다.
- ComfyUI 설치 방법 : [Macus' Story] - [이미지 생성 AI] [로컬 환경] ComfyUI 이용하여 이미지 생성하기 1탄
- ComfyUI-Manager 설치 방법 : [Marcus' Story] - [이미지 생성 AI] [로컬 환경] ComfyUI 이용하여 이미지 생성하기 2탄 : ComfyUI-Manager
목차
1. 실행 환경
2. ComfyUI 사용 노드
3. 모델 다운로드 및 위치 설정
4. 노드 구성
5. 실행 (이미지 생성)
- 운영체제 : Windows 11
- ComfyUI : 0.2.7
- ComfyUI-Manager : V2.51.9
- Python : 3.10.0
- torch : 2.3.1 + cu121
- GPU : NVIDIA GeForce RTX 4060 Ti
2. ComfyUI 사용 노드
아래는 이번 포스팅에서 사용된 ComfyUI 커스텀 노드입니다. 모델 실행에 필수적인 노드를 "필수"로 표기하였으며, 사용에 필수적이지 않은 노드는 "선택사항"으로 표기하였습니다.
- OmniGen-ComfyUI: ComfyUI에서 OmniGen 모델을 활용할 수 있도록 지원하는 커스텀 노드입니다. 이를 통해 텍스트-투-이미지 생성, 이미지 편집, 세그멘테이션, 포즈 추정 등 다양한 작업을 수행할 수 있습니다. 설치 시, ComfyUI의 models/Omnigen 디렉토리에 OmniGen 모델 파일을 배치하고, Comfy Manager를 통해 해당 노드를 설치하면 됩니다. (필수)
- Use Everywhere (UE Nodes) : 이미지 생성 툴에서 다양한 기능을 확장해주는 플러그인입니다. 이번에는 "Anything Everywhere"를 사용했습니다. (선택사항)
3. 모델 다운로드 및 위치 설정
1) OmniGen 모델 파일 다운로드
아래 OmniGen 허깅페이스에서 모델파일 및 vae폴더를 포함한 모든 파일을 다운로드합니다.
- OmniGen 허깅페이스 : https://huggingface.co/Shitao/OmniGen-v1/tree/main
모델 파일 다운로드가 완료되면 해당 모델 파일을 Omnigen/OmniGen-v1 폴더로 이동시켜줍니다.
(ComfyUI 폴더) → (models 폴더) → (Omnigen 폴더) → (OmniGen-v1 폴더)
4. 노드 구성
노드 구성은 아래와 같이 구성했습니다.
OmniGen을 사용한 이미지 생성 방법에는 여러 가지가 있습니다. 먼저 Load OmniGen Model 노드를 사용해 모델을 로드하고, 사용할 모델에 대한 세부 설정을 지정합니다. 이후, Anything Everywhere 노드에서 이미지 생성에 필요한 스타일이나 추가 설정 요소들을 지정합니다. Empty Latent Image 노드에서는 생성될 이미지의 해상도와 품질에 영향을 미치는 초기 잠재 공간을 설정하며, 여기서는 512x512 크기로 지정되었습니다.
첫 번째 과정은 Text-to-Image 기능을 사용하는 것으로, Text to Image 노드에서 사용자가 입력한 텍스트 설명을 바탕으로 이미지를 생성합니다. 예를 들어, "미소 짓고 책을 들고 있는 젊은 여성"이라는 설명이 입력되면 이를 바탕으로 자연스럽고 현실적인 이미지가 생성됩니다. 생성된 이미지는 Save Image 노드를 통해 로컬에 저장됩니다.
두 번째 과정은 Image to Image 기능을 사용하는 것입니다. 이전에 생성된 이미지를 입력으로 받아 특정 요소를 변경하거나 수정할 수 있습니다. 예를 들어, "파란 컵을 은색 유리잔으로 바꾸기"라는 지시를 통해 기존 이미지의 특정 부분이 AI에 의해 재구성되고 수정됩니다. 최종 이미지는 Save Image 노드를 통해 저장됩니다.
OmniGen 노드 구성 파일
5. 실행 (이미지 생성)
txt2img 기능과 img2img 기능을 사용하여 생성한 이미지 입니다. 각 이미지를 생성할때 사용한 프롬프트는 다음과 같습니다.
- txt2img 생성 프롬프트 : A young woman sits on a sofa, holding a book and facing the camera. She wears delicate silver hoop earrings adorned with tiny, sparkling diamonds that catch the light. She is dressed in a cozy cream sweater. Behind her, there is a table with a cup of water in a sleek, minimalist blue mug. The background is a serene indoor setting, adorned with tasteful art and flowers, creating a cozy and peaceful ambiance.
- img2img 생성 프롬프트 : image_1 Remove the woman's earrings, Replace the mug with a clear glass filled with sparkling iced cola.
일반적으로 이미지를 편집하려면, ControlNet 모델을 다운로드하고 마스킹 처리 등 여러 단계를 거쳐야 했습니다. 하지만 이번 포스팅에서 소개하는 OmniGen 모델은 이러한 복잡한 과정 없이, 오직 텍스트 명령만으로 이미지 편집이 가능합니다. OmniGen은 간편함뿐만 아니라 다양한 기능을 제공합니다. 이번 포스팅에서는 txt2img 기능과 img2img 기능에 대해 간단히 다뤘습니다. 다음에 이어지는 포스팅에서 나머지 기능들을 ComfyUI에서 어떻게 사용할 수 있는지 자세히 알아보겠습니다.
감사합니다. 😊