이미지를 고칠 때 진짜 번거로운 건 '어떻게 바꿀지'가 아니라 '어느 것을 바꿀지'를 말로 짚는 일이다. VibeEdit는 이 일을 말에서 손으로 옮긴다. 바꿀 대상에 직접 동그라미·낙서·화살표로 표시하고, 그 옆에 "더 진하게" 같은 짧은 메모로 원하는 변화를 적는다. 표시가 '어느 것'을 짚고, 메모가 '무엇을'을 말한다. 저자들은 이 표시 묶음을 캔버스 지시(canvas instruction), 즉 그림 위에 직접 그려 넣는 편집 지시라 부른다.
이 묶음 하나로 객체를 더하고, 지우고, 바꾸고, 색·재질을 손보고, 위치를 옮기는 다섯 가지 편집이 끝난다. 긴 설명 문장은 필요 없다.
성과부터 말하면 이렇다. 저자들이 만든 419건짜리 시험에서 VibeEdit는 종합 편집 점수(편집이 요청대로 됐는지) 79.9, 원본 보존 화질(건드리지 말아야 할 곳을 안 건드렸는지) 32.8dB를 기록했다. 대상의 위치와 요청을 꼼꼼히 적은 텍스트까지 받은 가장 강한 경쟁 편집기 FireRed는 같은 시험에서 67.4 / 24.0dB에 그쳤다. 그림 위 표시만 받은 쪽이, 친절한 설명을 받은 쪽을 두 지표 모두에서 앞섰다. (단, 이 채점은 저자들이 직접 설계한 시험과 심판 모델 위에서 이뤄졌다.)
그리고 이 문제는 이미지 편집에만 있지 않다. 온틀 PM이 고객의 수정 요청을 받을 때마다 겪는 '이것 말고 저것'의 문제이기도 하다.
텍스트로 이미지를 편집할 때 어려운 쪽은 '어떻게'가 아니라 '어느 것'이다. "색을 빨갛게"는 쉽다. 문제는 화면에 비슷하게 생긴 의자가 다섯 개 있을 때다. 그중 하나를 말로만 집으려면 "왼쪽에서 세 번째, 창가로 반쯤 돌아간 의자"처럼 위치와 주변 관계를 구구절절 묘사해야 하고, 그래도 모델은 엉뚱한 의자를 칠하기 일쑤다.
손가락으로 그 의자를 가리킬 수 있다면 이 수고가 사라진다. 공간을 짚는 일은 점·획 같은 직접적인 표시가 잘하고, 원하는 변화를 말하는 일은 언어가 잘한다. VibeEdit는 둘을 이미지 위에서 한 번에 묶는다. 동그라미는 대상 영역을 짚고, 낙서는 삭제를, 화살표는 이동을 뜻한다. 그 옆 짧은 메모가 원하는 내용이나 속성을 적는다. 중요한 건 이 표시들이 객체 경계를 정확히 따라 그릴 필요가 없다는 점이다. 대충 쳐도 된다.
'그림 위 지시'라는 발상 자체가 처음은 아니다. 점을 끌어 옮기는 방식(DragGAN·DragDiffusion류)은 손잡이 점과 목표 점을 찍어 객체를 밀고 당기지만 다룰 수 있는 편집 종류가 좁다. 위치만 표시로 찍고 '무엇을'은 텍스트로 받는 방식(마스크·박스·낙서 기반의 Inter-Edit·FineEdit·VIBE 등)은 의미를 여전히 글이 나른다. 브러시 조작에 편집 프롬프트를 결합한 시스템(MagicQuill류)도 있다. VibeEdit의 차별점은 '무엇을'까지 손으로 쓴 짧은 메모 형태로 캔버스에 함께 올린 데 있다. 그래서 표시와 메모가 한 묶음으로 '어디'와 '무엇을'을 동시에 지정한다. 저자들은 이것이 텍스트를 대체한다기보다, 말로 하면 번거롭거나 모호해지는 순간에 공간 지시를 얹어 보완한다고 본다.
캔버스 지시의 발상은 직관적이지만 구현은 까다롭다. 모델은 표시를 '읽어서' 편집에 반영하되, 그 표시를 결과 이미지에 '그려 넣지는' 말아야 한다. 동그라미가 쳐진 사진을 그대로 편집기에 넣으면, 편집기는 그 동그라미를 지워야 할 지시로 볼지 그림의 일부로 볼지 헷갈린다. 원본 내용과 지시용 표시가 한 장에 뒤섞이기 때문이다. 위치만 흑백 영역으로 찍던 마스크 기반 방식에선 이 뒤섞임이 덜했지만, 손글씨 메모까지 그림 위에 올리는 VibeEdit에선 이 구분이 곧바로 핵심 난제가 된다.
이 논문의 핵심 장치가 레이어 분리 조건화(layer-decoupled conditioning), 즉 원본과 지시용 표시를 서로 다른 층으로 떼어 입력하는 방식이다. 교정지를 떠올리면 쉽다. 편집자가 빨간 펜으로 "이 단어 굵게"라고 적어두면, 식자공은 그 표시를 읽어 지시대로 조판하되 인쇄된 책에 빨간 펜 자국을 남겨선 안 된다. VibeEdit도 역할을 똑같이 나눈다. 한쪽에서는 이미지와 글을 함께 이해하는 AI가 표시가 그려진 사진을 해석해 '무엇을 하라는 지시인지'를 뽑아낸다. 다른 쪽에서는 실제로 픽셀을 그리는 생성 AI가 깨끗한 원본과 표시를 서로 다른 층(레이어)으로 따로 입력받는다. 표시는 중립적인 회색 배경 위에 따로 그려 별도 레이어로 넣는다. 덕분에 모델은 표시의 뜻을 이해하면서도, 손대지 않은 원본을 늘 참조점으로 쥔다.
구조를 세웠으면 가르쳐야 한다. 학습은 두 단계다.
1단계는 예시로 가르친다(지도학습). 국소 편집(사진의 일부만 손대는 편집)에서는 사진 대부분이 그대로 유지되므로, 모든 픽셀을 똑같이 취급하면 정작 바뀌어야 할 작은 부분이 묻혀버린다. 그래서 편집 대상과 표시가 있는 자리에 더 큰 가중치를 줘, 모델이 '바뀌는 곳'에 집중하게 한다.
2단계는 잘한 편집에 상을 준다(강화학습). 그럴듯해 보여도 엉뚱한 객체를 건드리거나 멀쩡한 배경을 바꿔놓는 결과가 있는데, 1단계만으로는 이걸 잘 못 잡는다. 그래서 세 가지를 따로 채점해 보상한다. 요청한 편집이 제 위치에서 됐는가(완료), 주변은 그대로인가(보존), 바뀐 부분이 자연스러운가(품질)다. 특히 보존 쪽에는 문턱을 둔 안전장치가 붙는다. 여유 폭을 둔 편집 영역 바깥의 화질(원본 대비 PSNR)이 기준선인 25dB 아래로 내려갈 때만 보상에서 0.3점을 깎는다. 바깥이 조금 달라졌다고 무조건 벌주는 게 아니라, 기준선 밑으로 눈에 띄게 무너졌을 때만 벌점이 걸린다.
모델 전체를 새로 학습시키지는 않는다. 기반이 되는 편집 AI는 거의 그대로 얼려두고, 그 위에 작은 어댑터만 덧붙여 '표시를 읽는 능력'만 가르친다. 이렇게 큰 모델을 통째로 바꾸지 않고 최소한의 부품만 더해 새 기술을 가르치는 효율적인 방법을 LoRA라고 부른다.
| 설정 | 종합 편집 점수 | 원본 보존 화질(PSNR) |
|---|---|---|
| VibeEdit 최종 (표시만) | 79.9 | 32.8dB |
| VibeEdit 1단계만 (표시만) | 67.8 | 27.0dB |
| FireRed (설명문 받음) | 67.4 | 24.0dB |
결과에서 세 가지가 드러난다.
첫째, 표시만으로 설명문을 이겼다. 최종 VibeEdit는 79.9 / 32.8dB, 대상의 위치와 요청까지 다 받아 적은 최고 경쟁 모델 FireRed는 67.4 / 24.0dB다. 이 격차를 저자들은 '대상을 짚는 비용이 설명문으로는 생각보다 크다'는 신호로 읽는다. 두 방식은 입력 형태 자체가 달라 단일 원인으로 못 박긴 어렵지만, 적어도 표시 방식이 설명문에 밀리지 않는다는 건 분명하다.
둘째, 강화학습이 실제로 일을 했다. 1단계(예시 학습)만 거친 VibeEdit는 67.8 / 27.0dB였는데, 2단계(상 주기)를 얹자 79.9 / 32.8dB로 뛰었다. 편집 점수는 약 12점, 바깥 영역 화질은 5.8dB 올랐다. 눈여겨볼 대목이 하나 더 있다. 2단계를 얹기 전 67.8점이 이미 설명문을 받은 FireRed의 67.4점과 사실상 대등했고, 바깥 화질은 오히려 더 높았다(27.0 대 24.0dB). 표시 방식의 경쟁력은 강화학습 이전에 이미 나와 있었던 셈이다.
셋째, 표시는 '그냥 넣는다고' 읽히지 않는다. 학습하지 않은 공개 편집기에 캔버스 표시 이미지를 그대로 넣자 점수가 크게 무너졌다. 같은 모델들이 텍스트 설명을 받으면 60점대로 뛴다.
| 학습 안 된 공개 편집기 | 표시 이미지만 넣음 | 설명문을 받음 |
|---|---|---|
| Qwen-Image-Edit-2511 | 19.8 | 62.5 |
| FireRed | 22.8 | 67.4 |
| JoyAI | 46.4 | 65.4 |
관찰된 사실은 여기까지다. 저자들의 해석은, 표시를 읽는 것은 타고나는 능력이 아니라 학습해야 하는 능력이며, 배우지 못한 모델은 표시를 그림의 일부로 오해한다는 것이다 — 이 논문이 레이어 분리를 설계한 이유와 정확히 맞닿는다.
편집 종류별로 보면 이동(move)이 누구에게나 가장 어려웠다. 텍스트 경쟁 모델들의 이동 점수는 54점대를 넘지 못했는데, VibeEdit는 76.4였다. "어디서 어디로"라는 이동의 본질을 화살표라는 공간 표시가 언어보다 직접 전한다고 저자들은 본다. 나머지 네 종류(추가·삭제·속성·교체)에서도 VibeEdit가 고르게 앞섰다(구체 수치는 아래 기술 상세).
그렇다면 이 성적은 어떤 시험에서 나온 걸까.
채점용 시험 세트는 419건으로, 학습 데이터와 겹치지 않게 사람이 직접 모아 골랐다. 핵심은 '비슷하게 생긴 객체가 여러 개 있는 장면'을 일부러 많이 넣었다는 점이다. "요청한 변화를 이해하는가"만이 아니라 "그 변화를 의도한 바로 그 하나에 적용하는가"를 시험하려는 것 — 앞서 말한 '어느 것' 문제를 정조준한 설계다. 공정한 비교를 위해, 텍스트 편집기들에는 대상의 위치와 요청을 꼼꼼히 적은 설명문(평균 21.3단어)을 따로 지어 건넸다.
성적은 두 가지로 잰다. 하나는 종합 편집 점수다. 이미지와 글을 함께 이해하는 AI를 고정 심판으로 두고, 편집 성공·주변 보존·국소 품질을 '그렇다/아니다'로 채점한 통과율이다(이 채점 기준표를 루브릭이라 한다). 다른 하나는 원본 보존 화질(PSNR)로, 편집 영역 바깥이 원본과 얼마나 똑같은지를 픽셀 단위로 잰 값이다 — 높을수록 안 건드렸다는 뜻이다. 둘은 서로 다른 걸 본다. 앞의 것은 '편집이 제대로 됐나', 뒤의 것은 '건드리지 말아야 할 곳을 안 건드렸나'다.
학습 데이터는 155만 쌍에 이른다. 사람이 일일이 만든 게 아니라, 기존 AI 도구 여러 개를 엮은 자동 공정으로 찍어냈다. 큰 틀은 편집할 만한 객체를 찾고, 그럴듯한 편집 요청을 지어낸 뒤, 품질 낮은 결과를 걸러내는 자동 공정이다(도구 구성은 아래 기술 상세). 저자들도 이 공정이 모든 오류를 걸러내지 못한다고 인정하고, 남은 잡음은 2단계 강화학습으로 보정한다고 밝힌다.
저자들이 스스로 인정한 한계는 데이터다. 자동으로 찍어낸 편집 쌍은 거르고 걸러도 오류가 남고, 그래서 강화학습으로 보정한다 — 학습 데이터에 잡음이 있다는 전제를 깔고 설계한 셈이다.
더 신경 쓰이는 건 평가 구조다. 시험 세트는 사람이 공들여 고른 질 높은 세트지만, 어쨌든 저자들이 직접 꾸린 것이다. 게다가 최종 채점 심판으로 쓴 모델은, 데이터를 만드는 단계 — 객체를 고르고, 편집 요청을 짓고, 품질을 거르는 일 — 에도 쓰인 바로 그 모델이다. 시험 출제자가 자기가 만든 모의고사로 자기 실력을 채점하는 것과 비슷하다. 그 심판이 잘 풀어내는 유형의 편집만 데이터에 담기고, 그 데이터로 학습한 모델을 다시 같은 심판이 채점하면, 점수가 부풀 여지가 생긴다. 강화학습의 보상 심판은 다른 모델로 분리했지만, 최종 성적을 매긴 심판의 독립성은 여전히 생각해볼 지점이다.
기반 의존성도 있다. VibeEdit는 기존 편집 AI 위에 작은 어댑터를 얹은 구조라, 바탕이 된 편집기의 실력과 버릇을 상당 부분 물려받는다. '표시로 지시한다'는 인터페이스의 참신함과, 그 아래에서 실제로 그림을 그리는 엔진의 품질은 서로 다른 축이다.
실시간성은 열린 질문이다. 캔버스 편집은 본질적으로 사용자가 그리고 즉시 결과를 받아보는 상호작용 도구를 전제한다. 동그라미를 치고 결과가 나오기까지의 체감 속도가 실제 작업 흐름에서 쾌적한지는, 도구로 직접 써봐야 알 수 있는 영역이다.
온틀은 고객 프로젝트마다 AI 프로젝트 매니저(PM)를 파견해, 요청 접수부터 분석·개발·서비스 노출까지 관리하는 구조다. 이 흐름에서 마찰이 가장 잦은 지점 하나를 꼽자면 산출물 검토 단계다.
AI PM이 랜딩 페이지나 카드뉴스 같은 웹 산출물을 고객에게 보여주고 수정 요청을 받는다. 고객은 보통 이렇게 쓴다. "상단 배너 오른쪽 버튼 말고, 그 옆 작은 버튼 색을 더 진하게." 화면에 버튼이 여럿이면 PM은 되묻는다. "어느 버튼 말씀이실까요?" 접수 루프에 왕복이 한 번 더 끼고, 때로는 PM이 지레짐작해 엉뚱한 요소를 고친 결과물이 다시 올라간다. 이 논문이 짚은 그 비대칭 — "무엇을 바꿀지는 쉽고, 어느 것인지는 어렵다" — 가 온틀 접수 창구에서 매일 재생되는 셈이다.
고객이 산출물 미리보기 위에서 바로 그 작은 버튼에 동그라미를 치고 "더 진하게"라고 적으면, 요청이 접수되는 순간 적어도 '어느 것'은 좁혀진다. 온틀에는 이미 이미지·PDF·엑셀을 띄우는 산출물 뷰어(/artifacts)가 있으니, 그 미리보기 위에 표시 레이어를 얹는 방향은 자연스러운 확장이다.
여기서 이 논문의 가장 실용적인 교훈이 그대로 쓰인다 — 레이어 분리다. 고객이 표시한 스크린샷을 PM이 실행 단계로 넘길 때, 받는 쪽은 그 동그라미와 메모를 '지시'로 읽어야지 '결과물에 그려 넣을 그림'으로 오해하면 안 된다. 지시 레이어와 원본 산출물을 구조적으로 떼어 전달해야, '고쳐달라는 표시'가 '고쳐진 결과물' 속으로 새어들지 않는다.
다만 표시 하나로 모든 게 풀리진 않는다. 두 군데가 남는다. 하나, 표시가 없애주는 건 '어느 것'을 설명하느라 생기던 왕복이지, "더 진하게가 어느 정도인지" 같은 '무엇을'에 담긴 요청 자체의 모호함이 아니다. 둘, 고객이 화면 위에 친 동그라미는 결국 좌표일 뿐이다. 그 좌표를 실제로 고쳐야 할 요소 — 그 버튼의 코드나 컴포넌트 — 에 연결하는 일은 이미지 편집에는 없던, 온틀이 따로 풀어야 할 문제다. 그러니 캔버스 접수는 단순한 화면 편의 기능이 아니라, 요청을 담는 데이터 구조 자체를 바꾸는 일이다.
이 논문의 결과를 내 서비스에 대입한다면, 역할별로 이렇게 점검해볼 만하다.
- 데이터 자동 생성: 개방형 객체 탐지 도구(Florence-2)로 객체 후보를 뽑고, 너무 작거나 큰 후보를 걸러 번호를 매긴 뒤 심판 모델(이미지·언어 이해 AI)이 알아보기 쉽고 주변과 분리된 객체를 고른다. 선택된 상자에서 분할 도구(SAM 3)가 객체 마스크를 만든다. 추가·삭제는 객체 제거 도구(ObjectClear)로 한 쌍을 만들어 지운 방향은 삭제, 역방향은 추가 학습에 쓰고, 교체는 인페인팅 도구(FLUX.1 Fill)로, 속성 변경과 이동은 기반 편집기(Qwen-Image-Edit)로 생성한다. 생성된 쌍은 다시 같은 심판 모델로 품질을 평가해 걸러낸다. - 지도학습(1단계): 영역 가중 지도학습. 편집 대상과 표시 영역에 큰 가중치를 주되 전체 감독은 유지하고, 이동 편집은 출발·도착 위치 마스크를 합쳐 가중한다. 표시·경계 주변으로 마스크를 약간 넓혀(dilation) 대략적인 표시와 경계 근처 효과, 다운샘플링을 흡수한다. 이 감독 마스크는 학습 손실에만 쓰고 추론 때는 주지 않는다. 캔버스 표시는 저장해 두지 않고 학습 중 즉석에서 그리며(online rendering), 획 모양·두께·손글씨/인쇄체 서체를 다양하게 바꿔 같은 편집의 여러 표기를 노출한다. - 강화학습(2단계): 루브릭 기반 보상. 보상 심판은 데이터 생성·최종 채점에 쓴 모델과는 다른 별도의 심판 모델이다. 최적화는 전체 디노이징 궤적을 저장하지 않는 DiffusionNFT를 쓴다. 강화학습 집합은 보상 편차가 큰 조건 3,520개(편집 종류 다섯 개 × 704개)로 구성했다. - 모델 구성: 이미지·언어 이해 인코더(Qwen2.5-VL)와 픽셀 생성부(VAE·DiT)는 모두 얼리고, DiT의 어텐션 투영·변조 계층에 rank-128 LoRA 어댑터만 학습한다. 기반 모델은 Qwen-Image-Edit. - 자원·추론: 두 단계 모두 NVIDIA A100 32장 사용. 강화학습은 12,000스텝 지도학습 체크포인트에서 시작해 220스텝에서 평가, 조건당 롤아웃 12개. 추론은 사례당 한 장 출력이며 기준 모델은 디노이징 30스텝(CFG 4), 강화학습 모델은 16스텝(CFG 1). - 종합 편집 점수 산출: 편집 성공·주변 보존·국소 품질에 대한 이항 질문의 통과율을 편집 종류별로 평균한 뒤 다섯 종류에 걸쳐 동일 가중 평균(%). 여기에 편집 영역 바깥의 원본-출력 PSNR을 함께 본다. - 편집 종류별 VibeEdit 점수: 추가 80.3 · 삭제 85.4 · 속성 77.4 · 교체 79.9 · 이동 76.4.
논문에 프로젝트 페이지(https://zhaojingjing713.github.io/VibeEdit/)가 공개돼 있습니다. 다만 이 글에 발췌된 범위에서는 공개 가중치나 배포 도구의 존재 여부까지는 확인되지 않으니, 프로젝트 페이지와 논문 링크에서 직접 확인하시길 권합니다.
모두 아래 참고자료의 arXiv 공개본과 프로젝트 페이지에 근거합니다. 본문의 성적은 저자들이 보고한 값이며, 그 점수가 저자들이 직접 설계한 시험과 심판 모델 위에서 나왔다는 전제는 '한계와 남은 질문'에서 짚은 대로 감안해 읽으시길 권합니다.