Videogenerierung, Zugang und Nutzung - Amazon Nova

Videogenerierung, Zugang und Nutzung

Die Erstellung eines Videos mit Amazon Nova Reel ist ein asynchroner Prozess, der in der Regel etwa 90 Sekunden für ein 6-Sekunden-Video und etwa 14 bis 17 Minuten für ein 2-Minuten-Video dauert. Nachdem Sie die Generierung eines Videos gestartet haben, wird das Video in einen Amazon-S3-Bucket in Ihrem Konto geschrieben. Da Amazon Bedrock in Ihrem Auftrag eine Datei in einen Amazon-S3-Bucket schreibt, muss die von Ihnen verwendete AWS-Rolle über Berechtigungen verfügen, welche die entsprechenden Amazon Bedrock- und Amazon-S3-Aktionen sowie die s3:PutObject-Aktion zulassen. Für die Generierung eines Videos sind mindestens folgende Aktionsberechtigungen erforderlich:

  • bedrock:InvokeModel

  • s3:PutObject

Wir empfehlen jedoch die folgenden zusätzlichen Maßnahmen, damit Sie den Status von Videogenerierungsaufträgen verfolgen können:

  • bedrock:GetAsyncInvoke

  • bedrock:ListAsyncInvokes

Nach Abschluss der Videogenerierung werden das Video und die einzelnen Aufnahmen in dem von Ihnen angegebenen Amazon-S3-Bucket gespeichert. Amazon Nova erstellt für jede Aufruf-ID einen Ordner. Dieser Ordner enthält die Dateien manifest.json, output.mp4 und generation-status.json, die durch die Anfrage zur Videogenerierung erstellt wurden.

Einen Auftrag zur Videogenerierung starten

Um die Erstellung eines Videos zu initiieren, rufen Sie start_async_invoke() auf. Dadurch wird ein neuer Aufruf-Auftrag erstellt. Nach Abschluss des Auftrags speichert Amazon Nova das erstellte Video automatisch in einem von Ihnen angegebenen Amazon-S3-Bucket.

start_async_invoke() verwendet die folgenden Argumente:

  • modelld (Erforderlich) – Die zu verwendende Modell-ID. Für Amazon Nova Reel ist dies „amazon.nova-reel-v1:1“

  • modelInput (Erforderlich) – Definiert alle für das Amazon-Nova-Reel-Modell spezifischen Parameter zur Videogenerierung. Weitere Informationen finden Sie unter Eingabeparameter für die Videogenerierung.

  • OutputDataConfig (Erforderlich) – Definiert, wo das generierte Video gespeichert werden soll. Der Wert muss die folgende Struktur aufweisen:

    { "s3OutputDataConfig": { "s3Uri": string (S3 URL starting with "s3://") } }

Eingabeparameter für die Videogenerierung

In den folgenden Parameterbeschreibungen finden Sie Informationen zum Generieren von Videos mit Amazon Nova Reel.

Text-to-video generation

Die folgende Struktur definiert einen Videogenerierungsauftrag für Amazon Nova Reel:

{ "taskType": "TEXT_VIDEO", "textToVideoParams": { "text": string, "images": ImageSource[] (list containing a single ImageSource) }, "videoGenerationConfig": { "durationSeconds": int, "fps": int, "dimension": string, "seed": int } }

