FigMirror: 참고 그림의 스타일에 맞춰 내 데이터를 시각화하는 AI 에이전트 도구

FigMirror 소개

논문에 들어갈 그림 한 장을 다른 논문의 깔끔한 figure처럼 다듬는 일은 보통 matplotlib 코드를 수십 번 고치는 반복 작업으로 끝납니다. 축 눈금, 폰트 크기, 색 팔레트, 범례 위치를 참고 그림에 맞추려고 코드를 조금씩 바꿔 가며 렌더링을 다시 돌리는 과정이 길어집니다. FigMirror 는 이 반복을 줄이기 위해, 참고할 그림 한 장과 내 데이터를 입력하면 그 스타일을 모방한 matplotlib 스크립트와 출판용 PDF 를 만들어 주는 도구입니다.

FigMirror 는 VILA-Lab 에서 공개한 AI 에이전트 도구로, 핵심 아이디어는 "참고 그림(reference figure)을 스타일 타깃으로 삼아 내 데이터를 같은 논문 계열에 속한 것처럼 보이도록 렌더링한다" 는 것입니다. 사용자는 마음에 드는 figure 의 스크린샷을 고르고 자신의 데이터를 붙여 넣기만 하면 되며, 결과물은 그림 이미지가 아니라 편집 가능한 matplotlib 코드 라서 이후에 직접 손볼 수 있습니다.

도구는 Claude Code 나 Codex 같은 코딩 에이전트 안에서 스킬(skill) 형태로 동작하거나, 업로드와 반복 미리보기를 지원하는 로컬 웹 UI 로 실행할 수 있습니다. 2026년 5월 공개된 v0.1.0 퍼블릭 프리뷰 기준으로, 25개 차트 계열에 걸친 139개의 논문 그림을 모아둔 갤러리도 함께 제공해 참고 그림이 마땅치 않을 때 출발점으로 쓸 수 있습니다.

FigMirror의 Drawer-Reviewer 반복 루프

FigMirror 의 동작은 두 역할의 에이전트가 주고받는 반복 루프로 이뤄집니다. Drawer 는 후보 그림을 렌더링하고, Reviewer 는 그 결과를 참고 그림과 비교해 시각적 리뷰(visual review), 수정 체크리스트(revision checklist), 그리고 보존 목록(preserve list)을 돌려줍니다. 보존 목록은 반복을 거치며 누적되어, 스타일이 원본에서 점점 벗어나는 드리프트(style drift)를 막는 기준점 역할을 합니다.

에이전트들의 판단이 엇갈리거나 Drawer 의 확신이 낮을 때를 대비해, FigMirror 는 Aesthetic Lib 라는 보조 규칙 집합을 둡니다. 여기에는 폴백 원칙, 스타일 규칙, 그림 속성(figure properties)이 담겨 있어 루프가 막혔을 때 기준을 제공합니다.

FigMirror의 Grounded Measurement

FigMirror 가 그림을 "눈대중" 이 아니라 실제 수치로 맞출 수 있는 근거는 Grounded Measurement 라는 측정 방식에 있습니다. 이 방식은 컴퓨터 사용(computer-use)에 맞춰 학습된 파운데이션 모델의 두 가지 성질에 기반합니다. 하나는 Measurement with Axis 로, 모델이 시각적 대상의 x/y 좌표를 직접 반환할 수 있다는 점입니다. 다른 하나는 Resonate with Code 로, 이렇게 얻은 좌표를 실행 가능한 검사로 바꾸는 것입니다. 예를 들어 선 그래프의 한 구간을 잘라내(crop) 그 픽셀에서 색을 직접 읽어 참고 그림과 일치하는지 확인하는 식입니다.

FigMirror의 3D 그림 처리

3D figure 의 경우 FigMirror 는 카메라, 스케일, 표면(surface), 조명(lighting), 그리고 복구 검사(repair check)에 대한 기하 인식(geometry-aware) 프롬프트를 추가합니다. 이를 통해 참고 그림의 3D 구도를 유지하면서도 편집 가능한 matplotlib 코드를 만들어내도록 루프를 돕습니다.

아래는 참고 그림과 FigMirror 가 같은 스타일로 다시 그려낸 출력의 예시입니다.

FigMirror 설치 및 사용법

FigMirror 는 세 가지 방식으로 쓸 수 있습니다.

이미 Claude Code 나 Codex 안에 있다면, 에이전트에게 설치를 맡기는 것이 가장 간단합니다.

Install FigMirror for me: https://github.com/VILA-Lab/FigMirror

업로드, 미리보기, 반복 기록, 보정을 브라우저에서 다루고 싶다면 웹 UI 를 실행합니다. (uv 가 없으면 python3 -m pip install uv 로 먼저 설치합니다.)

git clone https://github.com/VILA-Lab/FigMirror.git && cd FigMirror
bash scripts/install.sh
uv run python scripts/figcopy_serve.py --workspace .artifacts/figmirror-workspace --backend codex

실행 후 브라우저에서 http://127.0.0.1:8765/ 를 엽니다.

웹 UI 없이 에이전트 안에서 스킬로만 쓰려면 설치 스크립트를 직접 내려받아 실행합니다.

curl -fsSL https://raw.githubusercontent.com/VILA-Lab/FigMirror/main/scripts/install.sh | bash

그다음 논문 그림 스크린샷을 첨부하고 데이터를 붙여 넣은 뒤 다음과 같이 요청하면 됩니다.

Use FigMirror to mirror this figure's style with my data.

수동 타깃 선택, Claude 백엔드 사용, 문제 해결 방법은 저장소의 상세 설치 문서에 정리되어 있습니다. 알고리즘과 아키텍처의 자세한 내용은 FigMirror의 method 문서에서 확인할 수 있습니다.

FigMirror 갤러리

FigMirror 갤러리

참고할 그림이 마땅치 않을 때는 FigMirror 가 함께 공개한 갤러리에서 출발할 수 있습니다. 25개 차트 계열에 걸친 139개의 논문 그림이 정리되어 있어, 원하는 스타일을 골라 바로 실험해볼 수 있습니다.

:framed_picture: FigMirror 갤러리 (Hugging Face Space)

:github: FigMirror 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: