VibeEdit는 이미지 위에 그린 표시와 메모만으로 편집 대상을 지정한다
VibeEdit: Image Editing with Canvas Instructions
무엇인가
텍스트 기반 이미지 편집에서 "무엇을 바꿀지"는 말로 설명하기 쉽지만, "어느 객체인지"를 특정하는 일은 번거롭다. 특히 비슷하게 생긴 객체가 여러 개 있는 장면에서는 위치와 주변 상황을 장황하게 서술해야 한다. 이 논문은 점·브러시 같은 공간 제어와 언어를 결합하는 기존 흐름을 더 밀어붙여, 사용자가 이미지 위에 직접 공간 표시와 짧은 메모를 남기는 새 편집 인터페이스를 제안한다. 이 주석 묶음을 논문에서는 캔버스 지시(canvas instruction)라고 부르며, 어디를 편집할지와 무엇을 바꿀지를 동시에 담는다.
어떻게 동작하나
인터페이스의 문법은 단순하다. 원은 객체나 영역을 가리키고, 낙서는 삭제를, 화살표는 이동을 나타내며, 마크 옆에 놓인 짧은 메모가 원하는 내용이나 속성을 설명한다. 예를 들어 의자를 원으로 표시하고 옆에 새 색을 적거나, 빈 영역을 표시하고 추가할 객체 이름을 쓰는 식이다. 마크는 정확한 객체 경계를 따를 필요가 없다. 이 지시만으로 추가·삭제·교체·속성 변경·이동의 다섯 가지 편집 연산을 수행하며, 별도 텍스트 프롬프트는 쓰지 않는다.
무엇과 다른가
학습 데이터는 1,554,062개의 소스-타깃 편집 쌍으로 구성했다. Florence-2가 객체 후보를 제안하면 GPT-5.6-sol이 눈에 잘 띄고 주변과 분리된 객체를 골라 이름과 편집 프롬프트를 만들고, SAM 3가 마스크를 뽑는다. 추가·삭제는 ObjectClear로 마스크 영역을 인페인팅한 쌍을 뒤집어 양방향 감독을 얻고, 속성 변경과 이동은 Qwen-Image-Edit, 교체는 FLUX.1 Fill로 타깃 이미지를 합성한다. 캔버스 지시는 저장하지 않고 학습 중에 온라인으로 렌더링하며, 같은 편집에 대해 획 모양·굵기·서체(손글씨와 인쇄체 포함)를 다양하게 바꿔 모델이 여러 표기법을 보게 한다. 합성 쌍은 GPT-5.6-sol로 품질을 걸러내지만 오류가 완전히 사라지지는 않아, 뒤에서 설명할 강화학습으로 잔여 노이즈를 완화한다.
어떻게 쓰나
모델은 Qwen-Image-Edit을 개조한 것으로, 핵심 설계는 레이어 분리 조건화(layer-decoupled conditioning)다. 캔버스 주석이 출력 이미지에 그대로 나타나면 안 되므로, 주석이 얹힌 이미지 A는 동결된 Qwen2.5-VL 인코더에 넣어 의미 토큰 h만 얻고, 생성 경로에는 원본 이미지 I와 회색 배경에 래스터화한 주석 레이어 C̄를 VAE로 따로 인코딩해 z_I, z_C로 공급한다. DiT는 노이즈가 섞인 타깃 토큰(timestep t)과 z_I, z_C(timestep 0), 의미 토큰 h를 함께 받는다. VAE·비전언어 인코더·DiT 가중치는 동결하고, DiT의 어텐션 프로젝션과 모듈레이션 레이어에 rank-128 LoRA 어댑터만 학습한다.
전제와 한계
학습은 두 단계다. 먼저 영역 가중 지도학습은 국소 편집에서 대부분의 픽셀이 그대로라는 점을 반영해, 편집 객체 마스크와 렌더링된 주석 마스크의 합집합 M_sup을 50픽셀 팽창시켜 잠재 해상도로 매핑하고 λ=1.5로 마스크 내부 손실 가중을 높인다. 이 감독 마스크는 학습 손실에만 쓰이고 추론 시에는 모델에 주어지지 않는다. 이어서 루브릭 유도 강화학습을 수행한다. VLM 판정자(GPT-5.4-mini)가 편집 성공, 편집 외부 보존, 국소 편집 품질의 세 그룹 이진 질문에 답해 보상을 만들고, 편집 영역 밖 PSNR이 25dB 미만이면 0.3의 페널티를 준다. DiffusionNFT 목적함수로 최적화하며, RL 데이터는 롤아웃 보상 분산이 큰 조건을 골라 편집 유형별 704개씩 총 3,520개를 쓴다.
평가는 온라인에서 수집한 이미지로 독립 구축한 419건 벤치마크에서 이뤄졌고, 같은 범주의 비슷한 객체 중 의도한 인스턴스를 고르는지를 중점적으로 본다. Qwen-Image-Edit-2511, LongCat-Image-Edit, FLUX.2-klein-9B, FireRed-Image-Edit-1.0, JoyAI-Image-Edit, Step1X-Edit-v1p2, GPT-Image-1과 비교했으며, 베이스라인에는 평균 21.3단어의 상세 텍스트 지시를 별도로 제공했다. 텍스트 지시를 받은 베이스라인 중 최고는 FireRed로 VLM 루브릭 67.4점, 외부 영역 PSNR 24.0dB였다. VibeEdit는 79.9점과 32.8dB로 다섯 편집 유형 모두에서 최고 점수를 냈고, 텍스트 프롬프트 없이 캔버스 이미지만 받은 베이스 모델도 67.8점으로 FireRed의 텍스트 지시 결과를 앞섰다. 절제 실험에서는 VAE 입력을 원본 I만 주면 24.7점, 주석 이미지 A를 주면 58.6점, I와 C̄를 분리해 주면 67.8점·27.0dB로 layer-decoupled 조건화의 효과가 확인됐고, 영역 가중에 팽창을 더하면 66.2점에서 67.8점으로 올랐다. RL 조건 선택은 고분산 79.9점, 무작위 79.3점, 저분산 76.6점이었고, 보상 구성은 편집 성공만 쓸 때 69.2점·28.6dB, 보존을 더하면 74.9점·29.4dB, 국소 품질을 더하면 72.4점·28.0dB, 세 그룹을 모두 쓰면 79.9점·32.8dB였다.
개발자 관점에서 이 논문이 유용한 지점은 마스크를 정밀하게 그리지 않아도 된다는 전제다. 사용자는 대략적인 원·낙서·화살표와 짧은 메모만 남기고, 정확한 객체 마스크는 학습 손실 가중에만 쓰인다. 따라서 이미 마스크나 박스 기반 편집 UI를 가진 서비스라면 캔버스 주석 레이어를 추가하는 형태로 얹을 수 있다. 다만 점수 자체가 고정 VLM 판정자(GPT-5.6-sol)의 이진 루브릭과 편집 영역 밖 PSNR이라는 대리 지표이므로 사람 평가가 아니라는 점, 벤치마크가 419건으로 작다는 점, 추론 설정이 베이스 모델 30 스텝·CFG 4, RL 모델 16 스텝·CFG 1로 다르다는 점은 감안해야 한다.
원문에는 별도의 한계 절이 없다. 대신 저자들이 곳곳에 전제를 밝혀 둔다. 학습 쌍은 기존 생성 모델로 합성한 것이고 GPT-5.6-sol 필터로도 오류가 완전히 제거되지 않아 RL로 잔여 노이즈를 완화한다는 점, 데이터가 공개 데이터셋 이미지와 AI 생성 이미지로 이뤄진다는 점, 그리고 평가가 VLM 판정과 PSNR에 의존한다는 점이 그렇다. 학습에는 32대의 NVIDIA A100이 쓰였고, RL은 12,000스텝 지도학습 체크포인트에서 512² 해상도로 시작해 220스텝까지 평가했다는 조건도 함께 봐야 한다.