Accesso e utilizzo della generazione di video
La generazione di un video con Amazon Nova Reel è un processo asincrono che richiede generalmente circa 90 secondi per un video di 6 secondi e circa 14-17 minuti per un video di 2 minuti. Dopo aver avviato la generazione, il video viene scritto in un bucket Amazon S3 nell’account. Poiché Amazon Bedrock scrive un file in un bucket Amazon S3 per tuo conto, il ruolo AWS utilizzato richiede la configurazione di autorizzazioni per consentire le operazioni Amazon Bedrock e Amazon S3 adeguate e l’operazione s3:PutObject. Le operazioni minime da autorizzare per generare un video sono:
-
bedrock:InvokeModel -
s3:PutObject
Tuttavia, consigliamo di includere le seguenti operazioni aggiuntive per poter monitorare lo stato dei processi di generazione dei video:
-
bedrock:GetAsyncInvoke -
bedrock:ListAsyncInvokes
Al termine della generazione, il video e le riprese che lo costituiscono vengono archiviati nel bucket Amazon S3 specificato. Amazon Nova crea una cartella per ogni ID di invocazione. Questa cartella contiene i file manifest.json, output.mp4 e generation-status.json creati dalla richiesta di generazione di video.
Argomenti
Avviare un processo di generazione di video
Per avviare la generazione di un video, effettua una chiamata start_async_invoke(). In questo modo viene creato un nuovo processo di invocazione. Al termine del processo, Amazon Nova salva automaticamente il video generato nel bucket Amazon S3 specificato.
start_async_invoke() accetta i seguenti argomenti:
-
modelId (obbligatorio): l’ID modello da utilizzare. Per Amazon Nova Reel è “amazon.nova-reel-v1:1”.
-
modelInput (obbligatorio): definisce tutti i parametri di generazione di video specifici per il modello Amazon Nova Reel. Per ulteriori informazioni, consulta Parametri di input per la generazione di video.
-
outputDataConfig (obbligatorio): definisce dove deve essere salvato il video generato. Il valore deve avere la seguente struttura:
{ "s3OutputDataConfig": { "s3Uri":string (S3 URL starting with "s3://")} }
Parametri di input per la generazione di video
Consulta le descrizioni dei parametri riportate di seguito per informazioni su come generare video utilizzando Amazon Nova Reel.
Il processo di generazione di video avrà come risultato la scrittura dei seguenti file nella destinazione Amazon S3 specificata:
-
manifest.json: un file scritto all’inizio del processo che contiene l’ID della richiesta.
-
video-generation-status.json: questo file viene scritto sia quando il processo va a buon fine, sia quando non riesce. Quando un processo non va a buon fine, conterrà informazioni dettagliate che spiegano esattamente quale parte del processo non è riuscita e quale operazione eseguire per correggere l’errore.
-
output.mp4: il video con più riprese completo. Viene scritto solo se il processo va a buon fine.
-
shot_N.mp4: ogni singola ripresa viene fornita anche come video a parte. Il nome del file segue il formato “shot_0001.mp4”, “shot_0002.mp4” e così via. Questi file vengono scritti solo se l’intero processo va a buon fine.
Controllare l’avanzamento dei processi di generazione di video
È possibile controllare l’avanzamento di un processo di generazione di video in due modi. Se disponi di un riferimento all’ARN di invocazione restituito al momento dell’avvio dell’invocazione, puoi utilizzare il metodo get_async_invoke() di Amazon Bedrock Runtime.
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}")
Lo stato di un processo sarà “Completed”, “InProgress” o “Failed”. Per ulteriori informazioni sull’utilizzo del metodo get_async_invoke(), consulta la documentazione di riferimento dell’API Async Invoke.
Se non disponi di un riferimento all’ARN di invocazione o se desideri controllare lo stato di più processi contemporaneamente, puoi utilizzare il metodo list_async_invokes() di Amazon Bedrock Runtime.
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))
Per ulteriori informazioni sull’utilizzo del metodo list_async_invokes(), consulta la documentazione di riferimento dell’API Async Invoke.
Accedere ai risultati di un processo di generazione video
Una volta che un processo di generazione di video ha esito positivo o negativo, viene aggiunto un file JSON al bucket Amazon S3. Questo file contiene i metadati relativi alle riprese create per il video. Il file è denominato video-generation-status.json.
Per una richiesta di generazione video con esito positivo, il file contiene la posizione di ogni singola ripresa da cui è costituito il video completo. Per una richiesta di generazione video con esito negativo, il file contiene un messaggio di errore e dettagli aggiuntivi sul motivo dell’errore della ripresa.
Lo schema di questo file JSON è riportato di seguito.
{ "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: la versione dello schema JSON.
-
shots: fornisce informazioni su ogni ripresa del video.
-
status: lo stato di completamento (SUCCESS o FAILURE) della ripresa.
-
location: il nome del file e la posizione Amazon S3 in cui è archiviata la ripresa. La posizione sarà disponibile solo quando tutte le riprese vengono generate correttamente e il video completo viene caricato nella posizione Amazon S3.
-
failureType: indica il motivo dell’errore.
-
failureMessage: fornisce ulteriori informazioni sul motivo dell’errore.
-
-
fullVideo: fornisce informazioni sul video completo.
-
status: lo stato di completamento (SUCCESS o FAILURE) del video completo.
-
location: il nome del file e la posizione Amazon S3 in cui è archiviato il video completo.
-
failureType: indica il motivo dell’errore.
-
failureMessage: fornisce ulteriori informazioni sul motivo dell’errore.
-
Possibili cause di errore e messaggi sono:
-
INTERNAL_SERVER_EXCEPTION: “Si è verificato un errore lato server”.
-
RAI_VIOLATION_OUTPUT_VIDEO_DEFLECTION: “Il contenuto generato è stato bloccato dai nostri filtri di contenuto”.
-
RATE_LIMIT_EXCEEDED: “È stato raggiunto il limite di capacità del server. Riprova più tardi”.
-
ABORTED: “La richiesta è stata interrotta”.