기존의 상태 비저장(Stateless) 이미지 생성 워크플로우 한계를 극복하기 위해 상태 기반(Stateful) 이미지 편집 스킬을 개발함
Google의 Gemini Interactions API와 Nano Banana 2 Lite (gemini-3.1-flash-lite-image) 모델을 활용하여 이미지 컨텍스트를 유지하며 반복 편집을 지원함
Model Context Protocol (MCP) 서버와 Claude Code 스킬을 결합하여 코드 에이전트(Code Agent)가 이미지 생성 및 수정을 자연스럽게 수행하도록 함
Gemini의 Interactions API는 상태 저장(Stateful) 기능을 통해 이미지 편집의 새로운 패러다임을 제시함. 사용자가 이미지 생성 후 '네온 라멘 간판 추가'와 같은 후속 요청을 보내면, 모델은 이전 턴의 시각적 컨텍스트(Visual Context)를 유지하며 변경 사항만 반영함. 이는 픽셀 연속성(Pixel Continuity)과 스타일 일관성(Style Consistency)을 보장하여, 매번 전체 장면을 재묘사해야 하는 기존의 상태 비저장(Stateless) 방식의 불편함을 해소함. 각 편집 턴마다 새로운 interaction ID가 발급되며, 이를 통해 세션의 시각적 상태가 Google 서버에 지속적으로 관리(Server-side Persistence)됨.
Model Context Protocol (MCP)은 AI 어시스턴트가 다양한 도구와 데이터에 접근하는 방식을 표준화함. 기존에는 각 어시스턴트별로 서비스 통합을 위한 맞춤형 코드가 필요했지만, MCP는 단일 MCP 서버 구현으로 여러 클라이언트(Claude Code, Claude Desktop 등)에서 재사용 가능하게 함. nb2lite-agent 서버는 JSON-RPC를 통해 통신하며, 'generate_image', 'edit_image', 'edit_local_image', 'get_help'의 네 가지 핵심 도구를 제공함. 이 표준화된 인터페이스는 개발 복잡성을 크게 줄이고(Reduced Complexity), 모델이 외부 기능을 함수처럼 호출할 수 있도록 지원함.
nb2lite-skill-claude는 사용자가 Claude Code 환경에서 Gemini 기반 이미지 편집 기능을 쉽게 활용할 수 있도록 설계됨. 설치는 플러그인 마켓플레이스, 소스 코드 클론, 프로젝트 내 설치, Docker 등 다양한 경로를 지원하여 사용자 편의성을 높임. 특히, `init.sh` 스크립트나 `make init` 명령어를 통해 종속성 설치 및 MCP 서버 등록, API 키 설정을 자동화함. API 키는 환경 변수(GEMINI_API_KEY) 또는 별도 파일(~/gemini.key)로 관리되며, 서버는 이를 읽어와 Gemini API와 통신함. 이러한 간편한 설치 과정(Simplified Installation)은 기술 도입 장벽을 낮추는 데 기여함.
상태 기반 이미지 편집은 강력하지만, 몇 가지 고려사항이 존재함. 첫째, 종횡비(Aspect Ratio)는 생성 시점에 고정되며 중간에 변경 시 픽셀 연속성이 저하될 수 있어, edit_image 도구는 종횡비 변경을 지원하지 않음. 둘째, 'thinking_level' 파라미터는 'low'(빠른 초안)와 'high'(정확한 렌더링)로 구분되며, 텍스트 렌더링 정확도는 'high' 레벨에서 크게 향상됨. 셋째, 각 편집 턴마다 새로운 interaction ID가 발급되므로, 이전 ID를 잘못 사용하면 세션이 분기되는 버그가 발생할 수 있어 최신 ID를 사용하는 것이 중요함. 이러한 제약 조건은 안정적인 편집 경험(Stable Editing Experience)을 위해 필수적으로 관리되어야 함.
본 프로젝트는 'Dogfooding' 원칙을 철저히 따르며, 개발팀이 직접 사용하며 피드백을 반영함. 기사 커버 이미지 생성부터 개발 세션 내 스킬 활용까지, 실제 사용 환경에서의 결과물을 그대로 보여줌으로써 도구의 신뢰성을 입증함. 특히, 'high' thinking level을 사용한 커버 이미지 생성 시 정확한 텍스트 렌더링과 상태 기반 편집 흐름을 시각적으로 표현한 점은 주목할 만함. 이는 검증된 결과(Verified Output)를 제공하며, 사용자에게 실제 적용 가능성을 명확히 전달하는 효과를 가짐.