Diese Eingabeparameter sind erforderlich, um den Videogenerierungsauftrag zu erstellen:

  • text (Erforderlich): Ein Text-Prompt zum Generieren des Bildes. Muss zwischen 1 und 512 Zeichen lang sein.

  • images (Optional) – Ein einzelnes JPEG- oder PNG-Bild, das als Start-Keyframe des Ausgabevideos verwendet wird. Dieses Eingabebild wird zusammen mit dem Text-Prompt verwendet, um das Video zu generieren. Das Bild muss als eine base64-Zeichenfolge formatiert oder in einem Amazon-S3-Bucket gespeichert sein.

    Bilder können im PNG- oder JPEG-Format vorliegen und müssen 8 Bit pro Farbkanal (RGB) aufweisen. PNG-Bilder können einen zusätzlichen Alphakanal enthalten, jedoch darf dieser Kanal keine transparenten oder durchscheinenden Pixel enthalten. Derzeit akzeptiert das Modell nur Bilder mit einer Größe von 1 280 (Breite) x 720 (Höhe).

    In einem Amazon-S3-Bucket enthaltene Bilder dürfen 25 MB nicht überschreiten.

  • durationSeconds (Erforderlich) – Dauer des Ausgabevideos. 6 ist derzeit der einzige unterstützte Wert.

  • fps (Erforderlich) – Bildrate des Ausgabevideos. 24 ist derzeit der einzige unterstützte Wert.

  • dimension (Erforderlich) – Breite und Höhe des Ausgabevideos. „1 280x720" ist derzeit der einzige unterstützte Wert.

  • seed: (Optional) – Bestimmt die anfängliche Einstellung für das Rauschen im Generierungsprozess. Das Ändern des Seed-Wertes bei Beibehaltung aller anderen Parameter erzeugt ein völlig neues Video, das weiterhin Ihrem Prompt, den Abmessungen und anderen Einstellungen entspricht. Es ist üblich, mit verschiedenen Seed-Werten zu experimentieren, um das optimale Bild zu erzielen.

    Der Seed-Wert muss zwischen 0 und 2 147 483 646 liegen, und der Standardwert ist 42.

imageSource-Schema

Wenn Sie ein Bild als Eingabe verwenden, nutzen Sie bitte die folgende Struktur, um das Bild in Ihre Anfrage einzubinden:

{ "format": "png" | "jpeg" "source": { "bytes": string (base64 encoded image) } }
  • format (Erforderlich) – Muss dem Format des Eingabebilds entsprechen. Entweder „PNG“ oder „JPEG“.

  • source (Erforderlich)

    • bytes (Erforderlich) – Das Eingabebild ist als Base64-Zeichenfolge kodiert. Das Bild muss eine Auflösung von 1 280 x 720 haben.

Automated long video generation

Mit der Aufgabe MULTI_SHOT_AUTOMATED können Sie Videos mit einer Länge von bis zu zwei Minuten in Schritten von sechs Sekunden erstellen, indem Sie lediglich einen Text-Prompt eingeben. Sie können einen Text-Prompt mit bis zu 4 000 Zeichen angeben, aber kein Eingabebild.

{ "taskType": "MULTI_SHOT_AUTOMATED", "multiShotAutomatedParams": { "text": string, }, "videoGenerationConfig": { "durationSeconds": int, "fps": int, "dimension": string, "seed": int } }

Diese Eingabeparameter sind erforderlich, um den Videogenerierungsauftrag zu erstellen:

  • text (Erforderlich): Ein Text-Prompt zum Generieren des Bildes. Muss zwischen 1 und 4 000 Zeichen lang sein.

  • durationSeconds (Erforderlich) – Dauer des Ausgabevideos. Ein Vielfaches von 6 zwischen 12 und 120 (einschließlich).

  • fps (Erforderlich) – Bildrate des Ausgabevideos. 24 ist derzeit der einzige unterstützte Wert.

  • dimension (Erforderlich) – Breite und Höhe des Ausgabevideos. „1 280x720" ist derzeit der einzige unterstützte Wert.

  • seed: (Optional) – Bestimmt die anfängliche Einstellung für das Rauschen im Generierungsprozess. Das Ändern des Seed-Wertes bei Beibehaltung aller anderen Parameter erzeugt ein völlig neues Bild, das weiterhin Ihrem Prompt, den Abmessungen und anderen Einstellungen entspricht. Es ist üblich, mit verschiedenen Seed-Werten zu experimentieren, um das optimale Bild zu erzielen.

    Der Seed-Wert muss zwischen 0 und 2 147 483 646 liegen, und der Standardwert ist 42.

Manual long video generation

Mit der Aufgabe MULTI_SHOT_MANUAL können Sie Videos mit einer Länge von bis zu zwei Minuten mit mehreren Text-Prompts und Eingabebildern erstellen. Für jede sechs Sekunden lange Einstellung im Video können Sie einen Text-Prompt mit einem optionalen Eingabebild bereitstellen. Die Dauer des Videos wird anhand der von Ihnen angegebenen Anzahl von Einstellungen bestimmt.

