Direkt zum Inhalt

Imagen 3: Ein Leitfaden mit Beispielen in der Gemini API

Lerne, wie du mit der Imagen 3 API von Google und Python Bilder generierst, indem du deine Umgebung einrichtest und Optionen wie das Seitenverhältnis und Sicherheitsfilter einstellst.
Aktualisierte 26. Feb. 2025  · 12 Min. Lesezeit

Imagen 3 ist ein Text-zu-Bild-Erzeugungsmodell, das detaillierte Szenen in verschiedenen Stilen genau wiedergeben und sogar Text in Bilder einfügen kann, wodurch es sich für Anwendungen wie Werbung und die Erstellung von Medieninhalten eignet.

Wir können Imagen 3 über die Vertex AI Studio-Schnittstelle nutzen oder es über eine API direkt in Anwendungen integrieren.

In diesem Tutorial erkläre ich dir, wie du mit Imagen 3 Bilder generierst, indem du die Google Generating API mit Python verwendest. Ich führe dich durch praktische Beispiele, die dir zeigen, wie du die Umgebung einrichtest, den nötigen Code schreibst und diese Technologie in deine Projekte integrierst. Egal, ob du unsere Anwendungen mit dynamischen Bildern erweitern oder einfach nur deine Neugier befriedigen willst, dieses Handbuch bietet einen einfachen Weg, Imagen 3 zu verstehen und programmatisch zu nutzen.

KI-Anwendungen entwickeln

Lerne, wie man KI-Anwendungen mit der OpenAI API erstellt.
Start Upskilling For Free

Einrichten der Google Generative AI API

Um mit Imagen 3 in Python loszulegen, müssen wir ein paar wichtige Schritte durchführen. Zuerst erstellen wir ein Google Cloud-Projekt. Sobald unser Projekt fertig ist, müssen wir einen API-Schlüssel erstellen. Dieser Schlüssel ermöglicht es unserem Python-Code, mit dem Imagen 3-Dienst zu interagieren.

Ein Google Cloud Projekt erstellen

Die Erstellung eines Google Cloud-Projekts ist der erste Schritt zur Nutzung der KI-API von Google. Lass uns gemeinsam durch den Prozess gehen:

  1. Greife auf die Google Cloud-Konsole zu: Wir beginnen mit der Navigation zur Google Cloud-Konsole. Du musst dich mit deinem Google-Konto anmelden.
  2. Wähle oder erstelle ein neues Projekt: In der Konsole suchst du in der oberen Navigationsleiste nach dem Dropdown-Menü "Projekt". Wenn du darauf klickst, hast du die Möglichkeit, ein bestehendes Projekt auszuwählen oder ein neues zu erstellen. Wir wählen "Neues Projekt", um fortzufahren.
  3. Gib die Projektdetails an: Es erscheint ein einfaches Formular, in dem grundlegende Informationen abgefragt werden. Wir können einen beliebigen Namen für das Projekt wählen, aber es ist hilfreich, etwas Beschreibendes zu wählen. Dies kann später bei Bedarf geändert werden. Wir verwenden Imagen-tutorial. Die Organisation kann leer gelassen werden.

Einrichten eines Google Cloud-Projekts für imagen 3

Den API-Schlüssel erstellen

Jetzt, wo das Google Cloud-Projekt erstellt ist, können wir einen API-Schlüssel erstellen, indem wir zur API-Schlüssel-Seite in Google AI Studio navigieren.

Um den Schlüssel zu erstellen, klicke auf die Schaltfläche "API-Schlüssel erstellen":

Erstellen eines API-Schlüssels in der Google Cloud-Konsole

Gib in dem Popup den Namen des Projekts ein, das wir oben erstellt haben, wähle es aus und klicke auf "API-Schlüssel in bestehendem Projekt erstellen":

Einen API-Schlüssel für ein bestimmtes Projekt in Google Cloud erstellen

Kopiere den Schlüssel und erstelle eine Datei mit dem Namen .env in demselben Ordner, in dem wir das Python-Skript schreiben werden. Der Inhalt der Datei .env sollte sein:

GEMINI_API_KEY=<paste_your_key_here>

Abrechnungskonto

Wenn wir jetzt versuchen würden, den API-Schlüssel zu verwenden, würden wir eine Fehlermeldung erhalten, die besagt: "Die Imagen-API ist derzeit nur für abgerechnete Nutzer zugänglich." Das liegt daran, dass die API nicht kostenlos ist und wir ein Abrechnungskonto mit dem Projekt verknüpfen müssen, bevor wir sie nutzen können.

Zum Zeitpunkt der Erstellung dieses Artikels beträgt der Preis für die Erstellung eines Bildes mit Imagen 3 $0,03. Weitere Informationen findest du auf der Seite mit den Preisen.

Um ein Abrechnungskonto hinzuzufügen, klicke auf die Schaltfläche "Abrechnung einrichten" neben dem API-Schlüssel in Google AI Studio.

Einrichten eines Abrechnungskontos in der Google Cloud

Dadurch werden wir auf die Google Cloud-Website weitergeleitet, wo wir entweder ein bestehendes Abrechnungskonto auswählen können, indem wir auf "Abrechnungskonto verknüpfen" klicken, oder ein neues erstellen können, indem wir auf "Abrechnungskonten verwalten" klicken.

Ein Abrechnungskonto in Google Cloud Projecs erstellen

Nehmen wir an, wir haben keine, also erstellen wir "Rechnungskonten verwalten". Oben links auf der Seite gibt es eine Schaltfläche "Konto erstellen". Um das Konto zu erstellen, müssen wir unsere persönlichen Daten eingeben und eine Kreditkarte angeben, um die Zahlungen abzuwickeln.

Mit Python ein Bild mit Imagen 3 erzeugen

Einrichtung der Umgebung mit Anaconda

In diesem Tutorial verwenden wir Anaconda, eine beliebte Plattform, die die Paketverwaltung und das Einrichten von Projekten vereinfacht und so die Ausführung von Python-Skripten erleichtert.

Wir können Anaconda von ihrer offiziellen Website installieren.

Um die Anaconda-Umgebung einzurichten, öffne ein Terminal und:

  • Erstelle eine Umgebung: conda create -n imagen python=3.9. Mit diesem Befehl wurde eine Umgebung mit dem Namen imagen erstellt, die die Version 3.9 von Python verwendet.
  • Aktiviere die Umgebung: conda activate imagen.
  • Installiere das generative KI-Paket von Google: pip install -q -U google-genai.
  • Installiere ein Bildverarbeitungspaket, um die erzeugten Bilder zu verarbeiten: pip install pillow.
  • Installiere ein Paket, um den API-Schlüssel zu laden: pip install python-dotenv

Wir können die Pakete auch direkt installieren, ohne Anaconda zu verwenden. Dabei besteht jedoch die Gefahr, dass einige der aktuell installierten Pakete mit einigen der neuen Pakete in Konflikt geraten oder dass unsere Python-Installation eine andere Version von Python verwendet. Mit Anaconda werden diese potenziellen Probleme vermieden.

Unser erstes Bild generieren

Wir sind jetzt bereit, Imagen 3 zu benutzen. Erstelle ein neues Python-Skript, z. B. gen_image.py, im selben Ordner wie die Datei .env..

Zuerst importieren wir die notwendigen Pakete:

# Google generative AI:
from google import genai
from google.genai import types

# Packages to process the generated image:
from PIL import Image
from io import BytesIO

# Packages to load the .env file:
import os
from dotenv import load_dotenv

Als Nächstes laden wir den API-Schlüssel aus der Datei .env:

load_dotenv()
api_key = os.getenv("GEMINI_API_KEY")

Dann initialisieren wir den generativen KI-Client von Google. Dies ist das Objekt, mit dem wir mit der Google API kommunizieren können:

client = genai.Client(api_key=api_key)

Um ein Bild zu erzeugen, verwenden wir die Funktion client.models.generate_images():

prompt="""
A dog surfing at the beach
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        number_of_images=1,
    )
)

Schließlich zeigen wir das erzeugte Bild mit dem Objekt Image an:

for generated_image in response.generated_images:
  image = Image.open(BytesIO(generated_image.image.image_bytes))
  image.show()

Hier ist das Ergebnis:

Unser erstes Bild mit Imagen 3 generieren

Textgenerierung

Eine der interessanten Funktionen von Imagen 3 im Vergleich zu anderen Text-Bild-Modellen ist die Möglichkeit, Text zu erzeugen. Probieren wir es aus, indem wir das Wort "Tee" aus frischen Teeblättern erzeugen lassen:

prompt="""
Word "tea" made from fresh tea leaves, white background
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
)

Hier ist das Ergebnis:

Text mit Imagen 3 generieren

Bilderzeugungsoptionen mit Imagen 3

Die Optionen für die Bilderzeugung werden über die types.GenerateImagesConfig Optionen bereitgestellt. Im obigen Beispiel haben wir nur die Anzahl der zu erzeugenden Bilder angegeben:

