논문 일러스트레이션 Image2은(는) 무엇을 하나요?
각 리뷰어 슬롯 전에 선택 가능한 리뷰어를 따르세요: 호출 해결 →
.aris/reviewer.json→ Claude Code 기본값 (Codex MCP)reviewer_route.py를 통해 정식 도우미 해결기를 사용하여 이 슬롯의 계층, 새로운 컨텍스트, 소스/이미지 입력 및 결정적 게이트를 유지합니다. 아래 Codex 예제/핀은backend=codex에만 적용됩니다. 다른 경로는 자체 첫 호출/응답 계약을 사용합니다. 경로와 실제 반환된 ID를 저장하세요. 사용할 수 없는 선택은REVIEW_UNAVAILABLE입니다. 실제 계열/완료/범위에서 수락을 분류합니다. 전달 호출 리뷰어/모델/노력 재정의를 리뷰어를 포함한 하위 항목에 적용합니다. 생성 워커는 변경되지 않습니다.
Claude를 플래너/리뷰어로 사용하고 로컬 Codex 앱-서버 MCP 브리지를 래스터 렌더러로 사용하여 학술 출판 품질의 논문 그림을 생성합니다.
핵심 설계 철학
┌──────────────────────────────────────────────────────────────────────────┐
│ 다단계 반복 워크플로우 │
├──────────────────────────────────────────────────────────────────────────┤
│ │
│ 사용자 요청 │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Claude │ ◄─── 1단계: 요청 파싱, 초기 프롬프트 생성 │
│ │ (플래너) │ - 구성 요소, 레이블 및 데이터 흐름 추출 │
│ │ │ - 논문 준비 그림 개요 작성 │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │Claude/Codex │ ◄─── 2단계: 레이아웃 설명 최적화 │
│ │ 레이아웃 │ - 구성 요소 위치 세분화 │
│ │ 리뷰 │ - 간격 및 그룹화 최적화 │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │Claude/Codex │ ◄─── 3단계: CVPR/NeurIPS 스타일 검증 │
│ │ 스타일 │ - 팔레트, 화살표 및 레이블 표준 확인 │
│ │ 확인 │ - 렌더링 전 프롬프트 강화 │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ codex-image2│ ◄─── 4단계: 브리지를 통한 네이티브 이미지 생성 │
│ │ MCP 브리지 │ - generate_start / generate_status 호출 │
│ │ + 앱-서버 │ - 네이티브 imageGeneration 출력만 수락 │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Claude │ ◄─── 5단계: 엄격한 시각적 리뷰 + 점수 (1-10) │
│ │ (리뷰어) │ - 논리, 레이블, 화살표 및 미적 요소 확인 │
│ │ 엄격하게! │ - 불명확하거나 논문 준비가 안 된 그림 거부 │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ 점수 ≥ 9? ──예──► 수락 및 출력 │
│ │ │
│ 아니요 │
│ │ │
│ ▼ │
│ 구체적인 개선 피드백 생성 ──► 2단계로 루프백 │
│ │
└──────────────────────────────────────────────────────────────────────────┘
상수
-
RENDERER =
codex-image2— 로컬 Codex 앱-서버를 통해 노출되는 네이티브 이미지 생성 브리지 -
OPTIONAL_TEXT_CRITIC =
mcp__codex__codex— 레이아웃/스타일 확인을 위한 선택적 텍스트 전용 2차 의견 -
MAX_ITERATIONS = 5 — 최대 세분화 라운드
-
TARGET_SCORE = 9 — 최소 허용 점수 (1-10)
-
OUTPUT_DIR =
figures/ai_generated/— 출력 디렉토리 -
TEXT_LANGUAGE =
English— 사용자가 달리 요청하지 않는 한 기본 그림 텍스트 언어 -
NATIVE_IMAGE_REQUIREMENT =
strict— 네이티브imageGeneration출력만 수락; 셸/Python 대체 방식 거부 -
IMAGE2_HELPER — 정식 이름
paper_illustration_image2.py,shared-references/integration-contract.md§2 (정책 A — 스킬-로컬 게이트)에 따라 해결됩니다. 3.2단계 (아키텍처 C)에서 정식 구현을skills/paper-illustration-image2/scripts/로 이동했습니다.tools/paper_illustration_image2.py는os.execv심(shim)으로 남아 있어 레거시 해결 계층이 재설치 없이 계속 작동하도록 합니다. 다음을 통해 해결:# 계층 0: 자체 포함 (CC 1.0+는 $CLAUDE_SKILL_DIR을 노출). IMAGE2_HELPER="" if [ -n "${CLAUDE_SKILL_DIR:-}" ] && [ -f "$CLAUDE_SKILL_DIR/scripts/paper_illustration_image2.py" ]; then IMAGE2_HELPER="$CLAUDE_SKILL_DIR/scripts/paper_illustration_image2.py" fi # 계층 1-4: tools/paper_illustration_image2.py의 심을 통한 공유 런타임 체인. if [ -z "$IMAGE2_HELPER" ]; then cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1 if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true fi if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true fi IMAGE2_HELPER=".aris/tools/paper_illustration_image2.py" [ -f "$IMAGE2_HELPER" ] || IMAGE2_HELPER="tools/paper_illustration_image2.py" [ -f "$IMAGE2_HELPER" ] || { [ -n "${ARIS_REPO:-}" ] && IMAGE2_HELPER="$ARIS_REPO/tools/paper_illustration_image2.py"; } [ -f "$IMAGE2_HELPER" ] || IMAGE2_HELPER="" fi [ -z "$IMAGE2_HELPER" ] && { echo "오류: paper_illustration_image2.py를 확인할 수 없습니다 (계층 0: \$CLAUDE_SKILL_DIR/scripts/; 계층 1-4: .aris/tools/, tools/, \$ARIS_REPO/tools/, \$ARIS_REPO/tools/ via ~/.aris/repo)." >&2 echo " /paper-illustration-image2를 진행할 수 없습니다. 해결 방법: bash tools/install_aris.sh 또는 smart_update.sh를 다시 실행하거나(~/.aris/repo 새로 고침), \$ARIS_REPO/skills/paper-illustration-image2/scripts/에서 정식 스크립트를 복사하세요." >&2 exit 1 }아래 모든 호출은
python3 "$IMAGE2_HELPER" <하위 명령어>를 사용합니다.
CVPR/ICLR/NeurIPS 최상위 학회 스타일 가이드
"CVPR 스타일"이 실제로 의미하는 것:
시각적 표준
- 깨끗한 흰색 배경 — 매우 미묘하지 않다면 장식용 패턴이나 그라데이션 없음
- 산세리프 글꼴 — Arial, Helvetica 또는 유사하게 깔끔한 논문 친화적 타이포그래피
- 미묘한 색상 팔레트 — 무지개 색상이 아닌 3-5가지 조화로운 색상 사용
- 인쇄 친화적 — 흑백으로도 이해할 수 있어야 함
- 전문적인 테두리 — 얇거나 중간 정도, 깔끔하고 일관성 있게
레이아웃 표준
- 수평적 흐름 — 파이프라인의 기본은 왼쪽에서 오른쪽
- 명확한 그룹화 — 관련 모듈에 간격이나 미묘한 그룹화 상자 사용
- 일관된 크기 — 유사한 구성 요소는 비슷한 크기를 가져야 함
- 균형 잡힌 여백 — 비좁거나 지나치게 드문 레이아웃 모두 피함
화살표 표준 (가장 중요)
- 두꺼운 선 — 화살표는 논문 스케일링 후에도 보여야 함
- 명확한 화살촉 — 크고 명확한 화살촉
- 어두운 색상 — 검정색 또는 어두운 회색 화살표 선호
- 레이블 포함 — 중요한 화살표에는 무엇이 흐르는지 표시
- 교차 없음 — 가능하면 교차를 피하도록 그림 재구성
- 올바른 방향 — 화살표는 올바른 대상을 가리켜야 함
시각적 매력 (학술 전문가 스타일)
목표: 보수적이지도 화려하지도 않은, 균형 찾기
✅ 있어야 할 것
- 미묘한 그라데이션 — 부드러운 동일 계열 그라데이션은 허용됨
- 둥근 모서리 — 현대적이지만 절제된 둥근 블록
- 명확한 계층 구조 — 주요 모듈은 더 크게, 보조 모듈은 더 작게
- 일관된 색상 코딩 — 모듈 유형과 색상 간의 안정적인 매핑
- 전문적인 타이포그래피 — 읽을 수 있는 크기 계층 구조의 깔끔한 레이블
❌ 피해야 할 것
- ❌ 무지개 그라데이션
- ❌ 무거운 그림자
- ❌ 3D 원근 효과
- ❌ 발광 효과
- ❌ 장식용 클립아트 아이콘
- ❌ 논문 준비가 아닌 화려한 슬라이드 데크 스타일링
✓ 이상적인 효과
- 의도적이고 전문적이며 즉시 읽을 수 있는 느낌
- 장식적이지 않으면서 적당한 시각적 매력
- 최상위 학회 논문 그림에 적합한 느낌
- PDF 스케일링 및 흑백 인쇄에서도 유지됨
피해야 할 것 (중요)
- ❌ 가늘고 실 같은 화살표
- ❌ 레이블이 없거나 모호한 연결
- ❌ 작고 읽을 수 없는 텍스트
- ❌ 계층 구조가 없는 평평하고 지루한 상자 수프
- ❌ 그림자/발광/아이콘이 있는 과장된 그림
- ❌ 잘못된 화살표 방향
범위
| 그림 유형 | 품질 | 예시 |
|---|---|---|
| 아키텍처 다이어그램 | 우수 | 모델 아키텍처, 파이프라인, 인코더-디코더 |
| 방법 일러스트레이션 | 우수 | 개념 다이어그램, 알고리즘 순서도 |
| 개념적 그림 | 좋음 | 비교 다이어그램, 분류 트리 |
해당되지 않음: 통계 플롯 (/paper-figure 사용), 결정적 벡터 토폴로지 그림 (/figure-spec 선호), 사실적인 장면
워크플로우: 모든 단계를 반드시 실행해야 함
0단계: 사전 점검
시작하기 전에 이 체크리스트를 명시적으로 렌더링하세요:
📋 paper-illustration-image2 통합 체크리스트:
[ ] 1. python3 "$IMAGE2_HELPER" preflight --workspace <cwd> --json-out figures/ai_generated/preflight.json
[ ] 2. 렌더링 전에 preflight JSON이 ok=true인지 확인
[ ] 3. mcp__codex-image2__generate_start + generate_status를 통해 렌더링
[ ] 4. python3 "$IMAGE2_HELPER" finalize --workspace <cwd> --best-image <best_png>를 통해 마무리
[ ] 5. python3 "$IMAGE2_HELPER" verify --workspace <cwd> --json-out figures/ai_generated/verify.json을 통해 아티팩트 확인
figures/ai_generated/가 없으면 생성합니다.- 요청이 래스터 일러스트레이션에 적합한지 확인합니다:
- 아키텍처 다이어그램
- 개념적 방법 그림
- 워크플로우 다이어그램
- 사용자가 달리 요청하지 않는 한 영어 그림 텍스트를 선호합니다.
- 실행:
python3 "$IMAGE2_HELPER" preflight \
--workspace <cwd> \
--json-out figures/ai_generated/preflight.json
- 사전 점검이
ok=true가 아니면 중단하고 명확히 알립니다.
1단계: Claude가 그림 계획
사용자 요청을 완전히 지정된 이미지 프롬프트로 변환합니다. 포함할 내용:
- 그림 유형
- 정확한 모듈 / 단계
- 흐름 방향
- 표시할 레이블
- 데이터 흐름 화살표
- 스타일 제약 조건
- 피해야 할 사항
입력이 방법 노트나 논문 섹션인 경우, 최종 이미지 프롬프트를 작성하기 전에 먼저 깔끔한 그림 개요로 요약합니다.
2단계: 레이아웃 최적화
이 단계는 필수입니다. 렌더링 전에 프롬프트를 구체적인 레이아웃 계획으로 세분화합니다:
- 정확한 모듈 순서
- 간격 및 그룹화
- 상대적 모듈 중요도
- 화살표 라우팅 및 충돌 가능 지점
선택한 텍스트 리뷰 경로를 사용할 수 있는 경우 레이아웃에 대한 짧은 2차 의견을 요청할 수 있지만, 실행자는 외부 비평가 없이도 이 단계를 완료해야 합니다.
Codex 레이아웃 비평을 다음에 사용합니다:
- 누락된 구성 요소
- 혼란스러운 레이아웃
- 약한 흐름 계층 구조
- 화살표 방향의 모호성 또는 혼잡 가능성
3단계: 스타일 검증
이 단계도 필수입니다. 렌더링 전에 의도된 논문 스타일에 대해 프롬프트를 확인합니다:
- 팔레트가 절제되고 학술적임
- 화살표가 두껍고 어두우며 읽기 쉬움
- 레이블이 간결하고 달리 요청하지 않는 한 영어임
- 그림이 흑백/인쇄에서도 명확하게 읽힘
- 발광, 무지개 그라데이션 또는 슬라이드 데크 장식이 들어가지 않음
선택한 텍스트 리뷰 경로를 사용할 수 있는 경우 텍스트 전용 스타일 감사를 요청할 수 있지만, 차단하지는 마십시오.
4단계: 브리지를 통해 생성
다음과 함께 mcp__codex-image2__generate_start를 호출합니다:
prompt: 최종 이미지 프롬프트cwd: 현재 프로젝트 루트 또는 논문 워크스페이스outputPath:figures/ai_generated/figure_v1.pngsystem:학술 논문 그림. 선명한 영어 레이블 선호.와 같은 짧은 명령timeoutSeconds:180과 같은 제한된 렌더링 타임아웃
그런 다음 mcp__codex-image2__generate_status를 제한된 대기와 함께 호출하여:
done=true및status=completed, 또는done=true및status=failed
생성에 실패하면 브리지 오류를 숨기지 않고 직접 보고합니다.
5단계: 출력물 검토
엄격한 체크리스트로 생성된 이미지를 검토합니다:
- 모든 주요 구성 요소가 있는가?
- 논리적 흐름이 명확한가?
- 레이블을 읽을 수 있는가?
- 화살표가 올바른 방향을 가리키는가?
- 그림이 슬라이드보다 논문 준비가 된 것처럼 보이는가?
1-10점으로 점수를 매깁니다.
6단계: 필요한 경우 세분화
점수가 9점 미만이면 목표 지향적인 세분화 프롬프트를 작성합니다:
[잘린 부분]