Communitygithub.com

Desi Lyric Film (印度風格動態歌詞影片)

將使用者提供的歌曲轉換為 16:9 手繪風格、印度極繁美學的動態歌詞影片——包含逐格動畫角色、字詞同步的梵文與英文字幕、以及副歌處的眼部特寫。

Desi Lyric Film (印度風格動態歌詞影片) 是什麼?

此技能可將使用者上傳的音樂檔案,自動製作成一部具有一致手繪風格的 16:9 動態歌詞影片。核心特色包括:角色逐格動畫(使用二次繪製、沸騰墨線與紙片剪貼效果)、不變的裝飾畫框、每句歌詞逐字同步顯示的梵文(Devanagari)與羅馬拼音(Roman)字幕,以及在每個副歌處安排的角色眼神特寫(eye moment)。 技能依賴完整的 Remotion 專案模板(`template/`),使用者無需手寫影片程式碼,只需產出三個 JSON 檔案(`lyrics.json`、`character.json`、`film.json`)即可由引擎自動渲染。歌詞完全來自使用者的音檔或自行提供的文字,避免任何外部版權問題;角色則透過 Atlabs MCP(支援 Nano Banana 2.1、GPT Image 2.5 Sunburst 或 Seedream 5 等模型)生成,並透過多組編輯保持表情、服裝與色彩的一致性。 此技能特別適用於需要「歌詞影片」、「動態歌詞」、「手繪音樂影片」、「印度 / 寶萊塢 / Hindi 歌曲動畫」、「歌曲動態字體設計」或「歌曲插畫 Reels」等場景。但**必須先連接 Atlabs MCP**,否則技能會立即停止並引導使用者完成連線。支援 Claude Code(外掛或終端機)、Claude Desktop 與 claude.ai。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Chinmaya123-cyber/desi-lyric-film/tree/main/skills/desi-lyric-film

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Desi Lyric Film (印度風格動態歌詞影片) 是做什麼的?

將一首歌(使用者自己的音檔)轉換成一部 16:9 的動態歌詞影片,風格統一為手繪感: 一個插畫角色承載每句歌詞的情感、每個副歌都有一個眼神特寫、歌詞逐字以梵文(Devanagari)呈現並在下方附上羅馬拼音(Roman)對應、每一個剪輯都落在歌詞的某個音節上、整體如同逐格動畫(二次繪製、沸騰墨線、紙片剪貼)。

template/ 是一個完整且經過測試的 Remotion 專案,內含資料驅動引擎。你永遠不需要手動編寫影片:你只需要產出三個 JSON 檔案,引擎就會負責渲染。

檔案內容由誰產生
src/lyrics.json每一句歌詞:{t0, t1, dev[], rom[], times[]}tools/transcribe_lyrics.py → tools/build_lyrics.py
src/character.json表情組 + 眼睛錨點、眼部特寫圖板、外觀卡片、旋轉動作Atlabs MCP + tools/register_frames.py, eye_anchor.py, cu_plates.py, make_cards.py
src/film.json鏡頭列表(種類、開始時間、歌詞槽位、背景、轉場、選項)tools/plan_shots.py,然後你根據含義修改

請在進行每個步驟時閱讀對應的參考文件: references/atlabs-mcp.md · references/character.md · references/lyrics-and-timing.md · references/shot-design.md · references/style-guide.md(精確色板、字體、動態規範) · references/render-deliver.md。

0. 鐵則——必須先連接 Atlabs MCP

所有角色圖像(基礎設計、表情、眼部特寫、服裝/色彩外觀)都透過 Atlabs MCP 生成。沒有替代方案:如果它沒有連線,請立即停止,直到它連線為止。

檢查:使用 ToolSearch 搜尋 atlabs generate_image get_result start_upload get_account(工具名稱皆為 mcp__atlabs__… 或 mcp__<id>__…,且經常是延遲載入的),然後呼叫 get_account——它會回傳餘額。

如果工具缺失或 get_account 失敗,請回覆以下確切步驟並等待:

