Gemini kann Bilder im Rahmen von Unterhaltungen generieren und verarbeiten. Sie können Gemini mit Text, Bildern oder einer Kombination aus beidem auffordern, verschiedene bildbezogene Aufgaben auszuführen, z. B. Bilder zu generieren und zu bearbeiten. Alle generierten Bilder enthalten ein SynthID-Wasserzeichen.
Die Bildgenerierung ist möglicherweise nicht in allen Regionen und Ländern verfügbar. Weitere Informationen finden Sie auf der Seite Gemini-Modelle.
.Bildgenerierung (Text-zu-Bild)
Der folgende Code zeigt, wie ein Bild auf Grundlage eines beschreibenden Prompts generiert wird. Sie müssen responseModalities
: ["TEXT", "IMAGE"]
in Ihre Konfiguration aufnehmen. Die reine Bildausgabe wird bei diesen Modellen nicht unterstützt.
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

Bildbearbeitung (Text-und-Bild-zu-Bild)
Wenn Sie ein Bild bearbeiten möchten, fügen Sie es als Eingabe hinzu. Im folgenden Beispiel wird gezeigt, wie base64-codierte Bilder hochgeladen werden. Informationen zu mehreren Bildern und größeren Nutzlasten finden Sie im Abschnitt Bildeingabe.
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
Andere Modi zur Bildgenerierung
Gemini unterstützt je nach Prompt-Struktur und Kontext auch andere Modi für die Bildinteraktion:
- Text zu Bild(ern) und Text (verschachtelt): Es werden Bilder mit zugehörigem Text ausgegeben.
- Beispiel-Prompt: „Erstelle ein illustriertes Rezept für eine Paella.“
- Bild(er) und Text zu Bild(ern) und Text (verschachtelt): Verwendet Eingabebilder und ‑text, um neue zugehörige Bilder und Texte zu erstellen.
- Beispielprompt: (Mit einem Bild eines möblierten Zimmers) „Welche anderen Farben für Sofas würden in meinem Raum passen? Kannst du das Bild aktualisieren?“
- Multi-Turn-Bildbearbeitung (Chat): Sie können Bilder im Chat generieren und bearbeiten lassen.
- Beispiel-Prompts: [Lade ein Bild eines blauen Autos hoch.] , „Mach aus diesem Auto ein Cabrio.“ „Ändere die Farbe jetzt in Gelb.“
Beschränkungen
- Die beste Leistung erzielen Sie mit den folgenden Sprachen: EN, es-MX, ja-JP, zh-CN, hi-IN.
- Bei der Bildgenerierung werden keine Audio- oder Videoeingaben unterstützt.
- Die Bildgenerierung wird möglicherweise nicht immer ausgelöst:
- Das Modell kann nur Text ausgeben. Fordern Sie die Bildausgabe explizit an, z.B. „Generiere ein Bild“, „Stelle Bilder zur Verfügung“ oder „Aktualisiere das Bild“.
- Das Modell kann die Generierung von Inhalten mittendrin beenden. Versuchen Sie es noch einmal oder verwenden Sie einen anderen Prompt.
- Wenn Sie Text für ein Bild generieren, funktioniert Gemini am besten, wenn Sie zuerst den Text generieren und dann ein Bild mit dem Text anfordern.
- In einigen Regionen/Ländern ist die Bildgenerierung nicht verfügbar. Weitere Informationen finden Sie unter Modelle.
Wann sollte Imagen verwendet werden?
Zusätzlich zur integrierten Bildgenerierung von Gemini können Sie über die Gemini API auch auf Imagen zugreifen, unser spezielles Modell zur Bildgenerierung.
Wählen Sie Gemini aus, wenn:
- Sie benötigen kontextbezogene Bilder, die auf Weltwissen und Schlussfolgerungen basieren.
- Es ist wichtig, Text und Bilder nahtlos ineinander übergehen zu lassen.
- Sie möchten, dass genaue Bilder in lange Textsequenzen eingebettet werden.
- Sie möchten Bilder im Dialog bearbeiten und dabei den Kontext beibehalten.
Wählen Sie Imagen aus, wenn:
- Bildqualität, Fotorealismus, künstlerische Details oder bestimmte Stile (z.B. Impressionismus, Anime) haben höchste Priorität.
- Spezialisierte Bearbeitungsaufgaben wie das Aktualisieren von Produktbildhintergründen oder das Hochskalieren von Bildern.
- Branding und Stil einfließen lassen oder Logos und Produktdesigns generieren
Imagen 4 sollte Ihr Standardmodell sein, wenn Sie mit Imagen Bilder generieren. Wählen Sie Imagen 4 Ultra für anspruchsvolle Anwendungsfälle oder wenn Sie die beste Bildqualität benötigen. Mit Imagen 4 Ultra kann jeweils nur ein Bild generiert werden.
Nächste Schritte
- Veo-Anleitung
- Weitere Informationen zu Gemini-Modellen finden Sie unter Gemini-Modelle und Experimentelle Modelle.