一键导入
scene-pipeline
ChatterBox 씬 에셋 파이프라인 — 화풍 고정 이미지 생성(gpt-image edits+레퍼런스)→WebP→매니페스트 등재, 입장 영상(Seedance i2v→Topaz 업스케일→WebM). 새 씬/시간대 variant/씬 영상을 만들 때 사용.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
ChatterBox 씬 에셋 파이프라인 — 화풍 고정 이미지 생성(gpt-image edits+레퍼런스)→WebP→매니페스트 등재, 입장 영상(Seedance i2v→Topaz 업스케일→WebM). 새 씬/시간대 variant/씬 영상을 만들 때 사용.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
ChatterBox 허브 맵 파이프라인 — 광장/구역 블록·내부 관(館) 원화 생성→핫스팟·앵커 캘리브레이션→manifest 배선→유도 3단 인터랙션→E2E. 새 맵(밤 variant·신규 구역 블록·새 내부 관·다른 씬 허브)을 만들 때 사용. 화풍 고정 생성은 scene-pipeline 참조.
Vtube AUTORIG rig 를 ChatterBox 아바타로 배포(Storage 업로드 + 매니페스트 등록)하고 네이티브 렌더러로 실렌더 검증하는 하네스. character.json+mini_rig.json 병합·_mini_rig 렌더필수·헤드리스 same-origin 스테이징 등 매번 재발견하던 함정을 고정. "아바타 배포/추가/넣기/Vtube 아바타 온보딩/새 캐릭터 슬롯" 요청 시.
Vtube AUTORIG rig 를 ChatterBox 아바타로 배포(Storage 업로드 + 매니페스트 등록)하고 네이티브 렌더러로 실렌더 검증하는 하네스. character.json+mini_rig.json 병합·_mini_rig 렌더필수·헤드리스 same-origin 스테이징 등 매번 재발견하던 함정을 고정. "아바타 배포/추가/넣기/Vtube 아바타 온보딩/새 캐릭터 슬롯" 요청 시.
ChatterBox 음원 자산 파이프라인 — BGM/앰비언트/SFX 를 프롬프트로 생성(fal Stable Audio 2.5 · CassetteAI SFX) → 주인님 청취 게이트 → loudnorm+AAC → public/sounds/ 안착. "BGM 만들어", "음원 생성", "효과음 뽑아", "앰비언트", "사운드 추가" 요청 시. 2026-07-13 G6 BGM 3곡 세션에서 밟은 함정을 고정.
구현 완료 슬라이스를 프로덕션에 올리고 라이브로 실증한 뒤 문서·커밋까지 닫는 일괄 마감 절차 — db push(서울 pooler)·함수 deploy(재시도·실측)·CF Pages·프로드 통합/2탭 E2E·백로그 §0/GAP/drift 문서 마감. "배포하고 라이브테스트", "라이브로 올려", "페이즈 마감", "배포 몰아치기" 요청 시.
ChatterBox 프론트(Vite SPA)를 Cloudflare Pages 에 배포하고 실렌더로 검증하는 하네스 — 2계정 non-interactive 선택·프로젝트 선생성·account_id env 전용·번들 비밀키 감사·SPA폴백·헤드리스 React 마운트 확인 등 매번 재발견하던 CF 배포 함정을 고정. "CF 배포/프론트 배포/pages 배포/배포판 검증/재배포/ㄱ 배포" 요청 시.
| name | scene-pipeline |
| description | ChatterBox 씬 에셋 파이프라인 — 화풍 고정 이미지 생성(gpt-image edits+레퍼런스)→WebP→매니페스트 등재, 입장 영상(Seedance i2v→Topaz 업스케일→WebM). 새 씬/시간대 variant/씬 영상을 만들 때 사용. |
페이지 배경·입장 영상 에셋의 생성→검증→배선 전 과정. SSOT: docs/design/scene-prompts.md(프롬프트·세계관 규정) + src/scenes/manifest.ts(배선).
pickTimeVariant(06templates/gen-image-styleref.py 패턴 (경로·프롬프트만 교체):
images/edits(multipart, image[])에 ~/Documents/채터박스/v2/login_splash.png 원본을 레퍼런스로 물리고 프롬프트 앞에 "Using the exact same painting style, color palette, lighting and level of painterly detail as this reference artwork, paint a different scene from the same world:" — edits 의 "전역 재생성" 특성(매팅엔 독)을 화풍 복제에 역이용.wide 16:9 composition. 모델 gpt-image-2→gpt-image-1 폴백, size 1536x1024, quality high. 소요 ~160s.background:"transparent" API 파라미터로 강제(프롬프트만으론 불충분).~/Documents/채터박스/v2/ 이중 저장(원본 계보 보관). 루트=REF·판정 인박스, 채택 후 masters/ 등 분류 — 규칙은 v2/README.md(2026-07-13 정리).검증(성역): 생성물 육안(Read) — 문화축·구도·화풍 대조 → 주인님 톤 콜 소재로 실렌더 스크린샷까지.
python3 -c "from PIL import Image; Image.open('원본.png').save('public/scenes/<slug>/<file>.webp','WEBP',quality=88,method=6)"
q88 ≈ 85~87% 절감(실측 3.1MB→522KB). src/scenes/manifest.ts variants 에 등재 — 소비자(AuthShell·LobbyPage)는 무변경. 새 소비 화면은 "배경+가독 스크림만"이 v1 규칙(기능 UI·계약 무변경).
templates/gen-video-i2v.py → templates/upscale-topaz.py:
bytedance/seedance-2.0/fast/image-to-video): fal 스토리지 업로드(initiate→PUT) 후 image_url=원화 → 0번 프레임이 그 그림 픽셀 그대로(이음새 ①). duration:5, resolution:"720p"(fast 최대), generate_audio:false. 프롬프트에 점진 시작 문장("The motion begins almost imperceptibly — the first moments are nearly still, then …") 필수(이음새 ②). 큐 폴링 ~260s.fal-ai/topaz/upscale/video): upscale_factor:2, target_fps:48 → 2560×1440/48fps. 가격: 출력 초당 — ≤720p $0.01 / ≤1080p $0.02 / 초과 $0.08, 60fps만 2배(48fps는 기본요금). 5s×$0.08≈$0.40.ffmpeg -c:v libvpx-vp9 -crf <N> -b:v 0 -deadline good -cpu-used 2 -an — 1440p 는 crf45≈2.3MB(예산 ≤3MB, 넘으면 crf+3). mp4 마스터는 ~/Documents/채터박스/v2/ 보관(비파괴).video: 등재 → EntryVideoOverlay 가 소비(이음새 ③④는 코드에 상주: 자체 스틸 슬로우줌+크로스페이드·프리로드).프레임 실검증: ffmpeg -ss 0/중반/끝 -frames:v 1 추출 → 0s=원화 일치·중후반=의도 모션·화풍 보존 육안.
헤드리스(playwright-core npm i --no-save 후 제거): 로그인 성공→오버레이 실재생(video.currentTime>0)→Esc→로비 / 2회차 미재생(localStorage cb.introSeen) / '인트로 다시 보기' 무로그인 개폐 / reduced-motion 직행. 참고 구현: 세션 스크래치 verify_entry.mjs(11항목).
npx …→npm run 오변환(→rtk proxy npx … 또는 직접 바이너리), ls 빈 결과(→find), .env grep 값 노출(→스크립트 내 파일 읽기).?t= 이중 인스턴스 — 모듈 상태 주입 검증 전엔 dev 서버 재시작.createRequire('/…/ChatterBox/package.json')로 해석(스크래치는 프로젝트 밖).until grep -qE "OK|FAILED|ERROR|timeout" 감시.~/Documents/채터박스/v2/ 보관 확인