透過轉發服務進行圖片生成
使用此技能資料夾(與此 SKILL.md 相同資料夾)中的 relay.sh 腳本。它會從同目錄下的 relay.env(或環境變數 IMAGE_RELAY_URL / IMAGE_RELAY_TOKEN)讀取轉發服務網址和令牌,呼叫轉發服務,並將圖片儲存為檔案。使用 bash 運行,請使用其完整路徑。
切勿列印、輸出或顯示令牌或 relay.env 的內容,也切勿將令牌放在命令列中。
生成
bash /path/to/image-gen/relay.sh generate "一隻在雪地森林中的水彩狐狸" --aspect 16:9
選項:
--aspect R:可選值為 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9--n N:圖片數量(1-4)--model M:僅在使用者要求特定模型時使用;執行relay.sh models可列出允許的模型--out DIR:儲存目錄(預設為/mnt/user-data/outputs目錄存在時使用該目錄,否則使用目前目錄)
輸出行格式為 saved: /path/abc123.jpg (512345 bytes, relay file: abc123.jpg)。向使用者顯示或附加儲存的檔案。保留 relay file 名稱以供後續編輯使用。
等待結果
生成可能需要數分鐘,因此轉發服務會以背景作業方式執行。relay.sh generate 會提交作業,並每隔約 30 秒(轉發服務要求的間隔)檢查一次,最多持續 90 秒。如果圖片準備就緒,您會照常看到 saved: 行。
如果顯示 pending: job <id> ...,表示作業仍在轉發服務上執行,並未遺失。請等待指定的秒數(例如 sleep 30),然後執行:
bash /path/to/image-gen/relay.sh result <id>
等待期間,腳本可能會顯示作業正在「審查中」(轉發服務仍在審核請求)或「已接受,生成中」。重複此步驟直到顯示 saved: 行或出現錯誤。當有作業正在進行時,請勿重新提交提示詞:這會生成(並計費)第二張圖片。--wait SECONDS 可變更單次呼叫的等待時間(預設為 90 秒)。
編輯或使用參考圖片
使用 --image 傳入使用者的圖片檔案(可重複使用,總計最多 4 張;支援 PNG、JPEG、WebP 或 GIF,每張最大 10 MB):
bash /path/to/image-gen/relay.sh generate "將天空改為紫色,其餘保持不變" --image /path/to/photo.jpg
若要改進對話中先前生成的圖片,請使用 --ref 傳入其 relay 檔案名稱(比重新上傳更快;relay 檔案在 24 小時後過期):
bash /path/to/image-gen/relay.sh generate "在右上角增加一個小月亮" --ref abc123.jpg
--ref 也接受 https:// 格式的圖片網址。
提示詞撰寫
撰寫具體的提示詞,涵蓋主體、風格、構圖、光線和顏色。對於編輯,請說明要更改的內容以及要保持不變的部分。
錯誤
腳本會輸出 error: HTTP <代碼> <代碼名稱>: <訊息>:
rate_limited:等待顯示的秒數,然後重試一次。model_not_allowed、invalid_aspect_ratio、invalid_n:修正選項後重試。invalid_input_images/ 413:圖片類型不支援或檔案過大;請轉換或縮小圖片。upstream_error(例如「未及時回應」):轉發服務已自行重試。告知使用者,然後重新提交一次;如果再次失敗,則停止並回報。request_rejected:轉發服務未接受請求(原因不明)。告知使用者請求被拒絕;請勿猜測原因、改寫或偽裝提示詞或圖片以規避限制,也請勿重新提交。prompt_rejected:轉發服務的內容政策阻止了提示詞。告知使用者;請勿改寫提示詞以繞過過濾器。image_rejected:參考圖片被內容政策封鎖。告知使用者;請勿使用相同圖片重試或嘗試偽裝。no_image:未生成圖片;請重新措辭提示詞。job_not_found/job_lost:作業 ID 已過期或伺服器已中止;請重新提交提示詞。could not reach:無法連線到轉發服務網域。告知使用者在設定 → 權限(網路出口)中允許該網域。unauthorized:令牌遺失、錯誤或已過期。告知使用者;請勿嘗試尋找其他令牌。