此技能需要使用 Atlabs MCP 製作角色圖像,因此需要先連線(約一分鐘):

  1. 還沒有 Atlabs 帳號? 請在 https://app.atlabs.ai 註冊(圖片生成會消耗 Atlabs 點數;一部完整的影片大約需要 25–40 點)。
  2. 連線:
    • Claude Code(以外掛安裝): Atlabs 已整合——輸入 /mcp,選擇 atlabs,然後登入。
    • Claude Code(終端機): 執行 claude mcp add --transport http atlabs https://mcp.atlabs.ai/mcp,然後 /mcp → atlabs → 登入。
    • Claude Desktop / claude.ai: 設定 → 連接器 → 新增自訂連接器 → 名稱輸入 Atlabs,網址輸入 https://mcp.atlabs.ai/mcp → 新增 → 連線 → 登入,然後在該對話中啟用它。
  3. 連線完成後告訴我,我就會開始。

1. 簡報——提問,而非假設

使用 AskUserQuestion(只問一輪,然後根據合理的預設值繼續):

  1. 歌曲:使用者自己擁有的音檔(mp3/wav/m4a)。切勿自行下載音樂。
  2. 選取片段:「幫我選重點段落」(預設,30–60 秒)或使用者給予的時間戳記,或提供參考片段來比對(tools/locate.py 可在歌曲內找到片段)。
  3. 角色——提供選項:
    • 「使用我的參考圖片」——使用者自己的照片、經他人同意的照片、或使用者擁有版權的角色圖。 使用者可以提供多張(不同服裝、不同底色背景、不同表情);每張都有用。請勿在未經同意的情況下將名人或任何真人風格化——改提供原創角色。
    • 「設計一個原創角色」——可選用風格參考圖片和簡短描述(外觀、服裝風格)。
  4. 風格關鍵詞(選擇性):例如「印度壞女孩 Z 世代」、「溫柔浪漫」、「節慶感」、「心碎」。預設:現代印度風帶印度元素。

如果使用者在對話中分享的圖片並非磁碟上的檔案,請要求他們將圖片儲存到 refs/cards/(或提供路徑)——上傳到 Atlabs 需要檔案路徑。

2. 建立專案

cp -R <skill 目錄>/template <專案名稱> && cd <專案名稱>
npm install
uv venv -q --python 3.12 .venv && uv pip install --python .venv/bin/python numpy scipy pillow faster-whisper
mkdir -p refs && cp <歌曲檔案> refs/song.mp3

(python3.12 -m venv .venv 也可以。)在專案根目錄下,以 .venv/bin/python -I tools/<工具>.py … 執行所有 Python 工具。

該模板附帶一個示範角色、道具和示範資料,因此 npx remotion studio src/index.ts 可立即執行。

3. 讀取歌曲、選取片段、剪輯音檔——references/lyrics-and-timing.md

.venv/bin/python -I tools/beatgrid.py refs/song.mp3 --bpm-min 60 --bpm-max 180      # 節奏、節拍相位、音量條
.venv/bin/python -I tools/structure.py refs/song.mp3                                 # 重複段落 = 副歌
.venv/bin/python -I tools/vocal_onsets.py refs/song.mp3 --from 0 --to <長度> --json refs/onsets.json
tools/cut_audio.sh refs/song.mp3 <開始> <結束>                                        # → public/audio/song_cut.wav

選取重複最多、能量最強的人聲段落(副歌就在那裡)。在該段落第一句人聲之前 2–4 拍的下拍開始,在下一個段落前的呼吸點結束。記下 start——影片時間 = 歌曲時間 − start。

4. 歌詞——自動化,完全來自使用者的音檔

.venv/bin/python -I tools/transcribe_lyrics.py refs/song.mp3 --from <開始> --to <結束> --lang hi --onsets refs/onsets.json
.venv/bin/python -I tools/build_lyrics.py --transcript refs/transcript.json --slice <開始> <結束> --onsets refs/onsets.json
  • --lang hi 會輸出梵文,--lang en 會輸出羅馬化的 Hinglish;build_lyrics.py 會同時寫入兩種文字。
  • 如果轉錄工具回報無法辨識的唱段(例如速度極快、多層人聲),請詢問使用者是否有純文字歌詞或時間戳表格;如果有,則使用 build_lyrics.py --table lyrics.txt …(或 --text)。如果沒有,則繼續:那些歌詞片段會保持無文字,規劃工具會為它們安排純視覺鏡頭。
  • 歌詞只能來自使用者的音檔經轉錄工具,或來自使用者提供的文字。 絕對不要自己輸入歌詞、不要靠記憶填空,也不要將歌詞文字回覆在對話中——只需回報數量與時間點。