config=types.GenerateImagesConfig(
    number_of_images=1,
)

In diesem Abschnitt erkunden wir die anderen Optionen, die die Imagen 3 API bietet. Siehe die offizielle Dokumentation für weitere Informationen.

Mehrere Bilder generieren

Wir können den Parameter number_of_images verwenden, um mehrere Bilder mit einer einzigen Eingabeaufforderung zu erzeugen. Standardmäßig werden vier Bilder erstellt.

Versuchen wir, zwei Bilder für einen Comic zu erstellen.

prompt="""
Single comic book panel of two people overlooking a destroyed city. 
A speech bubble points from one of them and says: I guess this is the end.
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        number_of_images=2,
    )
)

Hier ist das Ergebnis:

Mehrere Bilder für ein Comicbuch mit Imagen 3 generieren

Dies ist ein weiteres Beispiel für die Erstellung von Text in Bildern. Auch wenn das Bild auf der linken Seite zusätzlichen unerwünschten Text enthält, können wir durch die Möglichkeit, mehrere Bilder zu erstellen, unsere Chancen erhöhen, das gewünschte Ergebnis zu erhalten. Das Bild auf der rechten Seite entspricht fast vollständig unserer Aufforderung.

Kontrolle des Seitenverhältnisses

Standardmäßig sind die erzeugten Bilder quadratisch und haben ein Seitenverhältnis von 1:1. Das Modell unterstützt die folgenden Seitenverhältnisse: 1:1, 3:4, 4:3, 9:16, und 16:9.

Lass uns ein 9:16 Bild erstellen, das wir als Telefonhintergrund verwenden können:

prompt="""
A drone shot of a river flowing between mountains with a stormy sky.
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        aspect_ratio="9:16",
    )
)

Hier ist das Ergebnis:

Ein Bild mit dem Seitenverhältnis 9:16 mit Imagen 3 generieren

Sicherheitsstufe Filter

In der Dokumentation wird erwähnt, dass wir die safety_filter_level verwenden können, um den Grad der Bildfilterung festzulegen. Jedes generierte Bild erhält einen Wahrscheinlichkeitswert, der die Wahrscheinlichkeit misst, dass das Bild unsicher ist (z. B. unangemessener Inhalt). 

Die Einstellung des Filters für die Sicherheitsstufe ist wichtig, weil sie dazu beiträgt, dass die generierten Inhalte angemessen sind und den Präferenzen der Nutzer/innen entsprechen.

In der Dokumentation steht, dass es drei Stufen unterstützt:

  • BLOCK_LOW_AND_ABOVE: Blockiere das Bild auch bei einer niedrigen Wahrscheinlichkeitszahl.
  • BLOCK_MEDIUM_AND_ABOVE : Blockiere nur Bilder mit mittleren und hohen Wahrscheinlichkeitswerten.
  • BLOCK_ONLY_HIGH : Nur Bilder mit einer hohen Wahrscheinlichkeitsbewertung blockieren

Nach einigen Versuchen unterstützt die API jedoch nur noch die Option BLOCK_LOW_AND_ABOVE. Jede andere Angabe führt zu einem Fehler.

Person Generation

Mit der Option person_generation können wir steuern, ob das Modell Personen erzeugen darf. Sie bietet zwei Optionen:

  • DONT_ALLOW: Bilder, auf denen Menschen zu sehen sind, werden gesperrt.
  • ALLOW_ADULT: So können wir Bilder mit Menschen (nur Erwachsene) erstellen.

Die Standardoption ist, Menschen zuzulassen. Wenn wir zum Beispiel die Option "Personen nicht zulassen" einstellen und versuchen, ein Bild von jemandem zu erzeugen, der kocht, werden wir keine Bilder erhalten.

