Communitygithub.com

faceless-video

하나의 주제로 완전한 페이스리스 세로형 영상(30~90초, 1080×1920)을 제작합니다 — 리서치, 스크립트, 종이 오린 그림, 내레이션, 코드로 작성된 애니메이션(HyperFrames), 렌더링, 그리고 2차 리뷰까지 모두 포함된 "편집 데스크" 스타일(종이 한 장, 카메라 비행, 인덱스 카드, 마커, 고무 도장, 자막)로 진행됩니다.

faceless-video란 무엇인가요?

이 스킬은 사용자가 제공한 주제를 바탕으로 완전한 페이스리스 세로형 영상(Reel/Short/TikTok 스타일)을 자동 생성하는 AI 에이전트 도구입니다. 사용자는 단순히 주제를 입력하기만 하면 되며, AI가 리서치, 스크립트 작성, 이미지 생성, 음성 내레이션(TTS), 애니메이션 코딩(HyperFrames), 렌더링, 품질 리뷰까지 모든 과정을 수행합니다. Claude Code 환경에서 실행되며, Node.js, ffmpeg, ElevenLabs API(또는 로컬 TTS) 및 HyperFrames 라이브러리를 사용합니다. 결과물은 1080×1920 해상도의 MP4 파일로 제공되며, 사용자는 이후 수정 요청을 통해 빠르게 재렌더링할 수 있습니다.

지원 대상✓Claude Code✓Codex CLI~Cursor
npx skills add zerocrew-ai/faceless-video-skill

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

faceless-video은(는) 무엇을 하나요?

당신은 전체 제작진입니다: 리서처, 작가, 아트 디렉터, 내레이터, 애니메이터, 편집자, QA. 사용자가 주제를 주면, 당신은 렌더링된 MP4를 반환합니다. template/에서 프로젝트 폴더를 만들고 모든 중간 파일을 그 안에 보관하여, 사용자가 변경을 요청하면 몇 분 안에 재렌더링할 수 있습니다.

세부 단계는 references/pipeline.md, 영화 포맷은 references/scenes.md, 비주얼 스타일은 references/style.md, 리뷰는 references/qa.md를 참조하세요. 아래 내용은 작업 순서입니다.

0. 설정 (첫 실행 시, 약 2분)

다음 사항을 하나의 짧은 목록으로 확인하고 보고하세요(누락된 항목에 대한 정확한 해결 방법 포함):

  • Node 22+ (node -v), ffmpeg (ffmpeg -version), Claude Code (당신이 현재 사용 중인 환경).
  • 음성: ELEVENLABS_API_KEY 설정 → 프리미엄 음성; 미설정 시 무료 로컬 음성: pip install kokoro-onnx soundfile (그리고 여러 파이썬 버전이 있다면 HYPERFRAMES_PYTHON=<해당 파이썬>).
  • 자막: npx --yes [email protected] models install parakeet (일회성, 약 640 MB).
  • 이미지: codex CLI 로그인 → 사용자를 위한 이미지 생성; 그렇지 않으면 프롬프트를 작성하고 사용자가 이미지를 넣을 때까지 기다립니다.

경로: 아래 $SKILL은 이 스킬 자체의 폴더(이 SKILL.md가 있는 폴더; 스킬이 로드될 때 Claude Code가 스킬의 기본 디렉토리로 표시합니다)를 의미합니다. 프로젝트 생성: $SKILL/template/을 사용자 작업 폴더의 videos/<slug>/로 복사합니다(slug는 주제에서 생성). 아래 모든 명령어는 해당 프로젝트 폴더 내에서 실행합니다. Windows에서는 Git Bash에서 실행하거나, $SKILL을 전체 경로로 따옴표 안에 넣어 교체하세요.

1. 브리핑 (최대 한 번만 질문)

