Gemini, görüntüleri etkileşimli olarak oluşturup işleyebilir. Gemini'a metin, resim veya her ikisinin kombinasyonuyla istem girerek resim oluşturma ve düzenleme gibi çeşitli resimle ilgili görevleri gerçekleştirebilirsiniz. Üretilen tüm görsellerde SynthID filigranı bulunur.
Görüntü üretme özelliği tüm bölgelerde ve ülkelerde kullanılamayabilir. Daha fazla bilgi için Gemini modelleri sayfamızı inceleyin.
Imagen'ı ne zaman kullanmalısınız? bölümüne bakın.Görüntü üretme (metinden görüntüye)
Aşağıdaki kod, açıklayıcı bir isteme dayalı olarak nasıl resim oluşturulacağını gösterir. Yapılandırmanıza responseModalities
: ["TEXT", "IMAGE"]
ifadesini eklemeniz gerekir. Bu modellerde yalnızca resim içeren çıkış desteklenmez.
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-preview-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()
import { GoogleGenAI, Modality } from "@google/genai";
import * as fs from "node:fs";
async function main() {
const ai = new GoogleGenAI({});
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-preview-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();
package main
import (
"context"
"fmt"
"os"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
config := &genai.GenerateContentConfig{
ResponseModalities: []string{"TEXT", "IMAGE"},
}
result, _ := client.Models.GenerateContent(
ctx,
"gemini-2.0-flash-preview-image-generation",
genai.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?"),
config,
)
for _, part := range result.Candidates[0].Content.Parts {
if part.Text != "" {
fmt.Println(part.Text)
} else if part.InlineData != nil {
imageBytes := part.InlineData.Data
outputFilename := "gemini_generated_image.png"
_ = os.WriteFile(outputFilename, imageBytes, 0644)
}
}
}
curl -s -X POST
"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-preview-image-generation:generateContent" \
-H "x-goog-api-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

Görüntü düzenleme (metin ve resimden resme)
Resim düzenleme işlemi yapmak için giriş olarak bir resim ekleyin. Aşağıdaki örnekte, Base64 kodlu resimlerin nasıl yüklendiği gösterilmektedir. Birden fazla resim ve daha büyük yükler için image input bölümünü inceleyin.
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-preview-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()
import { GoogleGenAI, Modality } from "@google/genai";
import * as fs from "node:fs";
async function main() {
const ai = new GoogleGenAI({});
// 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-preview-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();
package main
import (
"context"
"fmt"
"os"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
imagePath := "/path/to/image.png"
imgData, _ := os.ReadFile(imagePath)
parts := []*genai.Part{
genai.NewPartFromText("Hi, This is a picture of me. Can you add a llama next to me?"),
&genai.Part{
InlineData: &genai.Blob{
MIMEType: "image/png",
Data: imgData,
},
},
}
contents := []*genai.Content{
genai.NewContentFromParts(parts, genai.RoleUser),
}
config := &genai.GenerateContentConfig{
ResponseModalities: []string{"TEXT", "IMAGE"},
}
result, _ := client.Models.GenerateContent(
ctx,
"gemini-2.0-flash-preview-image-generation",
contents,
config,
)
for _, part := range result.Candidates[0].Content.Parts {
if part.Text != "" {
fmt.Println(part.Text)
} else if part.InlineData != nil {
imageBytes := part.InlineData.Data
outputFilename := "gemini_generated_image.png"
_ = os.WriteFile(outputFilename, imageBytes, 0644)
}
}
}
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-preview-image-generation:generateContent" \
-H "x-goog-api-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
Diğer görüntü üretme modları
Gemini, istem yapısına ve bağlama dayalı olarak diğer resim etkileşimi modlarını da destekler. Örneğin:
- Metinden resimlere ve metne (araya eklenmiş): İlgili metinleri içeren resimler oluşturur.
- Örnek istem: "Paella için resimli bir tarif oluştur."
- Resimler ve metinden resimlere ve metne (dönüşümlü): Yeni ilgili resimler ve metinler oluşturmak için giriş resimlerini ve metinlerini kullanır.
- Örnek istem: (Döşenmiş bir odanın resmiyle) "Mekanıma hangi renklerde kanepeler yakışır? Resmi güncelleyebilir misin?"
- Çok turlu görüntü düzenleme (sohbet): Görüntüleri sohbet ederek oluşturmaya / düzenlemeye devam edin.
- Örnek istemler: [Mavi bir arabanın resmini yükle.] , "Bu arabayı üstü açılır arabaya dönüştür.", "Şimdi rengi sarı olarak değiştirin."
Sınırlamalar
- En iyi performans için şu dilleri kullanın: EN, es-MX, ja-JP, zh-CN, hi-IN.
- Görüntü oluşturma, ses veya video girişlerini desteklemez.
- Görüntü üretme özelliği her zaman tetiklenmeyebilir:
- Model yalnızca metin çıkışı verebilir. Resim çıkışlarını açıkça istemeyi deneyin (ör. "resim oluştur", "ilerledikçe resim sağla", "resmi güncelle").
- Model, üretimi yarıda durdurabilir. Tekrar deneyin veya farklı bir istem kullanın.
- Gemini, bir resim için metin oluştururken önce metni oluşturup ardından metni içeren bir resim istemeniz durumunda en iyi şekilde çalışır.
- Görüntü üretme özelliğinin kullanılamadığı bazı bölgeler/ülkeler vardır. Daha fazla bilgi için Modeller bölümüne bakın.
Imagen'i ne zaman kullanmalısınız?
Gemini'ın yerleşik görüntü üretme özelliklerini kullanmanın yanı sıra, Gemini API aracılığıyla özel görüntü üretme modelimiz Imagen'e de erişebilirsiniz.
Aşağıdaki durumlarda Gemini'ı seçin:
- Dünya bilgisi ve akıl yürütme becerilerinden yararlanan, bağlamla alakalı resimlere ihtiyacınız var.
- Metin ve resimleri sorunsuz bir şekilde harmanlamak önemlidir.
- Uzun metin dizilerine doğru görseller yerleştirmek istiyorsanız.
- Bağlamı koruyarak resimleri sohbet eder gibi düzenlemek istiyorsanız.
Imagen'i şu durumlarda seçin:
- Görüntü kalitesi, fotoğraf gerçekliği, sanatsal ayrıntılar veya belirli stiller (ör. empresyonizm, anime) en önemli önceliklerdir.
- Ürün arka planı güncellemeleri veya görüntü ölçekleme gibi özel düzenleme görevlerini gerçekleştirme
- Markalama, stil veya logo ve ürün tasarımları oluşturma
Imagen ile görüntü oluşturmaya başlamak için Imagen 4'ü kullanın. Gelişmiş kullanım alanları için veya en iyi görüntü kalitesine ihtiyaç duyduğunuzda Imagen 4 Ultra'yı seçin. Imagen 4 Ultra'nın tek seferde yalnızca bir görüntü oluşturabileceğini unutmayın.
Sırada ne var?
- Gemini API ile nasıl video oluşturacağınızı öğrenmek için Veo kılavuzuna göz atın.
- Gemini modelleri hakkında daha fazla bilgi edinmek için Gemini modelleri ve Deneysel modeller başlıklı makaleleri inceleyin.