Communitygithub.com

Alzat007/zhati-relationship-film

生成扎提风格的 3 分钟中文男女关系/爱情影像随笔:素材可按客户要求随时替换(客户实拍、公版电影、AI 联网找的免费 stock、照片、纯文字、混合),雨伞/雨/胶片视觉脊柱、宋体动效、3:4 封面。当用户要求制作关系/爱情随笔视频、客户定制剧集或仿《好人与错的人》风格的新剧集时使用。

zhati-relationship-film 是什麼?

此技能专为生成扎提风格的中文男女关系/爱情影像随笔而设计,视频时长约 3 分钟,格式为 16:9 横屏搭配 3:4 封面。其核心在于提供一套可复用的制作工作流,而非简单复制特定文案。技能高度灵活,可以根据客户需求动态替换所有素材——包括客户实拍片段、公版电影片段、AI 自动搜索的免费 stock 影片、照片,甚至纯文字与图形——确保每一期都独一无二,同时保留固定的视觉 DNA:雨伞与雨的隐喻贯穿始终,胶片质感、宋体大字动效、克制的旁白以及特定的叙事结构。技能支持 Claude Code、Cursor 等 AI 代理直接通过命令行启动新剧集,引导用户完成从读取客户 Brief、撰写旁白、生成音频、替换素材到最终渲染交付的完整流水线。工作流内嵌严格的版权与伦理检查,明确禁止使用未授权的素材或诊断式标签。参考母版《第七天堂》及相关思想家引语仅作为实现参考,技能鼓励根据客户要求灵活变换。同时,技能提供了丰富的预设脚本与模板,大幅降低技术门槛,使非专业剪辑师也能高效产出具备电影感的系列化内容。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add Alzat007/zhati-relationship-film

在你喜歡的 AI 中提問

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

說明文件

扎提·關係影像隨筆

這是從成片《為什麼有些好人,會和錯的人交往?》提煉出來的可重複使用工作流。目標不是復刻同一篇文案,而是讓新一期保持同一套製作方法:

一個有具體物的關係故事 + 宋體大字 + 電影/實拍/照片的質感 + 克制的旁白 + 3:4 封面。

固定的是方法,不是素材

固定:16 拍敘事語法、字型/色板/運動/聲音標準、3:4 封面、來源與倫理硬門、QA。

可變:文案、旁白、音樂、電影/客戶實拍/產品/照片/授權 stock、人物肖像、封面背景、發布文案。

AI 可以自己找背景影片:客戶沒有素材時,用 scripts/stock_search.py 搜 Mixkit/Coverr/Pexels/Pixabay,選 3 個候選,用 scripts/fetch_stock.py 下載、去音軌、標準化、寫 manifest。詳見 references/stock-sources.md。

母版的《第七天堂》、佛洛伊德/亞里斯多德/康德,只是參考實作,不是每一期必須出現的素材。客戶要真實門店,就用客戶素材;客戶要影史案例,就換 2–3 部公版片;客戶沒有素材,就做純文字/圖形。不要為了「系列感」硬套一部電影或一張臉。

詳細選擇見 references/client-brief.md 和 references/asset-strategy.md。

先判斷是否適用

適用:

  • 男女關係、愛情、親密關係、邊界、自我價值、付出與回報、分手與複合等中文情感議題。
  • 品牌/機構想講「關係、邊界、尊重、陪伴」的客戶故事,且適合散文式表達。
  • 用戶想要 2:40–3:40 的橫螢幕影像隨筆,有旁白、有字幕、有電影感。
  • 用戶明確說「按《好人與錯的人》那個風格」「用之前那個模板」「做成系列」。

不適用:

  • 純產品發布/帶貨/快節奏混剪/功能講解;這些用別的格式更合適。
  • 用戶要求使用《卡薩布蘭卡》《花樣年華》等仍受版權保護的片段,且沒有授權。先說明風險,改用公版片或讓用戶提供授權素材。
  • 用戶想要 9:16 直螢幕正片。本模板是 16:9 正片 + 3:4 封面;直螢幕需要重新做佈局,不能直接裁。

