Communitygithub.com

sprite-stage

캐릭터 참고 시트와 참고 영상을 바탕으로 독창적인 2D 스프라이트 애니메이션을 제작합니다. 2D 카툰, 스프라이트 필름, 캐릭터 애니메이션, OpenVoice 유치원 목소리, Sprite Stage 설정 요청 시 사용하세요.

sprite-stage란 무엇인가요?

Sprite Stage는 캐릭터 참고 이미지와 참고 영상만으로 완전히 독창적인 2D 스프라이트 애니메이션을 제작할 수 있는 AI 에이전트 스킬입니다. 사용자가 '2D 카툰', '스프라이트 애니메이션', '캐릭터 애니메이션' 등을 요청할 때 활성화되며, OpenCode, Claude, Codex, Cursor 등 여러 플랫폼에서 실행 가능합니다. 이 스킬은 setup.sh 한 번의 실행으로 환경이 준비되며, 캐릭터별 참고 이미지로부터 스프라이트 시트를 생성하고, OpenVoice V2와 MeloTTS를 이용한 음성 합성, 그리고 맞춤형 타임라인 렌더링을 통해 완성도 높은 2D 영화를 제작합니다. 특히 무료 이미지 도구를 사용하면 스프라이트 제작 비용이 $0이며, 일부 플랫폼의 무료 모델을 활용하면 전체 제작 비용을 최소화할 수 있습니다. 주요 기능으로는 참고 영상의 전제만 차용하여 완전히 새로운 대본과 캐릭터를 창작하는 '오리지널리티 유지' 원칙과, 캐릭터별 고유한 음성 톤을 부여하는 음성 설정 등이 포함되어 있습니다.

지원 대상✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI✓OpenCode
npx skills add https://github.com/rizwanaabbas/sprite-stage/tree/main/.cursor/skills/sprite-stage

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Sprite Stage

설정 명령어 하나면 됩니다. 그런 다음 캐릭터 시트와 참고 영상으로 독창적인 2D 영화를 만드세요.

첫 번째 작업

.ready 파일이 없으면 다음을 실행하고 "Sprite Stage is ready." 메시지를 기다리세요.

bash setup.sh

직접 실행하세요. 사용자에게 패키지 목록을 건네주지 마세요. 이 스크립트는 다시 실행해도 안전합니다.

이미지 재생(그림 재생)은 시스템 Python을 사용합니다. 새 음성 생성은 스크립트가 만든 가상 환경을 사용합니다.

python3 render.py
.venv/bin/python voices.py
python3 render.py

완성된 샘플은 renders/long-slide.mp4입니다.

오리지널리티 유지 사항

참고 영상은 장소, 동작 순서, 분위기라는 전제만 제공합니다. 사용자 자신의 캐릭터 이름으로 새 대본을 작성하세요. 원본 제목, 캐릭터 이름, 로고, 가사, 또는 음성 대사를 프롬프트, 화면 텍스트, 또는 사운드트랙에 복사하지 마세요.

포함된 캐릭터에 대한 의상 및 음성 설정은 characters/CAST.md에 있습니다. 프롬프트 예시는 examples/prompts.md에 있습니다.

