Communitygithub.com

infofilm

실제 주제에 대해 5~15분 분량의 내레이션이 포함된 인포그래픽 설명 영화를 제작합니다. 1950년대 교육용 카드 뉴스릴 스타일로, 팬터마임 마스코트, 열정적인 내레이터, 노래로 된 광고 브레이크, 음성에 맞춰 등장하는 코드 기반 인포그래픽이 특징입니다.

infofilm란 무엇인가요?

이 스킬은 사용자가 요청한 실제 주제(시스템 작동 방식, 과거 사건, 미래 전망 등)에 대해 1950년대 교육용 카드 뉴스릴 스타일의 인포그래픽 설명 영화를 제작하는 AI 에이전트 워크플로우입니다. 주요 특징으로는 말없이 행동으로 표현하는 마스코트, 지나치게 열정적인 내레이터, 노래로 된 광고 브레이크와 클로징 발라드, 그리고 내레이터가 특정 단어를 말하는 정확한 순간에 등장하는 코드 기반 인포그래픽이 있습니다. 파이프라인은 리서치 → 사실 확인된 대본 → ElevenLabs 내레이터(캐릭터별 타임스탬프 포함) → Suno 테마 음악, 배경음, 징글 → Gemini 일러스트레이션 → 단어에 큐된 Remotion 장면 → -14 LUFS 마스터 + SRT 자막 순서로 진행됩니다. 각 단계는 게이트로 구분되어 있어 비용이 발생하는 작업(음성 합성, 이미지 생성, 음악 다운로드) 전에 사용자의 명시적 승인을 요구합니다. 스킬은 Remotion 기반 템플릿을 제공하며, 모든 숫자, 제목 및 레이블을 코드로 그려 이미지 모델에 텍스트 생성을 의존하지 않습니다. 팩트는 반드시 1차 출처를 인용하며 확인되지 않은 정보는 영화에 포함되지 않습니다. 중립적 풍자를 지향하며 특정 정당, 집단 또는 개인을 비꼬지 않습니다. Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용 가능하며, 사용자가 "설명 영화", "인포그래픽 영상", "~에 관한 영화 만들어줘" 등으로 요청할 때 활성화됩니다.

지원 대상✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/fltman/infofilm/tree/HEAD/skills/infofilm

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

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

문서

infofilm: 인포그래픽 설명 영화

이 스킬로 제작된 영화는 학습용 카드를 해군 청색 테이블 위에 펼쳐 놓은 형태입니다. 각 카드에는 제목 띠, 그림 창, 캡션 띠가 있습니다. 창에는 AI 일러스트레이션이 재생되고, 그 위에 해당 이름이 정확히 언급되는 순간 코드로 그려진 인포그래픽이 나타납니다. 뉴스릴 해설자가 의미를 전달하고, 마스코트는 말 없이 팬터마임으로 행동합니다. 노래로 된 광고 브레이크와 마무리 발라드가 영화에 리듬을 부여합니다.

모든 숫자, 제목 및 레이블은 사실 데이터베이스에서 코드로 그려집니다. 그림에는 텍스트가 절대 포함되지 않습니다.

template/ 디렉토리의 템플릿은 완전하고 작동하는 영화입니다: 윤년에 대한 1분 데모입니다. 이를 기반으로 시작한 후 데모를 여러분의 영화로 조금씩 교체하세요. 각 단계에서 영화가 렌더링됩니다: 구성 요소가 없는 장면은 카드를 표시하고, 내레이션이 없는 장면은 예상 시간을 표시합니다. 따라서 비용을 지불하기 전에 항상 전체 영화를 미리 볼 수 있습니다.

