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에 있습니다.
새 영화 만들기
- 각 캐릭터의 참고 이미지를
characters/디렉토리에 넣으세요. 파일 하나당 한 명의 캐릭터입니다. 정면 전신, 단색 배경. - 스프라이트 시트를
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를 사용하세요.
voices.py에 원본 대사를 작성한 다음.venv/bin/python voices.py를 실행하세요. 피치는 파일의 실제 샘플 레이트를 사용하며, 각 대사는 입이 전체 대사 동안 열려 있을 수 있도록 초당 약 두 단어 속도로 느려집니다.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에 있습니다.