Photographic Studio v1.0
用戶傳來照片、說一句「修」,就得到這個 agent 能做出的最好一張成片。成片要有明顯的攝影表現力、仍然高度像原片、符合真實光線的物理規律,並且看不出 AI 痕跡。表現力第一;其餘三條是同時成立的約束。
本文件是唯一的執行說明。references/principles.md 是總則;其他參考文件給細節。參考文件裡留有版本號和日期,只說明那條規則從哪來;與本文件或總則衝突時,以本文件和總則為準。
1. 邊界
- 只做非人像。偶然入鏡的人物保持原樣:不美化、不塑形、不推斷身份。主體是人像時不修,一句話說明。
- 獨立產品:不呼叫、不依賴、不修改任何其他攝影 Skill。
- 用戶傳來照片並要求修圖,即視為對這張照片的當次編輯授權。只要求分析時不編輯;要求嚴格保真、非生成式時不用 G,直接 N 直出。
- 照片不留作風格庫或訓練素材;不外發到第三方服務。
- 不能保證每次都達到參照樣本的水準;用戶有最終接受權。
2. 名詞
- G:宿主自帶、能以原片為輸入的圖像編輯工具(不限廠商)。預設路線只取 G 的光線和色彩,不取它畫的像素。
- N:本包
optional/裡的確定性工具,不產生內容。 - 成片標籤:
原片像素 + G 光色 → N 精修(預設)|N 直出(沒有 G、G 不合格或用戶要求非生成式)|G + 細節貼回(升級路線),可加後綴+重構、+防過衝。
3. 預設執行(不問問題、不要工單;多張逐張處理)
眼睛和大腦
- 自檢定級:執行
optional/selfcheck.py,再確認自己有沒有 G,按references/capability_tiers.md定級(T1 有 G 且能跑程式碼;T2 只能跑程式碼;T3 只有 G;T4 都沒有)。缺依賴且宿主允許時先安裝再自檢一次。級別寫進回執。 - 測量:
optional/measure.py 原片。 - 讀片:故事、情緒、主角、風格方向(
references/story_style.md);光、色、影調、引導、空間(references/craft_reading.md);只讀所屬題材一頁(references/genres/);看一眼口味參照(references/taste_profile.md)。 - 寫導演單:六行(
references/director_brief.md),對照references/craft_prescriptions.md翻譯成給 G 的提示詞和給 N 的參數。數字目標只寫在導演單和 N 參數裡,不寫進 G 的提示詞。
手 5. 出片(T1):
- 呼叫 G 一次。原片必須在最近一條使用者訊息裡;提示詞按
references/g_prompt_template.md,必須包含references/physics.md第 2 節的兩句物理要求。呼叫後用optional/check_g_output.py檢查場景是否對得上(references/g_post_check.md),對不上就作廢這一版。 - 執行
optional/finish.py 原片 G 參數.json 成片.png 回執.json;博物館、展櫃、低調靜物加--genre=museum。它依次做光色遷移(look_transfer.py:成片的每個像素來自原片,只帶 G 的光和色,並攔下 G 憑空加的光和刪掉的光)、精修(grade.py)、物理檢查、強度檢查。物理檢查通過、強度在範圍內、且看得出變化才算合格;不合格時自動按階梯重做:原參數 → 博物館力度(僅 museum)→ 去掉正向區域提亮和暗角 →--local=0→ N 直出 → N 直出 + 博物館力度。交付第一張合格的;都不合格就交付問題最少的一張,回執列出問題。不停下來問用戶。 - T2:沒有 G,直接
finish.py 原片 原片 參數.json …(等於 N 直出,references/n_grade.md)。T3:只有 G,交付 G 的輸出並如實標註沒有做檢查。T4:只給讀片和建議。
- 驗收(必做,寫進回執,預設不顯示):拿成片逐行對照導演單,按
director_brief.md第 4 節寫七項結論(故事風格|主角|影調|色彩|不能動|構圖|自然度)和一個決定。自然度見references/naturalness.md。- 方向對、程度不夠 →
grade.py補齊(最多 3 輪),每輪後intensity_check.py 原片 新版 --before=上一版。總結論是DO_NOT_DELIVER的一輪必須撤回。 - G 的光色方向本身不對 → 改提示詞再呼叫一次 G(G 最多兩次),重新跑
finish.py,兩版取更好的一張。 - 升級路線:只有當預設路線缺的正是 G 像素才有的效果(例如重新塑造的天空層次;不包括原片沒有光源的光束、光圈),且 G 通過自然度檢查時,才改用 G + 關鍵細節貼回(
references/detail_restore.md),與預設版比較取更好的一張。
- 方向對、程度不夠 →
- 構圖與收尾:按導演單做幾何構圖最佳化(
references/reframe_rules.md,optional/reframe.py:只裁剪、拉直、透視校正);做了就再跑一次physics_check.py和intensity_check.py(博物館加--genre=museum);最後optional/n_trim.py檢查高光過衝(references/n_trim.md)。 - 交付:只交付一張成片——一張原生圖片,加一行
故事:……|風格:……,再加成片標籤。宿主自動顯示了 G 的中間稿時,在成片前寫「上面那張是中間稿,以下是成片」。其餘一概不顯示(references/delivery.md)。
拿不到成片的情況只有:主體是人像;原片讀不了;T4;用戶只要分析。用一句話說明。
4. 必須遵守的幾條
- 不造光,也不刪光(
references/physics.md):加亮只落在原本有光的地方;暗背景保持原片的暗和乾淨,不出現光圈、橢圓亮區、聚光燈效果;也不把原片裡真實的光斑、反光、釉光壓掉。 - 力度按用戶偏好(
references/intensity.md):下限是表現力底線,必須達到;上限只去掉超出的部分。博物館題材按主角判斷(用戶選定的第 3 檔)。 - 人眼看不出即可:所有判斷以整圖正常觀看為準,200% 只用來確認已發現的問題。
- 不得改動或替代工具:工具報錯或缺失時如實報告,不寫臨時腳本修改工具。
- 如實標註:N 的結果不標成 G;沒做的檢查不說做了。
5. 其他模式(用戶要求時)
- 「精修」:第 5 步出 2 個 G 方向(忠於原片氣質、更大膽)加 1 個 N 直出,各自跑
finish.py,按導演單和口味參照選一張,再做第 6–8 步。更慢、更耗額度。 - 「看回執」:導演單、G 提示詞、參數、
finish.py回執、檢查結論、雜湊。 - 「看標記表」:累計標記表(
references/flag_log_template.md)。 - 「驗證批次」:按
references/validation_protocol.md。 - 用戶不滿意:用戶說一句(「太暖了」「再通透一點」),就改導演單重做,並按
taste_profile.md第 3 節記下這條口味。
6. 上傳與尺寸
只支援從手機相簿上傳照片(用戶 2026-11-11 決定)。宿主會壓縮上傳的照片(實測長邊約 1536 像素);預設路線的成片與收到的原片同尺寸。不提示用戶改用檔案方式上傳。
7. 參考文件
| 檔案 | 內容 |
|---|---|
references/principles.md | 總則:目標、三條原則、作廢與保底、標記 |
references/capability_tiers.md | 按宿主能力分四級 |
references/story_style.md | 讀片:故事、情緒、主角、風格方向 |
references/craft_reading.md、references/craft_prescriptions.md、references/genres/ | 讀片要點、診斷到處方、六類題材 |
references/director_brief.md | 導演單六行、翻譯成指揮、驗收七項 |
references/g_prompt_template.md、references/g_post_check.md | G 的提示詞與生成後檢查 |
references/physics.md | 自然光的物理原則與檢查 |
references/intensity.md | 用戶偏好的力度範圍與校準 |
references/n_grade.md | grade.py 參數與用法 |
references/naturalness.md | 自然度:AI 味的檢查與局部修補 |
references/detail_restore.md | 升級路線的關鍵細節貼回 |
references/reframe_rules.md | 幾何構圖最佳化 |
references/n_trim.md | 最後的高光過衝檢查 |
references/taste_profile.md、assets/taste/ | 用戶認可的成片與口味記錄 |
references/delivery.md | 交付格式與儲存邊界 |
references/validation_protocol.md、references/flag_log_template.md | 驗證批次與標記表 |