Community影像github.com

huangbin97/make-couple-photo-diptych

根據兩張照片生成「為你拍照」上下拼貼:圖2僅裁切和等比縮放為橫圖,只將圖1人物生成在圖2場景中為對方拍照的第三視角。用於為你拍照、拍攝者與被拍攝者、情侶攝影上下拼圖等請求。

make-couple-photo-diptych 是什麼?

此技能專門用於生成「為你拍照」風格的上下拼貼照片。它會接收兩張圖片:圖1作為拍攝者(A)的身份參考,圖2作為被拍攝者(B)的原始成品及場景依據。技能的核心是僅生成上半部分的新圖,描繪A在圖2的場景中為B拍照的反打視角,而下半部分則保留圖2的原始內容,僅進行必要的裁切和等比縮放以符合橫圖版式。最後,使用Python和Pillow等確定性工具將兩部分無縫拼接,並進行輕微的全局調色,使整體看起來像是同一地點、同一時刻、使用同一相機拍攝的兩張照片。此技能不依賴特定模型或服務商,支援在任何具有圖像生成和Python執行能力的平台上執行,並且提供了非常詳細的驗收指南,確保生成的圖片在人物身份、拍攝動作、光影一致性、相機與手部的可信接觸以及最終畫面的協調性等方面達到高品質標準。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/huangbin97/for-you-photo-skill/tree/HEAD

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

在你喜歡的 AI 中提問

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

說明文件

為你拍照

核心交付

交付兩個等寬、等高橫圖上下直接拼接的照片,預設每幅 3:2、整體豎版 3:4。上圖為新生成的拍攝者反打照片,下圖使用圖2原圖適當裁切。圖2保留原始人物與場景內容,允許裁切、等比縮放,以及拼接完成後的輕微全局調色;禁止重繪、換臉或美化。 不得把兩張圖一起重新生成雙聯畫。

能力與跨工具執行

本技能不綁定模型、服務商或專屬工具名。完整執行需要查看參考圖、使用兩張圖片進行參考圖生圖/編輯,以及運行 Python 3.10+ 與 Pillow 進行拼接。使用宿主已授權的工具;不要求在聊天中提供金鑰。只有文字能力時提供參考提示詞並明確需要外部生圖與拼接,不能聲稱已完成。

生成工具只負責上圖。先運行 python3 -m pip install -r requirements.txt(如環境已有依賴則跳過);拼接時使用 scripts/compose.py。先查看原圖選擇裁切框,座標以 EXIF 方向規範化後的圖片為準。命令範例:python3 scripts/compose.py --upper inputs/upper.png --lower inputs/person-b.jpg --lower-crop 0,300,1440,1260 --width 1200 --panel-height 800 --output outputs/diptych.png。範例裁切框不適用於任意照片,必須按實際主體調整。

若需要上圖色調校準,提供實際觀察得到的 --upper-curves curves.json,格式為 r/g/b 三個通道各自的單調 [輸入,輸出] 節點列表,首末輸入為 0 和 255。腳本不分析語義、不自動判斷手/眼/膚質,也不自動找最佳濾鏡;每次都必須查看上圖和成品驗收。全域參數預設 1.0,無需為執行後處理而強行改色。全域調整前的拼圖和處理參數會儲存到同名 companion 檔案。

1. 確認圖片角色

  • 將圖1定義為 A(拍攝者)的身份參考,將圖2定義為 B 的原始成片及場景依據。未標註時按上傳順序映射,用一句話說明後繼續;用戶明確指定優先。
  • 缺圖時只請求缺少的圖;不要自行選取歷史私人照片,不用陌生人替代。
  • 先查看兩圖。多人圖指代不明時詢問人物。效果範例僅用於構圖,不作身份來源。

2. 只生成上圖

