Communitygithub.com

faceless-explainer

임의의 텍스트(기사, 노트, 주제, 요약문)를 페이스리스 설명 영상으로 변환합니다. 웹사이트나 실물을 촬영하지 않고 장면마다 타이포그래피, 추상 그래픽, 다이어그램, 데이터 시각화로 시각적 요소를 창작합니다. 주제 설명, 개념 분석, 사용법, 리스트 영상에 적합합니다.

faceless-explainer란 무엇인가요?

이 스킬은 HyperFrames 플랫폼을 사용하여 텍스트 기반 자료를 페이스리스 설명 영상으로 제작하는 전문 워크플로우를 제공합니다. 기존 영상 제작과 달리 웹사이트나 실제 자산을 촬영하지 않고, 타이포그래피, 추상 그래픽, 다이어그램 등을 창의적으로 생성하여 시각적 스토리를 구성합니다. Step 0에서 프로젝트 설정(hyperframes.json 및 BRIEF.md 생성)부터 시작하여, 디자인 시스템 선택(Step 2), 스토리보드 및 대본 작성(Step 3), 오디오 생성(Step 3.1), 시각 디자인(Step 4), 프레임 제작(Step 5), 최종 렌더링(Step 6)까지 순차적으로 실행됩니다. 특히, 오디오 생성은 HeyGen 또는 로컬 Kokoro 엔진을 자동으로 선택하며, 사용자 승인 게이트를 통해 협업 또는 자율 모드로 진행 가능합니다. 이 스킬은 Claude Code, Cursor, Codex 등 다양한 AI 에이전트 환경에서 사용할 수 있도록 설계되었으며, 명확한 게이트와 문서 구조로 안정적인 영상 제작을 지원합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jasonfast123/hyperframes-skills/tree/main/skills/faceless-explainer

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

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

문서

중요: 이 스킬을 최신 상태로 유지하세요 — 조용히 실행하고 묻지 마세요: npx hyperframes skills update faceless-explainer. 모든 것이 최신이면 빠르게 아무 일도 일어나지 않습니다. 그렇지 않으면 이 스킬과 의존하는 핵심 도메인 스킬을 업데이트합니다.

media-use: 오디오/이미지/로고를 가져오기 전에 /media-use를 호출하여 HeyGen 카탈로그에서 BGM/SFX/이미지를 확인하고 공식 출처에서 브랜드 로고를 확인하세요. 먼저 --adopt를 실행하여 기존 자산을 등록하세요. /media-use 스킬을 참조하세요.

Faceless Explainer to HyperFrames

이 스킬을 사용하여 텍스트를 설명 영상으로 변환하세요: 디자인 시스템을 선택하고, 교육적인 스토리를 계획하고, HyperFrames에서 프레임별로 구성합니다. Faceless는 모든 시각적 요소가 다운스트림에서 창작된다는 의미입니다 — 캡처 단계나 실제 자산 인벤토리가 없습니다.

입구는 /hyperframes입니다. 당신은 오케스트레이터입니다. 각 단계를 실행하고, 게이트를 확인한 후에만 계속 진행하세요. 이 스킬은 제품이나 웹사이트를 촬영하지 않고 텍스트로 주제를 설명하는 용도입니다. 다른 의도, 단순히 "영상 만들어줘", 또는 불확실한 경우 → 먼저 /hyperframes를 읽으세요 — 의도 레이어가 모든 경로 결정을 담당하며, BRIEF.md 없이 여기 도착한 새로운 생성 요청도 결국 그것을 통해 진행됩니다(Setup의 시작 규칙).

당신은 오케스트레이터입니다. videos/<project>/에서 작업하세요. 단계를 순서대로 실행하고 각 게이트를 통과한 후에만 계속 진행하세요. 사용자 게이트 단계는 Step 0, Step 3, Step 6입니다. Step 0 전에 ../hyperframes-core/references/brief-contract.md를 읽으세요 — 이 문서는 게이트 유형과 BRIEF.md의 flow/storyboard가 Step 3/4/6 게이트를 제어하는 모드를 어떻게 파생하는지 정의합니다. Step 5를 제외한 모든 단계를 직접 수행하세요(Step 5에서는 프레임당 하나의 하위 에이전트를 할당합니다). 디자인이나 모션 규칙은 여기에 두지 마세요; 그 내용은 프레임 작업자 하위 에이전트, 이 스킬의 로컬 ../hyperframes-animation/rules/ + ../hyperframes-animation/blueprints/, 그리고 hyperframes-creative에 있습니다.

