跳至主要內容
Study Jam:Gemini 專業應用 — 第 7/7 篇

Gemini+Imagen 圖片應用:生成只是中間一步

內文字級

Gemini+Imagen 圖片應用:生成只是中間一步
更新:2026-10-12

課程概述

圖片 API 回傳一張圖,只代表「模型有產出」,離能公開發布還有一大段路。使用者有沒有上傳素材的權利?Prompt 是否帶個資?人物生成是否符合政策?圖片裡的 Logo、文字、手指和產品外觀有沒有跑掉?產出之後,誰核准、能用在哪裡、何時下架?

這篇把課程裡的 Gemini+Imagen 概念,更新成目前比較耐用的架構:Gemini 負責理解需求、追問缺少資訊和產生結構化視覺規格;圖片模型負責生成或編輯;模型前後再加上權利、安全、品質、人工審核與資產治理。生成不是終點,只是中間一站。

Gemini 與 Imagen 多模態應用架構:文字、參考圖和產品規格先由 Gemini 理解意圖並產生包含主體、構圖、風格及限制的結構化視覺規格,Imagen 再生成多個版本、局部重繪或放大;輸出經安全、浮水印與人工選擇後儲存交付

Gemini 負責理解與編排,圖片模型負責像素生成或編輯。生產應用還要處理輸入輸出安全、來源權利、人工選擇、重試、配額、成本和品質監控。

你將學到

  • 將自然語言需求轉成可驗證的結構化視覺規格
  • 依生成、編輯、品質、延遲與發布階段選擇圖片模型
  • 在模型前檢查檔案、身分、同意、權利與安全政策
  • 用非同步 Job、Idempotency、Quota 和成本上限扛住實際流量
  • 為每張生成資產留下來源、版本、審核與下架紀錄

先處理模型版本,不要把 ID 寫死在文章裡

圖片模型變動很快。截至 2026 年 10 月,Google Cloud 已把多個 Imagen 3/4 GA 生成端點列為 deprecated(2026-03-24 公告;Imagen 4 的 Generate、Fast、Ultra 三個都在表上),並建議在 2026-06-30 前換掉以免服務中斷(此期限已過);現行的 Gemini 圖片模型與各自的退役日期以官方模型生命週期頁為準:2026-10-12 查證時,gemini-2.5-flash-image 已 deprecated(預定 2027-03-15 退役,官方建議遷移到 gemini-3.1-flash-lite-image),gemini-nano-banana-2.1(2026-10-06 GA)則列在「供應期較短」一類,尚未公告退役日。正式系統不要只因為版本號較新就直接換:

  • GA 工作負載優先選仍受支援、符合地區與安全控制需求的穩定模型
  • Preview 模型先確認 Pre-GA 條款、配額、SLA、資料治理和回退方案
  • 把 Model ID、Region、Safety setting 和輸出參數放在設定層,不散落在程式碼
  • 建立模型路由與 Feature flag,才能小流量比較品質、成本和延遲
  • 每次上線前查 Model lifecycle 與 Deprecation,不沿用過期 Lab 範例

這篇仍用「Imagen」描述 Google 的圖片生成能力與課程脈絡,但實作時要以當下官方 Model lifecycle 為準。

Gemini 應該產生規格,不是幫 Prompt 堆形容詞

直接請模型把「幫我做一張產品廣告」改寫得更華麗,常會得到一串很長、卻不好驗證的英文 Prompt。更穩的做法是請 Gemini 輸出 Schema 固定的物件:

{
  "purpose": "首頁主視覺",
  "subject": "霧黑色智慧手錶",
  "scene": "台北清晨河濱,無可識別路人",
  "composition": "產品置中,右側保留標題留白",
  "style": "寫實商業攝影,柔和自然光",
  "aspectRatio": "16:9",
  "mustInclude": ["產品外觀與核准素材一致"],
  "mustAvoid": ["文字", "第三方商標", "可識別人物"],
  "reviewLevel": "marketing-human-review"
}

