스테이블 디퓨전에서 어떤 특정한 인물의 얼굴을 넣으려면 LoRA를 학습시키거나 또는 dreambooth 를 사용해 checkpoint모델을 학습 시켜야 합니다.하지만, 새로운 모델을 학습시키는 것은 매우 시간이 걸리는 일입니다. 그런데, 이렇게 학습시킬 필요 없이 어떤 얼굴을 즉시 삽입할 수 있다면 어떨까요?
이 ComfyUI 워크플로는 입력 이미지로부터 어떤 인물의 얼굴을 복사합니다. 마치 맞춤형 LoRA나 체크포인트 모델처럼 사용할 수 있지만, 학습 시킬 필요는 없는 겁니다. 심지어는 매우 빠르고 편리합니다.
참고: 이 글은 IPAdapter Unified Loader FaceID 노드를 사용하도록 갱신한 워크플로입니다.
소프트웨어
이 글에서는 스테이블 디퓨전용 GUI중에서도 빠르면서도 유연하여 사용자 저변을 급속히 확대하고 있는 ComfyUI를 사용합니다. ComfyUI가 처음이시라면, 설치 및 기본 사용방법 및 초보가이드를 확인하시기 바랍니다.
이 글에서는 IP-Adapter 중에서 FaceID Plus v2 모델을 사용합니다. FaceID 모델은 입력 이미지에서 얼굴을 추출하여 임베딩으로 변환한 뒤 IP-Adapter에 공급하고, IP-adapter 는 이미지 생성에 대한 조건부여(conditioning)을 제공하는 방식으로 작동됩니다.
따라하기
1 단계: ComfyUI 워크플로 불러오기
아래의 json 파일이나 이미지를 다운로드받고, 이를 ComfyUI 메뉴중 [Load]를 눌러 선택하거나, 그냥 ComfyUI 화면에 Drag&Drop하면 워크플로를 사용할 수 있습니다.
대부분 그냥 그대로 사용할 수 있지만, 때때로 오류가 발생할 수 있습니다. 그러한 경우, 다음과 같은 작업이 필요할 수 있습니다.
- 처음 사용할 때 - ComfyUI Manager 를 설치해야 합니다.
- ComfyUI를 오랜만에 사용할 때 - ComfyUI를 최신버전으로 업데이트해야 합니다.
- 노드가 없다고 (빨간색) 경고가 뜰 때 - 빠진 커스톰 노드를 가져오기해야 합니다.
- 불러오기 혹은 수행중 에러 발생시 - 커스톰 노드를 업데이트해야 합니다.
2 단계: 모델 다운로드 받기
이 워크플로는 ComfyUI용 IP Adapter 를 사용합니다. 여기에 들어가시면 모든 종류의 IPAdapter를 사용하는 방법이 있는데, 이렇게 설치하셨다면 아래는 무시하시면 됩니다. 아래는 이 워크플로를 돌리기위한 최소 설정입니다.
FaceID 모델을 사용할 경우, 별도로 InsightFace를 설치해야 합니다. 설치하는 방법은 여기를 읽어보시면 됩니다.
그 다음 FaceID Plus V2 모델을 다운로드 받습니다. IP-Adapter 모델은 ComfyUI\models\ipadapter 에 넣어줍니다. LoRA 파일은 ComfyUI\models\LoRA 폴더에 넣어주면 됩니다.
IP Adapter 모델 | LoRA | |
SD 1.5용 | ip-adapter-faceid-plusv2_sd15 | ip-adapter-faceid-plusv2_sd15_lora |
SDXL 용 | ip-adapter-faceid-plusv2_sdxl | ip-adapter-faceid-plusv2_sdxl_lora |
또한 아래의 두가지 이미지 인코더가 필요합니다.
- OpenClip VIT BigG(SDXL 용: CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors로 이름을 변경해 줍니다)
- OpenClip VIT H(SD 1.5용: CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors로 이름을 변경해 줍니다)
다운로드 받은 파일은 ComfyUI\models\clip_vision에 넣어줍니다.
3단계: 입력 이미지
4개의 [Load Image] 노드에 이미징를 올려줍니다. 원하시면 이 파일을 다운로드 받아 사용하셔도 됩니다. 저는 그냥 인터넷에서 어렸을 적 아역배우로 너무 성공하는 바람에 고생한 비운의 여배우 김민희 님의 사진을 사용했습니다. 김민희 배우님 사진은 아래 파일에서 받으시면 됩니다.
4단계: 체크포인트 모델 선택
원하는 모델을 선택합니다. 원본 글에서는 Realistic Vision 모델을 사용했지만, 저는 동양인 여자가 많이 학습된 ChilloutMix 모델을 사용했습니다. 파일은 ComfyUI\models\checkpoints에 넣어주시면 됩니다(AUTOMATIC1111과 모델을 공유할 경우 여기를 읽어보세요). 파일을 다 받은 후에는 ComfyUI 화면을 새로고침(F5)해주세요.
원하시면 적당한 SDXL 모델을 사용하셔도 됩니다.
5단계 : IP-adapter 모델 설정
IP adapter 모델
[IPAdapter Unified Loader FaceID] 노드를 아래와 같이 설정합니다.
6단계 : 이미지 생성
이제 메뉴에서 [Queue]를 누르면 이미지가 생성됩니다. 김민희 배우님 얼굴이 너무 잘 살아있어 기분이 좋네요.
모델 : Realistic Vision
프롬프트: closeup photo of a woman wearing kimono in a Japanese garden, high quality, diffuse light, highly detailed, 4k
다른 인물 실험
김태리님
다른 배우님들로도 생성해봤습니다. 기모노를 입은 모습이 예쁘긴 하지만 그래도 좀 아니다 싶어서, 아래는 프롬프트를 바꾸고, 김태리 배우님 사진을 사용했습니다. 좀어리게 보이지만 예쁘게 잘나왔네요.
좌측위 프롬프트: closeup photo of a beautiful woman, in office, high quality, diffuse light, highly detailed, 4k
우측위 프롬프트: cinematic movie still of a girl with red long hair blown by wind, dark black blue cape, maple leaves, castle on the background, detailed beauty portrait, very detailed background, treasures, wallpaper hd, avatar image, evelyn, 8k hd wallpaper, main character, grimoire page, brave young girl, vintage art, portrait of merlin, hearthstone concept art, inspired by Magali Villeneuve, fantasy art, photorealistic, dark theme, dramatic lighting, golden necklace, head chain, ornate, Ana de Armas, amber heard
좌측아래 프롬프트: a beautiful 20yo woman, long hair blowing in the wind, simple background sky
우측아래 프롬프트: sit on floor, realistic beautiful princess in mushroom land, blonde, highlight hair, intricate , slim body, (pink princess gown:1.2), night, deep (darkness:1.2), growing mushrooms, dim light, fantasy, bokeh, perfect face, looking intently at you
조인성님
여배우들만 소환하니 뭐라할 것 같아 조인성 배우님 사진을 사용해봤습니다. 아래는 RealisticVision 모델을 사용하고, 프롬프트는 "closeup photo of a man, in office, high quality, diffuse light, highly detailed, 4k" 로 해서 생성한 결과입니다. 여기도 뭔가 혼혈인 분위기네요.
아래는 ChilloutMix 모델을 사용한 결과인데... 어딘가... 어색하다 싶네요.
마지막으로 henMixReal 모델을 사용했을 때입니다. 그나마 제일 닮은 것 같기는 한데, 훨씬 어려진 모습이네요. ㅎㅎ
송혜교님
그런데 송혜교 배우님 사진을 사용하고 프롬프트는 "a beautiful woman"으로 생성했는데, 예쁘긴 하지만 얼굴은 좀 글쎄다 싶네요.
모델을 Realistic Vision으로 바꾸니 많이 나아졌는데, 그래도 딴사람 같습니다.
체크포인트 모델을 JuggernautXL로 바꿔서 실험해봤더니 더 참담하네요.
아래는 몇번 실험을 거쳐 그나마 괜찮다고 생각한 결과물입니다. IP-adapter 모델은 SD1.5 Face ID 입니다.
테스트 결과 요약
이상에서 볼 수 있는 것처럼, 김민희 배우님처럼 IP-Adapter를 적용하여 거의 현실인물과 구분이 불가능할 정도로 잘 생성되는 분도 있지만, 송혜교님 처럼 이런 저런 설정을 많이 바꿔도 닮은 얼굴을 만들기 힘든 경우처럼 다양한 경우가 발생합니다. 이렇게 보면, IP-adapter만으로 LoRA를 완전히 대체할 수 있다는 건 좀 과장되었다 해야할 것 같습니다. 그렇다고는 해도, 일단 얼굴이 잘 복제되면 그 다음부터는 아주 쉽게 사용할 수 있으니 상당한 장점이 있다고 해야 할 것 같고요.
특히 위의 실험에서 볼 수 있는 것처럼 어떤 인물인지, 어떤 사진을 사용했는지, 체크포인트 모델아니 IP-adapter 모델을 어떤 것으로 사용했는지에 따라 결과물의 차이가 심하므로, 여러번 테스트가 필요합니다. 위에서 송혜교님의 경우엔 비슷한 얼굴을 생성하기 아주 힘들었지만, 좀더 실험해보면 괜찮은 조합을 찾을 수 있지 않을까 싶네요.
참고로, 아래는 제가 좋아하는 SD1.5용 Efficient 노드를 수정해서 IP-Adapter를 적용할 수 있도록 수정한 워크플로입니다. 그림이나 json 파일을 다운로드 받아서 사용하시면 됩니다.
이상입니다. 이 글은 https://stable-diffusion-art.com/instant-lora-workflow-comfyui/ (회원전용)을 수정하여 작성한 글입니다. 많은 도움이 되셨기를~
민, 푸른하늘
====
- ComfyUI로 설치 및 사용법 기초
- ComfyUI 투토리얼
- ComfyUI를 위한 유용한 정보
- ComfyUI와 SDXL 사용법(1) - 기초
- ComfyUI에서 ControlNet 사용법
- 편리한 ComfyUI 워크플로 모음
- LCM-LoRA - 초고속 스테이블 디퓨전
- Stable Video Diffusion(비디오 스테이블 디퓨전)
- Stable Diffusion 인공지능 이미지 생초보 가이드
- Stable Diffusion 대표 UI - AUTOMATIC1111 설치방법
- Automatic1111 GUI: 초보자 가이드(메뉴 해설)
- Stable Diffusion에 대한 기본적인 이론
- ChatGPT로 스테이블 디퓨전 프롬프트 만들기