先讀 references/prompt-template.md。將兩張圖實際傳給圖像工具,明確圖1僅供 A 的身份、圖2供環境與攝影風格參考,要求輸出一張上圖照片。

  • 預設上圖僅 A 入鏡,胸部至腰部景別,舉復古隨身相機為畫外 B 拍照。從 B 附近的外部反打視角觀察 A;不是觀景窗第一人稱視角。持機動作與頭部角度自然配合,手指及鏡頭結構合理。
  • 自然持機與遮擋優先:根據相機類型、拍攝方向、頭部轉角和身體姿態,自然選擇慣用眼、持機高度及遮擋範圍。不要固定遮擋左臉、右臉或規定露出某隻眼;允許遮住半臉、大部分臉或全臉。不要為了展示五官而把相機彆扭地偏到臉側,或讓眼睛穿過機身看鏡頭。
  • 用觀景窗拍攝時,將所用眼睛與真實觀景窗位置合理對齊;若相機帶螢幕且使用螢幕取景,可自然稍微降低相機並讓視線落在螢幕上。手指自然握住機身、食指接近快門,另一手合理支撐;肩、肘、手腕和相機朝向須連貫,不機械擺拍。
  • 眼睛與瞳孔符合真實取景:可見眼球的虹膜、瞳孔、眼白及眼瞼關係須自然,瞳孔在虹膜內,大小、形狀和位置符合眼睛轉向與當前光線;雙眼均可見時視線應協調,允許正常透視差異,不強求鏡像對稱。避免重複/雙重瞳孔、偏離虹膜的黑點、畸形虹膜、異常大小、無依據的斜視及不一致高光。不要把閃光反光誤畫成額外瞳孔,也不要複製參考圖中的成像偽影。
  • 所用眼睛與相機真實觀景窗對齊,視線用於取景,不要求看向外部觀察者。另一隻眼可自然睜開或輕閉;被機身、手或頭部角度遮住的部分保持遮擋,不補畫透視穿過相機的眼睛,不為避免異常固定遮全臉。
  • 面部遮擋由真實拍攝動作決定,不強求正臉可辨。保留所有露出部位的身份特徵;全臉被擋時透過髮型、頭部輪廓、膚色和體態保持人物連續性,不虛構可見五官。
  • 持機時肩頸舒展:肩膀自然下沉,頸部保持原有長度和空間,頭部僅輕微轉動或前傾,不縮脖子、不含胸、不聳肩,不把下巴壓進領口。透過抬起前臂和調整相機高度完成取景,而非抬肩靠近相機;肘部自然垂落或適度外展,手腕不緊繃。不要誇張拉長頸部或擺成僵硬軍姿。
  • 僅當用戶明確要求兩人同框時,上圖改為側後方第三視角中遠景,A 拍攝 B,兩人入鏡。
  • 先確定拍攝幾何關係:以圖2的視平線、俯仰、人物可見面、頭部/軀幹轉向、視線和透視判斷拍攝機位及距離。區分「人物側身但回頭看鏡頭」和「真正側面拍攝」,不要把身體轉向直接當作鏡頭方向。上圖觀察點位於 B 附近,A 相機朝向畫外 B 所在位置;A 的取景視線、鏡頭光軸、機身、手臂與身體方向應連貫,拍攝距離和相機高度應能拍出圖2的景別與俯仰。未知焦段或位置可合理估計,不憑單張照片聲稱精確還原。
  • 不預設所有上圖都正面平視:圖2明顯俯拍/仰拍時,按相對高度合理調整 A 的相機高度與俯仰;B 看向畫外時,A 不必強行讓 B 與觀察鏡頭對視。若兩張圖的觀察點接近鏡頭光軸,上圖鏡頭可接近朝向觀察者;有側向偏移時應產生相應透視,不能相機朝旁邊而仍聲稱在拍 B。結合反打方向檢查地形、背景、光源與陰影,背景不要求相同,太陽也不應無依據同時出現在相反方向。
  • 由圖2推導地點、時間、天氣、光線、色調、顆粒與焦段觀感;不要預設添加海上、船隻或夕陽。反打背景應符合空間關係,畫外未知區域只作克制補全。
  • 以下圖為唯一濾鏡和成像基準:生成前分析圖2的白平衡/冷暖與偏色、曝光、亮暗關係、黑位、對比度、飽和度、高光過渡、暗部細節、膚色處理、顆粒及閃光燈特徵,寫入生成提示詞。圖1僅供身份參考,不繼承其室內燈光、濾鏡或曝光。
  • 上下必須像同一地點、同一時刻、同一相機與同一濾鏡拍攝的兩張照片。匹配天空漸變、植被/地面色相、陰影密度和衣料顏色;不把上圖自動提亮、暖化或添加電影濾鏡。圖2若為暗調逆光,上圖也保留合理暗部,不為看清臉而單獨補光;只有圖2呈現閃光燈效果時才匹配該效果。
  • 依據兩人相對站位推導光源方向,允許反打導致合理明暗和背景變化,不透過複製相同背景或強行令兩人臉部一樣亮來偽造一致性。追求同一攝影語言而非全圖直方圖機械相同。
  • 以真實觀看尺度判斷清晰度:上圖採用普通相機隨拍的正常對焦與自然細節衰減,按最終拼圖中相近的人臉尺寸與下圖比較,不以「放大後每處都清晰」為目標。保留鏡頭本來的柔和過渡和有限解析力;不增強清晰度、紋理、局部對比或銳化,不強調毛孔、髮絲、衣料纖維和相機刻字。禁止超清廣告質感、HDR、邊緣光暈及過分乾淨俐落的輪廓。
  • 皮膚保留未經美顏的真實質感:露出的臉部和雙手應有符合原照與當前光線的細微色差、淺小瑕疵、自然紋理及不均勻反光,保留原有痣等身份細節。不要磨皮、祛瑕、美白、蠟質平滑、瓷娃娃皮膚或強降噪;也不要為「真實」額外製造粗大毛孔、皺紋或誇張斑點。自然紋理在正常觀看時只需隱約存在,不靠銳化呈現。
  • 清晰度與磨皮分別檢查:柔和的鏡頭成像不等於平滑皮膚,保留膚色與紋理變化同時避免硬銳細節。不要用全圖模糊、柔焦、運動拖影、添加噪點或壓暗來降低生成感,也不要為了對齊下圖的失焦而複製失焦。
  • 匹配直閃時,保留受光區自然的亮暗變化和反光,避免把整張臉與雙手提成均勻光滑的亮色塊;不複製下圖過曝造成的皮膚細節丟失。預設不做額外清晰度處理;皮膚僅允許下述細微紋路局部輕修。色調統一仍按既定流程執行,不以磨皮或銳化輔助校色。
  • 髮絲隨風保持自然克制:以圖1原有髮型、長度、髮量和髮流為基礎,不為了表現風而改變主輪廓。短髮預設大部分貼合頭型,僅少量額前或鬢角碎髮輕微移動;无明显風的場景無需添加飄髮。長髮可隨風彎曲,但應有重力、自然聚束與疏密變化。
  • 根據圖2的環境判斷合理風向和風力,按人物相對站位轉換方向,不機械複製螢幕上的左右方向,也不把圖2長髮的飄動幅度套到短髮上。避免放射狀炸毛、均勻尖刺、孤立鐵絲狀長線、髮束懸空或同一方向整齊排列。髮根應自然連接,髮梢僅輕微鬆動,不額外銳化或描繪每根髮絲。
  • 上圖真實隨拍優先:減少精修、完美對稱和刻意擺拍。保持自然的重心、輕微不對稱肩線和鬆弛手臂,不額外添加「底片感」裝飾、誇張虛化或戲劇性光效。不要靠模糊、噪點、壓暗整張圖掩蓋生成缺陷。
  • 光線與陰影遵循同一物理關係:由圖2推斷主光、環境反射和遮擋,按反打站位合理變化。臉、手、相機、衣服應共享一致的光向、色溫和光比;相機與手在臉上、手指在機身上的投影及接觸陰影應自然且強度合理。避免無來源補光、均勻發亮的皮膚、描邊光暈、髒灰陰影或不相容的多重投影;逆光不自動補亮臉,直閃不渲染成棚拍柔光。
  • 手與相機必須可信接觸:雙手大小、膚色和受光與人物一致,關節彎曲符合握持,手指有自然重疊與輕微受壓。握持手食指自然接近快門,拇指位於合理機背位置,另一手支撐機身底部或鏡頭;避免手掌懸空、指尖穿透、融合指、重複指、橡膠手、僵直等距手指,以及兩隻手堆在鏡頭正前方。合理遮擋時無需強求十指全露;不可為展示手指製造奇怪姿勢。
  • 細微紋路允許局部輕修:上圖若出現輕淺抬頭紋、法令紋,可適度淡化或去除局部細線及偏重的紋路陰影,尤其避免生成過程無端加深紋路;以自然、好看且仍像本人為目標。先區分細紋與表情褶皺、鼻翼/口周正常結構和受光陰影,保留自然表情、年齡外觀與面部體積,不把法令區抹平或改變鼻嘴形狀。不追求所有角度都完全無紋;修飾後仍保留細微膚色變化、自然紋理、身份痣及正常反光。該局部輕修是「不磨皮」原則的有限例外,不擴展為全臉平滑、美白、祛除全部瑕疵或改變年齡,僅作用於上圖。
  • 面部輪廓允許極輕微美化:在保留 A 的辨識度、原有臉型、下頷寬度、顴骨、五官比例及年齡外觀的前提下,僅將頰部到下頷的局部不自然轉折與生成凹凸輕微理順,呈現自然連續的輪廓。優先利用合理頭部角度和光影獲得流暢感;不明顯瘦臉、削骨、尖下巴、放大眼睛、改變鼻嘴或強行對稱,不把所有人套成同一臉型。不要以磨皮、祛除身份痣、模糊輪廓或抹平面部體積代替輕微修飾;皮膚與雙手仍保留真實質感。僅作用於上圖,不美化圖2。
  • 保留 A 臉型、五官、髮型、膚色和年齡外觀。移除不符合拍攝動作的手機等物品。
  • 需要情侶裝時,只調整 A 的衣著來呼應圖2裡 B 的顏色、材質或細節;絕不為了情侶裝修改圖2的衣著。
  • 不改變 B 的表情、姿態、衣服、頭髮及保留區域內的背景內容;僅允許為橫圖版式調整取景裁切。不要要求生成「更好看的 B」。