後端先用 JSON Schema 驗證欄位和允許值,再轉成目標模型的 Prompt。缺少用途、尺寸、受眾或人物同意時,讓 Gemini 追問,不要自行腦補。

Gemini 與 Imagen 多模態應用責任邊界:前端輸入經驗證、權利與隱私檢查後,由 Gemini 理解意圖並產生經驗證的請求物件,再經政策閘門交給 Imagen 生成或編輯,輸出驗證後受控儲存與回傳

模型前先驗證檔案、身分、權利與政策;模型後再檢查安全、格式、品質和意圖符合度。輸入不合格就拒絕或追問,不能靠模型猜。

安全過濾是底線,不是發布核准

Imagen 對輸入 Prompt、上傳圖片和輸出圖片有內建安全過濾,部分模型也能調整安全與人物生成設定;生成圖片可帶 SynthID 數位浮水印,官方也建議清楚揭露 AI 生成內容。接手的 Gemini 圖片模型也有類似的把關:遇到不安全的 Prompt 可能直接拒絕,Prompt 或輸出也可能被安全過濾擋下;官方列出的支援模型產生的圖片會自動附上 Content Credentials(C2PA 中繼資料)。不過這些機制不會替你的公司處理所有情境:

  • 使用者是否真的有權利上傳這張產品、人像或風格參考圖
  • 人物是否同意被編輯,未成年人或公眾人物是否需要更嚴格限制
  • 生成內容是否侵害商標、著作權、肖像權或廣告規範
  • 圖片是否帶偏見、誤導,或在醫療、金融、新聞情境造成錯誤暗示
  • 品牌 Logo、產品規格、包裝文字與法定警語是否正確

因此,應用要同時有供應商安全過濾、自家政策規則、自動品質檢查和依風險分級的人工審核。被模型擋下時,把原因轉成安全的錯誤類別;不要無限改寫 Prompt 來繞過過濾。

圖片生成適合非同步 Job

生成時間、輸出大小和配額會隨模型、Region、解析度、張數與流量改變,文章裡寫死「一定 5~15 秒」或「Cloud Run 至少 1 GiB」反而會誤導。比較穩的架構是:

  1. API 驗證使用者、檔案類型、像素、大小、Checksum 和權利聲明。
  2. 以 Idempotency key 建立 Job,避免前端重送造成重複扣費。
  3. Queue/Worker 依配額取件,設定 Timeout、有界重試和 Dead-letter queue。
  4. 呼叫模型時記錄 Model ID、Region、參數與版本化 Prompt,不記不必要的敏感內容。
  5. 輸出先進隔離 Bucket,跑安全、格式、解析度、品質和意圖符合度檢查。
  6. 通過人工審核後才複製到發布 Bucket,使用短效 Signed URL 或 CDN 交付。

容量要用壓力測試決定。觀察 Queue age、生成成功率、被擋比例、p95/p99 延遲、每張成本、重試率和人工退件原因,再調整 Cloud Run concurrency、CPU、Memory、Min instances 與配額。

每張圖都要能回答「它怎麼來的」

一筆可治理的生成資產,至少留下:

  • Requester、用途、專案、成本中心與 Idempotency key
  • 原始素材位置、Checksum、權利/同意聲明和保留期限
  • 結構化視覺規格、Prompt 版本、Model ID、Region 與生成參數
  • Safety filter、品質檢查與人工 Reviewer 的結果
  • 發布位置、允許使用管道、到期日、替換與下架狀態

別把完整 Prompt、原圖和敏感 Metadata 塞進公開圖片。公開層只放需要揭露的 AI 標示和適合對外的來源資訊;內部稽核紀錄則用 IAM、Retention 和 Audit Log 保護。

AI 圖片資產治理生命週期:從請求用途、參考素材權利、版本化 Prompt、候選圖生成與自動檢查,到人工審核、溯源存檔、受控發布及修正替換下架