成片規格(預設)

項預設
正片1920×1080 / 30fps / 2:40–3:40
畫幅16:9
語言簡體中文旁白 + 燒錄字幕 + SRT
封面1080×1440(3:4),PNG + JPG
聲音旁白 + 原創配樂 + 雨聲,約 −15 LUFS,真峰值 ≤ −1.5 dBFS
字幕燒錄在畫面內,另出 .srt
交付MP4、SRT、3:4 封面、發布文案、素材來源、可編輯工程
客戶確認Brief → First still → Final 三個確認點

母版位置(reference implementation)

參考母版(不隨倉庫分發;只作為資產/結構參考):

  • 本機開發時:~/Desktop/自媒體/good-people-wrong-person
  • 其他機器:用 --ref 指向你自己的 master 工程

新一期不要預設沿用母版的素材。 用 --ref 只是為了拿 vendor/、字型、紋理和一條佔位音軌;電影、肖像、靜幀、文案、聲音都要按客戶 brief 換。

母版包含:

  • index.html:201.37 秒成片的完整 huashu-motion 合成。
  • cover/cover.html:1080×1440 的 3:4 封面原始檔。
  • assets/movies/:已核驗、已去音軌、已補到整數幀的《第七天堂》(1927) 片段。
  • assets/portraits/:佛洛伊德、亞里斯多德、康德公版肖像。
  • assets/stills/、assets/textures/、assets/fonts/、vendor/。
  • assets/score.wav:上一期的旁白+配樂+雨聲成品混音。新一期必須替換,不能直接沿用。
  • output/:上一期交付物,僅作參考,不要原樣複製。

如果母版不在了:用 templates/index.template.html 和 templates/cover-3x4.template.html 恢復程式碼;電影片段和肖像需要重新按 references/rights-and-ethics.md 取得並核驗。

新一期怎麼開始

SKILL="$HOME/.agents/skills/zhati-relationship-film"
$SKILL/scripts/new_episode.sh my-episode-slug --base "$HOME/relationship-films"

腳本會:

  1. 在 $BASE_DIR/my-episode-slug 建新工程(預設 $HOME/relationship-films,可用 --base 改);
  2. 複製 skill 的最新模板程式碼(index.html、cover/cover.html),再從母版複製 vendor/、字型、紋理和一套起始素材;
  3. 複製母版 assets/score.wav 作為佔位音軌(頁面能先跑起來);
  4. 生成 BRIEF.md、文稿.txt、字幕.srt、treatment.md、素材來源.md、發布文案.md、assets.manifest.json 模板;
  5. 建立 assets/imported/,列印下一步和需要替換的文字/素材槽。

然後按下面的流水線做。不要跳過寫新旁白和新字幕這一步。

流水線

0. 讀客戶 brief,鎖內容 + 素材

先讀 references/client-brief.md,把客戶要求壓成 10 行內容計劃:

受眾 / 平台 / 時長 / 一句話主題 / 鉤子問題 / 兩個概念 / 思想或心理視角 / 倫理轉折 / 一句小話 / 素材模式與來源

再讀 references/beat-sheet.md,把主題放進 16 個敘事節拍裡。素材模式在寫旁白前就要定:客戶實拍 / 公版電影 / 授權 stock / 照片 / 純文字 / 混合。不要先寫滿 3 分鐘再問客戶要素材。