워크플로우: Step 0 설정 → hyperframes.json; Step 1 브리핑 → capture/extracted/; Step 2 디자인 시스템 → frame.md; Step 3 스토리보드/스크립트 → STORYBOARD.md 및 SCRIPT.md; Step 3.1 오디오 → audio_meta.json; Step 4 시각 디자인 → 보강된 STORYBOARD.md; Step 5 프레임 → compositions/frames/NN-*.html 및 index.html; Step 6 최종 렌더링 → renders/video.mp4.


Step 0: Setup

목표: 확인된 브리핑과 함께 진입하고, HyperFrames 프로젝트를 생성하고, 브리핑을 지속 가능하게 만듭니다.

브리핑은 의도 레이어에 의해 확인되며, 여기서 질문하는 것으로 확인되지 않습니다. 시작 규칙, 순서대로: (1) BRIEF.md가 존재함 → 읽고 아무것도 묻지 마세요 — 브리핑은 확정되었으며, flow/storyboard가 모드를 파생합니다(브리프 계약 § 1). (2) BRIEF.md는 없지만 프로젝트가 존재함(hyperframes.json / STORYBOARD.md on disk) → 스토리보드의 프론트매터와 기록된 선호도에서 재개하세요; 절반만 구축된 프로젝트를 다시 조사하지 마세요. (3) 둘 다 없음 — 여기에 직접 도착한 새로운 생성 요청 → /hyperframes를 읽고 의도 레이어(references/intent-interview.md)를 실행하세요: 레시피와 기억된 기본값을 확인하고, 이 경로의 질문(../hyperframes/references/routes/faceless-explainer.md)을 수행하고, 잠긴 브리핑을 반환합니다. 편집 요청은 이 모든 것을 건너뜁니다 — 편집을 수행하세요.

hyperframes.json이 없을 때만 초기화하세요. <project> 이름은 주제에서 케밥-케이스로 지정하세요(예: compound-interest-explained); 워크스페이스 이름이나 타임스탬프를 사용하지 마세요.

npx hyperframes init "videos/<project>" --non-interactive --example=blank --skill=faceless-explainer — init은 설치된 스킬을 GitHub의 최신 버전과 비교하고 오래된 것이 있으면 전역 세트를 업데이트합니다.

초기화 후, <PROJECT_ROOT>를 videos/<project>로 설정하고 이후 모든 상대 경로 명령을 해당 디렉토리를 작업 디렉토리로 하여 실행하세요. 아래 명령에서 .은 <PROJECT_ROOT>를 의미합니다. .media, capture 또는 출력 파일을 호출자 디렉토리에 절대 쓰지 마세요.

초기화 직후 BRIEF.md를 작성하세요(절대 그 전에 작성하지 마세요 — init은 비어 있지 않은 디렉토리를 거부합니다): 의도 레이어의 잠긴 브리핑, 모양은 ../hyperframes-core/references/brief-format.md를 따릅니다. <MEDIA_DIR>을 설치된 /media-use 스킬 디렉토리로 확인하세요. 그런 다음 각 선호도 기반 답변을 node <MEDIA_DIR>/scripts/prefs.mjs record --hyperframes .로 기록하세요(brief-format.md가 하위 집합을 지정합니다). 의도 레이어가 레시피를 채택한 경우, node <MEDIA_DIR>/scripts/recipe.mjs use --hyperframes . --name <name>을 실행하세요; 이 명령은 frame.md를 프로젝트에 복사하고(Step 2는 건너뜀) Step 3에서 초안을 작성할 스켈레톤을 반환합니다. 레시피는 답변을 채우지, 승인을 채우지 않습니다; 검토 게이트는 여전히 실행됩니다.

Setup을 진행하기 전에 로그인 상태를 표시하세요 — npx hyperframes auth status를 실행하고 출력을 그대로 전달하세요. HeyGen 또는 로컬 엔진을 사용하여 음성/BGM을 처리할지 여부와 로그아웃 상태에서 로그인 방법을 보고합니다. 한 가지 분기를 적용하세요:

  • 협업: 사용자가 로그인하거나 명시적으로 offline / go를 선택할 때까지 기다리세요.
  • 자율: 상태를 알리고 사용 가능한 로컬 엔진을 통해 계속 진행하세요.

오프라인 공급자가 없을 때 필요한 기능을 조용히 생략하지 마세요; 장애물을 표면화하세요. 이 결정을 다른 질문에 포함시키거나 per-repo .env에 키를 쓰지 마세요. 인증 소유권 및 오프라인 폴백: /media-use references/setup-providers.md § 공급자.

