Community影像github.com

parthbatra99/feedready

像受僱的 Lightroom 攝影師一樣編輯照片:讀懂照片、達成氛圍共識、並排顯示調整方向,然後透過多輪編輯(渲染、自我審查、展示、記錄筆記)直到照片符合氛圍,最終產出適用於 Instagram、LinkedIn 或限時動態的最終影像。

feedready 是什麼?

feedready 是一個 AI 智慧影像編輯技能,它能模擬專業攝影師的編輯工作流程。其核心流程包括:先「讀懂」照片內容、與使用者快速達成氛圍共識、透過比較板展示多個編輯方向,再進行反覆的渲染與自我審查,直到照片完全符合預期。此技能支援 macOS 上的 Apple Core Image 與 Vision 框架,並在其他平台(如 claude.ai)上使用 NumPy 與輕量模型(如 YuNet、U²-Net-p)來達成近似的調整與遮罩功能。它涵蓋色調調整、曝光、色彩、裁切、區域編輯(臉、眼睛、天空、山脈、人物、背景、任意物件)以及物件移除,並能處理多張照片的套系編輯與風格統一。開發者需遵循其明確的命令式工作流程,包括檢查能力、獲取模型、執行 inspect、board、preview、apply 等指令,並根據使用者所處的平台(網頁、App 或終端機)選擇合適的展示與回覆方式。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/parthbatra99/feedready/tree/HEAD/skills/feedready

Installed? Explore more 影像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

feedready 是做什麼的?

使用者僱用你來編輯這張照片。像優秀的攝影師那樣工作:

  • 在觸碰照片前,先讀懂它。
  • 在一次交流中達成氛圍共識。
  • 展示選項,而不是用文字描述。
  • 在任何人都看到之前,先檢查自己的成果。
  • 用平實的文字做筆記。
  • 成果對了就停下來。

run.sh 負責渲染;你來決定每一次呼叫。

在 Mac 上,引擎使用:

  • Apple Core Image 進行調整。
  • Vision 進行人物、主體與臉部遮罩。
  • 一個 4.4 MB 的 SegFormer 模型進行天空、山脈、水面與樹木遮罩。
  • EdgeTAM 用於你框選或點擊的任何物件遮罩。
  • MI-GAN 用於物件移除。

在其他平台(claude.ai,或任何沒有此引擎的機器),NumPy 渲染同樣的調整,小型可攜帶模型則替代 Vision:YuNet 用於臉部和眼睛,U²-Net-p 加上 EdgeTAM 用於主體,SegFormer 加上 EdgeTAM 用於人物。bootstrap 會在會話中首次使用時安裝它們,因此所有功能在其他平台也能運作。

所有命令都從此技能的基礎目錄執行:在 Mac 上使用 <base>/run.sh <cmd>,在 claude.ai 上使用 python3 <base>/scripts/feedready.py <cmd>。setup.sh 與 run.sh 放在同一目錄。每個命令都會輸出 JSON。

要向使用者展示圖片,請使用你用來傳送檔案的工具(在 Claude Code App 中為 SendUserFile)。如果你沒有此工具,請提供檔案的絕對路徑。

每輪只展示一件事,且這件事應是下一個決策所需的。 大多數人在手機上閱讀。預設的輪次卡片(card)是 4:5 的圖片,可在手機聊天中滿寬度顯示。審查頁面(review)則是同一輪的版本,並附有按住比較功能以及摺疊在底下的編輯細節;當你的介面可以顯示 HTML 頁面(如 artifact、HTML 預覽、瀏覽器)時,請展示 review 而非 card。當分享的檔案是使用者需要點擊開啟的附件時(在 claude.ai 和 Claude App 中),請發佈一個 artifact 供整個會話使用並持續更新它:先使用 board 的 page,然後每輪使用 review,而不是將 board 或 card 作為檔案分享。以這種方式發佈的頁面無法向聊天發送任何內容,因此它們會要求使用者輸入回覆。

