Loading...
Loading...
Generate video from up to seven reference images with Gemini Omni 1.1 Flash. The reference images carry character and style consistency into the result.
No output yet
Run the model to see generated results.
import requests
result = requests.post(
'https://api.e2x.ai/v1/jobs/submit',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
},
json={
'model': 'google/omni-1.1-flash/reference-to-video',
'input': {}
}
)import time
job_id = result.json()['jobId']
while True:
response = requests.get(
f'https://api.e2x.ai/v1/jobs/{'{job_id}'}',
headers={'Authorization': f'Bearer {'{API_KEY}'}'}
)
data = response.json()['data']
if data['status'] == 'completed':
print('Done!', data['outputs'][0]['url'])
break
elif data['status'] == 'failed':
raise Exception(f"Job failed: {'{'}data['error']['message']{'}'}")
time.sleep(2)재생 시간 및 해상도별 예상 생성 비용입니다. 실행한 만큼만 요금이 청구됩니다.
캠페인은 결코 클립 하나가 아닙니다. 컷 리스트입니다. 열한 줄, 모든 줄에 같은 배송 가방, 그리고 여섯 번째 줄쯤에서 그 가방이 회색으로 변해 버리는 오후를 감당할 예산은 없습니다. Reference-to-video는 그 가방을 같은 가방으로 붙들어 둡니다. 저희는 이것을 google/omni-1.1-flash/reference-to-video로 운영하며 720p 출력 1초당 $0.09를 청구하므로, 기본값인 8초 클립은 오디오를 포함해 $0.72입니다.
일을 하는 필드는 image_urls입니다. 저희 schema에서 minItems: 1, maxItems: 7인 배열입니다. 이 페이지가 존재하는 이유가 바로 그 천장입니다. 슬롯 일곱 개면 피사체를 충분한 각도에서 보여 주게 되고, 모델은 여러분이 주지 않은 각도를 지어내기를 멈춥니다.
소재가 다르면 문도 다릅니다. 스틸 한 장은 Omni 1.1 Flash image-to-video, 사이가 비어 있는 숏의 양 끝은 start-end-frame-to-video, 자료가 하나도 없는 브리프는 가격표 전체를 싣고 있는 Omni 1.1 Flash text-to-video입니다.
2026년 8월 28일 라이브 카탈로그에서 읽은 저희 요율입니다.
| 클립 길이 | 720p 가격 |
|---|---|
| 4초 | $0.36 |
| 6초 | $0.54 |
| 8초 (기본값) | $0.72 |
| 10초 | $0.90 |
정가는 초당 $0.15이고 상시 40% 할인이 그것을 $0.09로 내립니다. 해상도가 거기서부터 배수를 걸어 360p는 $0.0297, 4K는 $0.18이므로 4K 10초 렌더링은 $1.80입니다. 그리고 여러분이 무엇을 어떻게 지으실지 결정하는 수치가 하나 남았습니다. 참조를 한 장 붙이시든 일곱 장 붙이시든 위의 어떤 값도 움직이지 않습니다. duration과 resolution이 공식의 전부입니다. 참조는 무게가 공짜입니다.
가격과 제품 조건은 시간이 지나면서 변경될 수 있습니다. 구매를 결정하기 전에 각 프로바이더의 현재 가격을 확인하시기 바랍니다. Google의 Batch 또는 Flex 가격은 스케줄링, 가용성, 처리 조건이 다르기 때문에 표준 온디맨드 API request와 직접 동등하지 않으며, 따라서 이 비교에서는 제외했습니다. 이는 특정 범위에 한정된 비교이며, E2X가 모든 구성에서 세계에서 가장 저렴하다는 주장은 아닙니다.
API가 배열의 모든 URL을 가져오므로, 저희 워커가 평범한 HTTPS로 닿을 수 있는 곳에 두셔야 합니다. 공개 버킷이나 만료되지 않은 서명 링크여야 하고, 로그인 뒤에 있는 것은 안 됩니다.
일곱은 문서 페이지에 적힌 한 줄이 아니라 검증되는 최대치입니다. 여덟 번째를 보내시면 GPU가 손도 대기 전에 request가 거부됩니다. 제한처럼 들리지만 예산으로 다루십시오. 일곱 장을 온전히 벌어들이는 세트는 사분의 삼 측면, 옆모습, 뒷모습, 브랜드를 실어 나르는 디테일 하나, 클립이 잡을 거리에서 찍은 것 하나, 중립적인 빛에서 찍은 것 하나로 갑니다. 히어로 각도를 중복해 넣으면 슬롯 하나를 버리시는 것입니다. 주지 않으신 각도는 추측됩니다.
직전 세대에서 달라진 지점이 그것입니다. 저희 Gemini Omni Flash reference-to-video endpoint는 같은 발상을 초당 $0.075에 돌리지만 문서화된 천장이 아예 없습니다. Google이 한 번도 공개하지 않았기에 저희도 책임질 수 없는 숫자를 적기를 거절했습니다. 20% 싼 쪽은 저쪽이고, 이유도 보입니다. 검증된 일곱 칸 상한이 없고, 돈을 쓰기 전에 참조 세트를 예행해볼 360p 등급도 없습니다. Google은 그 모델을 2026년 9월 30일에 종료합니다. 아직 그쪽을 가리키는 파이프라인이 있다면, 마이그레이션은 slug 교체 한 번, 초당 비용은 5분의 1 올라가고, 여기로 내려앉습니다.
배열은 한 번만 만드십시오. 일곱 개의 URL을 컷 리스트 옆에 저장해 두시고, 모든 job에 그 동일한 배열을 그대로 보내십시오. 세트가 고정항이고 prompt가 변수입니다.
그 뒤집기가 곧 워크플로입니다. 참조가 피사체를 실어 나르기 때문에, 각 prompt는 그것이 어떻게 생겼는지를 묘사하기를 멈추고 그것에 무슨 일이 일어나는지를 묘사하기 시작합니다. 카메라, 무엇이 움직이는지, 빛, 소리. prompt는 짧아지고 클립은 더 일관되어집니다. 사람들이 예상하는 맞교환이 아닙니다. 한 숏의 두 가지 표현을 비교하실 때는 seed를 고정해 두십시오. 그래야 고쳐 쓴 문장이 도운 것인지 주사위가 도운 것인지 구분하실 수 있습니다.
job당 240초를 잡으시고 리스트를 동시에 펼치십시오. 그다음 Google의 모델 카드가 인정하는 바에 맞춰 눈금을 유지하십시오.
"편집 전반에 걸쳐 완전한 일관성을 유지하는 것, 복잡한 움직임이 있는 장면을 생성하는 것, 완벽하게 정확한 텍스트를 렌더링하는 것은 여전히 과제로 남아 있습니다."
참조 일곱 장은 흔들림을 좁힙니다. 없애지는 못합니다.
필수 필드는 둘입니다. prompt와 image_urls. key는 서버 쪽에 두시고 job을 전송하십시오.
curl -X POST https://api.e2x.ai/v1/jobs/submit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/omni-1.1-flash/reference-to-video",
"input": {
"prompt": "이미지 1은 접힌 자전거, 이미지 2는 힌지, 이미지 3은 라이더. 해 뜰 무렵의 자갈 안뜰. 라이더가 자전거를 펴고 프레임을 딱 잠근다. 고정 와이드. 새소리, 멀리서 지나는 전차.",
"image_urls": [
"https://example.com/bike-folded.jpg",
"https://example.com/bike-hinge.jpg",
"https://example.com/rider.jpg"
],
"duration": "8",
"aspect_ratio": "16:9"
}
}'
data.jobId가 돌아옵니다. 렌더링은 몇 분이 걸리니 천천히 polling하시거나, webhookUrl을 넘기고 polling을 건너뛰십시오.
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
// 배열 하나를 모든 prompt가 재사용합니다.
const image_urls = [
"https://example.com/fox-puppet-front.jpg",
"https://example.com/fox-puppet-muzzle.jpg",
"https://example.com/fox-puppet-profile.jpg",
];
const submitted = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/omni-1.1-flash/reference-to-video",
input: {
prompt:
"이미지 1은 여우 인형이다. 화면 왼쪽에서 몸을 기울여 들어오며 고개를 갸웃한다. 느린 달리 인. 종이 부스럭거리는 소리, 부드러운 룸 톤.",
image_urls,
duration: "10",
aspect_ratio: "9:16",
resolution: "1080p",
seed: 70413,
},
}),
}).then((r) => r.json());
const { jobId } = submitted.data;
while (true) {
const job = await fetch(`https://api.e2x.ai/v1/jobs/${jobId}`, { headers })
.then((r) => r.json());
if (job.data.status === "completed") { console.log(job.data.outputs[0].url); break; }
if (job.data.status === "failed") throw new Error(job.data.error?.message);
await new Promise((r) => setTimeout(r, 5000));
}
상태는 pending → processing → completed로 흐르거나 failed / cancelled에 자리를 잡습니다. 함정이 하나 있습니다. duration과 resolution은 문자열입니다. 10이 아니라 "10"입니다. schema와 가격은 기계 판독용 명세에 있습니다.
Veo 3.1 Fast reference-to-video는 바로 이 플랫폼에서 초당 $0.01입니다. 아홉 배 아래입니다. 거기서 8초가 $0.08, 여기서는 $0.72이고, 저희는 이 사실을 표 밑에 묻어 두지 않겠습니다.
그러니 기본 답은 Veo입니다. 컷 리스트에 참조 세 장과 8초, 720p면 충분하다면 다른 무언가를 호출하시는 것은 아무것도 아닌 데 돈을 쓰시는 일입니다.
그 답을 뒤집는 것이 넷입니다. Veo가 받는 것보다 많은 참조가 필요하실 때입니다. Veo는 세 장에서 멈추고 저희는 일곱 장이며, 피사체를 덮는 것과 표본만 뜨는 것의 차이입니다. 10초가 필요하실 때입니다. Veo는 주지 않습니다. 4K가 필요하실 때입니다. 또는 360p 티어를 원하실 때입니다. 거기서는 초안 스무 번이 완성 클립 하나보다 싸고, 승자는 같은 배열과 같은 seed에서 다시 렌더링됩니다. 그 넷 밖이라면 싼 쪽으로 가십시오. 더 많은 선택지는 reference-to-video 카테고리에, 나머지는 모델 카탈로그에 있습니다.
여러분의 참조는 실재하는 물건, 때로는 실재하는 사람의 업로드입니다. Google은 영국과 스위스, 유럽경제지역 사용자에 대해 미성년자나 알아볼 수 있는 특정 인물이 담긴 이미지 업로드를 차단합니다. 여기서 그것은 각주가 아니라 캐스팅 제약입니다. 새벽 두 시의 실패한 job이 아니라 브리프에 적어 두십시오.
모든 프레임에 SynthID가 실립니다. Google의 보이지 않는 watermark가 모든 출력에 실리고 저희를 포함해 어떤 프로바이더도 끌 수 없습니다. 라벨이 붙은 AI 자산을 금지하는 계약이 있다면 통합 전에 정리하십시오.
소리는 말에서 나옵니다. 오디오는 그림과 함께 생성되고 같은 prompt에서 조종됩니다. has_sound 토글도, 오디오 참조 업로드도 없습니다.
결과 URL은 만료됩니다. outputs[0].url을 읽는 그 핸들러 안에서 각 출력물을 여러분의 스토리지로 복사하십시오. 다시 렌더링하시는 캠페인은 값을 두 번 치른 캠페인입니다.
완전히 지원되는 prompt 언어는 영어뿐이며, 이 모델은 Google이 2026년 4월 Vertex AI 자리에 놓은 Gemini Enterprise Agent Platform에 올라 있습니다. 배경은 저희 릴리스 정리 글에 있습니다.
이미지 일곱 장을 붙이시면 모델은 무엇이 존재하는지 알게 됩니다. 무엇이 주인공인지는 알지 못합니다. 그것은 문장으로 하십니다. 이미지 1은 주전자, 이미지 2는 법랑 뚜껑, 이미지 3은 주방처럼요. 번호를 붙여, 첫 줄에, 어떤 연출 지시보다 먼저.
그다음에는 피사체 묘사를 그만두십시오. 이미 붙여 두신 것의 색과 형태를 다시 규정하는 prompt는 여러분 자신의 참조와 다투는 것이고, 모델은 그 차이를 반씩 나눠 가집니다. 그 단어들은 배열이 담을 수 없는 것에 쓰십시오. 카메라, 무브 하나, 빛, 앰비언스. 각 prompt는 끊기지 않는 한 컷으로 유지하십시오. 장면 셋짜리 서사를 요청하시면 뭉개짐이 돌아옵니다. 저희 Gemini Omni prompting 가이드가 숏 어휘를 더 깊이 다룹니다.
일곱 장이고, 이 상한은 짐작이 아니라 공개된 값입니다. image_urls가 minItems: 1과 maxItems: 7로 검증되므로 여덟 번째 항목은 제출 시점에 실패합니다. 직전 모델에는 문서화된 천장이 없었습니다. 실무에서 가장 큰 차이가 그것입니다.
아닙니다. 저희는 완성된 영상 1초 단위로 해상도를 곱해 청구하며, 참조 개수는 그 계산에 들어가지 않습니다. 참조가 한 장이든 일곱 장이든 720p 8초 클립은 $0.72입니다. 지렛대는 길이와 해상도뿐입니다.
prompt 안에서 번호를 매기십시오. 어느 이미지가 제품이고, 어느 것이 디테일이고, 어느 것이 환경인지 적으신 다음 동작을 묘사하십시오. image_urls는 여러분의 문장이 역할을 배정하기 전까지는 밋밋한 목록일 뿐입니다.
그것이 의도된 모양입니다. 배열을 한 번 저장해 두시고 모든 prompt에 그대로 보내시면서 연출만 바꾸십시오. seed를 고정해 두시면 클립들이 서로 붙을 만큼 조명이 안정적으로 유지됩니다.
초당 $0.01이므로 거의 언제나입니다. 동등한 request에서 Veo 3.1 Fast가 아홉 배 쌉니다. 참조 세 장으로는 커버가 모자랄 때, 편집에 10초가 필요할 때, 납품물이 4K일 때, 또는 360p 초안 루프를 쓰실 때 이쪽으로 옮기십시오.
360p, 720p, 1080p, 4K를 16:9 또는 9:16으로, 4초, 6초, 8초, 10초 중에서, 언제나 24 fps로 요청하실 수 있습니다. 위쪽 두 해상도는 네이티브 렌더링이 아니라 업스케일이므로 선명도는 여러분의 푸티지로 직접 판단하십시오.
Google이 그날 gemini-omni-flash-preview의 지원을 종료하고, 그 가중치를 운영하는 모든 프로바이더가 같은 날 멈춥니다. job을 이쪽으로 돌리십시오. request 모양은 같고 참조 천장은 문서화되어 있습니다. 기존 reference-to-video 페이지는 마이그레이션 참고용으로 남아 있습니다.