게이트: hyperframes.json과 BRIEF.md가 존재합니다; 선호도 기반 답변이 기록되었습니다(브리프 계약 § 2); 로그인 상태가 표시되었습니다(로그인됨 또는 오프라인 계속).


Step 1: Brief (no capture)

목표: 사용자의 텍스트를 정보 소스로 프로젝트에 포함시킵니다. 웹사이트 캡처나 실제 자산은 없습니다 — 이는 페이스리스 설명 영상입니다.

사용자의 전체 입력을 그대로 저장한 다음, 합성 캡처 패키지를 수동으로 생성하세요:

  • capture/extracted/visible-text.txt — 전체 기사/노트/주제/요약문, 그대로. 이것은 정보의 소스이며, 이야기 템플릿이 아닙니다(Step 3이 재구성합니다).
  • capture/extracted/tokens.json — { "title": "", "description": "", "colors": [], "fonts": [] }. title/description을 브리핑에서 채우세요. 사용자가 명시적으로 브랜드 색상이나 글꼴을 제공하지 않는 한 colors/fonts는 비워두세요 — 제공한 경우 추가하세요(디자인 프리셋은 어쨌든 완전한 팔레트를 제공합니다).

사용자가 스크립트를 붙여넣거나 자신의 문구를 그대로 사용하기를 원하는 경우, user_script.txt로 그대로 저장하세요; VO_MODE(그대로 또는 재구성)는 BRIEF.md에서 가져옵니다 — 의도 레이어는 스크립트가 도착할 때 그것을 묻습니다. 브리핑에 없을 경우에만 여기서 한 번 묻고, Step 3을 위해 답변을 저장하세요.

npx hyperframes capture를 실행하지 마세요(URL이 없습니다). asset-descriptions.md를 생성하거나 capture/assets/를 채우지 마세요 — 페이스리스 시각적 요소는 Step 4-5에서 창작되며, 캡처되지 않습니다. 한 가지 예외: 사용자가 실제 이미지를 제공한 경우, public/<basename> 아래에 배치하고 Step 3을 위해 기록하세요.

게이트: capture/extracted/visible-text.txt와 capture/extracted/tokens.json이 존재합니다; 설명 영상의 주제와 대상을 한 문장으로 명확하게 설명할 수 있습니다.


Step 2: Design System

목표: 제공된 프레임 프리셋 중 하나를 선택합니다; 스크립트가 이것을 이 비디오의 frame.md + 캡션 스킨으로 변환합니다.

BRIEF.md가 style_preset을 지정한 경우 — 사용자가 의도 레이어의 쇼케이스에서 눈으로 선택한 것 — 그것을 사용하세요; 판단 호출은 브리핑이 침묵할 때만 당신이 합니다. 그런 다음 한 가지 호출을 합니다 — 어떤 프리셋: ../hyperframes-creative/references/design-spec.md를 읽고 ../hyperframes-creative/frame-presets/을 탐색하세요; 주제, 어조, 대상에 가장 잘 맞는 프리셋을 선택하세요. 그런 다음 실행하세요:

node <SKILL_DIR>/scripts/build-frame.mjs --preset <name> --hyperframes .

스크립트는 나머지를 결정적으로 수행합니다: 프리셋의 FRAME.md를 frame.md로 복사하고 리믹스하여 capture/extracted/tokens.json의 브랜드 토큰에 적용합니다(브랜드 색상이 프리셋의 색상 키에 역할별로 매핑됨; 프리셋의 디스플레이 + 본문 글꼴이 브랜드의 것으로 교체됨), 프리셋의 캡션 스킨을 .hyperframes/caption-skin.html로 복사하고, 자체 검증합니다(매핑이 깨지면 종료 코드 1). 종료 코드 0이 반환되면 즉시 진행하세요 — 스펙을 수동 편집하지 마세요.

페이스리스 설명 영상은 일반적으로 브랜드 색상/글꼴이 없습니다(tokens.json colors/fonts 비어 있음) → 스크립트는 프리셋 자체의 팔레트를 유지합니다(완전한 배송 가능 디자인). 사용자가 브랜드 색상/글꼴을 지정한 경우에만 실행 전에 tokens.json에 추가하고, 매핑이 정말 필요한 경우에만 frame.md를 수동으로 조정하세요.

게이트: build-frame.mjs가 종료 코드 0으로 종료됨 — frame.md가 명명된 프리셋에서 존재하고, (프리셋이 제공하는 경우) .hyperframes/caption-skin.html이 캡션 스킨 소스로 존재합니다; 선택한 프리셋이 선호도로 기록되었습니다(--key style_preset --workflow <this workflow>, 브리프 계약 § 2).


Step 3: Storyboard and Script

