《我的 AI 工作流》實作篇:從手動改名到 Vision 自動辨識|旅遊照片自動化處理全流程

不用懂 Python,只要學會跟 AI 說清楚你要什麼。這篇完整拆解四支腳本的實作流程:Vision 自動辨識命名、WebP 壓縮、EXIF 旋轉修正、一鍵上傳 Ghost,附真實截圖與數據對比。

《我的 AI 工作流》實作篇:從手動改名到 Vision 自動辨識|旅遊照片自動化處理全流程

每次整理旅行照片,檔名都是 IMG_1039.JPG506485499_xxxxx.jpg 這種看不出內容的名稱嗎?這篇教你用 Python 腳本搭配 AI 的眼睛(Vision),30 秒搞定幾十張照片的命名、壓縮、上傳,一條龍完成。
對應敘述文:《我的 AI 工作流》下指令,按 Enter,收工


📖 本篇目錄


工具總覽

本篇會用到以下五支腳本,全部放在 AI_VIBECODE/ghost/ 資料夾:

腳本 功能 版本
check_image_sizes.py 列出每張照片的寬高比例和方向,輔助排版決策 v1.1.0
vision_rename.py Claude Vision 自動辨識圖片內容,產出命名(v2 新增) v1.0.0
optimize_photos.py 壓縮轉 WebP + EXIF 旋轉修正 v1.1.0
ghost_upload.py 批次上傳到 Ghost,產出 URL 清單 -
rename_photos.py 舊版手動對照表改名(v1 流程,仍可用) -

一鍵安裝所需套件:

pip install anthropic Pillow

為什麼要改照片檔名?

寫旅行文章時,照片管理是最花時間的環節之一。從社群平台下載的照片,檔名往往是無意義的數字:

506485499_122297849572006830_8765432101234567890_n.jpg
508458275_122298012456007830_1234567890123456789_n.jpg

完全看不出哪張是哪張。如果改成有意義的命名:

202501-takayama-wagyu-beef-platter-1.webp
202501-takayama-takayama-old-street-1.webp
202501-shirakawago-shirakawa-light-up-snow-1.webp

好處有三個:排序友善、SEO 友善、後續腳本可以自動解析產生 alt text。

命名規則:{YYYYMM}-{city}-{type}-{id}.jpg

欄位 說明 範例
YYYYMM 拍攝年月 202501
city 城市代碼 takayamashirakawago
type 照片類型(AI 辨識產出) wagyu-beef-platterold-street
id 流水號 123

🎯 下指令:讓 AI 替你睜開眼睛

先跑 check_image_sizes.py — 看清楚每張照片的比例

挑圖前先跑一次,列出每張照片的寬、高、比例、方向,決定哪幾張可以並排 gallery:

python check_image_sizes.py "資料夾路徑"

check_image_sizes.py 執行畫面 — 列出 27 張高山照片的寬高比例和方向

依此決定排版:比例接近的兩張規劃並排,比例差距大的標記單張。


v1 流程(手動對照表)

舊版做法:自己看每張照片,建立對照表,再貼進腳本。

# rename_photos.py 核心設定區
RENAME_MAP = {
    "506485499": "202506-towada-museum-exterior-01",
    "507540773": "202506-towada-museum-exterior-02",
    "506490633": "202506-towada-museum-exhibit-01",
    # ...以此類推,完整對照表依照片數量填入
}

缺點:每次都要手動看圖建表,照片多的時候很花時間。

v2 流程(Vision 自動辨識)

v2 改用 vision_rename.py,直接讓 Claude Vision 看每張照片,自動辨識內容後產出命名。

前置需求:

pip install anthropic Pillow
set ANTHROPIC_API_KEY=sk-ant-xxx  # 每次開新 CMD 都要重設

⚠️ API Key 安全提醒: 請務必保護好你的 ANTHROPIC_API_KEY。若要將腳本上傳到 GitHub,記得先移除 Key 或改用環境變數設定,避免 Key 外洩。

用法:

# 先 dry-run 確認辨識結果(不實際複製)
python vision_rename.py "資料夾路徑" --prefix 202501-takayama --dry-run

# 確認 OK 後正式跑(copy 到 output/,原檔不動)
python vision_rename.py "資料夾路徑" --prefix 202501-takayama

vision_rename.py 執行畫面 — AI 自動辨識 27 張高山照片並產出命名清單