5. 角色——Atlabs MCP——references/character.md

一個基礎繪圖,所有其他圖片都是該基礎圖的編輯版本,因此角色永遠不會走樣。預設模型: Nano Banana 2.1(nano_banana_2_1)用於從參考圖生成基礎圖和所有編輯(一致性最佳); GPT Image 2.5 Sunburst(gpt_image_2_5_sunburst)用於照片需更強風格化處理時; Seedream 5 Pro(seedream_5_pro)用於新道具或全景圖板。

  1. 基礎圖:乾淨的上半身、純奶油色背景、符合指定風格(參考圖或原創)。
  2. 表情(基礎圖的編輯版本):正面, 側面, 閉眼, 痛苦, 釋懷, 害羞, 夢幻, 感動(加上基礎圖作為「中性」/ 側目)。 register_frames.py 將它們排列在同一畫布上;eye_anchor.py --set main … 找到角色的眼睛位置。
  3. 可選第二種造型(例如較暗的服裝)配上 正面, 側面, 閉眼, 痛苦, 釋懷, 夢幻 → 用於沉重情緒。
  4. 眼部特寫帶 + 編輯版本 半開, 閉眼, 淚水, 凝視, 魅惑 → cu_plates.py,然後 eye_anchor.py --closeup。
  5. 4–6 張外觀卡片:同一個角色、不同的現代服裝 + 色板中的純色背景 + 塗鴉, 每張都有一個閉眼編輯版本 → make_cards.py。
  6. 全身旋轉動畫 → keyout.py。 獨立生成任務請平行提交;使用 sheet.py 製作聯絡表,確認後再繼續。告知使用者所使用的模型和花費的點數。

6. 規劃影片——references/shot-design.md

.venv/bin/python -I tools/plan_shots.py --bpm <BPM> --beat0 <第一個下拍,影片時間秒> --duration <長度秒> --audio audio/song_cut.wav

然後閱讀每句歌詞的意義(從檔案中讀取,不要將歌詞貼到對話中),並修改 src/film.json:

  • 每個副歌都是一個眼神特寫(角色的眼部特寫,每次用不同的視線,或使用眼睛道具);連續兩次不能相同
  • 痛苦表現在角色臉上(裂痕、變暗的地面),而釋懷發生在治癒的詞語上——永遠不要出現真實的傷口
  • 觸碰 / 感受是「感動」(花朵盛開、漣漪),而不是手放在心上;快節奏歌詞則用外觀卡片快速切換
  • 每個鏡頭的背景都不同(使用外觀卡片的顏色),畫框永不改變;轉場方式要多樣

保持一個連貫的故事:她是主角,她的眼睛是核心意象。

7. 檢查,然後渲染——references/render-deliver.md

node tools/stills.mjs out/st 0.5 <影格編號…> && .venv/bin/python -I tools/sheet.py out/st.jpg out/st/*.jpg
./tools/make_film.sh <名稱>                     # → out/<名稱>.mp4 (1920×1080, 24 fps)

檢查每句歌詞第一個字的靜止幀:歌詞清晰可見且在畫面內、副歌時眼睛是睜開的、表情符合歌詞、沒有空白鏡頭。修正後重新渲染變更的影格,然後渲染整部影片(約 4–6 分鐘)。將結果複製到使用者的「下載」資料夾並發送。提醒一句:商業歌曲在某些平台上可能會被靜音;使用者有責任確保擁有發布此影片的權利。

常見陷阱(來自實際執行經驗)

  • feTurbulence 將種子 0 和 1 視為相同的圖案——沸騰 / 顆粒效果的種子從 1 開始(已在 kit.tsx 中修正);否則開場會卡住 4 個影格後才跳動。
  • Whisper 會漏掉非常快速的歌唱;但音節起始點仍然能夠為那些段落提供時間點——切勿猜測歌詞。
  • Remotion 的內建 headless shell 可能在 macOS 上崩潰;remotion.config.ts 使用已安裝的 Chrome。並行數保持為 6。
  • 註冊的編輯版本必須來自同一個基礎圖片;如果某個編輯版本走樣(不同的姿勢/裁切),請重新生成它,不要強行使用。
  • 深色背景上的文字會自動切換成奶油色/桃色字體——請根據情緒選擇背景顏色,而不是根據文字。

相關技能