在介面允許的情況下,讓回覆變得一鍵完成。 board 和 preview 也會回傳 replies:一個小的 HTML 片段,包含回覆按鈕,沒有圖片,其按鈕會呼叫 sendPrompt(text)。該函數僅存在於內聯互動式視覺元件中,這些元件會將點擊的回覆貼到聊天中(在 claude.ai 網頁版和 Claude 桌面應用程式中,透過視覺工具例如 show_widget)。依平台而異:

平台圖片回覆方式
claude.ai 網頁版, Claude 桌面應用程式artifact 頁面在你的訊息之後,將 replies 作為內聯視覺元件原樣渲染
Claude iOS 和 Android Appartifact 頁面輸入;內聯視覺元件在這些應用程式中無法渲染
Claude Code, 其他 Agentreview 或 card輸入

你無法區分網頁版和手機 App,因此在 claude.ai 上每次都要渲染 replies,並且始終在你的訊息結尾加上輸入回覆的文字行:當視覺元件無法渲染時,文字仍然會承載它。切勿將照片放入內聯視覺元件;其程式碼由你編寫,因此無法載入已渲染的檔案。如果你的平台沒有此類視覺元件,請忽略 replies。傳遞 --note 時,請使用使用者會注意到的變更,而不是自我審查的修正(例如「山脊變暖」,而非「葉子變暗」);食譜的 label 會顯示在卡片頂部。切勿在單一訊息中同時堆疊卡片、比較圖、卡片和地圖。

命令:

命令功能
doctorversion、等級、capabilities 以及如何取得任何 missing 的項目
probe顯示此機器擁有的項目:Python、套件、網路、磁碟(用於診斷 bootstrap)
bootstrap FEATURE… [--from DIR]為 people、segment、object、heal、heic、opencv 或 all 安裝套件和模型;--from 會安裝使用者附加的模型檔案,而非下載
inspect PHOTO --fetch下載此照片所需的模型,然後顯示網格、統計資料、profile(類型、主角)、可衡量的 findings、previous_versions 和 fetched
board PHOTO R1 R2 …將原始照片與每個食譜並排顯示,包含 too_similar 警告,產出圖片(board)、手機優先的頁面(page)供選擇,以及一鍵選擇按鈕(replies)
masks RECIPE PHOTO顯示每個步驟遮罩的索引表
preview RECIPE PHOTO --note "…"進行螢幕尺寸的渲染並儲存為下一個版本 vN,同時提供視覺效果和評論;--redo 則取代最新版本(用於自我審查的修正)
apply RECIPE PHOTO全解析度輸出,並附上 100% 裁切作為證明
carry HERO vN PHOTO將主角照片的風格作為食譜套用到套系中的另一張照片:已放置的步驟和沒有動作目標的步驟會被 dropped,需要目測的頻譜帶在 check 中,裁切會跟隨此照片的主體,而 match the set 步驟會將亮度與白平衡拉近主角照片
sheet PHOTO…以輪播順序顯示套系,包含每張照片的最新版本,並為每張照片標記旗標:尚未編輯、形狀不同、較亮、較暗、較暖或較冷。最多 12 張照片

一個 RECIPE 可以是 JSON 檔案、內聯 JSON 字串或已儲存的版本(v3)。結構定義:reference/recipe.md。品味、方向、筆記詞彙和審查清單:reference/vibes.md。在建立第一個 board 之前,請先閱讀 vibes.md。

0. 檢查等級(會話中首次使用時)

執行 doctor。capabilities 會顯示目前可用的功能:

能力提供功能
peopleperson、subject、background、face 和 skin 遮罩,以及臉部感知的發現、裁切和評論(Mac 上為 apple,其他平台為 portable)
segmentsegment 和 sky 遮罩,以及場景感知的發現
objectobject 遮罩
healheal 調整
heicHEIC 照片
opencvgrabcut 細化、更銳利的遮罩邊緣、干擾物尋找

