openmontage-house:OpenMontage + Josh 하우스 룰
OpenMontage 본체:<SKILLS_DIR>/OpenMontage(commit 9327439, 2026-10-03, AGPLv3).
본체의 전체 설명:AGENT_GUIDE.md, CLAUDE.md, skills/INDEX.md, pipeline_defs/*.yaml.
이 스킬은 초안만 생성하며, 게시하지 않습니다. 게시는 항상 메인 봇이 Josh 확인 후 처리합니다.
먼저 OpenMontage를 사용할지 결정하세요(<SKILLS_DIR>/INDEX.md의 결정표 참고)
- 내레이션이 있는 이중 언어 릴(Reel), 실제素材 편집 → stock-footage-reel(하우스 형식)을 사용하고, OpenMontage의 documentary-montage는 사용하지 마세요. 더 많은 오래된 영상/퍼블릭 도메인素材가 필요할 때는 아래
om_clips.py를 사용하여 가져온 후pick: {"source":"file", ...}로 shots.json에 넣으세요. - Vox/지식 해설 애니메이션 → huashu-art-motion을 사용하고, OpenMontage의 animated-explainer는 사용하지 마세요.
- 기타(클립 분할, 화면 녹화, 번역 더빙, 팟캐스트, 참조 영상 분석, 내레이션 없는 몽타주) → OpenMontage를 사용하고, 아래 하우스 룰로 기본값을 덮어쓰세요.
환경
source <SKILLS_DIR>/OpenMontage/om-env.sh # .venv와 Node 22를 활성화하고 OpenMontage 디렉토리로 이동
python -c "from tools.tool_registry import registry; import json; registry.discover(); print(json.dumps(registry.support_envelope(), indent=2))" # 사용 가능한 도구 확인
- 설치됨:requirements.txt, Remotion composer(npm), piper-tts, faster-whisper, yt-dlp, youtube-transcript-api, opencv-headless, HyperFrames(npx 캐시 0.8.147), CPU 버전 torch 2.14.1 + transformers 5.19(GPU 패키지 없음). CLIP 의미 매칭 가능:corpus_builder로素材 라이브러리를 구축한 후 clip_search의
rank_for_slot이 텍스트 설명으로素材를 정렬(점수 0.25 이상 사용 가능);video_understand(CLIP 모드)도 사용 가능. 처음에는 Hugging Face에서 CLIP 모델(openai/clip-vit-base-patch32)을 다운로드하며, CPU에서 5개素材로 작은 라이브러리를 구축하는 데 약 1분 소요됩니다. corpus_builder가 degraded를 표시하는 것은素材 소스의 절반에 키가 없기 때문일 뿐, 사용에는 영향을 미치지 않습니다. - 키:
PEXELS_API_KEY,ELEVENLABS_API_KEY는 모두 머신 환경 변수입니다(새 셸에서만 사용 가능, 필요한 경우bash -lc사용). om-env.sh가 이를 상속하며, .env에는 일부러 기록하지 않으므로 출력하거나 파일에 기록하지 마세요. 다른 키는 모두 비어 있습니다. OpenMontage를 위해 새 계정이나 유료 키를 신청하지 마세요. 추가하기 전에 먼저 Josh에게 물어보세요. - 유료 생성(Kling, Veo, Seedance, FLUX 등)에는 현재 키가 없으므로 selector가 자동으로 건너뜁니다. OpenMontage는 비용이 발생하기 전에 견적을 제시하며, Josh의 동의가 필요합니다.
하우스 룰(OpenMontage 기본값 덮어쓰기, 모든 영상에 적용)
- 화면:세로 1080x1920(OpenMontage의 대부분 기본값은 16:9이므로, 작업 시작 시 9:16을 지정하세요). 3분 이내, 간결함보다 완전함이 우선입니다.
- 더빙:ElevenLabs 영어 여성 음성 Sarah Explains(voice_id
Nhs7eitvQWFTQBsf0yiT), modeleleven_multilingual_v2.- 우선:OpenMontage 자체
elevenlabs_tts도구를 직접 사용하여 생성(테스트 완료).voice_id를 지정하고, tts_selector가 자동으로 음성을 선택하거나 piper로 폴백하지 않도록 하세요. 예시:ElevenLabsTTS().execute({"text":..., "voice_id":"Nhs7eitvQWFTQBsf0yiT", "model_id":"eleven_multilingual_v2", "output_path":".../vo.mp3"}). 대본 한 번에 한 번만 전송하고, 중복 전송하지 마세요(중복 차감됨). - 대안:직접 API가 실패할 경우, user-Elevenlabs 커넥터(
creative_generate_speech,generations_count: 1)를 사용하여 vo.mp3를 생성한 후, 기성 내레이션으로 OpenMontage에 전달하세요. piper를 공식 더빙으로 사용하지 마세요.
- 우선:OpenMontage 자체
- 자막:번체 중국어 메인 자막 + 아래에 한 줄 더 작은 영어(영어는 더빙에 대응). 대만 용어 사용, 「」 인용부호 사용, 대시 사용 금지. 자막 하단이 y=1490 아래로 내려가지 않도록 하여 IG 인터페이스를 피하세요.
- 커버:B 클립보 Vox 템플릿,
<YOUR_WORKSPACE>/media-team/00-profile/covers/render.py(OpenMontage 자체 커버/썸네일 사용 금지). - 라이선스:모든素材를
credits.json에 기록(URL, 저자, 라이선스). Archive.org의 라이선스는 "verify per item"이므로, 각 항목의 페이지를 열어 퍼블릭 도메인 또는 CC0/CC BY인지 반드시 확인하세요. BBC, TV 방송국, 영화사의 영상은 사용하지 마세요. CC BY는 게시물 설명에 표시해야 합니다. - 파일:IG 완성본 H.264/AAC, 45MB 미만으로 압축(
ffprobe로 크기와 길이 확인). - 내용:원문에 충실하고, 숫자와 인용을 조작하지 말며, 원저자를 표시하세요.
- 출력:완성본은
<YOUR_WORKSPACE>/media-team/03-drafts/<주제>/에 배치하고, OpenMontage의projects/는 작업 영역으로만 사용하세요.
각 워크플로우 시작 방법
OpenMontage 폴더에서 Claude Code(CLAUDE.md를 읽음)를 열거나, 다른 봇이 직접 skills/pipelines/<워크플로우>/executive-producer.md를 읽고 단계별로 진행하세요. 작업 시작 시 위의 하우스 룰을 먼저 붙여넣으세요.
- clip-factory:긴 영상(YouTube, 라이브, 팟캐스트 녹화)을 여러 개의 세로 클립으로 분할. yt-dlp로 영상을 다운로드하기 전에 Josh가 사용 권한이 있는지 확인하세요.
- screen-demo:실제 화면 녹화 튜토리얼(screen_recorder/cap_recorder 사용 가능).
- localization-dub:영상을 다른 언어로 번역하여 더빙. 더빙도 먼저 ElevenLabs 커넥터로 생성한 후, 싱크 및 믹싱을 위해 전달하세요.
- podcast-repurpose:팟캐스트 오디오 파일을 요약 클립으로 변환.
- 참조 영상 분석:릴(Reel)/쇼츠(Short)를 제공하면 리듬, 오프닝, 구조를 분석하고 2~3개의 오리지널 버전을 제안하며 비용을 추정(animated-explainer, animation, cinematic, character-animation에 reference_input 있음). 구조만 학습하고, 화면이나 카피를 복사하지 마세요.
- documentary-montage:내레이션이 없거나 적은 주제 몽타주(Adam Curtis 스타일). CLIP 의미 매칭을 사용하여 각 섹션에 자동으로素材를 선택합니다. 내레이션이 있는 릴은 여전히 stock-footage-reel을 사용하세요.
- Backlot 스토리보드:
python -m backlot open <project-id>(로컬 보드, 관찰용으로만 사용, 실패해도 제작에 영향 없음). 진행 상황 확인 및 관문 확인용이며, Josh 확인은 여전히 채팅에서 이루어져야 합니다.
stock-footage-reel용素材 가져오기 추가
python3 <SKILLS_DIR>/openmontage-house/scripts/om_clips.py \
--query "1960s computer room" --query "mission control" \
--sources archive_org,nasa,loc,nara,wikimedia --n 3 --out $D/work/om_clips
각각의 썸네일 경로와 shots.json에 직접 붙여넣을 수 있는 pick({"source":"file",...})을 출력하며, 라이선스 기록은 om_clips/om_credits.json에 기록됩니다. Read를 사용하여 썸네일을 보고 선택한 후, 각 항목의 라이선스를 확인한 후에만 영상에 포함시키세요.
사용 가능한 소스:pexels(키 있음), archive_org, wikimedia, nasa, nara, loc, coverr, pond5_pd. NASA 다운로드는 때때로 연결 시간이 초과될 수 있으며(images-assets.nasa.gov), 실패 시 note:를 출력하므로 다른 소스를 사용하세요.
라이선스(AGPLv3)
OpenMontage를 도구로 사용하여 영상을 제작하고 상업 게시물을 만드는 것은 가능하며, 생성된 영상은 AGPL의 제한을 받지 않습니다. 오직 "코드를 수정하여 네트워크 서비스로 제공하는 경우"에만 소스 코드를 공개해야 합니다. 따라서 수정된 OpenMontage를 외부 서비스로 운영하지 마세요.