Community影像github.com

find-images

為簡報、報告、文件及網頁尋找圖片——真實照片(產品、地點、活動、人物)、可免費使用的圖庫照片、官方產品圖片及圖示。將多張候選圖比對在同一張編號的連絡表上,下載選中的原圖,記錄來源與授權,並建立來源頁。

find-images 是什麼?

find-images 是一款為開發者與 AI 代理設計的圖片搜尋、篩選、下載及歸檔工具。它能根據使用者需求(例如簡報、報告或網頁)從多個來源(Google 圖片、Pixabay、Wikimedia Commons、Iconify)取得候選圖,並自動建立編號連絡表,讓 AI 代理或人類使用者可快速比對並挑選最佳圖片。工具會記錄每張圖片的來源、授權條款與尺寸,並於下載完成後自動產出來源頁(credits.md)。支援繁體中文與英文查詢,並可透過環境變數或設定檔指定 API 金鑰。主要適用於 Claude Code、Codex 等 AI 編碼代理,幫助使用者避免將大量候選圖片載入對話上下文,大幅節省 tokens 並維持工作流程效率。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Kishibe999/find-images/tree/HEAD

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

在你喜歡的 AI 中提問

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

說明文件

find-images:尋找、篩選、下載並標註圖片來源

腳本位於此技能目錄下的 scripts/imgs.py。在以下指令中,請將 <skill-dir> 替換為包含此 SKILL.md 的目錄完整路徑(例如 C:/Users/<name>/.claude/skills/find-images)。 金鑰來自環境變數或 ~/.config/image-search/keys.env(SERPER_API_KEY、PIXABAY_API_KEY、可選的 EXA_API_KEY)。腳本會自行讀取這些金鑰:切勿印出金鑰或到其他地方尋找。若缺少某個金鑰,腳本會跳過對應的來源並告知;請繼續使用其他來源,並按照此技能的 README.md 指示告訴使用者如何設定金鑰。 腳本訊息、連絡表標籤及 credits.md 會依系統語言(中文或英文)顯示;FIND_IMAGES_LANG=zh|en 可強制指定語言。 輸出檔案位於目前專案的 images/ 目錄下:_work/<tag>/ 存放候選圖與連絡表,assets/ 存放選定的圖片,manifest.json 記錄每張圖片的來源,credits.md 則是來源頁。

首先判斷該張投影片是否需要尋找圖片

內容類型處理方式
數據、比較、趨勢不要搜尋;直接使用原生 pptx 圖表或 matplotlib
流程、結構、關係不要搜尋;使用形狀或 SVG 繪製
概念、抽象插圖先嘗試圖示(icons);在 Codex 中也可使用 imagegen 生成
特定產品、地點、人物、活動、組織使用此技能尋找真實照片
氛圍圖片、封面背景使用此技能,指定 Pixabay 或 Commons 為來源

選擇來源

來源(src / mode)適用於查詢語言授權
web(Serper,即 Google 圖片)特定產品、新聞事件、人物、中文主題任意語言。搜尋中文主題時,加入「官方圖」、「高清」或「新聞圖」有助於找到合適圖片權利未知:僅限內部簡報與課程作業使用,且須標明來源
commons(Wikimedia Commons)地標、城市、建築、歷史、科學、公眾人物、組織標誌僅限英文,2–4 個字(中文查詢幾乎無結果)CC0 可自由使用;CC BY / BY-SA 需標註原作者
pixabay氛圍照及通用場景(辦公室、團隊合作、城市、自然、工業)中文或英文可自由使用,可選擇是否標註作者;最大 1280px
mode: site(官方頁面)來自產品或公司頁面的官方圖片提供頁面 URL官方網站圖片;須標明來源
mode: icons(Iconify)來自開源圖示集(MIT、Apache 等)的圖示僅限英文,1–2 個字(drone、battery)。若結果少於 6 個,腳本會自動分別搜尋每個單字預設圖示集可自由使用,無需標註作者;color 對 SVG 與 PNG 皆有效

若需要特定主題的圖片,請使用 web 或 web,commons。當圖片必須可自由使用時,請使用 commons,pixabay 並排除 web。

工作流程

1. 撰寫圖片計畫(plan.json,UTF-8 編碼)

每張投影片一個項目;以投影片編號與用途命名每個 tag:

[
 {"tag": "s01_cover", "q": "car carrier ship at port", "q_en": "car carrier ship",
  "src": "commons,pixabay", "orient": "landscape", "min_side": 1600, "n": 12},
 {"tag": "s04_product", "q": "比亞迪 海豹07 官方圖", "src": "web", "orient": "landscape", "min_side": 1200, "n": 9},
 {"tag": "s05_official", "mode": "site", "url": "https://www.byd.com/cn/", "n": 9},
 {"tag": "s07_icon", "mode": "icons", "q": "battery", "color": "#1F4E79", "n": 16}
]
  • q:主要查詢字串,供 web 與 pixabay 使用。可用中文查詢中文主題,如 s04_product 所示。q_en:供 commons 使用的英文查詢;預設與 q 相同。
  • orient:landscape / portrait / square / any。
  • min_side:圖片長邊的最小像素長度。全螢幕背景 1600,半張投影片 1000,小插圖 600。Pixabay 的免費 API 最多提供 1280px,因此腳本會將 Pixabay 的需求降低為 1280px。這對投影機或一般螢幕的全螢幕背景已足夠,在 4K 螢幕上會略顯模糊。若全螢幕圖片必須非常銳利,建議優先使用 Commons 的候選圖。
  • n:連絡表上的候選圖數量,最多 16 個。