預設結構:

  1. 鉤子(一個問題)
  2. 具體故事(雨/傘;可以換成別的具體物,但必須有一個物貫穿)
  3. 「這是一個虛構的故事」類限定
  4. 兩個概念的區分(善良 vs 合適,或本期對應的一對概念)
  5. 哲學視角 A(友愛/相互性/尊重等)
  6. 一個人的侷限(「一個人的付出無法獨自完成兩個人的關係」類)
  7. 情緒轉折問題(為什麼難過還期待下一次)
  8. 心理視角(重複/模式;用「一種理解角度」,不做診斷)
  9. 模式識別(努力換取認可)
  10. 冷淡與自我懷疑
  11. 倫理轉折(傷害不是你招來的;責任在傷害者)
  12. 限定與例外(欺騙、改變、相處後才看見)
  13. 自省(兩個問題;鏡面/倒影)
  14. 哲學視角 B(自我尊重)
  15. 一句很小的話(可執行的動作)
  16. 練習與收束(保留溫柔,也給自己留位置)
  17. 片尾字幕/來源

如果新主題不需要兩位哲學家,可以只保留一位;如果不需要心理視角,可以把 8–9 壓成一段。不要為了湊結構編造引語或診斷。

1. 寫新旁白

  • 目標 950–1150 個漢字,正常語速約 3 分鐘;如果用戶給了文稿,先做「刪到能呼吸」的編輯,不要改立場。
  • 保留限制性表述:一種理解角度 / 不是對所有人的解釋 / 傷害的責任不能替對方開脫。
  • 結尾要有一句可被記住的「小動作」或「小句子」,例如「我也冷,我也需要這把傘」。
  • 寫入 文稿.txt,一段一行,方便產生字幕。

2. 生成新旁白和新時間軸

優先使用用戶自己的本地聲音克隆(見 macos-local-voice skill),不要上傳參考錄音。沒有可用聲音時,明確問用戶:本人錄音 / 本地克隆 / 系統音色 / 無聲。

產出:

  • 一條完整旁白 assets/voice.wav(48kHz,盡量 24-bit);
  • 逐句起止時間(JSON 或 CSV),精確到 0.01s;
  • 一份新 CUES 陣列([start, end, text])。

不要沿用母版的 194 秒旁白。母版的時間軸只用於理解節奏,不是新一期的音訊。

3. 配樂與混音

  • 保留「鋼琴/弦樂/輕環境 + 雨聲」的方向,不要用現成版權歌曲。
  • 混音目標:旁白清楚,音樂在 −28~−32 LUFS 左右,整體約 −15 LUFS,真峰值 ≤ −1.5 dBFS。
  • 輸出 assets/score.wav,替換佔位音軌;頁面裡的 <audio id="score" ...> 保留,但時長要改。
  • 本模板用 id="score" 而不是 om-sound,所以渲染時要加 --silent,否則 om render 會嘗試重建音軌。詳見 references/visual-system.md 的「聲音」一節。

4. 重新卡點

這是最容易被低估的一步。母版的所有時間都是硬編碼的;新旁白一換,每個場景都要重新對時。

按 references/beat-sheet.md 的比例給 16 個場景分配新時長,然後:

  • 先改 CUES 陣列、根節點 data-duration、JS 裡的 DUR、<audio data-duration>。
  • 每個場景以「該段第一句旁白的起點」為錨,場景結束以下一段的第一句為界。
  • 場景內部的動畫時間按「新時長 / 舊時長」做比例縮放;不要只平移開頭,否則後半段會漂。
  • 影片視窗的 data-start / data-duration / data-media-start / data-playback-rate 也要重算;確保片段在淡出之前不會先播完。母版片段已經補到整數幀,但換了新片源要重新補幀。
  • 每改完一個場景,用 om still 看 start+0.5s、start+2s、end-0.5s,確認沒有舊文字殘影、沒有文字碰撞、沒有空幀。

具體替換清單見 references/text-slots.md;卡點方法見 references/retiming.md。

5. 換文字,不要換視覺 DNA

必須逐項替換 index.html 裡的文字槽(見 references/text-slots.md),包括:

  • 片名變數 filmTitle、鉤子兩行;
  • 雨傘故事的四段大字;
  • 「虛構故事」限定;
  • 善良/合適兩幀的標籤;
  • 亞里斯多德/佛洛伊德/康德的段落與出處;
  • 冷場、轉折、責任、鏡面、自省、行動、結尾、片尾字幕;
  • CUES 裡的每一句字幕。

