본문으로 건너뛰기

마지막 프레임으로 다음 영상 만들기

앞 영상의 마지막 이미지를 다음 영상의 시작 이미지로 사용하세요.

첫 영상에서 마지막 프레임을 요청하고, 받은 이미지를 다음 생성 요청에 넣습니다.

마지막 프레임을 사용하는 이유

여러 장면을 나누어 만들면서 앞 장면의 끝 이미지를 다음 장면의 시작으로 지정할 때 사용합니다. 같은 이미지에서 시작하더라도 인물, 움직임과 스타일의 완전한 일치가 보장되지는 않습니다. 두 영상을 하나로 합치려면 별도의 영상 편집 도구를 사용합니다.

AI 게이트웨이 API 키와 Seedance 이용 권한을 준비합니다. 첫 요청과 결과 조회가 익숙하지 않다면 영상 생성하고 파일 받기를 먼저 따릅니다.

첫 영상에서 마지막 프레임 요청하기

Video Generations에 return_last_frame: true를 넣습니다. 후속 작업에서 결과를 사용할 수 있도록 store_media: true를 지정합니다. 아래 본문을 자신의 장면 설명으로 바꾸어 요청하고 반환된 작업 ID를 저장합니다.

{ "model": "byteplus-seedance-2.5", "prompt": "카메라가 숲길을 따라 천천히 이동하다 작은 나무 문 앞에 멈춘다.", "duration": 5, "return_last_frame": true, "store_media": true }

마지막 프레임 파일 준비하기

같은 작업 ID로 Jobs를 조회합니다. 작업 상태가 succeeded이면 data.job.result.media에서 이미지 항목의 kind와 state를 확인하고, ready인 마지막 프레임의 media_id로 Media Links를 요청합니다. 반환 이미지가 없거나 사용할 수 없으면 다음 생성 요청을 보내지 않고 첫 작업의 결과를 확인합니다.

발급된 링크로 이미지를 내려받은 뒤 References에 파일을 업로드합니다. 반환된 reference를 다음 요청의 image_url에 넣습니다. 미디어 ID를 파일 ID로 바꾸거나 URI를 직접 조립하지 않습니다. 인물 참조에 자산 등록이 필요한 경우 관리형 업로드 조건을 따릅니다.

다음 장면 생성하기

첫 프레임을 넣을 때 비율은 생략하거나 adaptive를 사용합니다. 아래 image_url을 방금 받은 참조 값으로 바꿉니다. 프레임 지정에 일반 이미지, 영상 또는 오디오 참조를 함께 넣지 않습니다.

{ "model": "byteplus-seedance-2.5", "prompt": "나무 문이 천천히 열리고 카메라가 따뜻한 빛이 드는 방 안으로 들어간다.", "image_url": "letsur-file://example-file-id", "aspect_ratio": "adaptive", "duration": 5, "store_media": true }

두 번째 영상 생성도 새 작업으로 접수됩니다. 작업 ID와 비용을 첫 영상과 구분해 기록합니다. 첫 작업 ID와 두 번째 작업 ID를 장면 순서에 맞춰 저장하고, 각 파일을 준비 상태와 만료시각에 따라 받습니다. 두 번째 작업도 상태를 조회하고 완성된 파일을 다운로드해 재생되는지 확인합니다. 새 요청의 응답을 받지 못했다면 자동으로 다시 생성하지 않습니다.

영상 자체를 연장하려면

마지막 프레임을 시작 이미지로 삼는 흐름과 영상 참조의 mode: "extend"는 입력 방식이 다릅니다. 영상 자체를 입력해 연장하려면 Seedance 입력 방식을 확인합니다. 영상 참조는 입력 영상도 사용량에 영향을 줄 수 있으므로 요청별 비용을 함께 확인합니다.