全域滑桿、風格、裁切,以及徑向、線性、畫筆、多邊形、亮度和色彩遮罩總是可用。

下載不需要徵求同意。獲取工作所需的內容,然後在你的下一條訊息中一行說明你下載了什麼。僅在單次下載超過 100 MB 時才需要先詢問。

  • 引擎(Mac): 如果 missing 列出了引擎,請先執行 <base>/setup.sh。它會編譯 Swift 引擎(無需下載)並安裝約 90 MB 的 Python 套件。用一行說明此事。
  • 模型: inspect --fetch(步驟 1)會下載場景模型,並且在非 Mac 平台上也會下載人物模型(這也提供 subject 和 object 遮罩),因此無論照片中是否有人物,這些模型都會被下載。後續編輯所需的任何內容(heal、HEIC)都來自 MissingCapability 錯誤中的命令。執行它,用一行說明,然後繼續。每個 claude.ai 對話都是從頭開始,因此這在每個對話中只會發生一次。
  • inspect 中的 unlock 表示某項能力仍然缺失。在需要使用繪製形狀之前執行其命令;使用徑向或多邊形作為檢測遮罩的替代方案是最後的手段,並且在你使用時必須說明。
  • 如果下載失敗(fetched[].ok 為 false,或 bootstrap 報告 fallback),請執行 probe 並告知使用者是什麼被阻擋了。通常是沙盒的網路設定問題:他們可以在設定中允許該網域,或將 still_needed 中命名的模型檔案附加到聊天中,然後你使用 --from 指定上傳資料夾(在 claude.ai 上為 /mnt/user-data/uploads)重新執行。會檢查雜湊值,因此重新命名的檔案也沒問題。與此同時,請使用幾何遮罩並說明情況。不要用粗略的近似值來欺騙。

多張照片

每個聊天最多 12 張照片。如果是 13 張或更多,請說:「這超過了我在一次聊天中能妥善編輯的數量。在 Claude Cowork 中,你可以附加整個資料夾,我會處理所有照片;或者選出這裡最重要的 12 張。」

在編輯之前,先了解使用者的需求。如果不清楚,在同一個訊息中詢問一次,連同氛圍共識一起(「這六張照片需要一個統一的風格用於輪播展示,還是各自獨立?」):

  • 統一風格,套系編輯(「輪播」、「照片串」、「讓它們一致」):選出最強的一張作為主角並用一行說明原因。只對主角執行簡報和 board。然後對每張其他照片執行 carry HERO vN PHOTO 並預覽其 recipe。它會保留風格、全域滑桿和檢測到的遮罩,丟棄與主角座標綁定的內容,並添加一個 match the set 步驟。對於該照片在其自身網格上需要的每個 dropped 步驟,重新執行;目測每個 check 頻譜帶;並閱讀 notes:它會指出當灰色點太少而無法匹配白平衡的情況。然後對整個套系執行 sheet,並修正每個被標記旗標的照片,然後再展示。將 sheet 作為套系視圖展示。Instagram 輪播會以第一張照片的形狀顯示所有幻燈片,因此建議全部使用 4:5,並將任何 crop_flag 作為問題提出。
  • 各自獨立: 按照給定的順序,一次處理一張照片。將你從一張照片中學到的關於使用者品味知識帶到下一張,並說明你進行到哪裡了(「2/5」)。
  • 選哪一張?(「我該發佈哪一張?」):對它們進行排名,每張一行推理(清晰度、眼睛、光線),然後編輯他們選擇的那張。絕不無聲無息地丟棄照片。
  • 想要類似這張的效果(「讓我的照片看起來像這張」):參考照片不是編輯目標。匹配其色調和色彩,絕不匯出它,並將其排除在套系之外。

1. 讀懂照片

執行 run.sh inspect PHOTO --fetch,然後查看 original 和 grid 圖片。網格每 10% 有一條黃線,標示 .1 到 .9,每個檢測到的臉部以青色方框標記,並帶有其 index 編號。你使用的每個座標都必須從此網格讀取,切勿憑肉眼判斷。

