Gemini API 支援使用 Gemini 2.0 Flash 實驗模型和 Imagen 3 產生圖片。本指南可協助您開始使用這兩種模型。
如需圖像提示指南,請參閱「Imagen 提示指南」一節。
事前準備
呼叫 Gemini API 前,請確認您已安裝所選 SDK,並設定 Gemini API 金鑰,以便使用。
使用 Gemini 生成圖片
Gemini 2.0 Flash Experimental 支援輸出文字和內嵌圖片。這可讓您使用 Gemini 以對話方式編輯圖片,或產生包含交織文字的輸出內容 (例如在單一回合中產生包含文字和圖片的網誌文章)。所有生成的圖片都會附上 SynthID 浮水印,Google AI 工作室中的圖片也會附上可見浮水印。
以下範例說明如何使用 Gemini 2.0 產生文字和圖片輸出內容:
Python
from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO
import base64
client = genai.Client()
contents = ('Hi, can you create a 3d rendered image of a pig '
'with wings and a top hat flying over a happy '
'futuristic scifi city with lots of greenery?')
response = client.models.generate_content(
model="gemini-2.0-flash-exp-image-generation",
contents=contents,
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE']
)
)
for part in response.candidates[0].content.parts:
if part.text is not None:
print(part.text)
elif part.inline_data is not None:
image = Image.open(BytesIO((part.inline_data.data)))
image.save('gemini-native-image.png')
image.show()
JavaScript
import { GoogleGenAI, Modality } from "@google/genai";
import * as fs from "node:fs";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const contents =
"Hi, can you create a 3d rendered image of a pig " +
"with wings and a top hat flying over a happy " +
"futuristic scifi city with lots of greenery?";
// Set responseModalities to include "Image" so the model can generate an image
const response = await ai.models.generateContent({
model: "gemini-2.0-flash-exp-image-generation",
contents: contents,
config: {
responseModalities: [Modality.TEXT, Modality.IMAGE],
},
});
for (const part of response.candidates[0].content.parts) {
// Based on the part type, either show the text or save the image
if (part.text) {
console.log(part.text);
} else if (part.inlineData) {
const imageData = part.inlineData.data;
const buffer = Buffer.from(imageData, "base64");
fs.writeFileSync("gemini-native-image.png", buffer);
console.log("Image saved as gemini-native-image.png");
}
}
}
main();
REST
curl -s -X POST \
"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp-image-generation:generateContent?key=$GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [
{"text": "Hi, can you create a 3d rendered image of a pig with wings and a top hat flying over a happy futuristic scifi city with lots of greenery?"}
]
}],
"generationConfig":{"responseModalities":["TEXT","IMAGE"]}
}' \
| grep -o '"data": "[^"]*"' \
| cut -d'"' -f4 \
| base64 --decode > gemini-native-image.png

