papermorph은(는) 무엇을 하나요?
Papermorph는 하나의 엔진에서 세 가지 등급의 북을 만듭니다.
- 레슨, 교과서 PDF 기반: 각 챕터는 짧은 애니메이션 강의 영화로, 그림이 설명을 전달하고, 내레이션이 말하며, 그림 안에서 빠른 확인과 연습이 이루어집니다.
- 그림책, 이야기, 농담 또는 동화 기반: 코드로 그리거나 이미지 모델로 채색한 세트 앞에 종이 인형이 등장하는 짧은 영화로, 목소리, 효과음, 음악이 포함됩니다.
- 영화, 책, 아이디어 또는 사용자의 주장 기반: 발견된 공개 도메인 그림, 단어, 지도를 목소리에 맞춰 움직이며 내레이션을 곁들인 다큐멘터리와, 3분 미만으로 한 가지 요점을 전달하는 피드용 세로형 숏입니다.
모든 북은 SVG 스테이지(1600×900 또는 숏의 경우 900×1600)와 플레이어로 구성됩니다. 비트(beats) 는 내레이션 클립과 시간 지정 동작을 짝짓습니다. 좋은 북이란 살아있고(사물이 무게와 타이밍에 따라 행동하고 변화함), 구성되어 있고(각 순간이 하나의 그림처럼 읽히며, 텍스트는 그것이 지칭하는 것 옆에 있음), 정확하며(움직임, 레이블, 숫자가 모든 순간에 일치함), 부드러운(Firefox를 포함하여 끊김 없이 재생됨) 것입니다.
그림이 어떻게 보여야 하는지는 북과 사용자에 따라 다르므로, 작업은 style.json으로 끝나는 대화로 시작됩니다. 여기에는 사용자의 말, 선택한 외관, 목소리, 각 단계를 수행할 모델, 그리고 나중에 승인된 챕터가 포함됩니다. 모든 챕터는 이를 기준으로 만들어집니다. 각 비트가 어떻게 배치되고 안무되는지는 승인된 챕터와 style.json을 기준으로 판단해야 합니다. 사용자 요청이 기본값을 재정의합니다. 설명, 예제, 그림은 새로 만드십시오. 소스 PDF, 페이지 이미지, 추출된 텍스트는 정적 출력 폴더 밖에 두고 버전 관리에서 제외하십시오(.gitignore: *.pdf, books/*/pages/). 스킬이 만든 챕터는 첫 번째 초안입니다. 검토 라운드와 사용자 시청 이후에 출판됩니다.
어떤 등급
해당 등급의 첫 번째 파일을 읽고, 현재 단계에 필요한 것만 읽으십시오. 아래 모든 파일은 여기에서 링크되어 있습니다. 다른 파일을 찾기 위해 추가 파일이 필요하지 않습니다.
| 사용자가 가져온 것 | 등급 | 시작할 파일 | 그런 다음, 단계에 따라 |
|---|---|---|---|
| 교과서 PDF (강의 교재 포함) | Lessons | lessons.md | intake.md · authoring.md · diagrams.md (tier 1) · scenes.md (tier 2) · assets.md · maths.md (math.js, 수학 부분, LaTeX) · questions.md · figures.md (독자가 움직이는 그림) · checks.md · cover.md · courses.md (인용, 문항 은행, SCORM: 북에서 요구할 때만) |
| 이야기, 농담, 동화, 또는 그림이 있는 이야기책 PDF (자체 스캔 그림: stories.md) | Picture books | stories.md | puppets.md · painting.md (채색된 스타일) · listen-and-find.md (어린이를 위한 찾기 게임) |
| 내레이션 영화로 설명할 책, 아이디어 또는 역사적 시기 | Films: 다큐멘터리 | films.md | documentary.md |
| 3분 미만으로 요점을 전달할 세로형 피드용 콘텐츠 (YouTube Shorts, TikTok, Reels) 또는 재편집할 긴 영화 | Films: 숏 | films.md | shorts.md |
| 영화의 자료, 또는 대부분 지도와 숫자인 아이디어를 독자가 스크롤할 때 그림이 바뀌는 페이지에서 독자의 속도로 읽는 콘텐츠 (스크롤 스토리) | Films: 스크롤 페이지 | films.md | scroll.md |
| 지도 위에서 연도별로 탐험할 역사적 시기: 변하는 국경, 이동하는 사람들 (한 페이지, 자체 플레이어, 엔진을 사용하지 않음) | 탐험 페이지 | explore.md |
모든 등급이 공유하는 핵심 파일:
| 파일 | 내용 |
|---|---|
| core/style.md | 사용자에게 묻는 방법, 모델 단계, 유료 단계 (키, 가격, 원장, 잔액), style.json |
| core/publish.md | new_book.py, 언어, 분, 미리보기 및 전달, 비디오 내보내기 |
| core/sound.md | 내레이션 파일, 목소리, 레벨, 효과음, 음악, 자막 |
| core/review.md | 자신의 작업을 동작으로 보기, 프레임, 부드러움, 감독 라운드 |
| core/team.md | 하위 에이전트로 챕터 만들기, 코디네이터, 병렬 작업자 |
| core/engine.md | 플레이어 및 드로잉 API, 타이밍, 카메라, 성능, 함정 |
books/<book>/style.json이 아직 없을 때는 해당 등급의 인테이크부터 시작하십시오. 이미 주어진 답변과 승인을 재사용하십시오.
참조 북
참조 북은 기준입니다: 따라야 할 수준이지, 복사해야 할 형식이 아닙니다. 각각은 Papermorph 저장소(https://github.com/DozenTwelve/Papermorph)의 site/<slug>/ 폴더이며, https://papermorph.diamonddoge.org/<slug>/에서 제공됩니다. 따라서 스킬이 설치된 환경에서 체크아웃된 소스를 읽거나 두 주소 중 하나에서 가져올 수 있습니다. 등급 파일은 특정 단계에 열어볼 가치가 있는 북의 파일을 지정합니다.
| 등급 | 북 (slug) |
|---|---|
| Lessons | tier 1: Elementary Algebra (elementary-algebra), Math Notebook (math-notebook); tier 2: Science (science); 어두운 잉크의 라이트 보드: physics-notebook |
| Picture books | The Little Horse Crosses the River (little-horse) 및 Little Red Riding Hood (little-red-riding-hood): 모두 코드로 제작, ElevenLabs 목소리 출연, 찾아 듣기 중단 포함, 최신이자 기준; Joke Collection (joke-collection): 채색된 세트, 코드 기반 인형, 에피소드 시리즈; Millions of Cats (millions-of-cats, Wanda Gág, 1928): 스캔한 책 자체 그림을 세트와 인형으로 옮긴 것 (선반에 없음) |
| Documentaries | Madness and Civilization (madness, 푸코 이후, 10분), The Pandemic (pandemic), Shooting an Elephant (shooting-an-elephant, 독자가 참여하는 영화) |
| Shorts | Madness and Civilization 숏 (madness-shorts; 에피소드 1, The Ship이 작업 예제), The Pandemic 숏 (pandemic-shorts) |
Tulip Mania (tulip-mania)는 스킬만으로 만들어진 테스트 영화로, 이 파일 외에는 어떤 도움도 없었습니다. 파일들은 이 과정에서 발생한 문제점들을 인용합니다.
프로젝트 구조
books/<book>/ 비공개: 소스, style.json, 스토리보드, 아트, 리뷰/ (등급 파일이 각각의 항목을 나열)
content/<book>/chNN/ narration.<lang>.json 및 음성 캐시
tools/<book>/ 테스트, 오디오 스크립트, 증거
site/<book>/ 정적 북 (이것만 전달됨)
index.html 표지 및 목차, 또는 시리즈 페이지
lib/ 엔진 (engine.py로 동기화), lib/book.css (이 북의 설정), 해당 등급의 키트, 북 자체 조각
img/ 북의 그림
chNN/index.html, audio/<lang>/ 챕터 또는 에피소드, 비트 MP3 및 timings.js (영화 및 그림책: audio/sfx/, audio/bgm/)
SKILL은 이 스킬의 절대 경로입니다. <book>은 북 슬러그, <lang>은 기본 언어 코드입니다. new_book.py는 모든 등급의 북 폴더를 시작합니다(core/publish.md).
필요: uv, ffmpeg/ffprobe, Edge TTS 네트워크 접근 (또는 로컬 Kokoro), engine.py를 위한 github.com 접근 (저장소의 engine/ 폴더가 없을 경우), 사용자가 선택한 유료 단계에만 필요한 OpenRouter 키 (paint.py, eleven.py, video.py; paint_openai.py는 OpenAI 키 사용), Playwright 브라우저 (uv run --with playwright playwright install chromium firefox; Playwright Chromium이 실행되지 않으면 CHROME 환경 변수에 설치된 Chrome, Chromium, Brave 또는 Edge 경로 설정). 미리보기: python3 SKILL/scripts/serve.py 8765 site (브라우저 캐싱 없음).
스크립트
모두 SKILL/scripts/에 있습니다. 각 스크립트는 docstring 첫 줄에 명시된 패키지와 함께 uv run --with …으로 실행할 때 --help로 사용법을 출력합니다 (패키지 없이 --help를 실행해도 import 단계에서 멈춥니다).
| 대상 | 스크립트 |
|---|---|
| 모든 북 | new_book.py 북 폴더 시작 · serve.py 캐싱 없는 미리보기 · engine.py 엔진을 북에 동기화 · tts.py 내레이션 및 단어 시간 · eleven.py ElevenLabs 동일 기능 (유료) · level.py 음량 균일화 · lint.py 정적 검사 · check.py Chromium 및 Firefox에서 페이지 오류, 콘솔 경고, 비트 길이 확인 · shot.py 비트 스크린샷 · strip.py 스토리보드 시트 및 모션 스트립 · still.py 움직임이 없는 구간 · playlog.py 그림과 함께 사운드 및 자막 · perf.py Firefox 프레임 시간 · export.py MP4 및 .srt · sfx.py 합성 효과음 |
| Lessons | outline.py 및 split_pages.py 페이지 맵 및 챕터 텍스트 · check_blank.py 빈 시작 부분 · overlap.py 텍스트를 통한 화살표 · sprites.py 이미지 처리 단계 · refs.py 확인된 인용 · items.py 문항 은행 · scorm.py LMS 패키지 |
| Picture books | mouths.py 입 모양 · join.py 장면당 하나의 클립 · bake_sets.py 세트 레이어 · bake_puppets.py 인형 비트맵 · paint.py / paint_openai.py 이미지 모델 그림 · painted.py 북에 배치 · lift.py 스캔한 책 그림에서 인물, 세트, 글자 추출 · cutout.py 키 컬러 이미지 모델 그림을 인형 조각과 소품으로 자르기 |
| Pages you explore | topo.py Natural Earth에서 지도의 TopoJSON · explore.py 탐험 가능한 지도의 검사, 샷, Firefox 타이밍 및 내레이션 파일 |
| Films | commons.py 공개 도메인 그림 및 녹음파일과 라이선스 · prep.py 인쇄, 라인, 전체 블리드 처리 · trace.py 스스로 그려지는 그림 · video.py 정지 이미지에서 클립 · frames.py 처리된 프레임의 클립 · geo.py Natural Earth에서 지도 키트 데이터 · music.py 영화에 맞춰 자른 트랙, 목소리 사이의 배경 음악, 각 라인에 대한 음악, 배경, 효과음 · safe.py 세로형 영화의 안전 영역 밖 단어 |
silence.py, ledger.py (하나의 비용 원장: 날짜, 챕터, 파일, 모델, 내용, 비용) 및 browsers.py는 다른 스크립트가 임포트하는 헬퍼입니다.
컨텍스트
- 메인 대화에서 사용자와 대화하십시오: 인테이크, 모든 시트와 파일럿의 선택. 하위 에이전트를 사용할 수 있을 때는 챕터를 팀으로 만들고, 각 단계는 사용자가 선택한 모델 위에서, 메인 대화를 파일럿의 코디네이터로 사용합니다 (core/team.md 참조). 하위 에이전트가 없으면 현재 에이전트에서 파일 기반 상태로 동일한 단계를 실행하십시오.
- 필요할 때 엔진 API를 사용하고 개별 함수를 검사하십시오. 키트 파일을 복사할 때는 전체 소스를 지침으로 읽지 마십시오.
style.json을 최신 상태로 짧게 유지하십시오. 챕터 상태, 오류, 과거 피드백은chapters.md및chapters/chNN.md에 보관하십시오.