비디오 생성 액세스 및 사용
Amazon Nova Reel을 사용하여 비디오를 생성하는 것은 비동기 프로세스로, 일반적으로 6초 비디오의 경우 약 90초, 2분 비디오의 경우 약 14~17분이 소요됩니다. 비디오 생성을 시작하면 비디오가 사용자 계정의 Amazon S3 버킷에 작성됩니다. Amazon Bedrock은 사용자를 대신하여 Amazon S3 버킷에 파일을 작성하기 때문에 사용하는 AWS 역할에는 적절한 Amazon Bedrock 및 Amazon S3 작업과 s3:PutObject
작업을 허용하도록 구성된 권한이 필요합니다. 다음은 비디오를 생성하는 데 필요한 최소 작업 권한입니다.
-
bedrock:InvokeModel
-
s3:PutObject
하지만 비디오 생성 작업의 상태를 추적할 수 있도록 다음과 같은 추가 작업이 권장됩니다.
-
bedrock:GetAsyncInvoke
-
bedrock:ListAsyncInvokes
비디오 생성이 완료되면 비디오와 해당 구성 요소 샷이 지정된 Amazon S3 버킷에 저장됩니다. Amazon Nova는 각 간접 호출 ID에 대한 폴더를 생성합니다. 이 폴더에는 비디오 생성 요청으로 생성된 manifest.json, output.mp4 및 generation-status.json 파일이 있습니다.
비디오 생성 작업 시작
비디오 생성을 시작하려면 start_async_invoke()
를 직접적으로 호출합니다. 그러면 새 간접 호출 작업이 생성됩니다. 작업이 완료되면 Amazon Nova는 생성된 비디오를 사용자가 지정하는 Amazon S3 버킷에 자동으로 저장합니다.
start_async_invoke()
는 다음 인수를 사용합니다.
-
modelId(필수) - 사용할 모델 ID입니다. Amazon Nova Reel의 경우 ‘amazon.nova-reel-v1:1‘입니다.
-
modelInput(필수) - Amazon Nova Reel 모델에 특정한 모든 비디오 생성 파라미터를 정의합니다. 자세한 내용은 비디오 생성 입력 파라미터 섹션을 참조하세요.
-
outputDataConfig(필수) - 생성된 비디오를 저장할 위치를 정의합니다. 값의 구조는 다음과 같아야 합니다.
{ "s3OutputDataConfig": { "s3Uri":
string (S3 URL starting with "s3://")
} }
비디오 생성 입력 파라미터
Amazon Nova Reel을 사용하여 비디오를 생성하는 방법에 대한 자세한 내용은 다음 파라미터 설명을 참조하세요.
비디오 생성 프로세스를 수행하면 지정된 Amazon S3 대상에 다음 파일이 작성됩니다.
-
manifest.json - 작업 시작 시 작성되는 파일로, 요청 ID를 포함합니다.
-
video-generation-status.json - 이 파일은 작업이 성공하든 실패하든 작성됩니다. 작업이 실패하면 작업의 어느 부분이 실패했는지, 오류를 해결하기 위해 어떤 조치를 취해야 하는지에 대한 자세한 정보가 포함됩니다.
-
output.mp4 - 전체 멀티샷 비디오입니다. 작업이 성공하는 경우에만 작성됩니다.
-
shot_N.mp4 - 각각의 개별 샷도 자체 비디오로도 제공됩니다. 파일 이름은 ‘shot_0001.mp4‘, ‘shot_0002.mp4‘ 등의 형식을 따릅니다. 이러한 파일은 전체 작업이 성공하는 경우에만 작성됩니다.
비디오 생성 작업의 진행 상황 확인
비디오 생성 작업의 진행 상황을 확인하는 방법에는 두 가지가 있습니다. 간접 호출을 시작할 때 반환된 간접 호출 ARN에 대한 참조가 있는 경우 Amazon Bedrock 런타임의 get_async_invoke()
메서드를 사용할 수 있습니다.
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}")
작업 상태는 ‘완료됨‘, ‘진행 중‘ 또는 ‘실패‘가 됩니다. get_async_invoke()
메서드 사용에 대한 자세한 내용은 Async Invoke API 설명서를 참조하세요.
간접 호출 ARN에 대한 참조가 없거나 여러 작업의 상태를 한 번에 확인하려는 경우 Amazon Bedrock 런타임의 list_async_invokes()
메서드를 사용할 수 있습니다.
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))
list_async_invokes()
메서드 사용에 대한 자세한 내용은 Async Invoke API 설명서를 참조하세요.
비디오 생성 작업의 결과에 액세스
비디오 생성 작업이 성공하거나 실패한 후 Amazon S3 버킷에 JSON 파일이 추가됩니다. 이 파일에는 비디오용으로 생성된 샷에 대한 메타데이터가 들어 있습니다. 이 파일의 이름은 video-generation-status.json
입니다.
성공적인 비디오 생성 요청을 위해 파일에는 전체 비디오를 구성하는 각 개별 샷의 위치가 들어 있습니다. 실패한 요청의 경우 파일에 실패 메시지와 샷이 실패한 이유에 대한 추가 세부 정보가 들어 있습니다.
이 JSON 파일의 스키마는 아래와 같습니다.
{ "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 - JSON 스키마의 버전입니다.
-
shots - 비디오의 각 샷에 대한 정보를 제공합니다.
-
status - 샷의 완료 상태(SUCCESS 또는 FAILURE)입니다.
-
location - 샷이 저장되는 파일 이름과 Amazon S3 로케이션입니다. 모든 샷이 성공적으로 생성되고 전체 비디오가 Amazon S3 로케이션에 업로드된 경우에만 해당 로케이션을 사용할 수 있습니다.
-
failureType - 실패 이유를 제공합니다.
-
failureMessage - 실패 이유에 대한 자세한 정보를 제공합니다.
-
-
fullVideo - 전체 비디오에 대한 정보를 제공합니다.
-
status - 전체 비디오의 완료 상태(SUCCESS 또는 FAILURE)입니다.
-
location - 전체 비디오가 저장되는 파일 이름과 Amazon S3 로케이션입니다.
-
failureType - 실패 이유를 제공합니다.
-
failureMessage - 실패 이유에 대한 자세한 정보를 제공합니다.
-
가능한 실패 이유와 메시지는 다음과 같습니다.
-
INTERNAL_SERVER_EXCEPTION - ‘서버 측에서 문제가 발생했습니다.’
-
RAI_VIOLATION_OUTPUT_VIDEO_DEFLECTION - ‘생성된 콘텐츠가 콘텐츠 필터에 의해 차단되었습니다.‘
-
RATE_LIMIT_EXCEEDED - ‘서비스 용량 한도에 도달했습니다. 나중에 다시 시도하세요.’
-
ABORTED - ‘요청이 중단되었습니다.‘