InstantID: Zero-shot Identity Preserving Generation in Seconds
Feb 01, 2026

- task: 얼굴 id를 유지하며 이미지를 생성하는 것

- 기존 연구들의 한계
- 텍스트만으로는 얼굴 ID 같은 미세한 정체성 보존 잘 안 됨
- ControlNet/T2I-Adapter류는 구조 제어는 되는데 ID fidelity가 애매함
- DreamBooth/LoRA/Textual Inversion은 퀄은 좋은데 테스트타임 튜닝 필요해서 시간·리소스 많이 듦
- IP-Adapter 같은 튜닝프리도 CLIP 주입 약해서 고정밀 ID 일치 흔들리거나, 일부는 호환성/튜닝 범위 문제 남음
- 모델
- Stable Diffusion 1.5, XL + ControlNet + Image Prompt Adapter
- Image Prompt Adapter (IPAdapter)
- 전체 모델 구조
- 얼굴 의미정보를 robust하게 잡는 ID 임베딩 뽑음
- 기존 모델들은 이미지 임베딩으로 CLIP을 사용했으나 얼굴 보전을 위해서 얼굴 임베딩 사용
- 가벼운 크로스어텐션 어댑터 모듈로, 레퍼런스 이미지를 비주얼 프롬프트처럼 꽂아 씀
- 텍스트 정보 없이 얼굴 이미지로만 얼굴 임베딩을 만드는 IdentityNet 넣어서 더 정교하게 컨트롤함
- IP Adapter로 이미지 프롬프트(face embedding)을 넣어주어도 얼굴 ID를 보존하는게 충분하지 않았다고 함
- IP Adapter에서 이미지/텍스트 feature를 합칠 때 token이 길어지면 이미지/텍스트 밸런스를 잡는게 어려워 짐. 텍스트 토큰에 의해 id 보존이 깨질 수 있음. 반대로 이미지쪽이 너무 웨이트를 받으면 텍스트 조건을 잘 못 맞출 수 있음
- 그래서 ControlNet의 아이디어를 차용하여, 5개의 facial landmark와 face embedding을 넣어줌
- facial landmark의 역할
- instantID의 input은 face crop이미지가 아니라 wild 이미지이기 때문에 얼굴 중심의 이미지가 아닐 수 있어서, 얼굴에 집중하도록 하기 위해서
- 입을 열고 있다/다물고 있다 같은 사소한 부분은 editable하게 만들고 집중할 부분만 landmark로 표시
- face embedding 모델로는 antelopev2 사용





- 학습
- Stable Diffusion 1.0 XL 모델을 48개의 NVIDIA H800 GPUs (80GB)로 학습
- with a batch size of 2 per GPU
- 실험 결과
- 텍스트 프롬프트, ControlNet으로 canny, depth 넣어줘도 id 유지함
- 레퍼런스 이미지가 여러 개일 때
- id embedding의 평균 사용.
- 레퍼런스 이미지 1개만 있어도 잘 됨. LoRA에서는 레퍼런스 이미지가 여러 개 일 수록 잘 됨
- 평균말고 다른 방법을 사용하면 더 잘 될 수도 있음
- 다른 모델들과 비교
- IPA: FaceID(face embedding)를 넣어주지 않았을 때 (CLIP 임베딩 사용) 얼굴 id 보존이 안 됨
- IPA-FaceID: FaceID를 넣었을 때 ID 보존은 되나, 매우 잘 보존하지는 않음
- IPA-FaceID-Plus: FaceID+CLIP이라고 하는데, 얼굴 ID는 잘 보존하나 얼굴 부분만 스타일을 따르지 않음
- InstantID: 얼굴을 잘 보존하면서 전반적으로 스타일을 잘 따름
- InstantID vs InSwapper





- 이 연구의 한계
- ID 임베딩이 성별/나이 같은 시맨틱은 풍부한데, 얼굴 속성들이 서로 강하게 결합돼 있어서 얼굴 편집(예: 나이만/성별만/인상만 바꾸기)이 까다로움
Share article