InstantID 살펴보기

안녕하세요. 9기 HuggingFace 세션에 참여 중인 너순입니다.

본 포스팅에서는 이번 부트캠프 기간 동안 HuggingFace에 있는 수많은 딥러닝 모델 중 어떠한 것을 선정하고 사용할지에 대한 내용을 적어 보려고 합니다.


우선 이번에 허깅페이스를 접하면서 가장 크게 느낀 점은 모델들이 정말 어마어마하게 많다는 것이었습니다.

많은 건 좋은데 너무 많다 보니 뭘 선택해야 할지 좀처럼 감이 잡히지 않았습니다.

그래서 무작정 Models 탭에 있는 카테고리를 필터링 걸어 보면서 하위의 모델들을 하나씩 살펴 보았습니다.


처음에는 신기하기도 하고 페이지들마다 들어가서 내용을 보는 것이 재미 있었으나 몇 시간 동안 계속 찾아 보다 보니 극도의 혼란속에 빠져 버렸습니다. (나는 누구… 여긴 어디…)

결국 잠시 탈출하여 낮잠으로 몸과 마음을 정화하고 나서 새로운 각오와 함께 Spaces 탭에 있는 모델들을 살펴 보기 시작했습니다. Spaces에서는 직접 모델들을 사용해 볼 수 있어 그냥 텍스트로 된 내용만 볼때 보다 확실히 모델을 사용하기 수월했습니다. 그렇게 이런 저런 모델을 살펴 보던 중 InstantID라는 모델이 눈에 들어 왔습니다.

개인적으로 Stable Diffusion에 관심이 있어 이런 저런 것들을 만들어 보았고 InstantID 모델 또한 I2I(Image 2 Image)를 기반으로 스타일 및 프롬프팅을 적용하는 방식이기 때문에 파보면 재밌겠다는 생각이 들었습니다.

InstantID - a Hugging Face Space by InstantX

Space에서 InstantID를 선택하면 Gradio 기반으로 모델을 테스트 할 수 있는 화면이 나타납니다.

일딴 뭔가 설명하는 내용도 많고 입력해야 하는 칸도 이것저것 있어 잠시 당황하다가 화면을 아래로 내려 보니 친절하게 예제를 실행해 볼 수 있는 기능이 있었습니다.

예제 항목을 클릭하면 연관된 파라미터가 바로 입력되고 생성된 결과물을 확인해 볼 수 있습니다.

변경된 결과를 보니 원본 사진의 이미지를 특정한 스타일로 변경 시켜 준 것 같습니다.

스타일을 체크하는 항목을 보면 “Sprint Festival”이 선택 되어 있었는데 이를 “Mars”로 변경하여 이미지를 다시 생성해 보았습니다.

이번엔 원본 사진을 톰형으로 바꿔 줍니다.

제법 그럴듯하게 이미지가 나왔네요 ㅎㅎ

원본 이미지 오른쪽에 보면 “Upload a reference pose image”라고 써있는 빈칸이 있습니다.

ControlNet을 통해 pose를 인식해서 적용해 주는 항목으로 보이네요.

달리는 사람의 이미지를 구해서 넣어 봅니다.

화면 구도가 전신샷으로 바뀌면서 영향을 받았지만 달린다기 보다는 걷는 모습이네요. ㅠㅠ

Pose 이미지의 영향도를 증가 시키기 위해서 Pose Strength를 1.2까지 올려 봅니다. (기본값 0.4)



이제야 톰형이 달리기 시작하네요 ㅋㅋ (Mission Impossible On Mars)



이쯤에서 정신을 차리고 이게 뭐하는 모델인지 설명 문구를 들여다 보았습니다.

“Zero-shot Identity-Preserving Generation in Seconds”

무슨 말인지 모르겠어서 ChatGPT한테 설명해 달라고 했습니다.



대략 인물 사진에서 얼굴을 유지한 채로 새로운 스타일로 변경해 주는 모델인 것 같습니다. 일반적으로 I2I에서 프롬프트를 통해 이미지를 변경하면 원본 이미지의 ID을 유지 하기가 쉽지 않기 때문에 별도의 학습을 통해 생성한 LoRA 모델을 사용하거나 Canny를 통해 외곽선을 잡아 주어야 하는 번거로움이 있는데 이 모델은 그냥 알아서 ID를 유지 시켜 주는 것으로 보입니다.

좀 더 파보면 뭔가 더 재미있는 결과물을 얻을 수 있을 것 같다는 생각이 슬금슬금 들었습니다.

아무튼 이번 글은 여기에서 마치고 다음글 부터는 InstantID에 대해 좀 더 상세한 내용을 적어 보려고 합니다.

#9기HuggingFace #InstantID #huggingface

4
6개의 답글

👉 이 게시글도 읽어보세요

모집 중인 AI 스터디