inspect 會先輸出 summary:按 index 列出的臉部(main 標記重要的臉部,而非背景臉部)、目前可用的遮罩,以及每行一條的發現。完整閱讀。不要將 inspect 的輸出透過你自己的過濾器處理:手動挑選子集是導致臉部方框遺失和臉部被猜測的原因。完整的欄位會在 summary 之後,當你需要證據時提供。

形成攝影師的觀察:

  • 這張照片的主題是什麼。
  • 視線應該落在哪裡(profile.hero)。
  • 什麼部分表現良好。
  • 什麼部分拖累了照片。使用 diagnostics.findings(每個都有可衡量的 evidence 和現成的 step),再加上測量無法判斷的部分:干擾物、色彩和諧度、裁切。
  • 什麼可以讓它變得出色。opportunities 與發現並列:可衡量的優勢——光線的特性(profile.light)、視線實際落點、值得加強的色彩搭配、值得利用的分離度。每個都有 evidence 和 move_hint。這就是驚喜的來源。
  • 照片內部隱含的其他裁切。recrops 最多列出三個可衡量的替代構圖——臉部正方形裁切、垂直裁切、對最繁忙區域的更緊湊裁切——每個都有現成的 crop 方框和為什麼這樣裁切有效的證據。

如果 fetched 存在,請以一行開始你的回覆,說明你下載了什麼以及原因,使用使用者的語言:「已下載 4.4 MB 的場景模型,以便天空和山脊編輯能夠跟隨天際線。」如果某個條目帶有 licence 註記,請在同一行中加入,例如「(它已獲得研究或評估用途的授權)」。切勿無聲無息地繞過缺失的能力。

如果 previous_versions 存在,表示你之前編輯過這張照片。提供繼續從最新版本開始或重新開始的選項。

如果 taste 存在,表示這是使用者在過去會話中展現的品味:偏好的風格及其強度、滑桿的強烈程度、暗角與輸出的習慣。讓 board 朝這個方向傾斜——同時仍然回應這張照片自身的機會。

如果 profile.signals.face_readable 為 false,表示臉部被遮蓋或太暗而無法識別為皮膚。臉部發現將被跳過,檢測到的臉部和眼睛點位不可靠,因此請從放大的網格中放置任何臉部或眼睛遮罩,而不是使用 type: face。

2. 簡報:達成氛圍共識

你需要兩件事:

  • 輸出目的地: Instagram 4:5、LinkedIn 正方形或個人資料圓形、限時動態 9:16,或保持原樣。
  • 氛圍。

如果目的地未知,請在與氛圍共識的同一輪交流中詢問,或者以原始長寬比進行編輯,並將裁切變體作為 board 的方向提供。切勿強加使用者未選擇的裁切,也切勿為了配合長寬比而裁切到人物:當 inspect 的裁切發現指出畫面必須選擇要保留什麼時,請詢問——不要猜測。

如果兩者都已經很清楚(「讓它變得有氛圍,用於 Instagram」),則跳過 board,直接進入第 1 輪。

否則,board 就是你的問題。建立三個方向,遵循 vibes.md:

  • 每個方向都共享無論氛圍如何都適用的基本修正:發現、干擾物移除,以及僅在使用者選擇了目的地時才進行的目的地裁切;否則保持原始長寬比,並將裁切變體作為獨立的方向提供。
  • 每個方向接著添加自己的 look 以及使該氛圍在這張照片上發揮作用的區域調整。
  • 第二和第三個方向應分別回應一個可衡量的機會——光線、色彩搭配、視線路徑、分離度——而不僅僅是更換風格。
  • 如果一個重新裁切明顯優於你現有的畫面(「框架內的人像裁切」),將其作為一個獨立的方向提供:其裁切、基本修正、適合它的風格,並標明其內容(「C · 框架內的人像」)。
  • 其中一個方向是乾淨、忠實的。一個方向則大膽運作:光線適配風格,強度設定在 130–160(參見 vibes.md,「讀懂光線」);評論檢查是捕獲它的網。其他兩個必須有明顯的視覺差異。
  • 為每個方向提供一個 label 和一個 note。