保留:

  • 色板、宋體/蘋方/EB Garamond 的搭配;
  • 膠片底、雨、傘、顆粒、暗角、閃白、酒紅劃線;
  • 16:9 的左右留白和下方字幕帶;
  • 「一鏡一事件」的節奏,不要把所有字都塞進同一螢幕。

不要保留母版的舊文案。新一期如果出現「亞里斯多德/佛洛伊德/康德」以外的思想家,必須重新核驗出處,並在畫面裡標註「釋義/應用」,不要偽造直接引語。

6. 素材替換(按客戶要求,必做)

母版用的是《第七天堂》(1927),但這只是參考實作。按 references/asset-strategy.md 選模式:

  • 客戶實拍/照片/產品/門店:優先;寫清授權/肖像同意;人臉保持真實,別過度磨皮;產品只作為「關係中的物」,不要做成硬廣。
  • 公版電影:可以繼續《第七天堂》,也可以換 1–3 部公版片;去音軌、補幀、抽靜幀、逐片標註。
  • AI 自己找免費 stock:客戶沒有素材時,先搜 3 個候選給客戶看;確認後用 scripts/fetch_stock.py 下載/標準化。不要從 YouTube/串流媒體/版權片扒;不要繞過浮水印/付費牆。來源、license、credit 寫進 manifest。
  • 授權 stock:保留 license/訂單;不要用帶浮水印預覽。
  • 照片/檔案/肖像:標明照片/雕像/繪畫;公版或客戶授權;不要 AI 生成冒充歷史人物。
  • 純文字/圖形:沒有 footage 時,讓字和留白成為畫面;不要硬塞電影。
  • 混合:最多 2–3 種來源;一套 grade、一套字、每來源 credit。

替換後必須:

  1. 改 data-asset-slot 對應的 src;
  2. 用 ffprobe 重算影片視窗;
  3. 重抽靜幀;
  4. 改 #credit、#credits .cols、素材來源.md;
  5. 跑 python3 scripts/asset_report.py --manifest assets.manifest.json --project .。

不要用《卡薩布蘭卡》《羅馬假期》《花樣年華》等仍受版權保護的片段,除非客戶提供明確書面授權。

7. 檢查、渲染、審片

cd "$HOME/relationship-films/my-episode-slug"
om check . --samples 6
om render . --silent --fps 30 --workers 4 --video extract
om qa out/<new-file>.mp4

渲染約 25–35 分鐘(1080p/30fps/4 workers,201 秒量級)。不要用 720p 冒充 1080p。

如果本機的 om 是包裝腳本(例如設定了 Node/Chrome 環境),把 OM 指向它;scripts/ 會依次嘗試 $OM、om、~/.agents/skills/huashu-motion/bin/om。

必過:

  • om check 0 errors;
  • om qa 無單幀跳變;
  • 抽幀檢查:鉤子、每個場景邊界、轉折、佛洛伊德、結尾、片尾字幕;
  • 獨立冷審(找一位沒參與製作的 agent 只看成片),至少修掉 MUST-FIX;
  • ffprobe 確認 1920×1080/30fps/正確時長/AAC 48kHz 立體聲;
  • 全片解碼無錯誤;響度/峰值達標。

8. 封面和發布文案

  • 封面:複製 cover/cover.html,替換標題、時長、底部鉤子、來源;渲染 1080×1440 PNG + JPG。模板的佈局:頂部小標 + 大標題(「錯的人」用琥珀色)+ 中部傘/兩個人 + 底部一句金句 + 來源。
  • 發布文案:按 references/publishing.md 出長版/短版/B站版/置頂評論/標籤;不要直接複用上一期的文案。
  • 片尾字幕和角標保留「電影畫面,非真實案例」「解釋視角,不是診斷」等必要限定。