상시 규칙 (편의보다 우선)

  1. 비용: 먼저 물어보세요. ElevenLabs, 이미지 생성 및 Suno 다운로드는 실제 비용 또는 할당량을 소모합니다. 유료 배치를 진행하기 전에, 그것이 무엇인지, 항목 수, 예상 비용을 명시하십시오. --dry-run 플래그가 이를 출력합니다. 승인을 기다리십시오. 승인은 해당 배치에만 적용되며, 사용자가 상시 승인("이미지, 음성 및 음악에 대한 권한이 있습니다")을 제공하지 않은 경우에 한합니다. 모든 승인과 비용을 notes/log.md에 기록하십시오.
  2. 절대 사실을 추측하지 마십시오.
    • 모든 주장과 숫자는 1차 출처를 인용하는 notes/research.md에서 가져옵니다. 모든 화면상의 숫자는 연구 섹션을 인용하는 video/src/data.ts에서 가져옵니다.
    • 시사 문제는 1차 출처에 대해 확인되어야 합니다. 확인할 수 없는 경우 영화에 포함되지 않거나 장면이 대기합니다. "대기하는 장면"은 references/script.md를 참조하십시오.
  3. 텍스트와 숫자는 이미지 모델이 아닌 코드로 그려집니다. 이미지 프롬프트는 텍스트를 금지하며, 모든 이미지는 검사됩니다.
  4. 사용자가 듣고, Whisper는 듣지 않습니다. 생성된 음성을 확인하기 위해 절대 전사하지 마십시오. Whisper는 실제보다 더 많은 오류를 듣습니다. 대신 사용자에게 청취 페이지를 제공하십시오.
  5. 공정한 풍자. 아이러니는 시스템, 기계 및 스펙터클을 겨냥하며, 정당, 집단 또는 개인을 절대 겨냥하지 않습니다. 모든 측을 크기, 색상 논리 및 애니메이션에서 동일하게 취급합니다. 그림에 실제 인물이나 로고를 넣지 마십시오.
  6. 모든 곳에서 올바른 분음 부호 사용 (å ä ö é ü …), 하위 에이전트에 대한 프롬프트에도 포함하십시오. 모든 하위 에이전트에 명시적으로 지시하십시오.
  7. 사용자의 말을 문자 그대로 읽으십시오. "디스토피아", "레트로" 또는 "폴아웃 스타일"은 분위기이지 소품 목록이 아닙니다. 스타일 단어가 여러 의미를 가질 수 있을 때는 제안을 보여주고 이를 기반으로 구축하기 전에 확인하십시오 (references/style.md 참조).

파이프라인

다음 단계를 순서대로 진행하십시오. ⛔ 단계는 게이트입니다: 진행하기 전에 중단하고 사용자의 결정을 기다리십시오.

0 · 시작

  • 주제, 대상, 언어, 길이(기본 약 12분) 및 목적을 확인하십시오. 환경의 ELEVENLABS_API_KEY 및 OPENROUTER_API_KEY, Chrome의 claude-in-chrome 확장 프로그램 및 Suno 로그인, node, pnpm/npm, ffmpeg, python3와 numpy 및 elevenlabs를 확인하십시오.
  • 기반 구조 생성:
    <skill>/scripts/new_film.sh <dir> --slug my-film --title "My Film" --lang sv --locale sv-SE
    
    이 명령은 템플릿을 복사하고, Remotion을 설치하고, 음향 효과를 합성하고, 첫 번째 타임라인을 구축하고, 타입 검사를 수행합니다.
  • 결정 사항은 날짜와 결정자를 notes/log.md에 기록하십시오.
  • 렌더링에는 공간이 필요합니다. df -h를 확인하고, 시스템 디스크의 여유 공간이 약 20 GB 미만인 경우 OUTDIR을 큰 디스크로 지정하십시오.