實際辨識結果(高山篇,27 張):

原始檔名 AI 辨識 slug 輸出檔名
IMG_3981.JPG wagyu-beef-platter 202501-takayama-wagyu-beef-platter-1.jpg
IMG_4020.JPG takayama-old-street 202501-takayama-takayama-old-street-1.jpg
IMG_4046.JPG sake-dispensing-machine-interior 202501-takayama-sake-dispensing-machine-interior-1.jpg
熟成飛騨牛焼肉GYU-SUKE.JPG gyusuke-yakiniku-entrance 202501-takayama-gyusuke-yakiniku-entrance-1.jpg

27 張全部辨識成功,連中文檔名都能正確處理。

💡 費用: 每 100 張照片約 $0.6 美金,用 Anthropic API(需另外儲值,與 Claude.ai 訂閱分開)


⏎ 按 Enter:執行自動化腳本

Step 1:改名(vision_rename.py 或 rename_photos.py)

跑完 vision_rename.py 後,output/ 資料夾會有所有改好名字的照片,原檔不動。

Step 2:壓縮轉 WebP + EXIF 修正(optimize_photos.py)

python optimize_photos.py "資料夾/output"

optimize_photos.py 執行畫面 — 高山 25 張照片壓縮結果,平均節省 88.8%

optimize_photos.py 執行畫面 — 白川鄉 15 張照片壓縮結果,平均節省 92.4%

  • .jpg/.png 自動轉 .webp,平均壓縮 80% 以上
  • v1.1.0 新增 EXIF 旋轉修正:手機直拍的照片不再橫放
  • ⚠️ 原本就是 .webp 的檔案不會被處理(需手動旋轉)

Step 3:上傳到 Ghost(ghost_upload.py)

python ghost_upload.py "資料夾/output"

上傳後自動產生三種格式的結果檔:

  • upload-result.csv(含所有圖片 URL,給 Claude 產出 HTML 用)
  • upload-result.json
  • upload-result.html

⚠️ 重複上傳提醒: 若上傳同檔名照片,Ghost 會自動在網址後方加上 -1。建議在正式執行前,先在 output/ 資料夾做最後確認,避免 URL 異動後還要回頭更新 HTML。

Step 4:Claude 產出 Ghost HTML

upload-result.csv 貼給 Claude,同時說明:

  • 行程內容(景點、餐廳、住宿)
  • 哪幾張要並排 gallery(挑圖時依 check_image_sizes.py 的結果決定好)

Claude 直接產出完整的 Ghost HTML,貼入 HTML 卡片即可。

Gallery 排版判斷準則:

  • 兩張比例(高/寬)接近 → 可以並排 gallery
  • 比例差距 > 20% → 單張 <figure>
  • 不確定就先貼進 Ghost 預覽確認

✅ 收工:成果對比

改名前後對比

❌ Before
506485499_122297849572006830_876543210_n.jpg
熟成飛騨牛焼肉GYU-SUKE.JPG

✅ After
202501-takayama-wagyu-beef-platter-1.webp
202501-takayama-gyusuke-yakiniku-entrance-1.webp

實測成果

地點 照片數 辨識耗時 結果
高山(takayama) 27 張 約 2 分鐘 ✅ 全部成功
白川鄉(shirakawago) 16 張 約 1.5 分鐘 ✅ 全部成功

手動 vs 自動比較

項目 手動右鍵改名 v1 手動對照表 v2 Vision 自動辨識
操作方式 一張一張點擊 建表 + 跑腳本 一行指令全部搞定
命名時間(27 張) 約 20 分鐘 約 8 分鐘 約 2 分鐘
正確率 容易打錯字 對照表正確即可 AI 辨識精準
重複使用 每篇重來 改對照表重複用 只改 prefix 重複用

如果你也是用 Ghost 或 WordPress 寫部落格的程式小白,只要學會跟 AI 說清楚你要什麼,剩下的苦工就交給它吧。


📂 完整腳本領取: 我把五支腳本(尺寸檢查、Vision 辨識、WebP 壓縮、Ghost 上傳)打包整理好了!你可以從我的 GitHub Gist 直接下載 .py 檔使用。

工具:Python 3 + Anthropic API

👉 延伸閱讀:《我的 AI 工作流》下指令,按 Enter,收工:旅遊債清償計畫