Community影像github.com

eeoa/photo-detail-edit

使用 GPT Image 根據用戶提示編輯照片,同時加入保真約束,然後學習結構門控的局部 RGB 映射並應用於原始圖片,保留編輯後的背景與透明度。適用於需要保留真實細節並鎖定色彩與光影的照片風格或背景編輯。

photo-detail-edit 是什麼?

這個 AI Agent 技能 (eeoa/photo-detail-edit) 提供了一套完整的照片編輯流程,專為需要高保真細節的攝影修圖設計。它會先利用 GPT Image 根據用戶提示編輯圖片,同時自動附加保真約束 (preservation prompt) 來保護主體細節。接著,透過一個腳本 (`scripts/restore_detail.py`) 進行「分析」與「融合」兩階段處理:先在縮小的圖片上學習局部 RGB 顏色映射曲線,再平滑地將這些曲線應用到原始全尺寸圖片上,讓經過色調與光影調整的真實細節回流到最終成果。此技能支援背景替換、去背、換裝等局部編輯,並會自動建立遮罩排除這些改動區域,確保不會被後續的恢復步驟覆蓋。它主要用於保持真實紋理與光影的攝影風格轉換,而非大規模重繪。支援在本地目錄中運行,依賴腳本所列套件,且運行時不聯網。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/eeoa/photo-detail-edit/tree/HEAD

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

在你喜歡的 AI 中提問

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

說明文件

照片細節編輯 (Photo Detail Edit)

使用者提供原始圖片與編輯提示。此技能完成完整流程:追加保真約束 → 內建圖片編輯 → 縮圖結構匹配 → 學習局部 RGB 轉換 → 應用於原始尺寸圖片 → 輸出成片與局部比對。請勿僅完成生成或提供操作建議。

輸入與邊界

  • 需要能夠讀取的原始圖片檔案。請先檢查檔案的像素、位元組數、EXIF 方向與透明度;視覺預覽可能被縮小,不能作為「原始大圖」。若只有對話預覽且無法取得原始檔案,請要求使用者提供原始檔案或包含原始圖片的 ZIP。請不要從已遺失的細節中聲稱恢復了真實資訊。
  • 使用者只需提供圖片與提示;由 agent 判斷保留區域、製作分割提示並檢查遮罩,不要求使用者先手動繪製遮罩。
  • 保留使用者明確要求的改動。背景替換、去背、換裝、刪除飾物等對應區域不得被後續恢復步驟改回;對於明確改變的物體或結構,需建立排除區域。
  • 此流程面向攝影修圖。大幅改變姿勢、人物身份或整體重繪可能無法可靠對應,必須如實保留生成結果並說明恢復有限。

工作流程

1. 建立本次任務目錄

在目前工作區建立新的輸出目錄,保留原始圖片,不覆蓋原始檔案或既有成片。儲存使用者的原始提示、實際發送的完整提示與生成的底圖。附件 ZIP 解壓縮時需核驗路徑,不覆蓋已有檔案。

若依賴套件未安裝,在目前專案的虛擬環境中安裝 scripts/requirements.txt;優先複用既有相容環境,或使用 uv venv / uv pip install --python ... -r ...。無需系統級安裝。腳本執行時不聯網、不下載模型。

2. GPT Image 編輯

  • 先透過 view_image 檢視原始本地檔案。呼叫本次對話可用的內建 image_gen 編輯工具,以原始檔案為編輯輸入,不要以前一輪生成的圖片取代原始圖。
  • 實際 prompt = 使用者原文 + 固定保真約束。固定部分作為追加約束,不替換、不稀釋使用者目標;全身構圖要求僅適用於原本就是全身構圖的照片。儲存這個準確的拼接結果。
  • 去背景/去背/透明背景請求需設定 transparent_background: true;替換為新背景則為 false。其他參數遵循目前工具能力,不虛構品質、尺寸或模型版本參數,不承諾 prompt 能保證像素或解析度保真。
  • 將生成檔案複製到本次任務目錄。記錄真實輸出尺寸與大小。預設僅生成一次;僅在工具失敗或明顯遺漏使用者主要要求時修正並重試一次,避免無止盡地重新生成。不要擅自切換到付費 API/CLI。

