Python에서 비디오 생성
Tip
자세한 내용은 텍스트 및 이미지 탭을 참조하세요.
프로그래밍 방식으로 비디오를 생성하는 애플리케이션을 빌드하려면 Microsoft Foundry에서 Sora 2 배포와 함께 OpenAI Python SDK를 사용할 수 있습니다. 비디오 생성은 비동기 프로세스입니다. 작업을 제출하고, 상태를 폴링하고, 준비가 되면 결과를 다운로드합니다.
비디오 생성
비디오 생성은 작업을 생성하고, 완료 여부를 확인하고, 결과를 다운로드하는 세 단계의 과정을 따릅니다.
import time
# Create the video generation job
video = client.videos.create(
model="sora-2",
prompt="A robot walks through a rainy city street at dusk, neon signs reflecting in puddles",
size="1280x720",
seconds="4",
)
print(f"Video creation started. ID: {video.id}")
# Poll for completion
while video.status not in ["completed", "failed", "cancelled"]:
print(f"Status: {video.status}. Waiting...")
time.sleep(20)
video = client.videos.retrieve(video.id)
# Download when complete
if video.status == "completed":
content = client.videos.download_content(video.id, variant="video")
content.write_to_file("output.mp4")
print("Video saved to output.mp4")
참조 이미지에서 비디오 생성
이미지를 시작 프레임으로 사용하려면 매개 변수에 input_reference 전달합니다. 이미지 해상도는 대상 비디오 크기와 일치해야 합니다.
video = client.videos.create(
model="sora-2",
prompt="The camera slowly pans across the landscape as clouds drift overhead",
size="1280x720",
seconds="4",
input_reference=open("landscape.png", "rb"),
)
메모
인간의 얼굴을 포함하는 참조 이미지는 현재 거부됩니다. 대신 가로, 개체 또는 애니메이션 캐릭터의 이미지를 사용합니다.
기존 비디오 리믹스
구조를 유지하면서 기존 비디오를 수정하려면 원래 비디오의 ID와 함께 리믹스 메서드를 사용합니다.
video = client.videos.remix(
video_id="video_abc123",
prompt="Change the color palette to warm sunset tones",
)
작업 상태 처리
비디오 작업은 다음 상태 값을 반환할 수 있습니다.
| 상태 | 설명 |
|---|---|
queued |
작업이 처리되기를 기다리고 있습니다. |
in_progress |
비디오가 생성되고 있습니다. |
completed |
비디오를 다운로드할 준비가 됨 |
failed |
생성 실패(오류 세부 정보 확인) |
cancelled |
작업이 취소되었습니다. |
작업이 실패하면 무엇이 잘못되었는지에 대한 세부 정보를 확인 video.error 합니다.
주요 고려 사항
- 속도 제한: 최대 두 개의 비디오 만들기 작업을 동시에 실행할 수 있습니다.
- 작업 만료: 완료된 비디오를 24시간 동안 다운로드할 수 있습니다.
- 해결 방법 요구 사항: 참조 이미지가 대상 비디오 해상도와 정확히 일치해야 합니다.
- 콘텐츠 필터링: 프롬프트에는 콘텐츠 조정이 적용됩니다. 유해한 콘텐츠가 생성되지 않음
다음 연습에서는 이러한 기술을 적용하여 전체 비디오 생성 애플리케이션을 빌드합니다.