model_input = { "taskType": "MULTI_SHOT_MANUAL", "multiShotManualParams": { "shots": [ { "text": "Information for shot 1" }, { "text": "Information for shot 2", "image": { "format": "png", # Must be "png" or "jpeg" "source": { "bytes": "<base64 image string>" }, }, }, { "text": "Information for shot 3", "image": { "format": "png", # Must be "png" or "jpeg" "source": { "s3Location": { "uri": "<S3 URI string>", "bucketOwner": "<S3 bucket owner string>" # Optional } } } }, ] }, "videoGenerationConfig": { "fps": int, "dimension": string, "seed": int } }

Diese Eingabeparameter sind erforderlich, um den Videogenerierungsauftrag zu erstellen:

  • shots (Erforderlich) – Enthält Informationen zu den Text-Prompts und Eingabebildern, die für die Videogenerierung verwendet werden.

  • text (Erforderlich): Ein Text-Prompt zum Generieren des Bildes. Muss zwischen 1 und 512 Zeichen lang sein.

  • image (Optional) – Enthält Informationen über das Eingabebild, das für diese Einstellung verwendet wurde. Das Bild kann entweder als Base64-Zeichenfolge im bytes-Feld oder als Amazon-S3-URI im s3Location-Feld bereitgestellt werden.

    Bilder können im PNG- oder JPEG-Format vorliegen und müssen 8 Bit pro Farbkanal (RGB) aufweisen. PNG-Bilder können einen zusätzlichen Alphakanal enthalten, jedoch darf dieser Kanal keine transparenten oder durchscheinenden Pixel enthalten. Derzeit akzeptiert das Modell nur Bilder mit einer Größe von 1 280 (Breite) x 720 (Höhe).

    In einem Amazon-S3-Bucket enthaltene Bilder dürfen 25 MB nicht überschreiten.

  • fps (Erforderlich) – Bildrate des Ausgabevideos. 24 ist derzeit der einzige unterstützte Wert.

  • dimension (Erforderlich) – Breite und Höhe des Ausgabevideos. „1 280x720" ist derzeit der einzige unterstützte Wert.

  • seed: (Optional) – Bestimmt die anfängliche Einstellung für das Rauschen im Generierungsprozess. Das Ändern des Seed-Wertes bei Beibehaltung aller anderen Parameter erzeugt ein völlig neues Bild, das weiterhin Ihrem Prompt, den Abmessungen und anderen Einstellungen entspricht. Es ist üblich, mit verschiedenen Seed-Werten zu experimentieren, um das optimale Bild zu erzielen.

    Der Seed-Wert muss zwischen 0 und 2 147 483 646 liegen, und der Standardwert ist 42.

Der Vorgang der Videogenerierung führt dazu, dass die folgenden Dateien in das von Ihnen angegebene Amazon-S3-Ziel geschrieben werden:

  • manifest.json – Eine Datei, die zu Beginn des Auftrags erstellt wird und die Anforderungs-ID enthält.

  • video-generation-status.json – Diese Datei wird geschrieben, unabhängig davon, ob der Auftrag erfolgreich ist oder fehlschlägt. Wenn ein Auftrag fehlschlägt, enthält er detaillierte Informationen darüber, welcher Teil des Auftrags fehlgeschlagen ist und welche Maßnahmen zur Behebung des Fehlers zu ergreifen sind.

  • output.mp4 – Das komplette Multi-Shot-Video. Wird nur geschrieben, wenn der Auftrag erfolgreich ist.

  • shot_N.mp4 – Jede einzelne Einstellung wird auch als eigenes Video bereitgestellt. Der Dateiname folgt dem Format „shot_0001.mp4“ „shot_0002.mp4“ usw. Diese Dateien werden nur geschrieben, wenn der gesamte Auftrag erfolgreich ist.

Der Fortschritt der Videogenerierungsaufträge wird überprüft

Es gibt zwei Möglichkeiten, den Fortschritt eines Videogenerierungsauftrags zu überprüfen. Wenn Sie über einen Verweis auf den Aufruf-ARN verfügen, der beim Starten des Aufrufs zurückgegeben wurde, können Sie die get_async_invoke()-Methode der Amazon Bedrock-Laufzeit verwenden.

response = bedrock_runtime.get_async_invoke( invocationArn="arn:AWS:bedrock:us-east-1:account-id:async-invoke/invocation-id" ) status = response["status"] print(f"Status: {status}")

Der Status eines Auftrags lautet „Abgeschlossen“, „InProgress“ oder „Fehlgeschlagen“. Weitere Informationen zur Verwendung der get_async_invoke()-Methode finden Sie in der Async-Invoke-API-Dokumentation.

Wenn Sie keinen Verweis auf den Aufruf-ARN haben oder wenn Sie den Status mehrerer Aufträge gleichzeitig überprüfen möchten, können Sie die list_async_invokes()-Methode der Amazon Bedrock-Laufzeit verwenden.

invocations_details = bedrock_runtime.list_async_invokes( maxResults=10, # (Optional) statusEquals="InProgress", # (Optional) Can be "Completed", "InProgress", or "Failed". Omit this argument to list all jobs, regardless of status. # Note: There are other supported arguments not demonstrated here. ) print(json.dumps(invocations_details, indent=2, default=str))

Weitere Informationen zur Verwendung der list_async_invokes()-Methode finden Sie in der Async-Invoke-API-Dokumentation.

Zugriff auf die Ergebnisse eines Videogenerierungsauftrags

Nach dem erfolgreichen Abschluss oder Scheitern eines Videogenerierungsauftrags wird eine JSON-Datei zu Ihrem Amazon-S3-Bucket hinzugefügt. Diese Datei enthält Metadaten zu den Einstellungen, die für das Video erstellt wurden. Die Datei erhält die Bezeichnung video-generation-status.json.

Für eine erfolgreiche Anfrage zur Videogenerierung enthält die Datei die Position jeder einzelnen Einstellung, aus der das vollständige Video besteht. Bei einer fehlgeschlagenen Anfrage enthält die Datei die Fehlermeldung und zusätzliche Details darüber, warum der Versuch fehlgeschlagen ist.

Das Schema dieser JSON-Datei ist unten aufgeführt.

{ "schemaVersion": string, "shots": [{ "status": enum, // where success is generation + upload "location": string, "failureType": enum, "failureMessage": string, }, ... ], "fullVideo": { "status": enum, // where success is generation + upload "location": string, "failureType": enum, "failureMessage": string, } }
  • schemaVersion – Die Version des JSON-Schemas.

  • shots – Stellt Informationen zu jeder Einstellung im Video bereit.

    • status – Der Abschlussstatus (ERFOLGREICH oder FEHLGESCHLAGEN) der Einstellung.

    • location – Der Dateiname und der Amazon-S3-Speicherort, an dem die Einstellung gespeichert wird. Der Speicherort ist erst verfügbar, wenn alle Einstellungen erfolgreich generiert und das vollständige Video an den Amazon-S3-Speicherort hochgeladen wurde.

    • failureType – Gibt den Grund für den Fehler an.

    • failureMessage – Stellt weitere Informationen zur Fehlerursache bereit.

  • fullVideo – Stellt Informationen zum vollständigen Video bereit.

    • status – Der Abschlussstatus (ERFOLGREICH oder FEHLGESCHLAGEN) des vollständigen Videos.

    • location – Der Dateiname und der Amazon-S3-Speicherort, an dem das vollständige Video gespeichert wird.

    • failureType – Gibt den Grund für den Fehler an.

    • failureMessage – Stellt weitere Informationen zur Fehlerursache bereit.

Mögliche Fehlergründe und Meldungen sind

  • INTERNAL_SERVER_EXCEPTION – „Auf Serverseite ist etwas schiefgelaufen.“

  • RAI_VIOLATION_OUTPUT_VIDEO_DEFLECTION – „Der generierte Inhalt wurde von unseren Inhaltsfiltern blockiert.“

  • RATE_LIMIT_EXCEEDED – „Die Servicekapazitätsgrenze wurde erreicht. Bitte versuchen Sie es später noch einmal.“

  • ABGEBROCHEN – „Die Anfrage wurde abgebrochen.“