9. 交付

my-episode-slug/output/
  <slug>_1080p_30fps.mp4
  <slug>_字幕.srt
  <slug>_封面_3x4.png
  <slug>_封面_3x4.jpg
  <slug>_發布文案.md
  素材來源.md
  項目說明.md

硬門(不過不交付)

  1. 新旁白:新一期必須有新錄/新生成的旁白;不能拿母版 194 秒音訊對上新字幕。
  2. 新文字:index.html 中不能殘留母版的成句文案;用 references/text-slots.md 逐項過。
  3. 版權/素材:電影、客戶素材、stock、肖像、音樂、聲音都有來源/授權記錄;每個來源都有 credit;片名/年份/非真實案例標識在畫面裡。
  4. 倫理:不診斷、不責怪受害者、不偽造哲學家原話、不把電影角色當真實案例。
  5. 畫面:沒有文字被裁、沒有單字孤行、沒有文字壓字幕;如果本期仍用傘的隱喻,結尾兩個人都在傘下。
  6. 聲音:旁白清楚、無削波、無意外靜音;--silent 渲染保留自訂音軌。
  7. 審片:獨立冷審的 MUST-FIX 已修,或明確記錄為什麼保留。

不要做

  • 不要把母版的舊文案、舊字幕、舊旁白直接複用。
  • 不要把《第七天堂》/佛洛伊德/亞里斯多德/康德當成固定素材;客戶不需要時不要硬塞。
  • 不要把所有場景都改成同一張圖 + 同一段字;母版的場景語法是有變化的。
  • 不要用藍紫漸層、霓虹、AI 味星空底。
  • 不要在 3:4 封面裡直接裁 16:9 正片;用 cover/cover.html 重新排。
  • 不要把哲學家/專家的話寫成「名言」並加引號;用「他討論過/一種理解角度」。
  • 不要在客戶沒授權時使用版權片、客戶人臉、聊天記錄或未公開產品。
  • 不要從 YouTube/B站/串流媒體/版權片直接下載背景;不要繞過浮水印、付費牆或地區限制;只用明確允許的免費/授權 stock。
  • 不要用「吸渣體質」「戀愛腦」這類診斷式標籤做標題;用問題,不用判決。

檔案地圖

  • references/client-brief.md:客戶 brief、內容矩陣、確認點。
  • references/asset-strategy.md:客戶實拍/公版/stock/照片/純文字/混合,多源統一、素材槽、manifest。
  • references/stock-sources.md:Mixkit/Coverr/Pexels/Pixabay/Commons 的搜尋、許可、下載與 credit。
  • references/beat-sheet.md:16 拍結構、比例、畫面事件、文案功能。
  • references/visual-system.md:色板、字型、鏡頭、傘/雨、聲音、封面。
  • references/text-slots.md:逐項替換清單。
  • references/retiming.md:新旁白的時間軸重排方法。
  • references/rights-and-ethics.md:片源/肖像/聲音/倫理。
  • references/publishing.md:標題、長文案、短文案、B站簡介、置頂評論、標籤。
  • templates/index.template.html:母版合成。
  • templates/cover-3x4.template.html:3:4 封面。
  • templates/assets.manifest.example.json:素材清單模板。
  • scripts/new_episode.sh:建新工程。
  • scripts/prepare_media.sh:補幀、抽靜幀、檢查片源。
  • scripts/render.sh:帶 --silent 的渲染封裝。
  • scripts/render_cover.sh:把 cover/cover.html 渲染成 1080×1440 PNG/JPG。
  • scripts/verify.sh:check/qa/ffprobe/解碼/響度。
  • scripts/asset_report.py:檢查素材 manifest 的檔案/權利/credit/scenes。
  • scripts/stock_search.py:連網搜免費 stock,輸出候選/頁面/license。
  • scripts/fetch_stock.py:下載、去音軌、標準化 1920×1080/30fps,並更新 manifest。

相關技能