prompt="""
A person cooking.
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        person_generation="DONT_ALLOW",
    )
)
print(response.generated_images)

Hier ist die Ausgabe:

None

Eine gute Aufforderung für Imagen 3

Die offizielle Dokumentation bietet eine umfassende Anleitung zur Eingabeaufforderung für Imagen 3, daher werde ich sie hier nicht wiederholen. Hier sind die wichtigsten Ideen, wie du einen guten Prompt erstellen kannst:

  • Grundlagen des Prompt-Schreibens:
    • Thema: Konzentriere dich auf das Hauptobjekt, die Person oder die Szene, die du darstellen willst.
    • Kontext und Hintergrund: Beschreibe das Umfeld oder die Umgebung, in der sich das Thema befindet.
    • Stil: Gib den gewünschten künstlerischen oder fotografischen Stil an (z. B. Skizze, Gemälde, Foto).
  • Verwende eine beschreibende Sprache: Verwende detaillierte Adjektive und den Kontext, um das gewünschte Ergebnis zu verdeutlichen.
  • Verweise auf bestimmte Stile: Orientiere dich an bekannten Künstlern oder Kunstströmungen, um die Ästhetik zu vermitteln.
  • Text in Bildern: Begrenze den Text auf 25 Zeichen oder weniger und verwende eindeutige Sätze, um zusätzliche Informationen zu liefern.
  • Aufforderung zur Parametrisierung: Wenn wir mehrere Bilder im gleichen Stil erstellen müssen, ist es eine gute Idee, eine wiederverwendbare Prompt-Vorlage zu erstellen und nur den Teil einzugeben, der sich ändert.
  • Fotografie: Lege Kameraeinstellungen, Objektivtypen und Beleuchtung fest, um das Ergebnis zu beeinflussen.
  • Art: Verwende Beschreibungen wie "ein Gemälde von..." oder bestimmte Techniken wie "Aquarellmalerei von...".
  • Bildqualitätsmodifikatoren: Verwende Schlüsselwörter wie "hochwertig" oder "4K", um die Qualität der Ausgabe zu verbessern.
  • Fotorealistische Bilder: Füge technische Details wie den Objektivtyp und die Brennweite hinzu, um den Realismus zu erhöhen.

Bildbearbeitung und -anpassung

Imagen 3 bietet auch die Möglichkeit, Bilder zu bearbeiten und anzupassen. Leider sind diese Funktionen immer noch gesperrt und nur für bestimmte Nutzer zugänglich.

Die Anpassungsfunktion ermöglicht es uns zum Beispiel, ein Referenzbild aus einer Eingabeaufforderung heraus anzupassen. In dem Beispiel wird ein Foto einer Frau gegeben, und die Eingabeaufforderung ändert dieses Bild in eines, auf dem dieselbe Person Orangen hält.

Beispiel für Bildanpassung in imagen 3

Weitere Informationen dazu und das Antragsformular für den Zugang finden Sie auf ihrer Website.

Fazit

In diesem Lernprogramm haben wir gelernt, wie man mit Imagen 3 Bilder mit Python und der Generativen API von Google erstellt. Insgesamt bin ich mit den Ergebnissen zufrieden, die ich beim Experimentieren mit der API erhalten habe. Ich habe das Gefühl, dass die Ergebnisse von hoher Qualität sind und weniger KI-Artefakte enthalten, wodurch es schwieriger wird, sie von echten Bildern zu unterscheiden.

Die Möglichkeit, mit Text in Bildern zu arbeiten, ist nützlich für Branding und Marketing. Insgesamt finde ich, dass dieses Modell gut funktioniert. Ich wünschte nur, alle Funktionen wären offen, denn ich finde, dass die Bildbearbeitung noch nützlicher ist als die Bilderstellung.


François Aubry's photo
Author
François Aubry
LinkedIn
Das Unterrichten war schon immer meine Leidenschaft. Schon als Schülerin habe ich eifrig nach Möglichkeiten gesucht, anderen Schülern Nachhilfe zu geben und sie zu unterstützen. Diese Leidenschaft führte dazu, dass ich einen Doktortitel anstrebte, wobei ich auch als Lehrassistentin tätig war, um meine akademischen Bemühungen zu unterstützen. In diesen Jahren fand ich im traditionellen Klassenzimmer große Erfüllung, indem ich Verbindungen förderte und das Lernen erleichterte. Mit dem Aufkommen von Online-Lernplattformen erkannte ich jedoch das transformative Potenzial der digitalen Bildung. Ich war sogar aktiv an der Entwicklung einer solchen Plattform an unserer Hochschule beteiligt. Es ist mir ein großes Anliegen, traditionelle Unterrichtsprinzipien mit innovativen digitalen Methoden zu verbinden. Meine Leidenschaft ist es, Kurse zu erstellen, die nicht nur ansprechend und informativ, sondern auch für Lernende im digitalen Zeitalter zugänglich sind.
Themen

Lerne KI mit diesen Kursen!

Lernpfad

Developing AI Applications

23hrs hr
Learn to create AI-powered applications with the latest AI developer tools, including the OpenAI API, Hugging Face, and LangChain.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

30 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Mehr anzeigenMehr anzeigen