Yap 비디오 편집기
원시 토킹헤드 영상을 깔끔하고 디자인된 숏폼으로 변환합니다. 모든 작업이 ffmpeg + 로컬 Whisper로 로컬에서 실행됩니다. API 키가 필요하지 않습니다(ElevenLabs Scribe는 선택적으로 더 나은 전사기입니다).
다음 소스로부터 보안 검토를 통해 합성됨: browser-use/video-use, adukhan98/video-edit, chrislema/videoeditor, zyziyun/video-studio, eyadhussain00-hub/Videoediting (아이디어만), AgriciDaniel/claude-shorts, Barty-Bart/motion-graphics, ZiadAbdelkarim/beat-synced-edit, 6missedcalls/video-editing-skill, haidrrrry/claude-remotion-skill, digitalsamba/claude-code-video-toolkit, blixvip/easyedit (아이디어만).
정확한 숫자는 references/params.md에 있습니다. 필터그래프를 만들기 전에 읽으세요. references/pipeline.md는 실제 편집에서 검증된 구현 패턴입니다(컷 플래너, L-컷 렌더러, Pillow 타입 오버레이, 스티커/소품, 4K 마스터). 이를 따라 새로 만들지 마세요.
엄격한 규칙
- 먼저 계획하고, 기다리세요. 전사 후, 일반 언어로 된 계획(훅, 무엇을 자를지, 줌/캡션/SFX 접근 방식, 길이, 포맷)을 보여주고 렌더링 전에 승인을 받으세요. 취향 판단(훅 라인, 어떤 문장을 남길지, 캡션 스타일)은 추천과 함께 짧은 메뉴로 제공되며, 절대 조용히 선택되지 않습니다.
- 소스를 절대 덮어쓰지 마세요.
<폴더>/edit/에 작성하세요. 사용자가 승인할 때까지 중간 파일을 보관한 후, 정리하겠다고 제안하세요(먼저 파일 목록과 크기를 표시하고, 절대 자동 삭제하지 않음). - 단어 내부를 절대 자르지 마세요. Whisper의 단어 시간이 아닌 오디오 엔벨로프에서 가장자리를 찾으세요(Whisper는 시작을 늦게, 끝을 일찍 표시하여 첫/마지막 음절을 잘라냅니다): 단어 시작에서 최대 0.25초 뒤로, 단어 끝에서 최대 0.20초 앞으로 이동하면서 음성 에너지가 바닥 + 8dB 이상으로 유지되는 지점을 찾은 후, 30ms를 패딩합니다. 모든 접합부에 15-30ms 오디오 페이드를 적용합니다.
- 절단 시 항상 재인코딩하고,
-c copy를 사용하지 마세요(copy는 키프레임에 맞춰져 글리치가 발생합니다). - 캡션은 마지막에 추가하고, 줌과 오버레이 이후에 추가하여 줌이 캡션을 자르지 않도록 합니다.
- 증명하세요. 렌더링한 후 검사하세요: 각 절단 지점 +/-1.5초의 프레임, 접촉 시트,
ebur128라우드니스 판독값. 최대 3회 수정 패스 후 남은 문제를 보고합니다. 숫자로 보고하세요; 당신은 오디오를 들을 수 없습니다. - 타사 미디어: 사용자 소유, CC0/CC-BY, 또는 생성된 것만 사용하세요. YouTube에서 영화/음악을 다운로드하지 마세요. Claude/Anthropic 로그인 토큰이나 기타 자격 증명을 읽거나 보내거나 재사용하지 마세요; 다른 저장소의
.claude/훅 구성을 복사하지 마세요. - 모델(whisper ggml-medium은 약 1.5GB)이나 패키지를 다운로드하기 전에 물어보세요. 이름, 소스, 크기를 명시하세요.
파이프라인
0. 수집 및 브리핑
ffprobe로 각 클립: 해상도, fps, 길이, 오디오. 방향을 감지합니다.- 중요한 것만 물어보세요(짧은 메뉴 사용): 대상 플랫폼/비율, 대상 길이, 바이브(Vibes 참조), 캡션 스타일, 음악 예/아니오, 반드시 유지할 라인. 사용자가 "그냥 해"라고 하면 기본값: 9:16, 30-60초, "크리에이터" 바이브, 볼드 캡션, 가벼운 SFX, 음악 없음.
1. 전사(단어 수준, 그대로)
- 선호: mlx-whisper(Apple Silicon) 또는 faster-whisper
medium.en/distil-large-v3, 단어 타임스탬프 켜짐. small이 아닌 medium을 사용하세요: small은 잘못된 시작을 놓칩니다. 선택 사항: 사용자가 키를 가지고 있는 경우 ElevenLabs Scribe(키를 프로젝트 폴더에 절대 쓰지 마세요). - 필러를 전사본에 그대로 유지하여(그래야 잘라낼 수 있음)하세요. 전사본을 캐시하세요.
- Whisper 특이 사항: 긴 일시 정지를 한 단어로 삼킵니다(몇 초 동안 지속되는 단어는 삼킨 일시 정지입니다; 실제 음성 범위는 RMS 엔벨로프 사용), 일시 정지 후 단어 시작을 0.2-0.4초 늦게 표시하며, 무음 꼬리에서 환각을 냅니다. 실제 콘텐츠 끝에서 자르세요. 캡션 타이밍을 위해 최종 세그먼트별로 다시 전사하세요.
- 이름/용어를 교정하세요; 수정 목록을 적용하세요(
chat gpt->ChatGPT).
2. 이야기 선택(긴 얍의 경우)
- 후보 세그먼트를 0-100으로 점수 매기기:
훅*0.30 + 일관성*0.25 + 감정*0.20 + 가치*0.15 + 결말*0.10. 강한 훅: 대담/반박 주장, 호기심 간격, 특정 숫자, 패턴 중단. 약한 훅: "그래서 오늘 나는...에 대해 이야기하고 싶습니다". 독립 테스트: "앞서 말했듯이" 없음, 매달린 대명사 없음. - 각각 15-55초(최적 25-40), 점수 >= 60, 시작을 단어/문장 시작(1.5초 창)에 맞추고 끝을 문장 끝(3초 창) + 300ms 패드에 맞춥니다.
- 훅은 마지막에 작성/선택됩니다: ~5-12개의 번호가 매겨진 후보 오프너를 텍스트, 유형 및 길이와 함께 제공합니다. 결과 우선 또는 대담한 주장 콜드 오픈이 느린 인트로보다 낫습니다. 처음 1-3초가 모든 것을 결정합니다.
- 원테이크 얍의 경우: 훅을 개선하는 경우에만 재정렬하고, 그렇지 않으면 화자의 순서를 유지합니다.
3. 컷(조이기)
조임 프로필(일시 정지 압축, 일시 정지는 삭제되지 않고 단축됨):
| 프로필 | 압축할 일시 정지(초과) | 유지 길이 |
|---|---|---|
| 부드럽게 | 0.80초 | 0.35-0.70초 |
| 표준 | 0.45초 | 0.18-0.40초 (문장 끝 후 0.30초) |
| 빡빡하게 (얍 기본값) | 0.25초 | 0.08-0.20초 |
- 감지: 10ms 간격 RMS 엔벨로프, 음성 = 노이즈 바닥 + 8dB. 대체:
silencedetect=noise=-30dB:d=0.5. - 제거: 음/어, 말 더듬기 및 다시 시작, 반복 단어, 잘못된 시작, 재촬영(이전 테이크 제거), 슬레이트/테일, 목청 가다듬기("그래서,", "기본적으로"). 의미론적 필러("like", "you know")는 오디오가 분리될 때만 제거합니다. 강조를 위한 의도적 반복은 유지합니다.
- 신뢰도가 낮거나 모호한 컷(재촬영, 병합된 필러, ASR 노이즈)은 자동 적용되지 않고 사용자에게 확인을 받습니다.
- 모든 접합부를 검증하세요: 각 접합부를 가로질러 창을 다시 전사하세요; 의도된 단어로 읽혀야 합니다. 2-3회 반복을 예상하세요. 전체 컷 후 계획과의 내용 단어 차이를 비교하세요; 손실된 단어가 있으면 실패로 간주합니다.
- 시각적 확인: 화자가 메모를 내려다보거나 중간 깜박임/머리 움직임이 있는 컷 가장자리를 피하세요; 머리 움직임 가장자리에서 빡빡하게(<=30ms) 끝냅니다.
- 프레임 정확한 조각: 모든 조각을 전체 프레임으로 양자화합니다(
n = round(dur*fps)). 그로부터 출력 타임라인을 계획하지 않으면 캡션이 40컷에서 약 1초 정도 표류합니다. - L-컷: 영상과 음성을 별도로 렌더링합니다. 각 새 라인(내부 일시 정지 압축이 아닌)에서 영상 컷이 오디오 컷보다 2프레임 늦게 떨어집니다. 내부 압축은 하드 컷으로 유지됩니다. 립싱크 오류 없이 점프 컷을 부드럽게 만듭니다.
- 내려다보기 / 메모 보기: 화자가 구절 사이에 내려다보는 구간에서는 더 세게 압축합니다(0.10초 초과 일시 정지, 각 면 0.03초 유지). 말하는 동안의 내려다보기는 자를 수 없습니다. 펀치인이나 스티커/B-롤로 숨깁니다.
- 사용자가 요청하는 인간적인 순간(웃음, 반응)을 보호된 범위로 유지하세요. 가장자리는 원시 상태로 두고, 요청 시 정확한 초 단위로 자릅니다("0:09-0:11 자르기").
- 페이싱: 최소 1.5-4초마다 새로운 시각적 이벤트(줌, 캡션 강조, 그래픽, B-롤)가 있어야 합니다. 약 8초 이상 정적 프레임 없음. 본문에 1.1-1.25x 속도 향상 선택 사항(절대 약 1.3x 이상, 가짜처럼 들림. 훅은 최대 1.5x까지 가능).
4. 줌(얼굴 인식)
- 얼굴 추적: OpenCV Haar(
opencv-python-headless<5) 또는 MediaPipe; 섹션당 0.5초마다 샘플링, 중앙값 사용, 중앙값 너비의 0.6x 미만 감지는 거부, 프레임 너비의 2% 사행 구간, 섹션 내에서 절대 패닝하지 않음. 섹션에 2회 미만의 히트가 있으면 이웃을 빌립니다. - 섹션당 줌 사다리(각 3-6초): 일반 1.0x, 강조 ~1.15-1.25x, 중요 ~1.3-1.6x (가로). 16:9에서 9:16으로는 고정 높이 분수 1.0 / 0.92 / 0.85 사용(더 조이면 불편해 보임).
- 기간별 혼합: ~60% 일반 / 30% 강조 / 10% 중요. 첫 번째 섹션은 일반. 동일한 수준의 연속 섹션은 2개 이하. 강조 줌은 문장 4개 중 최대 1개.
- 스타일 선택(바이브에서 묻거나 추론):
- 하드 컷 펀치인(점프 컷 얍의 기본값): 점프 컷 세그먼트에서 1.0x와 1.15x를 번갈아 사용하고, 훅에서 확대 시작, 강조 문장은 ~1.3x.
- 이지드 푸시인 빌드업:
scale=w='iw*z(t)':h='ih*z(t)':eval=frame후 고정 크기crop, 큐빅 이지 아웃(1-(1-t)^3), 0.4-0.5초 진입. 먼저 2초 클립에서 테스트하세요. zoompan은 떨림이 있습니다. - 펀치 앤 스테이(1.16x, 0.5초) 펀치라인에 비디오당 1-2회.
- 수직 프레이밍: 얼굴이 자르기 위에서 약 30% 위치에 오도록.
cy = min(face_cy - 0.3*ch, head_top - 0.03*ch). - 선택적으로 피크에만 히트 효과: 흔들림, 2프레임 흰색 플래시, RGB 분할, 속도 램프(파라미터 참조).
5. 캡션(애니메이션, 단어 수준)
- 단어 타임스탬프에서 libass
.ass생성(정적 글꼴 인스턴스만; 가변 글꼴은 libass를 중단시킴). 세그먼트별 재전사로 정확한 타이밍 확보. - 기본값: 큐당 1-3단어(<=18자), 구두점 및 >=0.3초 일시 정지에서 분리, 최소 큐 0.35초(깜빡임보다는 3단어로 늘림), 마지막 단어 후 0.12초 유지. 글꼴 ~1920 캔버스 높이의 4.6%(~88px), ExtraBold, 두꺼운 외곽선 또는 부드러운 그림자.
- 스타일(실제 프레임에서 3개를 그리드로 렌더링하여 사용자가 선택하도록 함):
- Bold: Montserrat 800, 대문자, 흰색, 활성 단어 노란색
#FFD700, 3px 검은색 외곽선, 스프링 팝인. - Bounce: 디스플레이 글꼴, 1-2단어, 회전하는 강조 색상, 오버슛 0.7 -> 1.2 -> 1.0.
- Clean: Inter 700, 자연스러운 대소문자, 3-5단어, 부드러운 페이드.
- Hormozi-lite (대체): 흰색에 검은색 외곽선, 중앙 정렬.
- Bold: Montserrat 800, 대문자, 흰색, 활성 단어 노란색
- 강조: 4단어 중 약 1개의 키워드가 색상/크기 112%를 얻음. 숫자/돈은 자동 색상 지정(예:
#3CE07A). 캡션 그룹당 하나의 키워드는 "디자인된" 바이브에서 2-4배 크기 처리를 받음. 말하는 단어에 팝: 108-112% 크기, 약 110ms 동안 이징 백. - 배치: 플랫폼 안전 영역 존중(범용 9:16 안전 영역 x60-940, y285-1480). Reels 캡션 y~1360, TikTok ~1400, Shorts ~1440. 입/턱 위에 절대 배치하지 않음. 라인은 4단어를 초과하지 않으며, 균형 잡힌 쌓기.
- 본문 캡션의 기본값으로 축소된 디스플레이 얼굴을 사용하지 마세요(비좁아 보임).
크리에이터 유형 시스템(실제 편집에서 검증됨, 사용자가 "진짜 콘텐츠 크리에이터 스러운데 깔끔한"이라고 말함):
- 본문: Gotham Narrow Black(또는 Montserrat 800), 대문자, 흰색, 1080w에서 약 70px, 어두운 스트로크 + 부드러운 흐림 그림자. 단어가 말해질 때 나타남. 가장 최신 단어만 활성화됨(노란색 + 112% 팝, 3프레임에 걸쳐 이징 백). 동시에 두 단어가 강조 표시되지 않음.
- 캡션에 구두점 없음(아포스트로피와 검열된 욕설인
sh*t,f***ing은 유지). - 키워드(제품, 이름, 숫자, 주제): 축소된 Ultra(Gotham XNarrow Ultra), 1.5배, 노란색, 기준선에 인라인.
- 스크립트 악센트(SignPainter / 브러시 스크립트), 크림색, 약 6도 기울임, 비디오당 최대 4-6개의 감정 단어에 사용.
- 큰 비트(펀치라인, 주제 문장, 제품 공개): 축소된 Ultra 슬램 1.28 -> 1.0, 4프레임에 걸쳐, 단어별로, 200-250px, 입 아래(펀치인 줌이 얼굴을 아래로 이동시키는지 확인).
- 순간 카드: 화자가 말하지 않았지만 그 순간이 필요한 텍스트(예: 웃음 위에 스크립트로 "부자처럼 웃음").
- 시리즈/타이틀 빌드: 각 타이틀 라인이 말해진 단어와 함께 나타남(축소된 디스플레이 라인 / 스크립트 라인 / 브랜드 컬러 라인 / 트래킹된 작은 대문자), 턱 아래에 배치, 입 위에 절대 배치하지 않음.
- 요청 시에만 캡션에서 욕설을 검열하고, 오디오는 녹음된 대로 유지합니다.
- 지속적인 레이블(일 카운터, 시리즈 태그)을 추가하기 전에 물어보세요. 크리에이터는 종종 이를 꺼는 것을 선호합니다.
5b. 소품, 스티커 및 컷아웃(선택 사항, 높은 영향력)
- 실제 인물/브랜드 참조(예: "Bruce Wayne", "Alfred", 자동차): 첫 번째 언급 시 흰색 외곽선 스티커 컷아웃으로 한 번만 표시(컷아웃 아래 알파 MaxFilter ~19px), 오버슛으로 팝인(0 -> 1.12 -> 1.0, 0.22초), 부드러운 흔들림(+/-2.5도), 약 1.9초, 팝아웃. 머리 옆 왼쪽 상단/오른쪽 상단에 배치, 얼굴 위에 절대 배치하지 않음. 하나의 SFX(휘익, 또는 테마 있는 것: 집사에게 서비스 벨 딩)와 쌍으로 사용.
- 물체는 움직일 수 있음: 예를 들어 자동차 컷아웃이 말해진 단어에 맞춰 바닥을 가로질러 주행(약 2초 동안 smoothstep, 작은 바운스, 18%/32% 알파의 속도 고스트 복사본 2개), 엔진 지나가는 SFX와 함께.
- 소싱: 먼저 사용자 에셋. 실제 인물의 경우 공개 라이선스 사진(Wikimedia Commons CC BY / CC BY-SA / PD)을 사용하고 사용자에게 크레딧 라인을 알림. 사용 가능한 도구(예: 배경 제거 API 또는 rembg)로 배경을 제거하고 물어본 후 진행. 권한을 확보하지 않는 한 개인/소셜 용도로만 사용.
6. 사운드 디자인
작업 순서: 음악(있는 경우) 먼저, 영상 그 다음, SFX 마지막.
- 큐: 레이아웃/씬 변경 및 큰 카메라 움직임에서 휘익(2프레임 일찍 시작; 접촉 프레임 전 공격 시간까지 시작); 그래픽/단어 팝 진입 시 팝; 훅 또는 공개 시 한 번 임팩트/서브 드롭; 다음 히트에서 끝나는 라이저; 하이라이트에 드물게 틱/플릭; 타이핑은 키 소리.
- 절제(가장 중요): SFX는 변경을 표시하고, 모든 단어를 표시하지 않음. 필러에는 아무것도 없음. 18초에 약 8개는 디자인된 느낌, 약 20개는 일반 느낌. 밀도 제한: 토킹헤드의 경우 2초 창당 2개. 1.5초 이내의 동일한 SFX는 변형을 번갈아 사용하고 반복당 1.5dB씩 낮춤. 강도 사다리: 캐주얼 얍 = 드물게; 하이프 릴 = 대부분의 비트에 사운드; 회사용 = 거의 없음.
- 소스: 사용자 라이브러리, 생성(ElevenLabs 사운드 효과/생성 팩), 또는 합성 키트 접근 방식(numpy/ffmpeg로 휘익/팝/틱/임팩트/라이저 구축, 다운로드 없음). 과도 피크로 배치, +/-1프레임.
- 음악: 선택 사항. 베드는 음성 아래 10-15dB 덕킹(
sidechaincompress=threshold=0.02:ratio=8:attack=20:release=350), 덕킹 시 음악 게인 약 -18dB. 비트 컷 바이브를 위한: 비트 감지(librosa), 모든 비트 / 2비트 / 마디에서 컷, 컷이 3프레임 이내에 떨어지는지 확인. - 보이스 체인, 믹스, 리미터 및 라우드니스 목표는
references/params.md에 있습니다.
7. 외관
- 가벼운 그레이드만: 웜 펀치 프리셋 또는 +/-8%로 제한된 자동 그레이드. 정적 토킹헤드는 블러 처리하지 않음(가짜처럼 보임). "디자인된" 바이브를 위한 선택적 그레인 3-6% 및 미묘한 비네트.
- 로그 푸티지(DJI Osmo Pocket 3 D-Log M, 10비트 HEVC; 카메라는 bt709로 태그하지만 실제로는 로그): 먼저 DJI D-Log M -> Rec.709 LUT으로 변환한 다음, 그 위에 그레이드. 16비트로 작업:
format=rgb48le,lut3d=file='<lut>.cube':interp=tetrahedral. LUT는 중간톤을 어둡게 함. 어두운 피부의 로우키 실내 샷의 경우 중간톤을 짓누르지 말고 들어 올리세요. 테스트된 시작점(외관: 풍부한 검은색, 약간 차가운 방, 자연스러운 피부):curves=master='0/0 0.04/0.025 0.25/0.31 0.6/0.70 0.9/0.92 1/0.98',colorbalance=rs=-0.025:bs=0.04:rm=0.03:bm=-0.015,eq=saturation=1.06,unsharp=5:5:0.3. 항상 배치 렌더링 전에 2프레임에서 raw | LUT | 그레이드를 나란히 렌더링하고 확인하세요. 조명이 변경될 때 샷을 개별적으로 그레이드하세요. 소스 프레임 속도를 유지하세요(24000/1001). - Pocket 3 수직 클립은 1728x3072(또는 2160x3840): 1.15-1.3x 펀치인에 충분한 헤드룸.
8. 출력 및 QA (TODO: references/qa.md로 이동)
- 렌더링 프로파일:
references/params.md에서 정확한 프리셋을 읽으세요. h264_nvenc(엔비디아), h264_videotoolbox(애플), libx264(범용 소프트웨어)에 대한 설정이 포함되어 있습니다. - 각 변환 후 다음을 검증하세요:
- 컷 포인트에서 +/-1.5초의 프레임 추출
- 1초 간격의 접촉 시트(시각적 글리치 확인)
- ebur128 라우드니스 판독값(목표: -14 LUFS 통합, -1dB 진정한 피크, 최대 3 LU 범위)
- 크로스 조인 재전사(단어 손실 확인)
- 수정: 최대 3회 패스. 각 패스 후 해결된 문제와 해결되지 않은 문제를 보고합니다. 숫자로 보고하세요. 당신은 오디오를들을 수 없습니다.
- 게시 준비(요청 시): 게시 설명, 해시태그, 콜 투 액션. 항상 복사본을 제공하고 파일을 전송하지는 마세요.
기술적 참고 사항
종속성
- 필수: ffmpeg(오디오 필터 지원 포함: anlmdn, aemphasis, sidechaincompress, loudnorm), Python 3.10+, pip
- Python 라이브러리:
opencv-python-headless<5,numpy,pydub,ass,Pillow,soundfile,scipy,tqdm - 전사:
faster-whisper(medium.en 또는 distil-large-v3) 또는mlx-whisper(Apple Silicon) - 선택 사항:
mediapipe(더 나은 얼굴 추적),librosa(비트 감지),rembg(배경 제거)
성능 참고 사항
- 5분 분량의 1080p 30fps 푸티지를 예상 편집 시간(MLX Whisper, Apple M1 Max): 전사 ~2분, 절단/줌 ~30초, 캡션 생성 ~10초, 렌더링 ~4분(소프트웨어 인코딩) 또는 ~90초(하드웨어 인코딩).
- 최신 GPU 또는 Apple Silicon 칩을 권장합니다. Intel Mac 또는 가상 머신은 크게 느려집니다.
- 더 큰 프로젝트의 경우 배치 스크립트를 생성하고 API를 통해 단일 편집 작업을 실행하는 것을 고려하세요. 편집 세션이 여러 개인 경우 병렬 실행을 위해 임시 디렉토리를 분리하세요.
테스트
tests/에서 자동화된 테스트를 실행하세요: 각 모듈에 대한 단위 테스트 및 전체 파이프라인에 대한 통합 테스트. 테스트는 짧은(5-15초) 합성 또는 샘플 푸티지를 사용합니다.- 테스트 실행:
python -m pytest tests/ -v - CI/CD: GitHub Actions가 각 푸시에 대해 테스트를 실행하고 아티팩트를 업로드합니다.
문제 해결
| 문제 | 해결 방법 |
|---|---|
| Whisper가 빈 전사본을 반환함 | 오디오 스트림 확인: ffprobe로 오디오가 있는지 확인하고, 볼륨을 높이거나, anlmdn으로 노이즈를 줄이세요 |
| libass가 글꼴을 로드하지 못함 | 글꼴이 정적 인스턴스인지 확인하고, 글꼴 경로가 절대 경로인지 확인하세요. 가변 글꼴은 지원되지 않습니다 |
| 줌이 떨림 | leap 초당 샘플 수를 늘리거나, MediaPipe로 전환하세요. 섹션당 최소 3개의 얼굴 감지가 필요합니다 |
| 캡션이 표류함 | 모든 조각이 전체 프레임인지 확인하고(n = round(dur*fps)), 최종 세그먼트를 다시 전사하세요 |
| 오디오가 깨지거나 클릭음이 있음 | 각 접합부에 15-30ms 크로스페이드를 적용하고, -c copy가 아닌 재인코딩을 사용하세요 |
| 느린 렌더링 | -preset fast 또는 -tune fastdecode를 사용하거나, CUDA/비디오툴박스 하드웨어 인코딩으로 전환하세요 |
보안 참고 사항
- API 키를 파일이나 전사본에 절대 저장하지 마세요. 사용자에게 환경 변수에 저장하거나 안전한 자격 증명 저장소를 사용하도록 요청하세요.
- 다운로드한 모델은
~/.cache/에 캐시되며, 재사용 시 추가 다운로드가 필요하지 않습니다. - 생성된 모든 출력은 사용자가 명시적으로 승인할 때까지 임시 디렉토리에 보관됩니다. 승인 후 소스와 출력을 모두 유지하거나 정리할 것인지 사용자에게 확인을 요청합니다.
- 타사 미디어(스티커, 배경, 음악)는 명시적인 사용자 허가 또는 공개 라이선스(CC0, CC BY)가 있는 경우에만 사용됩니다.
참여 방법
이 스킬은 오픈 소스이며 기여를 환영합니다! 다음을 환영합니다:
- 버그 신고 및 기능 요청 - GitHub Issues를 통해
- 풀 리퀘스트 - 특히 검증된 편집 워크플로우, 새로운 바이브, 캡션 스타일, 사운드 디자인 프리셋
- 테스트 - 새로운 편집 시나리오에 대한 테스트 추가
- 문서화 - 새로운 사용 사례 및 모범 사례 문서화
라이선스: MIT