1 · 연구 → notes/research.md

  • 번호가 매겨진 섹션(## 2.3 · 임계값)을 작성하고, 각 섹션에 하나의 사실 또는 클러스터를 넣고, 각각의 1차 출처(법률, 공식 통계, 당국 자체 페이지)를 명시하십시오.
  • 불확실한 사항은 표시하십시오. 최근 사건의 경우 사실이 유효한 날짜를 기록하십시오.
  • references/script.md를 참조하십시오.

2 · 외형과 캐스팅 ⛔

  • 하우스 스타일(크림색, 해군 청색 및 금색 잉크; 1957년 레트로 미래주의; Bowlby One SC + Jost + Lobster)을 재사용하거나 대안을 제안하십시오. 동일한 작은 인포그래픽을 3~7가지 스타일로 렌더링하여 사용자가 동등하게 비교할 수 있도록 하십시오.
  • 마스코트 캐스팅: 침묵하는 평범한 사람으로, 하나의 시그니처 제스처를 가집니다 (하우스 마스코트는 모자를 들어 올립니다). 유명 마스코트의 제스처(예: 윙크와 엄지척)는 피하십시오.
  • 먼저 참조 초상화(kind: "ref")를 생성한 다음 모델 시트를 생성하고, 장면 이미지가 만들어지기 전에 승인을 받으십시오.
  • ⛔ 사용자가 스타일, 마스코트, 제스처 및 글꼴을 선택합니다. 자세한 내용: references/style.md 및 references/images.md.

3 · 대본 → script/script.md ⛔

  • 구조: 오프닝 테마, 24개의 파트, 파트 사이의 광고 브레이크, 마무리 발라드. 각 장면은 1540초의 카드 하나입니다.
  • 단어 예산은 분 × 약 127 단어/분(뉴스릴 해설자 기준)입니다.
  • 내레이션에서 숫자는 철자로 표기하고, 카드는 정확한 숫자를 표시합니다.
  • "월요일에"와 같은 날짜에 묶인 단어는 피하십시오. 영화는 그 주보다 오래 지속됩니다.
  • 누군가 비용을 지불하기 전에 검토하십시오. 독립적인 하위 에이전트가 1차 출처에 대해 대본과 연구를 확인하고, 결과를 MUST, SHOULD, COULD로 분류하도록 하십시오. MUST로 평가된 모든 것을 수정하십시오. 검토 과정에서 연구 자체의 오류가 발견된 적이 있습니다.
  • ⛔ 사용자가 대본을 승인합니다. 형식 및 제작: references/script.md.

4 · 해설자 ⛔

  1. voice/design_voice.py preview <tag>로 3가지 테이크를 설계하고(먼저 물어보세요), 사용자가 하나를 선택하게 하십시오. create로 저장하십시오.
  2. 대표적인 장면 2개를 테스트 낭독하고 사용자가 속도와 발음을 승인하도록 하십시오.
  3. 모든 내용을 낭독: python3 voice/narrate.py --dry-run, 그런 다음 물어보고, 실행하십시오.

나중에 장면을 편집하면 해당 장면에 대해서만 다시 청구됩니다. 자세한 내용 및 함정: references/voice.md.

5 · 음악 (Suno, 공식 웹 UI, Chrome을 통해)

다음 큐가 필요합니다:

  • 약 20초 분량의 테마(Speech 모드에서 무표정한 클로즈 하모니 보이스로 훌륭하게 작동)
  • 파트당 하나의 악기 베드, 반복되며 음성 아래에 덕킹됨
  • 각 광고 브레이크의 노래 징글
  • 일반적으로 테마의 커버인 마무리 발라드

미국 1950년대 관용구로 프롬프트를 작성하십시오. "schlager"와 같은 장르 단어는 음악을 다른 곳으로 끌고 갑니다. 사용자는 Suno에서 테이크를 좋아합니다(선택권을 사용자에게 넘기지 않는 한). Suno 자체 메뉴를 통해 WAV를 다운로드하고, 컷 포인트에 대한 정렬된 가사를 가져와 music/cuts.json 및 video/src/lyrics.ts를 작성하십시오. 자세한 내용: references/music.md.

6 · 일러스트레이션

  • 장면당 하나의 21:9 2K 이미지, art/shots.json의 film-Sxx, 마스코트 참조에서 그려짐. 비용: python3 art/gen.py --dry-run, 그런 다음 물어보십시오.
  • 모든 이미지에서 텍스트, 중복 소품, 추가 팔다리 및 잘못된 의상을 확인하고, 불량 이미지는 재생성하십시오.
  • python3 tools/sync_art.py 및 python3 tools/build_timeline.py를 실행하십시오. 자세한 내용: references/images.md.

7 · 장면 (Remotion)

  • 두 개의 황금 장면을 직접 구축하십시오: 영화의 핵심 인포그래픽을 담은 장면. 기준을 충족시키고 golden.ts에 등록하고, 데모의 TheYear/TheRule을 교체하십시오.
  • 그런 다음 video/CONTRACT.md(해당 {{…}} 줄을 채움)를 사용하여 2~3명의 병렬 빌더 하위 에이전트에게 분산하십시오. 각 빌더는 자체 그룹 레지스트리를 가지며 연락처 시트로 확인합니다.
  • 빌더는 내레이션이 존재하기 전에 시작할 수 있습니다. 큐는 예상 단어를 따르고 그런 다음 실제 단어로 자동 이동하기 때문입니다. 작업 중 대본이 변경되면(검토 결과가 나오면), SendMessage를 통해 각 빌더에게 해당 장면의 정확한 변경 사항을 보내십시오.
  • 모든 장면의 시트를 직접 검토하십시오.
  • 자세한 내용: references/scenes.md.

8 · 렌더링 및 전달

  • tools/render.sh를 실행하십시오. 타임라인을 재구축하고, 큐를 린트하고, 타입 검사를 수행하고, 렌더링하고, −14 LUFS / −1 dBTP로 투 패스 loudnorm을 적용하고, SRT를 작성합니다.
  • 세그먼트별로 음량을 확인하고 mp4에서 프레임을 스폿 체크한 다음, 사용자에게 영화를 공개하십시오.
  • 자세한 내용: references/render.md.

9 · 수정

  • 텍스트 변경: 해당 장면만 다시 내레이션한 다음 타임라인을 재구축하십시오. 큐는 단어를 자동으로 따릅니다.
  • 그림 변경: 이미지를 재생성하고, 동기화하고, 재구축하십시오.
  • 음악 변경: cuts.json을 편집하십시오.

시각적 수정은 재렌더링만 필요하며 비용이 들지 않습니다. 새로운 내레이션, 이미지 또는 다운로드만 비용이 발생합니다.

템플릿 맵

경로내용
film.json제목, 슬러그, 언어, 로케일, 파트 키커 및 베드, 장면 인트로/애프터 음악, TTS 모델, outDir
script/script.md원고: ## Sxx · name, <!-- title: -->, <!-- facts: -->, > visual:, 내레이션
notes/research.md, notes/log.md사실 데이터베이스; 결정 사항 및 비용
voice/design.json + design_voice.py (음성 디자인), narrate.py (내레이션 + 타임스탬프), listen.py (청취 페이지), voice.json
music/suno/*.wav, cuts.json, tools/beats.py (템포), tools/suno_lines.py (정렬된 가사 → 라인)
art/style.json (룩, 절대 목록), shots.json, gen.py, img/
tools/build_timeline.py, cues.py, lint_cues.py, make_srt.py, sync_art.py, art_sheet.py, unframe.py, make_sfx.py, render.sh
video/src/theme.ts, fonts.ts, timing.tsx (useScene, cue), data.ts, lyrics.ts, Music.tsx, primitives/ (Card, Bits, Film, Jingle, Hemicycle), scenes/
video/tools/stills.mjs (선택된 프레임의 연락처 시트), review.mjs (장면당 N 프레임, 여러 장면)

알려진 함정과 해결 방법: references/pitfalls.md.

관련 스킬