Runway: Gen-4.5
Runway Gen-4.5는 장면 설명이나 움직임 지시가 포함된 이미지에서 영상을 만듭니다. 2–10초 클립, 명시적인 카메라 프롬프트 및 텍스트-비디오와 이미지-비디오 각각의 구도 선택으로 영화적 콘셉트, B-roll과 움직이는 시각 장면을 제작할 수 있습니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
Runway Gen-4.5는 텍스트-비디오와 이미지-비디오 모드를 갖춘 영상 생성 모델입니다. 장면 구도, 피사체 동작, 카메라 동선과 사건의 순서를 설명한 기획을 따를 수 있습니다. 유용한 결과는 검토하고 보관하거나 다른 영상과 조합할 수 있는 짧은 생성 숏입니다.
숏에 맞는 입력 모드 선택
텍스트-비디오는 글로 쓴 장면 설명에서 시작합니다. 피사체, 배경, 조명, 구도, 동작과 카메라 행동처럼 보이는 내용과 움직임을 모두 포함하세요. 제공 이미지와 시작 프레임이 같을 필요가 없는 새 장면, B-roll, 배경 플레이트나 시각적 콘셉트에 유용합니다.
이미지-비디오는 첫 프레임 역할을 하는 이미지에서 시작합니다. 그 이미지가 구도, 피사체, 조명과 스타일을 제공합니다. 글로 쓴 프롬프트는 다음에 일어날 일, 즉 피사체 동작, 환경의 움직임, 카메라 이동과 숏의 전개에 집중하세요.
중요한 디테일이 이미 보이는 선명한 이미지를 준비합니다. 흐린 얼굴, 손이나 다른 결함은 움직이게 되면 더 두드러질 수 있습니다. 먼지나 모션 블러로 빠른 움직임을 암시하는 참조는 정지한 피사체를 요청한 프롬프트와 충돌할 수도 있습니다.
화면과 움직임을 직접 설명
명확한 자연어와 의도한 결과에 대한 긍정형 설명을 사용하세요. 텍스트-비디오 기획은 카메라 시점, 피사체와 동작을 먼저 쓰고 장면의 표현 방식을 추가할 수 있습니다. 요구사항이 정해진 숏에는 상세한 설명이 유용하고, 간단한 설명은 탐색의 여지를 넓힙니다. 명확성을 대신할 이상적인 단어 수는 없습니다.
예를 들어 황동 책상 램프의 불이 켜지는 모습을 가까이서 보여 준 뒤 카메라가 천천히 이동하며 옆의 노트를 드러내는 장면을 설명하세요. 텍스트-비디오에서는 보이는 재질과 빛을 명시합니다. 제공 이미지가 이미 그 디테일을 정했다면 이미지-비디오 프롬프트는 빛의 변화와 카메라를 통한 공개에 집중할 수 있습니다.
모순된 지시를 피하세요. 카메라를 고정하고 피사체만 미세하게 움직이는 장면과 활기찬 핸드헬드 트래킹 숏은 다릅니다. 무관한 시각적 스타일을 길게 나열하기보다 필요한 숏을 규정하는 디테일을 추가하세요.
카메라 용어와 순차 동작
제작사의 카메라 가이드는 구도, 각도, 이동과 초점을 구별합니다. 클로즈업은 프레임을 채우는 대상을 바꾸고, 로 앵글은 원근을 바꾸며, 팬은 카메라 시야를 회전시키고, 트래킹은 피사체를 따라갑니다. 랙 포커스 지시는 보이는 피사체 사이에서 초점을 옮깁니다. 이동이 진행되면서 무엇이 보이거나 드러나야 하는지 명시하세요.
순차 프롬프트는 일반 언어나 대략적인 타임스탬프로 사건을 표현할 수 있습니다. 타임스탬프는 순서와 대략적인 타이밍을 안내하며 프레임 단위의 정확한 실행을 보장하지 않습니다. 선택한 클립 길이 안에서 요청한 동작이 자연스럽게 일어날 시간을 충분히 주세요.
정적인 숏에서는 프레임 안에서 일어날 움직임을 설명하고 카메라가 가만히 있어야 한다는 의도를 강조하세요. 제작사는 일부 와이드 숏이나 도입 숏에서 특히 완전히 움직임 없는 시점이 어려울 수 있다고 설명합니다. 카메라 고정 문구가 모든 미세 이동을 막는다고 가정하지 말고 실제 결과에서 불필요한 움직임을 검토하세요.
길이, 크기와 프레임 속도
Gen-4.5는 2–10초 클립 길이를 지원합니다. 길게 선택하면 여러 동작을 순서대로 담을 수 있고 짧은 반응이나 공개에는 더 짧은 숏을 사용할 수 있습니다. 제작사 생성 워크플로의 문서상 출력은 720p, 초당 24 또는 25프레임입니다.
텍스트-비디오 사양은 16:9, 1280 × 720픽셀을 명시합니다. 이미지-비디오는 추가로 9:16의 720 × 1280, 1:1의 960 × 960, 4:3의 1104 × 832, 3:4의 832 × 1104, 21:9의 1584 × 672를 명시합니다. 두 입력 모드가 같은 화면비 목록을 제공한다고 가정하지 말고 모드와 실제 크기를 함께 관리하세요.
이미지 화면비가 기본 구도를 정할 수 있으며 이를 바꾸면 입력이 잘릴 수 있습니다. 움직임을 평가하기 전에 피사체 위치를 확인하세요. 원본 이미지의 핵심 부분이 잘렸다면 동작이 맞아도 쓸모가 없습니다.
완성 숏으로 더 긴 시퀀스 구성
이미지 기반 작업에서 제작사는 완성 클립의 마지막 프레임을 다음 생성의 이미지 입력으로 사용해 시퀀스를 이어 가는 방식을 설명합니다. 이후 영상 편집기에서 공유 프레임과 타이밍을 처리하며 클립을 합칩니다. 이는 길이 제한 없는 단일 생성이 아니라 별개의 숏으로 구성한 시퀀스입니다.
끝 프레임과 해당 기획을 보관해 다음 숏이 의도한 시각적 상태에서 시작하도록 하세요. 합친 영상에서 피사체 외형, 카메라 방향과 클립 사이 전환을 포함한 연속성을 확인합니다.
제작 결과 보관 및 검토
생성 후 클립 전체를 검토하고 완성 출력을 보관하세요. 제작사 워크플로는 별도의 업스케일과 ProRes 또는 PNG 시퀀스 같은 제작용 내보내기 옵션도 제공합니다. 이는 추가 워크플로 옵션이며 네이티브 생성 크기는 나중에 업스케일한 결과와 구별됩니다.
Gen-4.5는 영화적 콘셉트, 움직이는 시각 아이디어, B-roll과 짧은 장면 개발에 사용할 수 있습니다. 프롬프트, 사용한 입력 이미지, 길이, 모드와 반환 클립을 함께 보관하세요. 동작 순서, 카메라 행동, 피사체 디테일, 불필요한 컷과 의도한 구도를 확인한 뒤 숏에서 필요한 부분을 수정합니다.
Ailoot Ultra · 동영상 POST /v1/videos runway/gen-4.5
runway/gen-4.5시작하기
Runway Gen-4.5는 장면 설명이나 움직임 지시가 포함된 이미지에서 영상을 만듭니다. 2–10초 클립, 명시적인 카메라 프롬프트 및 텍스트-비디오와 이미지-비디오 각각의 구도 선택으로 영화적 콘셉트, B-roll과 움직이는 시각 장면을 제작할 수 있습니다.
- 허용 입력
- 텍스트 · 이미지
- 결과
- 동영상
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 동영상 POST /v1/videos
- 입력
text,image- 출력
video- 출력 형식
- 원본 MP4 바이트(정규화·트랜스코딩 없음)
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 runway/gen-4.5 | 기본값— |
필드prompt | 유형string | 요건필수 | 값과 한도 | 기본값— |
필드duration | 유형integer | 요건필수 | 값과 한도 2, 3, 4, 5, 6, 7, 8, 9, 10 최솟값: 1 최댓값: 600 | 기본값— |
필드resolution | 유형string | 요건선택 사항 | 값과 한도 720p | 기본값— |
필드aspect_ratio | 유형string | 요건선택 사항 | 값과 한도 16:9, 9:16 | 기본값— |
필드generate_audio | 유형boolean | 요건선택 사항 | 값과 한도 false | 기본값— |
필드frame_images | 유형array | 요건선택 사항 | 값과 한도 최소 항목 수: 1 최대 항목 수: 1 입력 콘텐츠: 프레임 객체 배열입니다. 각 객체에는 type=image_url, url을 포함하는 image_url 및 frame_type이 있습니다. HTTPS 이미지 URL을 사용하고 frame_type을 first_frame으로 설정하세요. 각 프레임 역할은 최대 한 번만 나타날 수 있습니다. 정확한 키: type, image_url, frame_type 조건: 이 키는 각 프레임 객체를 설명합니다. image_url에는 url만 포함됩니다. 텍스트만 사용하는 요청에서는 frame_images를 생략하세요. | 기본값— |
필드input_references | 유형array | 요건선택 사항 | 값과 한도 | 기본값— |
필드size | 유형string | 요건선택 사항 | 값과 한도 1280x720, 720x1280 패턴: ^[1-9][0-9]*x[1-9][0-9]*$ | 기본값— |
필드seed | 유형integer | 요건선택 사항 | 값과 한도 최솟값: -9,223,372,036,854,775,808 최댓값: 9,223,372,036,854,775,807 | 기본값— |
필드callback_url | 유형string | 요건선택 사항 | 값과 한도 패턴: ^https:// | 기본값— |
필드session_id | 유형string | 요건선택 사항 | 값과 한도 | 기본값— |
필드trace | 유형object | 요건선택 사항 | 값과 한도 | 기본값— |
필드user | 유형string | 요건선택 사항 | 값과 한도 | 기본값— |
입력 자료 조합
텍스트로 동영상 생성 · 작성한 프롬프트입니다. · 필수: model, prompt, duration
prompt는 텍스트로, duration은 정수 단위 초로 제공하세요. 지원되는 해상도를 선택하고 화면 비율을 추가하거나 나열된 크기를 사용하세요.
model: 유형: string · runway/gen-4.5
prompt: 유형: string · 최대 UTF-8 바이트 수: 10,000 · 공백이 아닌 문자 필수: 예
이미지로 동영상 생성 · 작성한 프롬프트와 첫 프레임 이미지입니다. · 필수: model, prompt, duration, frame_images
frame_images는 배열입니다. 각 프레임 객체에는 type, image_url, frame_type이 있으며, image_url에는 url이 포함됩니다. type을 image_url로 설정하세요. first_frame을 사용하세요. 각 프레임 역할은 최대 한 번만 나타날 수 있습니다. 각 프레임에 공개 HTTPS 이미지 URL을 제공하세요. 지원되는 해상도를 선택하고 화면 비율을 추가하거나 나열된 크기를 사용하세요.
정확한 키: type, image_url, frame_type
model: 유형: string · runway/gen-4.5
prompt: 유형: string · 최대 UTF-8 바이트 수: 10,000 · 공백이 아닌 문자 필수: 예
메서드 매개변수와 수명 주기
| 매개변수 | 명세 |
|---|---|
매개변수content_type | 명세application/json |
매개변수required | 명세model, prompt, duration |
매개변수material_types | 명세text, image |
매개변수additional_properties | 명세false |
매개변수optional_controls | 명세resolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user |
수명 주기: submit_once_poll_original
GET /v1/videos/{public_id}
GET /v1/videos/{public_id}/content
요금
최종 요금 계산 방식
표시된 요율은 생성 전 비용을 예상하는 데 사용됩니다. 최종 청구액은 최초 생성에 기록된 비용으로 계산됩니다. 측정된 출력 길이와 예상 수량은 최종 청구 수량이 아닙니다.
요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.
- 빠른 모드
- 미지정 빠른 모드를 선택한 경우
- Flex 모드
- 미지정 flex 모드를 선택한 경우
- 최대 추론 수준
- 미지정 최대 추론 수준에 default 조정값을 적용하는 경우
비교용 예상 요금
설정별 가격
각 요금을 표시된 조건과 대조하세요. 서로 대체되는 설정 묶음마다 하나의 요금만 적용하세요.
| 설정 | 요금표 | 예측 수량 | 과금 단위 | 과금 조건 | 요금 |
|---|---|---|---|---|---|
| 설정기본 토큰 요금 | 요금표기본 요금 | 예측 수량— | 과금 단위— | 과금 조건— | 요금 입력 · 입력 토큰 · 비교 전용 추정치 — / 1K 토큰 출력 · 출력 토큰 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 읽기 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 쓰기 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 쓰기, 1시간 · 비교 전용 추정치 — / 1K 토큰 |
| 설정동영상 요금 | 요금표— | 예측 수량— | 과금 단위동영상 초당 | 과금 조건이 가격 키에는 추가 조건이 명시되어 있지 않습니다. | 요금 출력 · 동영상 가격 · 비교 전용 추정치 $0.24 동영상 초당 |
| 설정예상 생성 비용 | 요금표— | 예측 수량1회 생성 예상치 | 과금 단위— | 과금 조건— | 요금 출력 · 예상 생성 비용 · 비교 전용 추정치 $0.48 생성 전 추정치 이 예상 금액은 추가 요금이나 생성 완료 시 적용되는 고정 요금이 아닙니다. |
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
참조 요금 상세 정보
모델 수준의 참조 요금표는 메서드 선택, 견적 또는 요금을 변경하지 않습니다. 실제 과금에는 선택한 Ailoot 메서드 요금이 적용됩니다.
동영상 설정별 요금 참조
설정별 가격
| 설정 | 과금 조건 | 요금 |
|---|---|---|
| 설정동영상 요금 | 과금 조건이 가격 키에는 추가 조건이 명시되어 있지 않습니다. | 요금 출력 · 동영상 가격 $0.24 동영상 초당 표시된 구성의 공개 가격 참고값입니다. 최종 요금은 실제 청구된 구성을 따릅니다. |
요청 예제
Ailoot Ultra · 동영상
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"aspect_ratio":"16:9","duration":8,"model":"runway/gen-4.5","prompt":"A serene mountain landscape at sunset","resolution":"720p"}', encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
결과 수신 및 저장
Ailoot Ultra · 동영상
소유한 콘텐츠의 서명된 URL
GET /v1/videos/{public_id}GET /v1/videos/{public_id}/content
작업 상태 확인
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
기타 콘텐츠 조회
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
target=Path('owned-'+label+'.bin')
subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
완료된 결과 모두 보관
완료된 모든 동영상과 반환된 파일을 저장하고, 실제로 반환된 모든 자산 URL에서 가져오세요.
실제로 소유한 모든 출력과 함께 반환된 측정 메타데이터를 보존하세요.
원래 응답을 확인해야 할 경우
503 result_pending_check + 원래 id + X-Should-Retry:false; 원래 요청을 절대로 재전송하지 마세요.
응답 필드
| 필드 | 유형 | 의미 |
|---|---|---|
필드index | 유형integer | 의미출력 목록에서 이 동영상의 영부터 시작하는 위치입니다. |
필드content_url | 유형string | 의미완료된 이 동영상의 서명된 HTTPS 다운로드 URL입니다. |
필드sha256 | 유형string | null | 의미원본 동영상 바이트의 SHA-256 다이제스트입니다. 확인할 수 없으면 null입니다. |
필드size_bytes | 유형integer | null | 의미바이트 단위 원본 동영상 파일 크기입니다. 확인할 수 없으면 null입니다. |
필드duration_ms | 유형integer | null | 의미밀리초 단위로 측정한 동영상 길이입니다. 확인할 수 없으면 null입니다. |
필드width | 유형integer | null | 의미픽셀 단위 동영상 너비입니다. 확인할 수 없으면 null입니다. |
필드height | 유형integer | null | 의미픽셀 단위 동영상 높이입니다. 확인할 수 없으면 null입니다. |
필드video_codec | 유형string | null | 의미동영상 코덱 식별자입니다. 기록되지 않았으면 null입니다. |
필드has_audio | 유형boolean | null | 의미동영상에 오디오 트랙이 포함되어 있는지 나타냅니다. 측정하지 않았으면 null입니다. |
필드audio_codec | 유형string | null | 의미오디오 코덱 식별자입니다. 식별자가 기록되지 않았으면 null입니다. |
오류와 다음 단계
| 응답 | 조건 | 다음 단계 |
|---|---|---|
응답404 · not_found_error | 조건동영상에 접근할 수 없거나 해당 동영상 ID를 찾지 못했습니다. | 다음 단계동영상 접근 권한을 확인하세요. 기존 동영상에는 원래 공개 ID와 동일한 API 키를 사용하세요. |
응답401 · authentication_error | 조건API 키가 인증된 계정과 일치하지 않습니다. | 다음 단계제출 전에 API 키와 계정 접근 권한을 확인하세요. |
응답400 · invalid_request_error | 조건요청을 읽을 수 없거나 다운로드 인덱스가 유효하지 않습니다. | 다음 단계요청 본문을 수정하세요. 다운로드할 때는 원래 작업에서 반환된 출력 인덱스를 선택하세요. |
응답422 · price_unavailable | 조건선택한 동영상 설정의 요금을 계산할 수 없습니다. | 다음 단계지원되는 동영상 설정을 선택하고 필수 옵션을 모두 지정한 뒤 수정된 요청을 제출하세요. |
응답422 · invalid_request_error | 조건동영상 입력 또는 원래 이어 만들기 작업이 유효하지 않습니다. | 다음 단계유효한 HTTPS 입력을 사용하세요. 이어 만들기에는 동일한 API 키로 완료된 원본의 공개 동영상 ID를 사용하세요. |
응답402 · billing_error | 조건사용 가능한 잔액 또는 한도로는 예약할 수 없습니다. | 다음 단계새 요청을 전송하기 전에 사용 가능한 잔액과 한도를 확인하세요. |
응답503 · server_error | 조건동영상 검증, 저장소 또는 서비스 접근을 일시적으로 사용할 수 없습니다. | 다음 단계서비스를 사용할 수 있을 때까지 기다리세요. 이미 동영상 ID가 있으면 새로 생성하지 말고 해당 원래 작업을 확인하세요. |
응답503 · result_pending_check | 조건원래 동영상 결과와 청구액을 확인해야 합니다. | 다음 단계반환된 동영상 ID를 보존하고 해당 작업을 확인하세요. 확인 중에는 대체 생성 요청을 전송하지 마세요. |
응답503 · owned_result_unavailable | 조건기존 동영상 다운로드를 일시적으로 사용할 수 없습니다. | 다음 단계나중에 동일한 동영상 작업을 확인하고 기존 출력을 다운로드하세요. 새로 생성하면 별도의 작업이 만들어집니다. |
응답409 · video_not_ready | 조건동영상 콘텐츠가 게시되지 않았습니다. | 다음 단계원래 작업 상태를 확인하세요. completed를 보고하면 다운로드하고, failed를 보고하면 청구 확인 안내를 따르세요. |
별칭
모델 별칭
Ailoot Ultra runway/gen-4.5
메서드 경로 별칭
위에 표시된 메서드 경로를 사용하세요.
관련 호출용 ID
FAQ · Runway: Gen-4.5
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/videos·runway/gen-4.5:text,image→video- 요청은 어떤 필드를 사용하나요?
POST /v1/videos·runway/gen-4.5:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,size,seed,callback_url,session_id,trace,user- 어떤 제한이 적용되나요?
POST /v1/videos·runway/gen-4.5:duration.minimum:1;duration.maximum:600;frame_images.max_items:1;frame_images.min_items:1;seed.minimum:-9223372036854775808;seed.maximum:9223372036854775807