안녕하세요,
이미지 생성 기술은 최근 몇 년간 눈부신 발전을 이루며 많은 관심을 받고 있습니다. 특히 특정 인물의 정체성을 반영하는 생성 모델의 필요성이 증가하고 있는데, PuLID는 이러한 요구를 충족시키는 혁신적인 기술로 주목받고 있습니다. PuLID는 이미지 생성 모델에서 특정 인물의 정체성을 보다 정확하게 반영하여, 결과물을 더욱 사실적으로 만들어주는 강력한 도구입니다.
이번 글에서는 'ComfyUI-PuLID-Flux Enhanced' 프로젝트에 대해 소개하고자 합니다. 이 프로젝트는 PuLID를 ComfyUI와 FLUX 모델에 통합해 기능을 확장한 것으로, 사용자가 더욱 풍부하고 세밀한 이미지를 생성할 수 있도록 도와줍니다. 그럼 PuLID-Flux에 대해 소개하겠습니다.
PuLID-Flux
PuLID는 이미지 생성 모델에서 특정 인물의 정체성을 보다 정확하게 반영하는 기술입니다. 이 기술은 원하는 인물의 특징을 이미지 생성 과정에 효과적으로 반영하여 결과물을 보다 사실적으로 만들어줍니다. 쉽게 말해, PuLID는 이미지 생성 AI가 특정 인물의 고유한 특징들을 학습하여 새로운 이미지에서도 그 특징이 자연스럽게 표현되도록 돕는 것입니다. 예를 들어, 특정 인물의 전형적인 얼굴형, 표정, 눈매와 같은 특징들을 파악하여, 새로운 이미지에서도 그 인물이 식별될 수 있도록 생성하는 방식입니다.
이번에 소개할 PuLID-Flux는 ComfyUI와 FLUX 모델에 통합해 기능을 확장한 프로젝트입니다. 원래 'balazik/ComfyUI-PuLID-Flux' 프로젝트를 기반으로 만들어졌으며, 여러 새로운 기능을 추가해 만들어졌습니다.
- ComfyUI-PuLID-Flux Enhanced 깃허브 : https://github.com/sipie800/ComfyUI-PuLID-Flux-Enhanced
주요 기능
1) 다중 이미지 입력을 위한 융합 방법
여러 이미지를 입력할 때 평균(mean), 연결(concat), 최대값(max) 등 다양한 융합 방식을 지원합니다. 이를 통해 여러 이미지의 특징을 유연하게 결합할 수 있어 더욱 풍부한 결과물을 생성할 수 있습니다.
2) 실험적인 융합 방법
기존의 융합 방식 외에도 조건의 노름(norm)을 사용하여 가중치를 부여하거나, 이미지 간 최대 노름 토큰을 사용하는 등 새로운 방법들을 도입했습니다. 이러한 방법들은 이미지 생성의 정확도와 다양성을 더욱 높여줍니다.
3) 빠른 임베딩 자체 학습
PuLID-Flux Enhanced는 효율적인 임베딩 학습을 위해 새로운 방식을 채택했습니다. 이를 통해 인물의 정체성을 반영한 학습 과정이 더 빨라졌으며, 맞춤형 이미지 생성이 더욱 효과적이게 되었습니다.
4) 그레이스케일 및 RGB 이미지 전환
공식적으로는 그레이스케일 이미지를 사용하지만, 경우에 따라 RGB 이미지를 사용해 세부 손실을 방지하는 기능도 제공합니다. 이는 이미지의 품질을 유지하면서도 더 정밀한 표현을 가능하게 합니다.
5) Prior Image 기능
2024년 10월 28일 업데이트로 추가된 기능으로, 특정 ID 이미지를 주 이미지(prior image)로 설정하여 다른 ID 이미지들과 최적화된 임베딩을 생성할 수 있습니다. 이 기능을 통해 사용자는 원하는 인물의 특징을 더욱 명확하게 반영할 수 있습니다.
사전 준비 사항
이 포스팅은 ComfyUI에서 Flux 모델을 활용하는 방법에 대한 내용입니다. 따라서 본문을 읽기 전에 ComfyUI와 ComfyUI-Manager, Flux를 미리 설치해 주시기 바랍니다.
- ComfyUI 설치 방법 : [Macus' Story] - [이미지 생성 AI] [로컬 환경] ComfyUI 이용하여 이미지 생성하기 1탄
- ComfyUI-Manager 설치 방법 : [Marcus' Story] - [이미지 생성 AI] [로컬 환경] ComfyUI 이용하여 이미지 생성하기 2탄 : ComfyUI-Manager
- Flux 설치 방법 : [Macus' Stroy] - [이미지 생성 AI] [로컬 환경] ComfyUI 이용하여 이미지 생성하기 4탄 : FLUX.1 AI 활용하기
목차
1. 실행 환경
2. ComfyUI 사용 노드
3. 모델 다운로드 및 위치 설정
4. PuLID-Flux 노드 구성
5. 실행
1. 실행 환경
- 운영체제 : Windows 11
- ComfyUI : 0.2.7
- Python : 3.10.0
- torch : 2.3.1 + cu121
- xformers : 0.0.27
- GPU : NVIDIA GeForce RTX 4060 Ti
2. ComfyUI 사용 노드
아래는 이번 포스팅에서 사용된 ComfyUI 커스텀 노드입니다. 모델 실행에 필수적인 노드를 "필수"로 표기하였으며, 사용에 필수적이지 않은 노드는 "선택사항"으로 표기하였습니다.
- ComfyUI-PuLID-Flux-Enhanced : ComfyUI에서 특정 인물의 특징을 반영하여 이미지를 만드는 커스텀 노드로, 사용자 맞춤형 인물 이미지를 효율적으로 생성할 수 있습니다. (필수)
- Use Everywhere (UE Nodes) : 이미지 생성 툴에서 다양한 기능을 확장해주는 플러그인입니다. 이번에는 "Anything Everywhere"를 사용했습니다. (선택사항)
- rgthree's ComfyUI Nodes : 이미지 생성과 편집 작업을 유연하게 수행할 수 있도록 지원하는 노드 세트로, 이미지 비교와 LoRA 모델 로드 등에 사용되었습니다. (선택사항)
3. 모델 다운로드 및 위치 설정
ComfyUI-PuLID-Flux-Enhanced 커스텀 노드에서 사용할 모델을 다운받습니다.
- PuLID 모델 허깅페이스 : https://huggingface.co/guozinan/PuLID/tree/main
위 이미지에 표시된 두 모델 중 하나만 다운로드하시면 됩니다. 최신 버전은 v0.9.1이므로 이 버전을 다운로드하여 사용해 보겠습니다. 모델 파일 다운로드가 완료되면, 해당 파일을 아래 경로의 pulid 폴더로 이동시켜 주세요. 만약 pulid 폴더가 없다면 새로 생성해 주시면 됩니다.
(ComfyUI 폴더) → (models 폴더) → (pulid 폴더)
그 외 필요한 모델들은 ComfyUI 실행 시 자동으로 다운로드됩니다. 혹시나 직접 다른 모델들을 다운받고 싶으신 분들은 아래 깃허브에서 확인하실 수 있습니다.
- balazik/ComfyUI-PuLID-Flux 깃허브 : https://github.com/balazik/ComfyUI-PuLID-Flux?tab=readme-ov-file
Flux 커스텀 모델
이 모델은 더욱 사실적인 이미지를 생성해주는 Flux 커스텀 모델로, 해당 모델을 사용하면 더욱 사실적인 이미지를 생성하실 수 있습니다. 이 모델은 선택사항으로 이미 가지고 계신 Flux 모델이 있다면 그 모델을 사용하셔도 무방합니다.
- Shakker-Labs 허깅페이스 : https://huggingface.co/Shakker-Labs/AWPortrait-FL
위 이미지에 표시한 모델은 이미지를 생성해주는 unet 모델과, 이미지 생성에 도움을 주는 Lora 모델입니다. 모델 파일을 다운로드가 완료되셨으면, 해당 파일을 아래 경로에 있는 unet 폴더와 loras 폴더로 이동시켜 줍니다.
(ComfyUI 폴더) → (models 폴더) → (unet 폴더) / (loras 폴더)
4. PuLID-Flux 노드 구성
PuLID-Flux 노드 구성은 아래와 같이 구성했습니다.
'Diffusion Model'과 'VAE' 모델을 로드하여 이미지 생성의 기본을 구성합니다. 'CLIP Text Encode' 노드는 텍스트 프롬프트를 인코딩해 모델이 생성할 이미지의 조건을 설정합니다. 이후, 'FluxGuidance'와 'Anything Everywhere' 같은 보정 노드가 추가적인 세부 조정을 통해 이미지의 질과 스타일을 보강합니다.
'Apply PuLID Flux'는 텍스트와 이미지를 융합하여 특정 인물의 특징을 반영한 사용자 맞춤형 이미지를 생성하며, 얼굴 분석과 여러 세부 인자를 통해 더욱 정교한 결과를 만듭니다. 마지막으로 'KSampler'와 'VAE Decode'를 통해 이미지를 샘플링하고 디코딩하여 최종 결과물을 저장합니다. 이 과정 전반에서 PuLID Flux는 인물의 특징 반영과 이미지 융합을 주도하는 핵심 역할을 합니다.
PuLID-Flux 노드 구성 파일
※ 주의사항
만약 처음 실행할때 Load InsightFacd (PuLID Flux) 노드에서 오류가 발생한다면, 아래 이미지와 같이 antelopev2 폴더 하나를 삭제하시면 됩니다.
5. 실행
이와 같은 과정에서 PuLID-Flux는 인물의 정체성을 반영한 이미지 생성을 더욱 효과적으로 만들 수 있습니다. 아래의 이미지는 PuLID-Flux를 사용하여 생성한 이미지 입니다.
- 사용 프롬프트 : a woman holding sign with glowing green text "Marcus"
ComfyUI-PuLID-Flux Enhanced는 특정 인물의 정체성을 반영한 고품질 이미지 생성을 가능하게 하는 강력한 도구입니다. PuLID와 FLUX 모델을 ComfyUI에 통합하여 사용자는 다양한 융합 방법과 새로운 기술을 통해 창의적이고 사실적인 이미지를 만들어낼 수 있습니다. 특히, 다중 이미지 융합과 빠른 임베딩 학습, 실험적인 융합 방식은 기존의 이미지 생성 기술을 한 단계 더 발전시킵니다. 이 글을 통해 PuLID-Flux의 잠재력을 이해하고, 이를 바탕으로 자신만의 독창적인 프로젝트를 만들어 보시길 바랍니다.
감사합니다. 😊