Communitygithub.com

폴리

무음이거나 거친 컷에서 울려야 할 지점을 찾고, CC0 효과음을 그 프레임에 놓은 뒤, 하나하나 들어 보며 안착시킨다.

폴리란 무엇인가요?

소리가 없는 그림, 또는 효과음이 늦거나 묻히거나 클리핑된 러프에 소리를 붙입니다. 울려야 할 순간을 표시하고 Openverse에서 CC0 음을 가져와 길이를 자른 다음 ffmpeg로 그 프레임에 놓습니다. 다시 들으며 싱크와 레벨을 확인한 뒤에야 그 한 소리를 끝으로 칩니다. 음원 라이브러리는 계정이 필요 없습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ekcheungAI/foley-skill/tree/HEAD/foley

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

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

문서

foley: 프레임에 맞춘 사운드 이펙트

당신은 소리를 들을 수 없습니다. earshot이 당신의 귀입니다: earshot 숫자 없이 소리가 "어울린다"나 "동기화되었다"고 말하지 마십시오. SKILL_DIR 아래 = 이 기술의 자체 폴더(기술이 로드될 때 기본 디렉토리로 표시됨). 비디오의 폴더에서 작업하십시오. 생성하는 모든 파일은 비디오 옆의 foley/ 아래에 두십시오.

필요 사항

  • PATH에 ffmpeg와 ffprobe, Python 3.10+.
  • PATH에 earshot: uv tool install "earshot[mcp] @ git+https://github.com/Leonxlnx/earshot" 그런 다음 earshot doctor --fetch (~1.1 GB 모델, CPU만 사용).
  • Openverse 인터넷 접속 (익명 제한: 분당 약 20회, 하루 200회).

1. 큐 찾기 (보고, 측정하기)

  1. python3 SKILL_DIR/scripts/find_cues.py VIDEO --out foley/cues-candidates.json 명령어는 모션 피크(프레임 간 변화)를 출력하고 접촉 시트를 foley/sheets/에 작성합니다.
  2. 접촉 시트를 읽으십시오. 소리가 필요한 각 순간(타격, 발걸음, 문, 빠른 회전의 우웅, 충돌, 배경 소음)의 이름을 지정하고 정확한 프레임을 선택하십시오. 모션 피크를 사용하여 범위를 좁히되, 눈에 보이는 것을 신뢰하십시오. 실제로 볼 수 없는 접촉은 건너뛰십시오.
  3. foley/cues.json을 작성하십시오: [{"id": "hit1", "t": 0.625, "kind": "hit", "what": "주먹이 열린 손바닥을 때림"}, ...].

2. CC0 사운드 가져오기

각 종류에 대해 2~4개의 검색어: python3 SKILL_DIR/scripts/fetch_cc0.py "펀치 충격" foley/sounds/hit --limit 8. source=freesound에서 license=cc0 결과만 유지하고 제목, 제작자, 라이선스 및 소스 페이지를 foley/sounds/sources.json에 기록합니다. CC0은 출처 표시가 필요 없지만, 사용이 상업적인 경우 사용자에게 소스 페이지를 열어보라고 알리십시오: Openverse는 라이선스 정확성을 보장하지 않습니다.

3. earshot으로 선택 및 편집

  • earshot rank "<그 순간의 소리 설명>" foley/sounds/<kind> --top 3 --out foley/rank-<kind>.json. 그림이 아닌 소리를 설명하십시오("주먹이 열린 손바닥에 닿는 짧고 날카로운 때림").
  • earshot find FILE "<동일한 단어>" --kind event --top 3 --out foley/find-<id>.json (원샷); 배경 소음의 경우 --kind texture. 머리 잘림/꼬리 잘림 표시된 트림은 거부하십시오.
  • 각 트림의 싱크 포인트를 기록하십시오: 타격의 경우 어택(시작 + 약 5ms); 우웅의 경우 시작이 아닌 가장 큰 지점.

4. 배치

foley/plan_v1.json을 작성하고(scripts/mix.py 헤더 참조) python3 SKILL_DIR/scripts/mix.py foley/plan_v1.json을 실행하십시오. 그림은 복사되며, 다시 인코딩되지 않습니다.

5. 다시 듣고 수정하기 (중요한 부분)

  1. earshot timeline OUT.mp4 --cues "t1,t2,..." --out foley/timeline_v1.json
  2. python3 SKILL_DIR/scripts/check.py foley/timeline_v1.json id1,id2,... foley/check_v1.json 큐는 들린 온셋이 프레임의 40ms 이내이고 배경 소음보다 최소 6dB 높을 때 통과합니다.
  3. 측정된 양만큼 실패한 부분만 수정하십시오:
    • 늦음/빠름 → 해당 이벤트를 오프셋만큼 이동 (우웅은 피크가 시작 이후에 오기 때문에 일반적으로 늦음);
    • 묻힘(배경 소음보다 6dB 미만) → 볼륨을 높이거나 배경 소음을 낮추십시오;
    • 트루 피크가 -1 dBTP 이상이거나 클리핑 → 가장 큰 타격을 낮추십시오 (리미터가 첫 번째 샘플에서 과도를 잡을 수 없음).
  4. plan_v2.json을 작성하고, 렌더링하고, 다시 듣습니다. ALL PASS이고 트루 피크 ≤ -1 dBTP가 될 때까지 반복하십시오.
  5. 음량: 사운드 이펙트 전용 트리는 피크가 높으며 일반적으로 약 -20 LUFS, 트루 피크 ≤ -1 dBTP로 측정됩니다. 이는 예상된 현상입니다. 최종 음량은 나중에 편집 시 음성/음악과 함께 설정하십시오. 여기서 더 크게 밀지 마십시오.

6. 보고

foley/report.md를 작성하십시오: 각 큐(시간, 프레임, 내용), 사용된 파일(제목, 제작자, CC0 소스 페이지), 첫 번째 청취의 오프셋과 레벨, 변경한 사항, 최종 수치. 검사가 earshot 측정값이며 사람의 청취가 아님을 명확히 밝히고, 사용자에게 한 번 들어볼 것을 제안하십시오.

규칙

  • 사용자가 달리 요청하지 않는 한 CC0 사운드만 사용하십시오. sources.json 행이 없는 사운드는 절대 사용하지 마십시오.
  • 볼 수 없는 타격을 만들어내지 마십시오. 소리가 "괜찮다"고 주장하지 말고 earshot 수치를 인용하십시오.
  • 원본 비디오는 그대로 두고 <name>-sfx.mp4를 작성하십시오.

관련 스킬