視提示和內容而定,Gemini 會以不同模式 (文字轉圖像、文字轉圖像和文字等) 產生內容。例如:
- 文字轉圖像
- 提示範例:「產生艾菲爾鐵塔的圖片,背景有煙火。」
- 文字轉圖和文字 (交錯)
- 提示範例:「產生燉飯的圖解食譜」。
- 圖片和文字轉換為圖片和文字 (交錯)
- 提示範例: (含有房間內家具的圖片)「我可以換成其他顏色的沙發嗎?請更新圖片。」
- 圖像編輯 (文字和圖像轉圖像)
- 提示範例:「請將這張圖片編輯成卡通風格」
- 提示範例:[貓咪圖片] + [抱枕圖片] +「請在這個抱枕上製作我貓咪的十字繡圖案。」
- 多輪圖片編輯 (聊天)
- 提示範例:[上傳藍色汽車的圖片]「將這輛車改裝成敞篷車。」「現在將顏色改為黃色。」
使用 Gemini 編輯圖片
如要執行圖片編輯作業,請新增圖片做為輸入內容。以下範例示範如何上傳 Base64 編碼圖片。如果是多張圖片和較大的酬載,請參閱「圖片輸入」一節。
Python
from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO
import PIL.Image
image = PIL.Image.open('/path/to/image.png')
client = genai.Client()
text_input = ('Hi, This is a picture of me.'
'Can you add a llama next to me?',)
response = client.models.generate_content(
model="gemini-2.0-flash-exp-image-generation",
contents=[text_input, image],
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE']
)
)
for part in response.candidates[0].content.parts:
if part.text is not None:
print(part.text)
elif part.inline_data is not None:
image = Image.open(BytesIO(part.inline_data.data))
image.show()
JavaScript
import { GoogleGenAI, Modality } from "@google/genai";
import * as fs from "node:fs";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
// Load the image from the local file system
const imagePath = "path/to/image.png";
const imageData = fs.readFileSync(imagePath);
const base64Image = imageData.toString("base64");
// Prepare the content parts
const contents = [
{ text: "Can you add a llama next to the image?" },
{
inlineData: {
mimeType: "image/png",
data: base64Image,
},
},
];
// Set responseModalities to include "Image" so the model can generate an image
const response = await ai.models.generateContent({
model: "gemini-2.0-flash-exp-image-generation",
contents: contents,
config: {
responseModalities: [Modality.TEXT, Modality.IMAGE],
},
});
for (const part of response.candidates[0].content.parts) {
// Based on the part type, either show the text or save the image
if (part.text) {
console.log(part.text);
} else if (part.inlineData) {
const imageData = part.inlineData.data;
const buffer = Buffer.from(imageData, "base64");
fs.writeFileSync("gemini-native-image.png", buffer);
console.log("Image saved as gemini-native-image.png");
}
}
}
main();
REST
IMG_PATH=/path/to/your/image1.jpeg
if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
B64FLAGS="--input"
else
B64FLAGS="-w0"
fi
IMG_BASE64=$(base64 "$B64FLAGS" "$IMG_PATH" 2>&1)
curl -X POST \
"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp-image-generation:generateContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d "{
\"contents\": [{
\"parts\":[
{\"text\": \"'Hi, This is a picture of me. Can you add a llama next to me\"},
{
\"inline_data\": {
\"mime_type\":\"image/jpeg\",
\"data\": \"$IMG_BASE64\"
}
}
]
}],
\"generationConfig\": {\"responseModalities\": [\"TEXT\", \"IMAGE\"]}
}" \
| grep -o '"data": "[^"]*"' \
| cut -d'"' -f4 \
| base64 --decode > gemini-edited-image.png
限制
- 為獲得最佳成效,請使用以下語言:EN、es-MX、ja-JP、zh-CN、hi-IN。
- 圖像生成功能不支援音訊或影片輸入內容。
- 圖像生成功能不一定會觸發:
- 模型可能只會輸出文字。請嘗試明確要求圖片輸出內容 (例如「產生圖片」、「隨時提供圖片」、「更新圖片」)。
- 模型可能會在中途停止產生內容。請再試一次或改用其他提示。
- 為圖片產生文字時,如果先產生文字,然後要求 Gemini 產生含有文字的圖片,效果會最好。
選擇模型
您應該使用哪個模型產生圖片?視您的用途而定。
Gemini 2.0 最適合用於產生符合脈絡的圖片、混合文字和圖片、納入世界知識,以及推論圖片。您可以使用這項功能,在長文字序列中嵌入準確且與內容相關的圖像。你也可以使用自然語言,透過對話方式編輯圖像,並在整個對話過程中維持脈絡。
如果畫質是首要考量,建議使用 Imagen 3。Imagen 3 擅長處理擬真、藝術細節,以及印象派或動漫等特定藝術風格。對於專業的圖片編輯工作,例如更新產品背景、放大圖片,以及在視覺效果中加入品牌和風格,Imagen 3 也是不錯的選擇。您可以使用 Imagen 3 製作標誌或其他品牌產品設計。
使用 Imagen 3 生成圖片
Gemini API 可讓您存取 Imagen 3,這是 Google 品質最高的文字轉圖像模型,具備多項新功能和改良功能。Imagen 3 可執行下列操作:
- 產生比先前模型更清晰、光線更豐富的圖像,且雜訊干擾較少
- 解讀以自然語言撰寫的提示
- 以多種格式和風格產生圖片
- 比先前模型更有效率地算繪文字
Python
from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO
client = genai.Client(api_key='GEMINI_API_KEY')
response = client.models.generate_images(
model='imagen-3.0-generate-002',
prompt='Robot holding a red skateboard',
config=types.GenerateImagesConfig(
number_of_images= 4,
)
)
for generated_image in response.generated_images:
image = Image.open(BytesIO(generated_image.image.image_bytes))
image.show()
JavaScript
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.generateImages({
model: 'imagen-3.0-generate-002',
prompt: 'Robot holding a red skateboard',
config: {
numberOfImages: 4,
},
});
let idx = 1;
for (const generatedImage of response.generatedImages) {
let imgBytes = generatedImage.image.imageBytes;
const buffer = Buffer.from(imgBytes, "base64");
fs.writeFileSync(`imagen-${idx}.png`, buffer);
idx++;
}
}
main();
REST
curl -X POST \
"https://generativelanguage.googleapis.com/v1beta/models/imagen-3.0-generate-002:predict?key=GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"instances": [
{
"prompt": "Robot holding a red skateboard"
}
],
"parameters": {
"sampleCount": 4
}
}'