3. 原圖拼接

生成上圖後,用確定性圖片工具(例如 Pillow)僅執行排版拼接;本任務明確允許用程式碼拼接原圖,不用程式碼重繪人物。

  • 先規範圖2的 EXIF 顯示方向,再選擇主體感知的橫向裁切框。預設單幅 3:2,用戶明確指定比例優先。保留完整頭部、臉部、關鍵姿態與必要環境線索,優先裁去過多天空或無關前景,不機械居中裁切。
  • 裁切不得切斷頭頂、下巴或關鍵拍照動作。若預設比例無法合理容納主體,可適當調整兩幅共同的橫圖比例;不要透過生成擴圖補全圖2。僅在用戶明確要求固定比例且無法合理保留主體時詢問取捨。
  • 將兩幅裁切並等比縮放到相同橫向尺寸 W × H(W > H),禁止拉伸。上下無縫拼接為 W × 2H,預設如 1536 × 1024 兩幅合成 1536 × 2048。不要沿用圖2的豎圖比例導致兩個豎圖疊加。
  • 拼接前圖2的處理僅限 EXIF 方向規範化、裁切及必要等比縮放,禁用重繪、美化和有損重新編碼;拼接後允許下述輕微全域調色。最終儲存無損 PNG,無文字、邊框、浮水印。
  • 記錄圖2裁切框和目標尺寸,保留處理後的圖2作為校驗依據。允許裁切/縮放時,不再宣稱與完整原圖逐像素一致。