주제. 주어지지 않은 경우: 시청자(누가 보는지), 길이(기본 45초), 하나의 강조 색상(기본 주황색 #ec5626), 선택적 콜투액션("Comment WORD for…"). 그런 다음 질문을 멈추고 영화를 제작하세요. 마지막에 변경 사항을 제안하세요.

2. 리서치 및 스크립트 → script.md

  • 3~5개의 출처(웹 검색); 사용한 사실과 출처를 기록하세요.
  • 구조: 후크(처음 3초 동안 결과 제시), 3~5개의 비트, 한 줄 마무리 또는 CTA. 초당 ≤ 2.6단어(45초 ≈ 115단어). 짧은 문장; 모든 문장은 책상 위에 놓을 수 있는 것을 명명합니다.
  • 내레이션을 일반 텍스트로 vo.txt에 작성합니다(제목 없음, 무대 지시 없음). 사용자에게 스크립트를 보여주세요. 자동 모드에서는 계속 진행합니다.

3. 샷 리스트 → shots.md

각 비트마다: 책상 위의 하나의 스테이션 — 무엇이 착륙하는지(카드, 인쇄물, 오린 그림, 페이지, 메모), 무엇이 그려지는지(마커, 손글씨), 각 물체가 어떤 단어에 움직이는지. 개요 비트와 CTA(도장)를 표시하세요. 그다음 이미지 목록: 각 오린 그림이나 인쇄물마다 하나의 프롬프트(references/pipeline.md에 프롬프트 패턴이 있습니다) → images.md.

4. 이미지 → assets/img/

  • codex 사용 시: 이미지당 node "$SKILL/scripts/imagegen.mjs" assets/img/<name>_raw.png "<prompt>".
  • 미사용 시: 사용자에게 images.md를 제공하고 파일을 기다립니다.
  • 오린 그림은 단색 마젠타 배경(#FF00FF) 위에 생성되고 키잉됩니다: node "$SKILL/scripts/cutout.mjs" assets/img/<name>_raw.png assets/img/<name>.png (ffmpeg 크로마 키; 다른 배경은 로컬 AI 리무버로 대체되며, 이는 사람용으로 만들어져 물체 일부를 제거할 수 있으므로 컬러 배경 위의 모든 오린 그림을 확인하세요). 인쇄물은 배경을 유지합니다: <name>_raw.png를 <name>.png로 복사합니다. scenes.js는 _raw가 붙지 않은 파일만 참조합니다.
  • 모든 이미지를 확인하세요(파일 읽기). 잘못된 객체, 이미지 속 텍스트, 이상한 모양 → 다시 생성하세요. 나쁜 이미지를 절대 배송하지 마세요.

5. 음성 및 단어 타이밍

node "$SKILL/scripts/tts.mjs" vo.txt . → assets/audio/voice.wav. npx --yes [email protected] transcribe assets/audio/voice.wav --json > transcript.json 그 다음 node "$SKILL/scripts/words.mjs" transcript.json . → words.js. 출력된 단어를 읽으세요: 잘못 인식된 브랜드명이나 숫자를 words.fix.json에 수정하고({"heard": "correct"}) 다시 실행하세요. 영화 길이 = 마지막 단어 종료 + 1.5초.

6. 영화 → scenes.js

샷 리스트를 바탕으로 window.FILM(포맷: references/scenes.md)을 작성하되, 모든 at은 words.js의 해당 단어에 맞춥니다. 디자인되고 생성되지 않은 것처럼 보이게 하는 규칙: 한 번에 한 가지씩 움직임(≥ 0.3초 간격), 스테이션당 2~5초, 스테이션은 2D로 배치, 하나의 강조 색상, 프레임 상단 220px/오른쪽 150px/하단 420px에 중요한 것 없음, 카메라 비행은 다음 문장 전 약 0.9초에 시작, CTA 도장이나 전체 책장의 와이드 개요로 종료.

7. 빌드 및 확인

node "$SKILL/scripts/apply.mjs" . → npx --yes [email protected] lint (0 오류) → npx --yes [email protected] snapshot --at <비트당 한 번>, 그리고 프레임을 읽으세요. 겹침, 잘린 텍스트, 빈 프레임, 프레임 밖의 아이템을 수정하세요. 모든 비트가 읽힐 때까지 반복하세요.

8. 사운드

선택 사항: assets/audio/music.mp3(로열티 프리 트랙) 및 assets/sfx/{whoosh,thud,marker,stamp,pop,slide}.wav(파일명은 위치를 결정합니다: 모든 카메라 비행에 whoosh, 카드 착륙 시 thud, 그리기 시 marker, 도장 내려칠 때 stamp). Epidemic Sound MCP 도구가 현재 세션에서 사용 가능하면: "airy whoosh short", "paper card drop thud", "marker pen stroke", "rubber stamp", "woody click", "paper slide"를 검색하여 각각 하나씩 다운로드하고, 하나의 차분한 인스트루멘탈 배경음(로파이/소프트 비트, 보컬 없음)을 music.wav로 다운로드하세요. 각 SFX를 ffmpeg으로 단일 히트로 트리밍하세요. 그런 다음 node "$SKILL/scripts/mix.mjs" . → assets/audio/mix.wav (음성 + 음악(덕킹) + 폴리, -14 LUFS). 음악이나 SFX 없이도 실행하세요 — 엔진은 mix.wav를 재생합니다. 영화가 타이밍된 후 음성을 다시 녹음했나요? node "$SKILL/scripts/retime.mjs" words_old.js words.js .는 scenes.js의 모든 시간을 새 테이크로 이동합니다.

9. 렌더링

npx --yes [email protected] render -o renders/<slug>_v1.mp4 (1080×1920, 30 fps). 그런 다음 node "$SKILL/scripts/sheet.mjs" renders/<slug>_v1.mp4를 실행하고 연락처 시트를 읽으세요.

10. 리뷰 (2차 패스) 및 배송

영화를 만들지 않은 것처럼 references/qa.md에 대해 시트를 리뷰하세요 — 하위 에이전트가 있다면, 한 명이 블라인드로 수행하게 하세요. 모든 발견 사항을 수정하고 v2로 재렌더링하세요. 알려진 결함이 있으면 절대 배송하지 마세요. 전달: MP4, 5줄 요약(주제, 길이, 출처, 사용자가 변경할 수 있는 사항) 및 "변경할 내용을 알려주시면 재렌더링하겠습니다" 제안 — 모든 수정은 scenes.js/스크립트 편집과 2분 렌더링입니다.

관련 스킬