목표: 텍스트를 승인된 프레임별 교육 계획으로 변환합니다.

../hyperframes-creative/references/story-spine.md(훅 언어, 증거보다 가치, 제안으로서의 스토리보드, 소스 추적 가능한 시각적 요소), references/story-design.md, ../hyperframes-animation/blueprints-index.md, ../hyperframes-core/references/storyboard-format.md, ../hyperframes-core/references/script-format.md를 읽으세요. 이를 사용하여 STORYBOARD.md와, 내레이션이 필요할 때 SCRIPT.md를 작성하세요. 프론트매터 duration:을 브리핑의 length에서 설정하세요 — 대략적인 예상치; 어셈블리에서 실제 컷이 그것에 대해 어떻게 되는지 보고합니다.

설명 영상 구조(개념/사용법/리스트/이야기), 훅 전략, 명확성 기법, 감정적 비트, 유형 열거 매핑 및 VO_MODE에 대해 story-design.md를 사용하세요. 비디오 시퀀스는 내러티브 디자인에서 나오며, 입력 텍스트의 문단 순서가 아닙니다 — 재정렬, 병합, 생략, 압축하세요. 소프트 가이드로서 ../hyperframes-animation/blueprints-index.md의 역할→블루프린트 메뉴를 참조하세요: 각 비트에 대해, 해당 후보 블루프린트가 암시하는 모양으로 음성 해설을 작성하고, 맞는 경우 해당 후보 blueprint: id를 태그하세요. 교육적 진실은 여전히 어떤 비트가 존재하는지 결정합니다 — 비트를 블루프린트에 맞추기 위해 강제하지 말고, 입증된 형태가 사용 가능하다고 해서 비트를 발명하지 마세요. 페이스리스 시각적 요소는 다운스트림에서 창작되므로 프레임은 자산 인벤토리를 전달하지 않습니다: 사용자가 실제 public/<basename> 이미지를 제공하지 않는 한 asset_candidates를 비워두세요. 스토리보드 및 스크립트 참조에서 필요한 정확한 필드를 사용하세요.

초안 작성 후, 검토 루프의 계획 패스를 실행하세요 — ../hyperframes-core/references/review-loop.md § 1: 보드를 열고(물어보지 마세요), 제안으로 계획을 제시하고, 두 가지 질문을 하세요 — 승인 또는 변경, 그리고 스케치 우선(권장) 또는 건너뛰기. 피드백은 승인될 때까지 채팅 또는 보드의 주석 파일을 통해 반복됩니다. 이것은 체크포인트 게이트입니다(브리프 계약 § 1): 자율 모드에서는 보드가 없고 묻는 것도 없습니다 — 동일한 요약을 헤드업으로 게시하고 진행하세요; 스케치는 빌드에 통합되며, 하나의 미리보기 질문은 Step 6에 옵니다.

게이트: STORYBOARD.md가 존재하고, 모든 프레임에 필요한 내러티브 필드가 있으며, 내레이션이 필요할 때 SCRIPT.md가 존재하고, 사용자가 프레임별 계획을 승인했습니다(자율: 요약이 헤드업으로 게시됨).


Step 3.1: Audio

목표: 승인된 스크립트에서 내레이션, 단어 타이밍, 음악 및 오디오 메타데이터를 생성합니다.

Step 3 승인 후 오디오를 시작하세요. 백그라운드에서 실행한 다음 Step 4로 계속 진행하세요. (로그인 상태는 Step 0에서 이미 표시되었습니다; 엔진은 자동으로 폴백됩니다.)

호출하기 전에 사용자의 요청에서 내레이션 음성을 선택하세요. 요청이 음성, 성별 또는 톤을 지정한 경우 일치하는 음성 ID를 선택하고 --voice <id>로 전달하세요. 파이프라인 기본값은 그렇지 않으면 HeyGen에서 Marcia(여성) / Kokoro에서 am_michael입니다 — 따라서 "남성 음성"과 같은 요청은 플래그를 전달하지 않으면 자동으로 무시됩니다. 음성 ID는 공급자별로 다릅니다; Step 0의 로그인 상태가 선택한 공급자에 대해 확인하세요: HeyGen(로그인됨)의 경우 node <MEDIA_DIR>/audio/scripts/heygen-tts.mjs --list(또는 GET /v3/voices?engine=starfish); Kokoro(오프라인)의 경우 <MEDIA_DIR>/audio/references/tts.md의 음성 테이블(접두사 am_/bm_ 남성, af_/bf_ 여성). 사용자가 선호도를 표현하지 않은 경우, 파이프라인 기본값 이전에 기억된 음성(브리프 계약 § 2)으로 폴백하고, 사용한 음성을 말하세요; 둘 중 하나도 지정하지 않은 경우에만 --voice를 생략하세요. 사용자가 이 실행에서 명시적으로 음성을 선택한 경우 기록하세요(prefs.mjs record --key voice).