目前 Imagen 僅支援英文提示,以及下列參數:
Imagen 模型參數
(命名慣例會因程式語言而異)。
numberOfImages
:要產生的圖片數量,從 1 到 4 (含)。預設值為 4。aspectRatio
:變更產生圖片的顯示比例。支援的值為"1:1"
、"3:4"
、"4:3"
、"9:16"
和"16:9"
。預設為"1:1"
。personGeneration
:允許模型產生人物圖片。支援的值如下:"DONT_ALLOW"
:禁止產生人物圖片。"ALLOW_ADULT"
:產生成人圖片,但不產生兒童圖片。此為預設值。
Imagen 提示指南
本節的 Imagen 指南說明如何修改文字轉圖片提示,產生不同的結果,並提供可建立的圖片範例。
提示撰寫基本知識
良好的提示應具描述性且明確,並使用有意義的關鍵字和修飾符。首先,請思考主題、脈絡和風格。

主題:無論提示是什麼,首先要考慮的都是主題:你想拍攝的物件、人物、動物或風景。
背景和背景資訊:主體的背景或情境也同樣重要。嘗試將主體放在各種背景中。例如使用白色背景的攝影棚、戶外或室內環境。
樣式:最後,新增所需的圖片樣式。風格可以是一般風格 (繪畫、相片、素描),也可以是特定風格 (粉彩繪畫、炭筆繪畫、等角線 3D)。您也可以合併樣式。
完成第一個版本的提示後,請加入更多細節來精進提示,直到產生您想要的圖片為止。迭代相當重要。請先建立核心構想,然後再根據該構想進行調整和擴充,直到產生的圖片符合您的願景為止。
![]() |
![]() |
![]() |
無論提示內容是簡短還是冗長,Imagen 3 都能將構想轉換為詳細圖片。透過不斷提示來調整您的願景,並加入更多細節,直到達到完美結果為止。
您可以透過簡短的提示快速生成圖片。 ![]() |
較長的提示可讓您加入特定詳細資料並建立圖片。 ![]() |
其他有關撰寫 Imagen 提示的建議:
- 使用描述性語言:使用詳細的形容詞和副詞,為圖像 3 描繪清晰的圖像。
- 提供背景資訊:視需要提供背景資訊,協助 AI 瞭解問題。
- 參考特定藝術家或風格:如果您有特定美學概念,參考特定藝術家或藝術運動可能會很有幫助。
- 使用提示工程工具:建議您探索提示工程工具或資源,協助您修正提示並取得最佳結果。
- 強化個人和團體相片中的臉部細節:
- 指定臉部細節做為相片的重點 (例如在提示中使用「肖像」一詞)。
在圖片中生成文字
Imagen 可在圖片中加入文字,為您帶來更多創意圖片生成選項。請參考下列指南,充分運用這項功能:
- 自信地進行疊代:您可能需要重新產生圖片,直到達到所需外觀為止。Imagen 的文字整合功能仍在不斷改進,有時需要多次嘗試才能獲得最佳結果。
- 精簡文字:為確保最佳產生結果,請將文字長度控制在 25 個半形字元以內。
多個詞組:嘗試使用兩或三個不同的詞組,提供額外資訊。為避免組合過於複雜,請避免使用超過三個字詞。
提示:海報上以粗體字顯示「Summerland」做為標題,下方則是「Summer never felt so good」的標語。 引導放置位置:雖然 Imagen 會嘗試依指示放置文字,但偶爾可能會出現變化。我們會持續改善這項功能。
Inspire 字型樣式:指定一般字型樣式,以微妙的方式影響 Imagen 的選擇。請勿依賴精確的字型複製作業,而是期待創意詮釋。
字型大小:指定字型大小或一般大小指標 (例如「小」、「中」、「大」),以影響字型大小產生方式。
提示參數化
為進一步控制輸出結果,您可能會發現將輸入內容轉換為 Imagen 的參數很有幫助。舉例來說,假設您希望客戶能夠為自家業務產生標誌,並確保標誌一律會在純色背景上產生。您也想限制用戶可從選單中選取的選項。
在這個範例中,您可以建立類似下列的參數化提示:
A {logo_style} logo for a {company_area} company on a solid color background. Include the text {company_name}.
在自訂使用者介面中,客戶可以使用選單輸入參數,而他們選擇的值會填入 Imagen 收到的提示。
例如:
提示:
A minimalist logo for a health care company on a solid color background. Include the text Journey.
提示:
A modern logo for a software company on a solid color background. Include the text Silo.
提示:
A traditional logo for a baking company on a solid color background. Include the text Seed.
進階提示撰寫技巧
請參考下列範例,根據攝影描述、形狀和材質、歷史藝術運動和圖片品質修飾符等屬性,建立更具體的提示。
攝影
- 提示包含:「相片中有...」
如要使用這類樣式,請先使用關鍵字,清楚告訴 Imagen 你要尋找的是一張相片。按照以下格式輸入提示:"A photo of. 。。例如:
![]() |
![]() |
![]() |
圖片來源:每張圖片都是使用相應的文字提示,搭配 Imagen 3 模型生成。
攝影修飾符
在以下範例中,您可以看到幾個攝影專用修飾符和參數。您可以結合多個修飾符,以便更精確地控制。
相機距離 - 特寫,從遠處拍攝
提示:咖啡豆的特寫相片 提示:廚房凌亂,一小包
咖啡豆的縮小相片相機位置:從下方拍攝的空拍畫面
提示:城市天際線的空拍相片 提示:森林樹冠與藍天相襯的相片,從下方拍攝 燈光:自然、戲劇、溫暖、冷色
提示:現代扶手椅的攝影棚相片,使用自然光 拍攝提示:現代扶手椅的攝影棚相片,燈光效果強烈 相機設定 - 動態模糊、柔焦、散景、肖像
提示:在車內拍攝城市景觀,並加上動態模糊 效果提示:拍攝城市夜晚的橋樑相片,並使用柔焦效果 鏡頭類型:35 公釐、50 公釐、魚眼、廣角、微距
提示:拍攝葉片的相片,使用微距鏡頭 提示:街頭攝影、紐約市、魚眼鏡頭 底片類型:黑白、拍立得
提示:戴著太陽眼鏡的狗狗相片肖像 提示:黑白相片,顯示戴著太陽眼鏡的狗狗
圖片來源:每張圖片都是使用相應的文字提示,搭配 Imagen 3 模型生成。
插圖和藝術
- 提示包含:「A painting of...」「A sketch of...」
藝術風格多元,從素描等單色風格到超寫實的數位藝術都有。例如,下列圖片使用相同提示,但風格不同:
「An [art style or creation technique] of an angular sporty electric sedan with skyscrapers in the background」
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
圖片來源:每張圖片都是使用相應的文字提示,搭配 Imagen 2 模型生成。
形狀和材質
- 提示包含:"...made of..."「...in the shape of...」
這項技術的優點之一,就是可以創造出原本難以或無法創造的圖像。舉例來說,您可以使用不同的材質和紋理重現公司標誌。
![]() |
![]() |
![]() |
圖片來源:每張圖片都是使用相應的文字提示,搭配 Imagen 3 模型生成。
歷史藝術參考資料
- 提示包含:「...in the style of...」
某些風格經過多年發展,已成為經典。以下是一些歷史上繪畫或藝術風格的構想,供您參考。
「產生 [art period or movement] 風力發電廠的圖片」
![]() |
![]() |
![]() |
圖片來源:每張圖片都是使用相應的文字提示,搭配 Imagen 3 模型生成。
圖片品質修飾符
特定關鍵字可讓模型知道您要尋找高品質素材資源。品質修飾字詞的例子包括:
- 一般修飾符:高品質、美觀、風格化
- 相片:4K、HDR、攝影棚相片
- 藝術、插圖 - 由專業人士提供詳細資訊
以下列舉幾個不含品質修飾符的提示,以及含有品質修飾符的相同提示。
![]() |
![]() 玉米莖相片,由 專業攝影師拍攝 |
圖片來源:每張圖片都是使用相應的文字提示,搭配 Imagen 3 模型生成。
顯示比例
使用 Imagen 3 圖片生成功能時,您可以設定五種不同的圖片顯示比例。
- 正方形 (1:1,預設值):標準正方形相片。這個顯示比例的常見用途包括社群媒體貼文。
全螢幕 (4:3):此顯示比例通常用於媒體或電影。這也是大多數舊型 (非寬螢幕) 電視和中型相機的尺寸。相較於 1:1,這類相片可在水平方向捕捉更多場景,因此是攝影的理想長寬比。
提示:特寫音樂家彈鋼琴的手指,黑白電影,復古風格 (4:3 顯示比例) 提示:高級餐廳的薯條專業攝影棚相片,以美食雜誌風格呈現 (4:3 顯示比例) 直向全螢幕 (3:4) - 這是旋轉 90 度的全螢幕顯示比例。相較於 1:1 的顯示比例,這可讓您在垂直方向上捕捉更多場景。
提示:一位女性在健行,她的靴子在水坑中反射,背景是高山,以廣告風格呈現,角度誇張 (3:4 的顯示比例) 提示:空拍畫面,拍攝河流流經神秘山谷 (3:4 長寬比) 寬螢幕 (16:9):這個比例取代了 4:3,目前是電視、螢幕和手機螢幕 (橫向) 最常見的顯示比例。如要拍攝更多背景 (例如風景),請使用這個顯示比例。
提示:一名穿著全白衣服的男子坐在沙灘上,特寫鏡頭,黃金時刻燈光 (16:9 顯示比例) 直向 (9:16):這個比例是旋轉過的寬螢幕。這是相對較新的顯示比例,已在短篇影片應用程式 (例如 YouTube Shorts) 中廣為流行。請針對具有明顯垂直方向的物件使用此選項,例如建築物、樹木、瀑布或其他類似物件。
提示:大型摩天大樓的數位轉譯圖,現代、宏偉、壯觀,背景為美麗的夕陽 (9:16 顯示比例)
逼真的圖像
不同版本的圖片產生模型可能會提供藝術和逼真的輸出內容。在提示中使用以下文字,根據您要產生的主題,產生更逼真的輸出內容。
用途 | 鏡頭類型 | 焦距 | 其他詳細資訊 |
---|---|---|---|
人物 (直向) | 角分符號、縮放 | 24-35 公釐 | 黑白電影、黑色電影、景深、雙色 (提及兩種顏色) |
食物、昆蟲、植物 (物件、靜物) | 巨集 | 60-105 公釐 | 高解析度、精確對焦、控光 |
運動、野生動物 (動作) | 望遠變焦 | 100-400 毫米 | 快門速度快、追蹤動作或移動 |
天文、橫向 (廣角) | 廣角 | 10-24mm | 長時間曝光、清晰對焦、長時間曝光、平滑的水面或雲朵 |
人像
用途 | 鏡頭類型 | 焦距 | 其他詳細資訊 |
---|---|---|---|
人物 (直向) | 角分符號、縮放 | 24-35 公釐 | 黑白電影、黑色電影、景深、雙色 (提及兩種顏色) |
使用表格中的幾個關鍵字,Imagen 可以產生下列肖像:
![]() |
![]() |
![]() |
![]() |
提示:女性,35 毫米肖像,藍色和灰色雙色調
模型:imagen-3.0-generate-002
![]() |
![]() |
![]() |
![]() |
提示:一位女性,35 毫米肖像照,黑色電影
模型:imagen-3.0-generate-002
物件
用途 | 鏡頭類型 | 焦距 | 其他詳細資訊 |
---|---|---|---|
食物、昆蟲、植物 (物件、靜物) | 巨集 | 60-105 公釐 | 高解析度、精確對焦、控光 |
使用表格中的幾個關鍵字,Imagen 可以產生下列物件圖像:
![]() |
![]() |
![]() |
![]() |
提示:禱告竹葉、微距鏡頭、60mm
型號:imagen-3.0-generate-002
![]() |
![]() |
![]() |
![]() |
提示:一盤義大利麵,100 公釐微距鏡頭
型號:imagen-3.0-generate-002
動作
用途 | 鏡頭類型 | 焦距 | 其他詳細資訊 |
---|---|---|---|
運動、野生動物 (動作) | 望遠變焦 | 100-400 毫米 | 快門速度快、追蹤動作或移動 |
使用表格中的幾個關鍵字,Imagen 可以產生下列動態圖片:
![]() |
![]() |
![]() |
![]() |
提示:勝利達陣、快門速度快、追蹤動作
模型:imagen-3.0-generate-002
![]() |
![]() |
![]() |
![]() |
提示:在森林中奔跑的鹿、快門速度快、追蹤動作
模型:imagen-3.0-generate-002
廣角
用途 | 鏡頭類型 | 焦距 | 其他詳細資訊 |
---|---|---|---|
天文、橫向 (廣角) | 廣角 | 10-24mm | 長時間曝光、清晰對焦、長時間曝光、平滑的水面或雲朵 |
使用表格中的幾個關鍵字,Imagen 可以產生下列廣角圖片:
![]() |
![]() |
![]() |
![]() |
提示:廣闊的山脈,風景廣角 10mm
型號:imagen-3.0-generate-002
![]() |
![]() |
![]() |
![]() |
提示:月亮相片、天文攝影、廣角 10mm
模型:imagen-3.0-generate-002