Community影像github.com

mattmuller/gemini-reference-images

使用 Gemini 從參考圖片生成影像——在不同圖片中保持同一角色的一致性、將真實產品截圖置入生成的場景、風格匹配,以及偵錯未回傳圖片的 Gemini 影像呼叫。適用於編寫或修正傳送參考圖片給 Gemini 影像模型的程式碼、處理回傳空結果或內容過濾 finish reason 的呼叫,或規劃要附加多少參考圖片時。

gemini-reference-images 是什麼?

此技能提供使用 Gemini 模型從參考圖片生成影像的完整指南,包含如何保持角色一致、將真實產品截圖置入生成場景,以及風格匹配等實用功能。它詳細說明了不同 Gemini 模型的參考圖片數量限制(例如 gemini-3.1-flash-image 最多 14 張,且分為物體、角色、風格三個類別,各自有獨立配額),以及透過 Vercel AI Gateway 進行呼叫的實作方式與可設定的寬高比、影像尺寸。此外,技能也指出了多個關鍵陷阱,例如在提示詞中包含「無浮水印」可能導致整個呼叫被拒絕、被拒絕時應記錄 finishReason 而非單純依賴文字輸出、不要在提示詞中描述截圖已有的內容(應只描述場景)、以及參考圖片無法讓輸出看起來不那麼合成化等。最後提供了一個參考圖片管線的檢查清單,幫助開發者避免常見錯誤。

相容平台~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/mattmuller/skills-for-agents/tree/HEAD/skills/gemini-reference-images

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

在你喜歡的 AI 中提問

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

說明文件

Gemini 影像生成:使用參考圖片

Gemini 不僅能根據提示詞生成影像,也可以從您提供的圖片生成。這正是如何在系列中保持角色一致性,或將真實產品截圖渲染到生成場景中,而不是產生一個虛構產品的方法。

模型限制

以下資料取自 2026 年 9 月 19 日的 Gemini API 影像生成文件。模型名稱與限制會變更;請在依賴這些資料前重新閱讀當前文件。

最多 14 張參考圖片,每個類別有各自的子限制,這些是獨立配額而非共享池:

模型objectscharactersstyle
gemini-3.1-flash-image1043
gemini-3-pro-image65-
gemini-3.1-flash-lite-image14--

因此,產品截圖與角色肖像不會互相競爭預算。一張圖片可以同時包含多個螢幕和多個人物。

類別是推斷出來的,並非宣告出來的。 透過 AI SDK 和閘道器,您傳送的是未區分的 file 部分;沒有任何欄位會註明「這一個是角色」。請將 14 視為真正的上限,並遠低於此數字。類別限制描述的是模型能夠處理的範圍,而非您可以斷言的內容。實務上,兩個螢幕加上兩個人物就已經足夠。

呼叫方式

透過 Vercel AI Gateway,影像模型的行為類似語言模型:它會在文字 API 的回應中,透過 files 回傳圖片,而專門的影像 API 則會拒絕此類請求。請檢查您自己的提供者路由如何公開此功能。

const result = await generateText({
  model,
  prompt: [{ role: 'user', content: [
    ...references.map((r) => ({ type: 'file', mediaType: r.mediaType, data: r.bytes })),
    { type: 'text', text: prompt },        // 圖片在前,然後是指令
  ]}],
  providerOptions: { google: {
    responseModalities: ['IMAGE'],
    imageConfig: { aspectRatio: '4:5', imageSize: '2K' },
  }},
});
const file = result.files.find((f) => f.mediaType.startsWith('image/'));

寬高比:1:1 3:2 2:3 3:4 4:3 4:5 5:4 9:16 16:9 21:9。尺寸:512px 1K 2K 4K。

陷阱

1. 當附加參考圖片時,請勿撰寫「無浮水印」。 Gemini 似乎會將其解讀為要求從提供的圖片中移除浮水印,並拒絕整次呼叫。於 2026 年 9 月測量,每個提示詞尾部執行兩次,附加兩張參考圖片:

提示詞尾部結果
"絕非插圖,而是 3D 渲染..."圖片, 圖片
"人物、臉部、手部... 都歡迎。"圖片, 圖片
"無其他公司標誌。"圖片, 圖片
"無浮水印。"內容過濾, 內容過濾

只有浮水印相關的措辭會觸發問題。從其他影像工具複製而來的負面提示慣例(許多結尾會加上 watermark, over-saturated, stock-image)可能會暗中破壞每一次呼叫。

2. 拒絕看起來像模型不穩定。 它會回傳 finishReason: 'content-filter',零個檔案以及空字串。如果您的錯誤訊息印出 result.text,您將看不到任何內容,並斷定 API 不可靠。請務必記錄 finishReason。

3. 在拋出錯誤前,重試空回應。 模型偶爾會因一般原因回傳空結果。只有在嘗試次數用完後才拋出錯誤,並在錯誤中加入 finishReason。

4. 不要描述提供的螢幕上有什麼內容。 截圖已經存在;描述其內容的文字會與圖片衝突,產生混雜的結果。只描述容納它的場景:桌子、光線、手部。

5. 模型會重新繪製,而不是貼上。 參考螢幕上的小文字可能會微妙地失真,出現看似合理但錯誤的名稱和標籤。這在縮圖尺寸上沒問題,但對於讀者會放大的內容來說就錯了。請檢查輸出,而非假設其保真度。

6. 參考圖片不會讓輸出看起來較不合成。 由真實截圖和真實肖像構建的圖片仍然是 AI 生成的。請遵守任何適用於您使用生成影像的標籤或揭露規則;請自行檢查相關規定,而非假設參考圖片能讓您免責。

參考圖片管線檢查清單

  • 參考圖片部分位於文字部分之前。
  • 少於 14 張參考圖片;理想為 4 張或更少。
  • 提示詞描述場景,而非提供的螢幕內容。
  • 提示詞中無浮水印相關措辭。
  • 已記錄 finishReason,且空結果會重試。
  • 發佈前檢查輸出是否有失真的小文字。

相關技能