生成成功不等於獲准發布。每張圖要留下請求人、模型、規格、來源權利、審核狀態和使用限制;發布後也要能修正、替換、到期或下架。

查看流程與節點文字

箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。

%%{init: {"flowchart": {"curve": "linear", "nodeSpacing": 20, "rankSpacing": 28, "wrappingWidth": 620}}}%%
flowchart TB
  subgraph REQUEST_STAGE["1. 先確認能不能生成"]
      direction LR
      REQUEST["接收用途、文字與參考素材<br/>驗證身分、格式、大小"] --> RIGHTS{"素材權利、人物同意<br/>與隱私聲明完整?"}
      RIGHTS -->|"否"| REJECT["拒絕或要求補件<br/>不要把問題丟給模型猜"]
      RIGHTS -->|"是"| POLICY{"用途、Prompt 與素材<br/>符合產品政策?"}
      POLICY -->|"否"| REJECT
  end
  POLICY -->|"是"| SPEC
  subgraph GENERATE_STAGE["2. 產生可驗證候選圖"]
      direction LR
      SPEC["Gemini 追問並輸出<br/>Schema 驗證的視覺規格"] --> ROUTE["依 GA/Preview、Region<br/>品質、成本選支援模型"]
      ROUTE --> JOB["建立 Idempotent Job<br/>Queue、有界重試、成本上限"]
      JOB --> OUTPUT["候選圖進隔離區<br/>記錄模型與參數"]
  end
  OUTPUT --> CHECK
  subgraph PUBLISH_STAGE["3. 檢查、核准、持續治理"]
      direction LR
      CHECK{"安全、格式、品質<br/>品牌與意圖都通過?"} -->|"否"| HANDLE["拒絕、有限次重生<br/>或交人工處理"]
      CHECK -->|"是"| REVIEW{"依風險完成<br/>人工審核?"}
      REVIEW -->|"否"| HOLD["保留在隔離區<br/>不得公開交付"]
      REVIEW -->|"是"| PUBLISH["受控發布並標示 AI<br/>保存來源、期限與下架能力"]
  end
真正能上線的流程,從權利與政策開始,以可追溯發布結束。安全過濾只是其中一道 Gate,不能取代自家規範、品質檢查和人工審核。

實作重點

  • 使用目前官方建議的 google-genai SDK,並把 Model ID 留在設定層
  • 上傳檔先檢查 Magic bytes、MIME、像素、大小與 Malware,不只看副檔名
  • 用 Idempotency key、Queue 和 Dead-letter queue 避免重複扣費或無限重試
  • 為單一使用者、租戶和專案設定 Quota、Rate limit 與每日成本上限
  • 原始素材、隔離輸出與發布資產用不同 Bucket/Prefix 和 IAM 邊界
  • 安全過濾被擋是正常結果,要有可觀測的錯誤碼和不洩漏內部規則的使用者訊息
  • 上線前用自己的品牌、人群、語言和高風險案例做 Evaluation,不只看幾張漂亮 Demo

Skill Badge 指引

Lab 連結:Build Real World AI Applications with Gemini and Imagen — Google Skills

如果 Lab 還使用舊 Model ID,把它當成理解流程的教材。實作前先查官方 Lifecycle,再把 Model ID、Region 和 Safety setting 抽成設定,順便練一次模型切換與回退。

延伸學習

Study Jam:Gemini 專業應用 — 第 7 篇/共 7 篇 查看系列全覽 →

讀完後,留一個學習紀錄

試著用自己的話說出一個重點,以及你會如何運用。實作文章請先核對結果與清理資源,再標記為讀完。

文章進度以你確認讀完的標記為準,可隨時取消。舊版造訪紀錄保留,但不計入讀完;這份自評不代表已掌握內容。

留言討論

文章目錄與系列

徽章解鎖!