Community影像github.com

josephprada/jp-skill-image

根據文字描述,使用 Cloudflare Workers AI(flux-1-schnell 模型)生成圖像。

jp-skill-image 是什麼?

這項技能讓 AI 代理(如 Claude)能直接將使用者的自然語言請求轉換成實際的圖像檔案,無需離開對話環境。它整合了 Cloudflare Workers AI 的 `@cf/black-forest-labs/flux-1-schnell` 模型,自動完成從 prompt 優化到圖像生成的完整流程。技能支援 Claude Code 和類似的終端機式 AI 代理,透過執行一個獨立的 Python 腳本來呼叫 Cloudflare API,並將最終的 JPG 圖像儲存到本地磁碟。使用前需要在環境變數或專案的 `.env` 檔案中設定 `CF_ACCOUNT_ID` 和 `CF_API_TOKEN`。此技能的關鍵價值在於,Claude 會先將使用者模糊的描述(例如「幫我做一個咖啡廳的 logo」)擴展成一個高品質、結構化的英文 prompt,然後才餵給 Flux 模型,從而顯著提升生成結果的品質與可用性。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/josephprada/jp-skill-image/tree/HEAD

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

在你喜歡的 AI 中提問

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

說明文件

jp-skill-image 是做什麼的?

將自然語言請求轉換為使用 Cloudflare Workers AI (@cf/black-forest-labs/flux-1-schnell) 生成的圖像。完整流程如下:使用者描述需求,Claude 負責 prompt 工程,腳本呼叫 Cloudflare API,然後將圖像以 JPG 格式儲存至本機。

適用時機

使用者想要根據描述生成圖像 — 「幫我產生一個咖啡廳的 logo」、「幫我做一個 AI 影片的縮圖」、「一張 cyberpunk 風格的貓咪照片」。Claude 的職責是在生成之前,將模糊的請求轉換成良好的提示詞。

不適用於: 編輯現有圖片、向量圖形/SVG 或影片。

步驟 0 — 務必先檢查 .env

在執行腳本之前,請確認憑證可以解析。腳本會依以下順序尋找:實際的環境變數 → 目前目錄或任一上層目錄的 .env → ~/.claude/skills/jp-skill-image/.env(全域備援)。

python3 -c "import sys; sys.path.insert(0, '$HOME/.claude/skills/jp-skill-image'); from generate import load_credentials; print('OK' if all(load_credentials()) else 'MISSING')"

如果缺少任何變數(例如新使用者或剛複製的專案),請勿嘗試生成圖像 — 先以三個簡短步驟引導使用者如何取得它們:

  1. CF_ACCOUNT_ID:Cloudflare Dashboard → 任何網域/專案 → Workers & Pages → Overview(顯示在右側),或直接前往 https://dash.cloudflare.com/profile/account-id... 如果那裡沒有顯示,請使用 Dashboard URL 中的 ID,或左側邊欄 Manage Account(非「My Profile」)區段中的 ID。
  2. CF_API_TOKEN:https://dash.cloudflare.com/profile/api-tokens → Create Token → Custom Token → 權限 Account.Workers AI Scripts: Edit → Account Resources:你的帳戶 → Create。
  3. 建立 .env 檔案 — 放在專案根目錄,或放在 ~/.claude/skills/jp-skill-image/.env 以便從任何資料夾都能使用 — 內容如下:
    CF_ACCOUNT_ID=xxxxx
    CF_API_TOKEN=xxxxx
    

如果專案使用企業代理伺服器連到網際網路(請檢查 .npmrc 中是否存在 HTTPS_PROXY,或對外部 API 的請求是否因逾時而失敗),請一併加入:

HTTPS_PROXY=<proxy-corporativo>

一旦確認變數存在,即可繼續正常操作。

如何執行

從任何目錄(圖像會儲存在相對於目前目錄的位置):

python3 ~/.claude/skills/jp-skill-image/generate.py "<最佳化的提示詞>" -o <檔案名稱>.jpg --steps <N>
  • "<最佳化的提示詞>" — 你編寫的提示詞(見下文),而非使用者的原始話語。
  • -o / --output — 儲存位置(預設為 out.jpg)。使用簡短且具描述性的名稱,例如 coffee-logo.jpg。
  • --steps — 擴散步數(預設為 4)。flux-schnell 針對少量步數進行了最佳化,但為了獲得最佳品質,除非使用者要求速度,否則請使用 8。切勿低於 4 步。

成功時,腳本會輸出 Saved <檔案> ...,失敗時則會輸出可讀的錯誤訊息(包含已於內部處理的、回傳含 base64 圖像之 JSON 回應的情況)。

Claude 的真正任務:編寫最高品質的提示詞

這項技能的價值在於 Claude 會在使用者呼叫腳本之前,將其意圖擴展為一個生動、具體且技術正確的提示詞。切勿直接傳遞使用者的請求 — 務必先進行處理。

一個高品質的 Flux 提示詞應按此順序包含:

  1. 主要主體 — 場景中有什麼,要具體且無歧義。
  2. 風格/媒介 — 寫實照片、3D 渲染、平面向量、水彩畫、等角視圖、像素藝術等。
  3. 構圖與取景 — 特寫、遠景、居中、三分法、鏡頭角度。
  4. 光線與氛圍 — 黃金時刻、霓虹燈、柔和棚燈、戲劇性陰影、逆光。
  5. 色彩與細節程度 — 特定色調、背景、紋理、細節層級(「highly detailed」、「clean minimal」)。
  6. 技術品質(適用於寫實照片/渲染)— 像「cinematic」、「8k」、「sharp focus」、「professional photography」這類術語有助於 Flux 產出更接近頂級效果的結果。

轉換範例:

  • 使用者:「一個咖啡廳的 logo」
  • 你傳遞的提示詞:"minimalist logo of a steaming coffee cup, flat vector illustration, warm brown and cream palette, centered on a clean off-white background, simple bold shapes, modern branding, professional design"

嚴格規則:

  • 提示詞一律使用英文(Flux 對英文回應較佳)。
  • 1-2 句話,資訊密集,無廢話。
  • 切勿要求圖像中出現可讀的文字/單字 — Flux 無法很好地渲染它們。
  • 如果使用者提供的細節不足,請自行填補空白,做出最佳的創意決定(除非主體確實模糊不清,否則不要提問)。
  • 預設使用 --steps 8 以最大化品質;僅在使用者明確要求速度時才降至 4。

生成之後

  1. 確認檔案已儲存(腳本會輸出路徑)。
  2. 告知使用者檔案名稱和你使用的確切提示詞,以便他們進行調整並重新執行。
  3. 如果需要變化版本,請使用修改後的提示詞和新的 -o 再次執行。

技術需求

  • CF_ACCOUNT_ID 和 CF_API_TOKEN 可從步驟 0 的三個來源之一解析。
  • Python 3.8+。無需外部依賴 — 腳本僅使用標準函式庫(urllib),因此不需要 pip install 或虛擬環境。
  • 腳本會解碼 Cloudflare API 回傳的 base64 回應,並將其儲存為二進位 JPG 檔案 — 該回應並非直接是圖像本身。

相關技能