스타일 스킬: cordel
이 스킬은 항상 동일한 스타일로 비디오를 제작합니다. 스타일은 references/estilo.md(바이블)에 정의되어 있습니다. 콘텐츠는 요청에 따라 생성됩니다. 스타일에 영감을 준 비디오의 캐릭터, 로고 또는 텍스트를 절대 복사하지 마세요.
SKILL_DIR = 이 파일이 있는 폴더입니다. 스크립트는 SKILL_DIR/scripts/에 있으며 python3로 실행됩니다.
비디오 프로젝트 폴더(기본값: 현재 폴더)에서 작업하세요. 모든 결과물은 해당 폴더의 saida/와 final/에 저장됩니다.
시작하기 전에
references/estilo.md,references/regras-storyboard.md,references/regras-video.md를 읽고,references/licoes.md(이 스타일로 이미 발생한 문제)가 있으면 그것도 읽으세요.- 도구를 확인하세요:
ffmpeg -version,python3 -c "import PIL". 누락된 것이 있으면 → 설치할 것을 알려주고 중단하세요.
1단계 – 5가지 데이터 (누락된 항목은 자유 텍스트로 질문하고, 기본값을 제안하세요)
| 데이터 | 옵션 | 기본값 |
|---|---|---|
| 주제 | 한 문장 | — (필수) |
| 형식 | 9:16 · 16:9 · 1:1 | 9:16 |
| 길이 | 초 단위; 2.5의 배수로 변환됨 | 15 |
| 해상도 | 예: 1080x1920 | 형식에 따른 해상도 (9:16 → 1080x1920, 16:9 → 1920x1080, 1:1 → 1080x1080) |
| 엔진 | local (무료, 테스트 완료) · kling · seedance (프롬프트만 생성, 테스트되지 않음) | local |
2단계 – 장면 계획
python3 SKILL_DIR/scripts/cenas.py --tema "<주제>" --duracao <s> --formato <f> --resolucao <WxH> --motor <m>
장면 수(각 2.5초)와 스토리보드 수(장면 최대 6개)를 보여줍니다. 길이가 정규화되었다는 알림이 뜨면 사용자에게 알리세요.
3단계 – 대본 (직접 작성)
references/regras-video.md를 따라 roteiro.json을 작성하세요 (장면당 최대 6단어, 장면당 하나의 큰 키워드, 첫 번째 장면은 시청자의 고통이나 열망으로 시작, "당신"을 사용):
{"personagem": "여러 장면에 등장하는 캐릭터, 항상 동일하게 설명 (옷, 색상, 액세서리)",
"cenas": [{"texto_tela": "단어", "fala": "짧게 말하는 문장", "acao": "보이는 동작", "camera": "zoom_in"}]}
personagem은 모든 스토리보드 요청에 포함됩니다 (없으면 각 스토리보드가 새로운 사람을 생성함). 그 다음:
python3 SKILL_DIR/scripts/cenas.py ... --roteiro roteiro.json # 같은 명령어 + 대본
4단계 – 스타일 적용 스토리보드
템플릿 + 바이블 + 계획 + 캐릭터를 기반으로 요청(스토리보드당 하나)을 구성하세요:
python3 SKILL_DIR/scripts/pedido_storyboard.py # → saida/storyboards/pedido-storyboard-N.txt
각 요청을 다시 작성하지 않고 이미지 생성 도구로 보내세요 (Codex: image_gen; Claude Code: 사용 가능한 이미지 도구, 또는 사용자에게 생성 및 저장 요청). saida/storyboards/storyboard-N.png에 저장하세요.
요청을 변경하려면 템플릿(modelos/prompt-storyboard.md)이나 바이블을 수정하고, 생성된 텍스트는 수정하지 마세요.
- 한 번에 하나씩 생성하세요. 두 번째부터는 이전 스토리보드를 참조 이미지로 전달하세요 (연속성 유지).
- 이미지를 열고
regras-storyboard.md목록(올바른 그리드, 글자 단위 정확한 단어, 스타일, 연속성)과 대조하여 확인하세요. 단어를 확대해서 확인하세요. 나쁨 → 다시 생성(최대 2회)하고references/licoes.md에 기록하세요.
5단계 – 자르기
python3 SKILL_DIR/scripts/recortar.py --plano saida/plano.json # --respiro 0.08 (기본값)은 줌에서 단어를 보호
6단계 – 애니메이션
python3 SKILL_DIR/scripts/animar.py # 로컬 엔진: 느린 줌/팬 + 디졸브
python3 SKILL_DIR/scripts/animar.py --motor kling --so-prompts # 테스트되지 않음: 명령어만 생성
python3 SKILL_DIR/scripts/animar.py --motor seedance --so-prompts # 테스트되지 않음: 프롬프트만 생성
kling/seedance의 경우 사용자가 자신의 계정에서 실행하고, 그 후 클립이 saida/clipes/로 돌아옵니다.
7단계 – 나레이션 (단일 음성)
python3 SKILL_DIR/scripts/narrar.py --arquivo voz.wav # 사용자가 전체를 녹음함
python3 SKILL_DIR/scripts/narrar.py --falas-dir falas/ # 사용자가 장면별로 하나씩 녹음함
python3 SKILL_DIR/scripts/narrar.py --comando '<tts> {texto} {saida}' # 모든 로컬 TTS
python3 SKILL_DIR/scripts/narrar.py --inemavox --inemavox-dir <폴더> --ref <voz.wav>
python3 SKILL_DIR/scripts/narrar.py --edge # 테스트되지 않음 (온라인 서비스)
TTS를 사용하는 경우 narrar.py는 음성이 문장 뒤에 가끔 추가하는 '꼬리'를 자르고, 단어 수에 비해 너무 긴 발화를 다시 생성합니다(--tentativas 3). 발화가 장면을 초과했다는 알림이 뜨면 대본에서 발화를 줄이고 다시 실행하세요. 가능하면 로컬 전사(transcription)로 나레이션을 확인하세요(문장이 대본과 일치하는지); 문제가 있는 발화 → narrar.py ... --refazer N은 장면 N만 다시 생성합니다.
8단계 – 단일 배경 음악으로 합성
python3 SKILL_DIR/scripts/montar.py [--trilha assets/trilha/x.mp3] [--volume 0.5]
assets/trilha/에 음악이 없으면 → 사용자에게 어떤 음악을 사용할지 물어보세요(사용자 소유 또는 라이선스 허가된 것). 여러 개 있으면 → 선택하도록 요청하세요.
9단계 – 확인 (필수)
python3 SKILL_DIR/scripts/validar.py --duracao <s> --resolucao <WxH>
python3 SKILL_DIR/scripts/folha.py # final/folha-final.jpg: 각 장면의 한 프레임
validar.py가 PASSOU를 출력하고 final/folha-final.jpg를 직접 확인(읽기 쉬운 텍스트, 잘못된 글자 없음, 모든 패널에서 동일한 스타일)한 후에만 "완료" 라고 말하세요. 실패하면 무엇이 부족한지 알려주세요.
10단계 – 스킬 개선
각 비디오 제작 후 references/licoes.md에 (항목당 한 줄씩) 무엇이 잘못되었고 이를 방지할 규칙을 기록하세요. 스타일 또는 스토리보드 규칙인 경우 프롬프트뿐만 아니라 estilo.md/regras-storyboard.md도 함께 수정하세요.