拼接前實質校準上圖色調(必須完成)

  • 以下圖實際裁切區域為唯一目標,先明確上圖的具體偏差,再調整。至少對比兩種可對應的材質/環境:天空(避開太陽與高光)、海面/地面、同色衣物或中性物。分別觀察亮度、冷暖與綠/洋紅偏色、飽和度、黑位及高光過渡。不要只判斷「都是藍色/暖色」。
  • 可對已查看的代表性區域記錄 RGB 或 Lab 中位數、亮度分位數輔助判斷;樣本應避開人物、浪花、太陽、反光、遮擋及過曝。不同視角沒有可比區域時跳過數值匹配,依視覺判斷;不把不同材質、不同受光區域或整圖均值強行匹配。
  • 針對偏差只校準上圖:先修正白平衡/綠洋紅色偏,再匹配中間調曝光、黑位/對比度與高光,最後調整具體顏色的色相/飽和度。使用有依據的通道增益、曲線或選擇性色彩變換;保留膚色與物理光影。禁止每次機械套用固定的 .94/.97 飽和度、亮度參數,或只降低飽和度就宣稱統一。 必須記錄實際偏差和本次處理參數。
  • 非生成式校色優先,保留身份、手部與構圖。只有錯光源或局部光影無法透過校色合理修復時,才用圖像編輯工具定向修正上圖,附下圖為參考。不要靠重繪下圖、上下共用強濾鏡或全圖直方圖匹配消除差異。
  • 生成臨時拼圖,以相同顯示尺度同時查看兩幅及其接縫。重點檢查是否有「上灰下藍、上紫下青、上橘棕下灰黃、上亮下暗」等明顯差別。若仍像兩套濾鏡,返回上圖校色並再次查看;未通過前不得進入交付。允許真實反打導致的局部明暗差異,不強迫天空/地平線位置一致。