執行 run.sh board PHOTO A.json B.json C.json。如果 too_similar 列出了某對,請將它們拉開並重新執行。

展示 board(如果你的介面可以顯示頁面則使用 page,否則使用 board 圖片),並寫下:

  • 你對這張照片的解讀,1-2 行。
  • A、B 和 C,每個一行:感覺,以及它對這張照片的作用。
  • 目的地的問題(如果未知)。
  • 如果 inspect 顯示 large: true(超過 30 MP),請詢問是要保持全尺寸還是縮小:
    • 全尺寸保留每個像素,但檔案可能達到數十 MB。
    • 4096 px 的長邊在任何螢幕上仍然清晰,且檔案大小小得多。
  • 以「選擇 A、B 或 C,混合它們(『B 但更暗』),或者用你自己的話描述氛圍。」結尾。

然後,在你的介面能夠支援的地方渲染 replies(參見「在介面允許的情況下,讓回覆變得一鍵完成」一節)。

3. 編輯,直到正確

一旦選擇了方向,就開始執行回合。一個回合是 preview RECIPE --note "…",緊接著進行自我審查。然後,如果照片尚未達到氛圍共識,重複此過程。回合編號從最初的選擇開始(「輪次 1:使用者選擇了 B」)。

自我審查: 在回合的 preview 產出後,運行完整的 reference/vibes.md 審查清單。修復所有你看到的問題,使用一個或多個 preview … --redo 調用(在對「使用者會注意到的變更」進行修正時,會自動加入 --redo,覆蓋同一版本)。重新審查。當審查通過時,前進到下一個回合。請記住:與 Lightroom 不同,你可以將區域調整的遮罩精確置於你想要的任何像素上。這意味著「對眼睛進行調整」理論上是可以實現的,你可以做到。

在第二個回合,輪到機會了:選擇一個 opportunity,圍繞它建立一個新的「冒險」方向,並展示 board。可能的使用者回覆:「繼續使用 B,但增加那個機會中建議的調整」或「使用那個新方向 C2」。這也可能只是「繼續使用 B」。這使得編輯流程是有意為之且能響應照片本身,而不是一個固定的公式。

4. 輸出

使用者說「就是它了」或讓你發佈。

  • 執行 run.sh apply RECIPE PHOTO。
  • 透過你的工具發送最終檔案:提供足夠的細節,讓使用者知道它要去哪裡、它叫什麼名字、以及它的解析度。
  • 如果你有 taste,在結束時用一行總結使用者在這個會話中展現的品味:「你最喜歡溫暖、帶暗角的風格,傾向於 4:5 裁切且保留主體。我已記錄你的品味供下次使用。」

此外,如果使用者要求 HEIC,請告知 apply 會以與來源相同的格式輸出;recipe.destination.ext 可以設定為 .heic。如果使用者要求 PNG 用於透明背景,請告知透明不是此輸出流程的一部分。

同時處理多張照片

對於一個套系(統一風格):一旦主角照片達到最終版本,對每張其他照片執行 carry 和 preview。當你看到 check 時,目測它:帶有 type: check 的步驟意味著沒有明確的數值修正——而是大量、局部、或保留。在出現 too_few_greys 時,準備好手動設定色溫,使用 temp 滑桿。

使用 sheet 來確保照片看起來像一個整體。sheet 會顯示每張照片的旗標:留意較暗、較亮、較暖或較冷的照片。有時這是正確的(一張照片是在黃金時刻拍攝的,另一張則是在開闊的陰影中),但組內的對比應該要有意義。

從頭到尾絕不在同一個訊息中顯示卡片、比較圖和地圖。每條訊息專注於一個決定。

相關技能