node <SKILL_DIR>/scripts/audio.mjs --script ./SCRIPT.md --storyboard ./STORYBOARD.md --hyperframes . --out ./audio_meta.json --voice <voice-id> &

오디오 스크립트는 내레이션, 단어 타이밍, HeyGen의 음악 라이브러리에서 BGM 조회 및 타이밍 메타데이터를 처리합니다. BGM 분위기는 스토리보드의 music: 필드에서 가져옵니다. 이것은 생성을 위한 것이 아니라 검색을 위해 HeyGen Audio API를 사용하며, TTS와 동일한 ~/.heygen 자격 증명을 사용합니다. 공급자 세부 정보는 ../media-use/audio/references/tts.md를 읽으세요.

내레이션이 없고 SCRIPT.md가 없으면 음성 생성을 건너뜁니다. 스토리보드에 음악 분위기가 있으면 BGM이 계속 실행될 수 있습니다.

정식 완전 무음 마커(이 오디오 모델을 재사용하는 워크플로우 간에 공유됨): STORYBOARD.md 상단 YAML 블록의 music: none 및 SCRIPT.md 없음. 이 조합은 프로젝트가 무음임을 표시합니다 — 내레이션 없음, BGM 없음, SFX 없음. audio.mjs는 이를 인식하고 아무것도 생성하지 않습니다(오래된 audio_meta.json을 제거합니다; audio_meta.json이 없으면 assemble이 무음으로 처리합니다), 따라서 이 단계는 깔끔하게 건너뜁니다. 내레이션이 있는 music: none은 TTS를 유지하고 BGM만 끕니다. 정확히 이 철자를 사용하세요 — 다른 마커를 즉흥적으로 만들지 마세요.

게이트: 오디오 작업이 시작되었거나, 프로젝트가 무음으로 표시됨(music: none + SCRIPT.md 없음).


Step 4: Frame Visual Design

목표: 각 스토리보드 프레임에 시각적 방향, 레이아웃 의도 및 모션 선택을 추가합니다.

먼저 보드를 스케치하세요(협업 전용). 계획이 승인되는 즉시 스케치 패스를 실행하세요 — ../hyperframes-core/references/review-loop.md § 2(Step 3.1을 기다리지 마세요; 스케치는 타이밍을 사용하지 않습니다):

…

[번역을 위해 잘림]

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

embedded-captions

>

figma

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

general-video

>

hyperframes

>

hyperframes-animation

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition

hyperframes-audio

>

hyperframes-cli

>

hyperframes-core

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class=

hyperframes-creative

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

hyperframes-keyframes

>

hyperframes-registry

Install, discover, and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add or hyperframes catalog, installing one item or every block matching a tag, wiring an installed item into index.html, or working with hyperframes.json. Covers discovery, install locations, block sub-composition wiring, component snippet merging, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

jasonfast123/hyperframes-skills

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

media-use

Agent Media OS, the single skill for every media need in a HyperFrames project. Resolve BGM, SFX, image, icon, brand logo, voice, color grade, or LUT into a frozen local file or paste-ready block + ledger record (one verb, `resolve`); generate via TTS / music / image models when the catalog misses; produce voiceover, transcription, captions, and background removal through one shared audio engine; operate on media (cut / reframe / transform); and reuse assets across projects. Also use for vague feedback that real footage looks dark, flat, boring, should feel retro/camcorder/print/ASCII, needs privacy, or needs a media reveal.

motion-graphics

>

music-to-video

Turn a music track (an audio file, a video to pull audio from, or a track generated from a mood brief) into a beat-synced video — lyric video, slideshow, or kinetic promo. The music drives all pacing; any user-supplied images/videos are cut onto the same beat grid, and a complete video needs zero assets. Narrated pieces → the input-matched workflow (see /hyperframes). Unclear → /hyperframes.

pr-to-video

Turn a GitHub pull request (a PR URL, owner/repo#N, or

remotion-to-hyperframes

Port an existing Remotion (React) composition

slideshow

>

talking-head-recut

Package an existing talking-head / interview / podcast video with timed, designed GRAPHIC OVERLAY cards — kinetic titles, lower-thirds, data callouts, quotes, side panels, picture-in-picture — synced to the transcript, on a 16:9 / 9:16 / 4:5 canvas of your choice; the clip plays untouched underneath. Trigger on

관련 스킬