2. 搜尋並建立連絡表

python <skill-dir>/scripts/imgs.py search --plan plan.json --out images

也可單一項目搜尋:search --tag s04_product --q "..." --src web,或 site --tag .. --url ..、icons --tag .. --q ..。 若非 ASCII 引數在 Shell 中出現亂碼(例如在 Windows 的 Git Bash 中輸入中文),請改為寫在 plan.json 中。

每個項目會產生一張編號連絡表 images/_work/<tag>/sheet.jpg 以及一個文字清單,每行一個候選圖的資訊(尺寸、來源網域、授權)。 再次搜尋同一個 tag 會覆寫其候選圖與編號,所以在選圖前請先不要對同一個 tag 進行第二次搜尋。

3. 查看連絡表並選擇圖片

  • 開啟連絡表圖片:在 Claude Code 中讀取,在 Codex 中使用 view_image。一張連絡表約耗費 1,600 tokens。不要逐一開啟候選圖。
  • 確認主題是否正確(型號、地點)、構圖是否留有文字空間、沒有浮水印或大段文字、風格與簡報其他部分一致、解析度足夠。
  • 若無合適圖片,則重新搜尋。第一次搜尋後,最多再重新搜尋兩次,每次應從不同角度切入(而非使用同義詞):更特定或更廣泛的主題、其他來源、或另一種語言。若仍未找到,則改用圖示或純文字版面,或告知使用者。
  • 當主題吻合與授權條件衝突時:若需求表示「偏好」可自由使用的圖片,請先搜尋 commons,pixabay;若重新搜尋後仍找不到相關主題的圖片,可使用 web 圖片並在報告中標示為「權利未知」。若需求表示圖片「必須」可自由使用或將公開發表,絕不要使用 web,而應改用其他方案。
  • 連絡表標籤顯示尺寸、授權(Commons 會顯示精確授權,如 CC BY-SA 4.0)及來源網域;文字清單則顯示相同資訊。

4. 下載選定的圖片

python <skill-dir>/scripts/imgs.py pick --tag s04_product --ids 6 --out images

腳本會下載原始圖片(Commons 透過其 1920px 標準縮圖;長邊超過 2560px 的圖片會縮小;webp/avif 轉為 jpg/png)並記錄在 manifest.json 中。 若 pick 報告下載品質降級(manifest 中的 "degraded": true,表示熱連結保護擋住了原始圖,僅取得縮圖),請選擇其他候選圖。

5. 插入圖片並建立來源頁

  • 插入圖片時,請依據 manifest.json 中的 file、width 與 height,裁切成適合版面的大小,切勿拉伸。圖示會同時提供 PNG 與 SVG(svg 欄位)。
  • 執行 credits --out images 以寫入 credits.md,並將其來源章節放在最後一張投影片(來源頁)。若該頁有備註區,請將訊息傳遞給使用者。
  • 完成整個簡報後,如常進行渲染與螢幕截圖檢查。這是主代理唯一需要查看圖片的時機。

節省上下文:將三張以上圖片交由子代理處理

主代理只需撰寫 plan.json 並讀取 manifest。查看連絡表、選擇與下載圖片的工作交由子代理執行,如此候選圖片便不會進入主代理的上下文。子代理的提示範本如下:

請閱讀 <skill-dir>/SKILL.md 並依照指示為 <project path> 中的簡報尋找圖片。
圖片計畫:<plan.json 路徑>(以下每個項目的標籤、用途與投影片背景)。
<每個項目:投影片內容、圖片位置、橫向或縱向、風格>
對於每個項目,查看連絡表一次並選擇 1 張圖片(至多 1 張備用);挑選至 <project>/images。若無合適圖片,則以不同關鍵字重新搜尋,最多兩輪。
請回傳每個標籤:所選圖片的 id、檔案路徑、尺寸、授權類別與一句選擇理由;列出無合適圖片的標籤及其原因。請勿回傳圖片本身。

授權規則

  • 可自由使用(CC0、Pixabay、開源圖示):任何用途皆可。標註 CC0 與 Pixabay 圖片來源屬於禮貌性做法,非強制要求。
  • 需標註作者(CC BY / BY-SA):必須在來源頁標註作者與授權條款。經修改的 BY-SA 圖片必須以相同授權條款分享。
  • 官方 / 權利未知(site、web):僅限內部簡報、課程作業及學術演講使用,並須標明來源。在公開發表或商業使用前,請告知使用者並替換為可自由使用的圖片。
  • 人物照片:新聞背景下的公眾人物無妨;請勿將私人個人的照片用作裝飾。

配額與限制

  • Serper:註冊後可免費查詢 2,500 次。當 n > 6 時,搜尋 20 筆結果耗費 2 次查詢,10 筆結果耗費 1 次。之後需加值,50,000 次查詢約 50 美元,加值後 6 個月內有效。餘額可在 serper.dev 儀表板查看。
  • Pixabay:每分鐘 100 次請求;圖片不得熱連結(腳本會下載圖片)。
  • Commons:只能取得標準縮圖寬度(960/1280/1920/3840);請使用英文搜尋。
  • Iconify:免費,無需金鑰。將 SVG 轉為 PNG 需要 Node.js 與 sharp。若缺少此工具,腳本會提示;請改用其他方式,或要求使用者執行 npm install -g sharp。
  • Exa:僅在 site 模式無法從頁面本身找到圖片時使用;會消耗 Exa 配額。

相關技能