세 단계에서 무엇이 보존되고 무엇이 바뀌나
배경 KV cache 초기화
원본 이미지를 모델에 통과시키고 배경과 편집 영역을 구분한 뒤, 배경 위치의 key, value를 저장합니다. 이 단계의 결과가 이후 배경 조건으로 재사용됩니다.
마스크 또는 영역 구분이 틀리면 문제가 생깁니다. 바꿔야 할 픽셀이 배경으로 분류되면 원본에 묶이고, 보존해야 할 픽셀이 foreground에 들어가면 denoising 중 변할 수 있습니다. cache 방법만큼 foreground 경계가 중요합니다.
foreground 선택 편집
배경 cache를 유지한 채 foreground에 선택적으로 노이즈를 넣고 prompt가 지시한 새 요소를 생성합니다. “고양이를 다른 동물로 바꾸기”처럼 객체 자체를 바꾸더라도 주변 문맥을 원본에서 가져오려는 단계입니다.
경계가 자연스러운지는 별도 문제입니다. 새 객체의 크기나 그림자가 달라지면 배경 픽셀을 그대로 두는 것과 장면 전체가 자연스럽게 보이는 것이 충돌할 수 있습니다. 강한 보존은 배경 일관성을 높이지만 새 foreground와의 조명, 접촉 관계를 수정할 자유를 줄 수도 있습니다.
cache와 편집 결과 결합
마지막 denoising에서 편집된 foreground와 저장된 background 표현을 결합합니다. 이 구조는 매 단계 배경을 자유롭게 다시 생성하는 것보다 원본을 붙잡는 신호가 강합니다.
다만 key, value feature가 저장됐다는 사실이 출력 RGB 픽셀이 bit 단위로 동일하다는 뜻은 아닙니다. “배경 보존”을 검증하려면 눈으로 비슷한지뿐 아니라 mask 밖 픽셀 차이도 측정해야 합니다.