3. 為本次圖片建立保留區域

檢視原始圖片與生成圖片。按照 區域配置與執行說明 建立本次的 regions.json,分別指定原始圖片與生成圖片的主體遮罩或 GrabCut 種子;座標從目前圖片判斷,不複製上次的人物座標。腳本會將配置座標依據各自圖片的 EXIF 顯示方向來解釋。

遮罩應覆蓋需要保真的共同主體,排除背景與使用者有意改動的部位。透明前景可利用 alpha,但仍須排除使用者有意重繪的區域。fill_holes 預設為關閉,物體把手、姿態形成的空隙可能是真實背景,不能盲目填洞。

至少選擇兩個人物/物體細節位置作為局部對照;若照片中有臉部、印花、毛呢/織物,優先選擇這些位置。配置來自 agent 的視覺判斷,不是固定模板。

4. 分析、檢查,再融合

使用同一組參數,先 --stage analyze,再 --stage fuse:

<python> <skill>/scripts/restore_detail.py --source <original> --base <generated> --regions <regions.json> --out <job>/restored --stage analyze

預設 --method local-rgb --structure-channel auto。分析階段會將原始圖片縮放到共同尺寸,驗證幾何對應,降低顏色、對比度與細紋理對結構判斷的影響,在可靠區域擬合受約束、保持單調的局部 RGB 顏色曲線。一般多色照片使用亮度結構;強單色光則自動選擇對應通道,兩張圖片使用相同表示,不固定紅通道。

檢查 base-mask.png、source-mask.png、confidence-overlay.png 與 report.json,確認實際方法為 local-rgb,結構通道與匹配範圍合理。背景不得被選進恢復區域;若遮罩明顯錯誤,修正區域配置後重新分析。不要透過放寬匹配閾值來強行提高覆蓋率。

<python> <skill>/scripts/restore_detail.py --source <original> --base <generated> --regions <regions.json> --out <job>/restored --stage fuse

腳本會將局部曲線參數平滑上取樣,應用於對位後的原始尺寸圖片,讓真實細節經過目標色調與光影的轉換。映射不可靠的位置則沿用放大的生成圖;背景、透明度與明確排除的編輯區域保持一致。在缺乏足夠共享特徵時不傳入原始圖片內容。主體色調與光影是擬合結果,不能承諾逐像素一致,也不能將原始圖片尺寸稱為完整恢復原始圖片畫質。

不預設疊加 Lab 灰階高頻,也不預設使用自由度過高的任意矩陣或完整 3D LUT。--method lab-detail 僅保留用於使用者明確要求的舊方案比較;請勿靜默回退至舊方法。

5. 檢查並交付

  • 檢查最終預覽與至少兩個原始像素尺度的局部對照,分別核對真實紋理、顏色與大範圍光影,留意重影、黑塊、暗部發灰、邊緣與接地陰影。請不要僅憑紋理相關度或匹配覆蓋率來宣告畫質改善。必要時收緊排除區域,再執行一次分析與融合。
  • 確認 report.json 中背景範圍像素變動為 0、alpha 保留、PNG 可讀取。精確背景一致性針對無損 PNG,JPEG 壓縮可能改變像素。
  • 返回可見預覽、完整尺寸無損 PNG 與局部對照連結。無透明度時另交付 JPEG;透明圖請勿透過 JPEG 交付。
  • 簡述輸出尺寸、實際恢復範圍與明顯限制;提供實際完整 prompt 的檔案連結。請不要把插值放大的像素數量當成新增的真實細節。

呼叫範例

使用 $photo-detail-edit 處理這張原始圖片:淨化背景與光影,使其具有雜誌攝影棚的質感。

使用 $photo-detail-edit 去掉背景,輸出透明 PNG,保留人物與衣物細節。

相關技能