4. 拼接後整體微調

  • 拼接完成且上圖明顯色差已修正後,再對整張拼接圖進行一次輕微、非生成式全域調色。以下圖原有風格為基準,微調統一白平衡、色偏、曝光、對比度、飽和度及高光/陰影過渡;可用 Pillow 等確定性工具,不用生成式重繪整個拼圖。
  • 對上下使用同一組剋制的調色參數,保留原場景光感、膚色與合理反打明暗差異。禁止強濾鏡、HDR、局部美顏、銳化或模糊;不強制添加顆粒。若已協調,保留接近中性的參數,不能為「做了處理」而明顯改變畫面。
  • 本步驟允許下圖顏色輕微變化,但不得改變人物五官、表情、姿態、衣著和場景內容。保留調色前拼圖及參數用於內部校驗;交付以調色後的最終圖為準,不再聲稱下圖最終像素或顏色與原圖完全不變。
  • 完成後整體查看上下冷暖、黑位、高光和濾鏡觀感是否協調,有無偏色、過曝或不自然膚色;必要時減弱全域處理。最終仍儲存無損 PNG。

5. 檢查與交付

  • 查看新生成上圖與最終拼圖:A 正確、拍照動作合理、場景與圖2對應、上下順序正確。
  • 在全域調色前,程式比較拼接圖下半區域與按記錄裁切/等比縮放後的圖2:尺寸和像素完全一致。若失敗則修正拼接,絕不重新生圖替代圖2。
  • 在最終展示尺度與適度放大下分別檢查上圖:身份、拍照動作與相機結構可辨即可,不要求每根頭髮和皮膚細節銳利。若出現過度銳化、細節堆砌、塑膠皮膚、平滑色塊或過度降噪,用圖像編輯工具只修正上圖的成像與皮膚質感,保留身份、細微瑕疵、動作、光影和已匹配色調,再重新拼接;不能只加模糊或噪點掩蓋。明顯虛焦導致動作或結構難辨時才修正對焦,不因自然的細節衰減反覆提高銳度。不要銳化、磨皮或重繪下圖。
  • 眼部驗收:在最終展示尺度和適度放大下查看所有露出的眼睛,檢查虹膜/瞳孔數量、邊界、位置、大小、眼瞼遮擋、雙眼視線及反光是否自然。合理遮擋或閉眼無需補出眼球;自然反光、透視和輕微左右差異不視為異常。發現重複瞳孔、明顯錯位/變形或矛盾視線時,使用圖像編輯工具僅修正上圖眼部,以圖1為身份參考,保留臉型、自然眼型、相機遮擋、姿態、皮膚質感和已匹配色調;重新檢查後再拼接。不要靠銳化、模糊、放大眼睛、強行露眼或重繪下圖修復。
  • 檢查細紋修飾:上圖抬頭紋/法令紋若顯得無端加深,可局部減弱;修飾後檢查眉額表情、鼻翼至口周結構與光影仍自然,無蠟感、塗抹色塊或紋理突變。若修飾抹掉正常結構或明顯改變年齡,減弱處理;下圖不參與人像修飾。
  • 檢查輪廓與身份:正常觀看下輪廓應略流暢而仍像圖1本人,保留自然左右差異與面部體積;若明顯變臉、過度瘦削或出現平滑蠟感,減弱修飾並恢復原有特徵。
  • 拍攝角度驗收:將上下圖當作一對拍攝關係檢查,核對 A 鏡頭是否實際朝 B、相機高度/俯仰能否合理產生圖2的視點、距離與景別是否相容、B 的面部/身體轉向是否解釋得通,並檢查反打背景及光線方向。不強求 B 必須看鏡頭。發現明顯矛盾時,僅修正上圖機位、相機角度、站姿或背景,保持圖2內容、A 身份、自然肩頸與已匹配色調,再檢查。
  • 檢查上圖肩頸:脖頸舒展、肩線放鬆、下巴與領口有自然空間;若縮脖子或聳肩,定向修正姿態,保持手部、身份和環境,不用裁切掩蓋。
  • 放大檢查上圖的手、相機與臉部接觸區:關節/指頭數量、握持受力、遮擋關係、投影與皮膚質感必須合理;同時縮小看整體是否像自然抓拍。發現明顯假手、無來源光或矛盾陰影時,用圖像編輯工具只修正問題區域,保留身份、已正確姿態和色調,再拼接並複查;不能只靠全域調色交付。
  • 檢查頭髮是否保持原髮型與可信重力:若出現誇張炸毛、尖刺、懸浮髮束或不連貫髮根,只修正上圖頭髮,保留身份、持機姿態和光線。
  • 將最終拼圖作為整體檢查:上下冷暖/偏色、天空和環境顏色、曝光與黑位、對比度、飽和度和顆粒應協調,不能明顯出現兩套濾鏡。檢查合理光照差異,不把反打的自然差異誤判為錯誤。
  • 若上圖過亮、偏暖/偏冷、飽和度或質感明顯不一致,必須返回上圖校色;單純色差優先非生成式修正,錯光源再使用圖像編輯工具。保留身份、動作和構圖,再重新拼接檢查。不要以「場景相同」代替色調檢查。先解決上圖明顯色差,再進行輕微全域統一,不能用強濾鏡掩蓋上下差異。
  • 儲存並展示最終拼圖,可簡述「僅生成上方拍攝視角,下圖保留原始內容,拼接後輕微統一調色」。不要僅交付提示詞,不宣稱虛構場景真實發生。
  • 若缺少生成或拼接能力,明確限制,不虛構已完成拼接或內容保留的結果。不要將用戶圖片儲存進技能目錄。

相關技能