ObjectAdd 훈련 없이 확산 모델로 이미지에 객체 추가
초록
ObjectAdd은 사전 학습된 텍스트‑투‑이미지 확산 모델을 그대로 사용하면서, 사용자가 지정한 영역에 원하는 객체만을 삽입하고 나머지 부분은 원본과 동일하게 유지하는 훈련‑프리 편집 기법이다. 텍스트 임베딩을 별도 인코딩 후 결합하고, 잠재 공간과 교차‑어텐션을 동시에 조작해 객체 위치를 정확히 제어하며, 중간 단계에서 어텐션 재집중과 객체 확장을 적용해 주변 영역을 보존한다.
상세 분석
ObjectAdd은 기존 확산 모델의 파라미터를 전혀 변경하지 않고, 텍스트‑이미지 생성 파이프라인에 세 가지 핵심 모듈을 삽입한다. 첫 번째 모듈은 텍스트 임베딩 레벨에서 발생하는 “임베딩 혼동” 문제를 해결한다. 기존 방식은 두 개의 프롬프트를 단순히 이어 붙이면 self‑attention 메커니즘 때문에 토큰 간 의미가 뒤섞여 객체와 배경의 구분이 흐려진다. ObjectAdd은 CLIP‑style 텍스트 인코더에 P와 W를 각각 독립적으로 인코딩한 뒤, CLS 토큰을 공유하고 나머지 토큰을 순차적으로 연결함으로써 두 임베딩이 서로 간섭하지 않도록 설계한다. 이 방식은 토큰 순서와 의미를 보존하면서도 하나의 임베딩 행렬로 결합할 수 있어, 이후 교차‑어텐션 단계에서 정확한 조건부 정보를 제공한다.
두 번째 모듈은 “객체‑구동 레이아웃 제어”이다. 여기서는 잠재 공간(latent)과 어텐션 공간을 동시에 조작한다. 잠재 공간에서는 W 프롬프트만을 사용해 별도 디노이징 과정을 수행하고, 그 결과물에 대해 backward guidance를 적용한다. 구체적으로, 선택된 레이어들의 교차‑어텐션 맵 Cγt_k(객체 토큰)과 사용자 지정 마스크 Mγ의 교차 엔트로피 손실을 최소화하도록 라틴을 업데이트한다. 이는 객체가 마스크 영역에 집중되도록 강제한다. 어텐션 레벨에서는 초기 디노이징 단계에서 Cγt_k를 직접 증폭시켜 객체가 해당 영역에 강하게 반응하도록 만든다. 이렇게 두 축을 동시에 최적화함으로써, 객체는 정확히 지정된 박스 안에 나타나면서도 주변 픽셀과의 경계가 부드럽게 연결된다.
세 번째 모듈은 “프롬프트 기반 이미지 인페인팅”이다. 객체 삽입 후 남은 영역은 원본 이미지와 동일해야 하는데, 이를 위해 중간 디노이징 단계에서 어텐션 재집중(attention refocusing)과 객체 확장(object expansion)을 수행한다. 먼저, 객체와 관련된 어텐션 맵을 클러스터링해 객체 중심 서브‑피규어를 추출하고, 이 서브‑피규어와 마스크가 겹치는 영역을 기준으로 시드 픽셀을 선정한다. 이후 시드 픽셀 주변의 비객체 픽셀을 복원함으로써, 마스크 밖의 배경이 원본과 일치하도록 만든다. 실험적으로 이 단계는 기존 inpainting 방법보다 더 자연스러운 경계와 색상 일관성을 제공한다.
또한, ObjectAdd은 실제 사진을 입력으로 받을 때, 이미지 → 노이즈 변환(inversion) 과정을 개선한 새로운 역전 방법을 제안한다. 변환된 노이즈를 기존 파이프라인에 그대로 투입하고, 마스크 대신 실제 이미지의 세그멘테이션을 사용해 영역을 정의한다. 전체적으로 ObjectAdd은 forward guidance와 backward guidance를 조화롭게 결합하고, 텍스트 임베딩, 잠재 공간, 어텐션을 다중 레벨에서 제어함으로써 “추가‑수정‑보존”이라는 세 가지 목표를 동시에 만족한다.
댓글 및 학술 토론
Loading comments...
의견 남기기