새 영화 만들기

  1. 각 캐릭터의 참고 이미지를 characters/ 디렉토리에 넣으세요. 파일 하나당 한 명의 캐릭터입니다. 정면 전신, 단색 배경.
  2. 스프라이트 시트를 sprites/{name}-{action}.png로 생성하세요. 샘플 렌더러에서 사용하는 동작: walk, front, talking, back, sitting. 시트는 네 개의 셀이 나란히 마젠타(#FF00FF) 배경에 배열됩니다.

무료 스프라이트

기본적으로 무료 이미지 도구를 사용하세요. 그러면 스프라이트 이미지 비용이 $0입니다. COSTS.md의 에이전트 토큰 테이블은 여전히 적용됩니다.

python3 scripts/free_sprites.py --provider prompt --name lina --action walk,front,back,talking,sitting

sprites/prompts/ 디렉토리의 각 파일은 첨부할 두 이미지와 붙여넣을 프롬프트를 지정합니다. 샘플 프롬프트는 examples/prompts.md에 있습니다. 도구가 생성한 이미지를 sprites/{name}-{action}.png로 저장하세요.

GEMINI_API_KEY가 이미 환경 변수에 설정되어 있는 경우에만 Gemini를 사용하세요. API 키를 묻거나, 출력하거나, 저장소에 기록하지 마세요.

python3 scripts/free_sprites.py --provider gemini --name lina --action walk

해당 모델이 키의 무료 허용 범위를 벗어나면 중단하고 --provider prompt를 사용하세요.

  1. voices.py에 원본 대사를 작성한 다음 .venv/bin/python voices.py를 실행하세요. 피치는 파일의 실제 샘플 레이트를 사용하며, 각 대사는 입이 전체 대사 동안 열려 있을 수 있도록 초당 약 두 단어 속도로 느려집니다.
  2. render.py의 NAMES와 HEIGHT를 캐스트에 맞게 설정하세요. 타임라인을 구성하여 한 사람만 올라가고 한 사람만 미끄러지도록 하세요. python3 render.py를 호출하세요. 입은 duration + 0.2초 동안 열려 있습니다. 미끄럼틀 환호성은 미끄러짐이 시작될 때 시작됩니다.

의상을 보호하는 스프라이트 규칙

  • 강한 마젠타만 키잉(keying)하세요: 빨간색 > 200, 초록색 < 100, 파란색 > 200. 느슨한 크로마 키는 분홍색 천에 구멍을 냅니다.
  • 얼굴이라는 이유만으로 연결된 영역을 삭제하지 마세요. 약 1800픽셀 이상의 구성 요소는 유지하세요.
  • 걷기 셀은 하나의 타이밍을 공유합니다: 긴 보폭, 발 모으기, 반대 보폭, 발 모으기.
  • 측면은 오른쪽을 바라봅니다. 캐릭터가 왼쪽으로 걸을 때 렌더러에서 미러링하세요.
  • 라이더를 미끄럼틀 경로에 앉히고 다리를 미끄럼틀 가장자리로 가리세요. 몸체를 미끄럼틀 위에 떠 있게 하지 마세요.

음성

OpenVoice V2는 톤을 전환합니다. MeloTTS는 영국 영어 기반으로 단어를 발화합니다. 어린이는 성인보다 음높이가 높고 약간 더 빠릅니다. 각 인물에게 서로 다른 목표 톤을 부여하세요. 모든 캐릭터에 하나의 피치를 적용하지 마세요.

대사가 입 창(window)보다 여전히 짧으면 MeloTTS 속도를 낮추거나 atempo를 1 미만으로 사용하여 늘리세요. 빈 공간을 채우기 위해 대사를 빠르게 하지 마세요.

비용 및 시스템

1분 분량 영화는 스프라이트가 이미 존재할 경우 약 300k500k 입력 토큰과 60k100k 출력 토큰이 소요되며, 스프라이트를 함께 만들고 한 번 수정할 경우 약 1.0M1.5M 입력 및 200k300k 출력 토큰이 소요됩니다. OpenCode, Claude, Codex, Cursor의 달러 가격과 OpenVoice CPU 요구 사항(8GB RAM, Python 3.11~3.13, GPU 불필요)은 COSTS.md에 있습니다.

사용자가 영화 비용을 0으로 만들고 싶어하면 OpenCode에서 무료로 표시된 모델을 사용하여 이 스킬을 실행하고, --provider prompt로 시트를 만드세요. 해당 에이전트 라인은 영화가 일일 무료 모델 할당량 내에 있는 동안 $0입니다. 동일 앱의 유료 모델은 해당 제공업체에 청구됩니다.

크레딧

OpenVoice와 MeloTTS는 MyShell의 MIT 라이선스 소프트웨어입니다. ffmpeg가 프레임을 그립니다. PyTorch가 음성 모델을 실행합니다. 체크포인트는 공개 myshell-ai/OpenVoiceV2 모델에서 제공됩니다. 전체 링크는 README에 있습니다.

관련 스킬