Loading...
Loading...
Animate a still image into video with Gemini Omni 1.1 Flash. The source image becomes the first frame and drives the generated motion.
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/image-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)재생 시간 및 해상도별 예상 생성 비용입니다. 실행한 만큼만 요금이 청구됩니다.
Gemini Omni 1.1 Flash는 2026년 8월 27일 Google에서 정식 출시에 도달했습니다. Veo가 아니라 Gemini 계열에 속하며, 저희는 그 image-to-video capability를 google/omni-1.1-flash/image-to-video로 노출합니다. 청구는 완성된 영상 1초 단위입니다. 정가 $0.15 대비 720p 기준 초당 $0.09이고, 상시 40% 할인이 네 capability 전부에 걸려 있기 때문입니다. 기본값인 8초 클립은 $0.72입니다. 필수 필드는 prompt와 image_url입니다.
첫 호출 전에 그 스틸이 무엇인지부터 이해하십시오. 계약서입니다. 첫 프레임을 정하고, 그와 함께 프레이밍과 렌즈, 팔레트, 피사체, 그리고 이미 사진 안에 있는 모든 결함까지 정합니다. 여러분의 prompt가 받아 가는 것은 그 뒤의 몇 초일 뿐, 그 앞은 아무것도 아닙니다.
여기서 나오는 심심한 결과는 거의 전부 실수 하나로 되짚어집니다. 변화가 아니라 사진을 묘사한 prompt입니다. 무엇이 움직이는지 이름을 붙이십시오. 카메라가 어디로 가는지 이름을 붙이십시오.
| 클립 길이 | 720p 가격 |
|---|---|
| 4초 | $0.36 |
| 6초 | $0.54 |
| 8초 (기본값) | $0.72 |
| 10초 | $0.90 |
해상도가 그 요율을 배로 늘립니다. 360p는 0.33×(초당 $0.0297), 1080p는 1.5×($0.135), 4K는 2×($0.18)입니다. 360p 4초 패스는 $0.1188이며, 여러분의 스틸이 애초에 움직이기는 하는지 알아보는 가장 싼 방법입니다.
프레임 둘을 주고 가운데를 모델에 맡기고 싶으십니까? Omni 1.1 Flash start-end-frame-to-video입니다. 한 피사체를 여러 각도에서 찍어 두고 컷 리스트 전체에서 흔들리지 않게 하고 싶으십니까? Omni 1.1 Flash reference-to-video입니다. 소스 자료가 아예 없으십니까? 가격 논의 전체를 싣고 있는 Omni 1.1 Flash text-to-video입니다.
해석이 아니라 연장으로 이 작업을 다루십시오. 모델은 여러분의 스틸을 첫 프레임으로 받고, 그 뒤로 1초에 스물네 장씩 그럴듯한 프레임을 지어내되 전부 여러분이 건네신 것에 닻을 내립니다. 그 닻이 곧 값어치입니다. 승인이 끝난 키 비주얼은 아무도 다시 돌리지 않았기 때문에 브랜드에 남아 있습니다.
동시에 제약이기도 합니다. 어수선한 프레임은 모든 것이 움직이는 동안 일관되게 유지해야 할 사물을 모델에 더 많이 안기고, 일관성이야말로 이 세대의 약점입니다. Google의 모델 카드가 그렇게 적고 있습니다. "편집 전반에 걸쳐 완전한 일관성을 유지하는 것, 복잡한 움직임이 있는 장면을 생성하는 것, 완벽하게 정확한 텍스트를 렌더링하는 것은 여전히 과제로 남아 있습니다." 간판은 번집니다. 군중은 얼굴이 뒤섞입니다. 깨끗한 배경 위의 피사체 하나가 10초를 버티는 편이, 어수선함이 4초를 버티는 것보다 낫습니다.
크롭은 직접 맞추십시오. 출력은 16:9 또는 9:16으로 나옵니다. 정사각형도, 4:5도, 울트라와이드도 없습니다. 4:5 세로 사진을 16:9 job에 밀어 넣으시면 무언가가 양보합니다. 모델이 아무도 찍지 않은 재료로 양옆을 채우거나, 구도가 맞춰지느라 흘러갑니다. 어느 쪽이든 초당 $0.09를 지불하십니다. 결정이 아직 공짜일 때 먼저 크롭하십시오.
업스케일로 4K에 올라타지 마십시오. 출력이 정직하게 담을 수 있는 것의 상한은 소스 해상도가 정합니다. 가로 640픽셀짜리 썸네일을 1080p로 렌더링하시면 같은 디테일의 더 큰 파일이 1.5배 요율로 나올 뿐입니다.
움직임이 갈 곳을 남겨 두십시오. 피사체 위의 헤드룸, 차 앞의 도로. 바짝 잘라 두시면 무엇도 프레임 밖으로 밀려나지 않고는 움직일 수 없습니다. 클립이 흔들리는 사진처럼 읽히는 흔한 이유입니다.
대시보드에서 key를 발급하시고 서버 쪽에 두십시오. 저희 파이프라인이 image_url을 직접 가져오므로 공개 인터넷에서 닿을 수 있어야 합니다. 여러분의 CDN이나 오브젝트 스토리지의 HTTPS 주소여야 하고, 로컬 경로나 localhost, 로그인 뒤에 있는 URL은 안 됩니다. 서명된 URL은 유효 기간을 넉넉히 두시면 괜찮습니다. job이 4분쯤 걸리므로 60초짜리 링크는 그보다 먼저 죽습니다.
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/image-to-video",
"input": {
"prompt": "주전자 주둥이에서 김이 오르기 시작해 오른쪽으로 흘러간다. 카메라가 손잡이 쪽으로 천천히 들어간다. 주방의 웅웅거림, 주전자가 째깍이기 시작하는 소리. 프레임 안의 다른 것은 움직이지 않는다.",
"image_url": "https://cdn.example.com/stills/copper-kettle-16x9.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "8"
}
}'
job ID가 돌아옵니다. polling하시거나, webhookUrl을 저희에게 건네고 루프를 건너뛰십시오.
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
const start = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/omni-1.1-flash/image-to-video",
input: {
prompt:
"그녀가 카메라 쪽으로 돌아서고 스카프가 바람에 들린다. 고정. 갈매기 소리, 멀리서 부서지는 파도.",
image_url: "https://cdn.example.com/stills/portrait-9x16.png",
aspect_ratio: "9:16",
resolution: "360p",
duration: "10",
},
}),
}).then((r) => r.json());
const { jobId } = start.data;
for (let tick = 0; tick < 360; tick++) {
const job = await fetch(`https://api.e2x.ai/v1/jobs/${jobId}`, { headers })
.then((r) => r.json());
if (job.data.status === "completed") {
await archive(job.data.outputs[0].url); // 영구적인 곳으로 복사합니다
break;
}
if (["failed", "cancelled"].includes(job.data.status)) {
throw new Error(job.data.error?.message ?? job.data.status);
}
await new Promise((r) => setTimeout(r, 5000));
}
job은 pending을 거쳐 processing, 그다음 completed나 failed 또는 cancelled를 보고합니다. schema에서 사람들을 무는 지점이 둘입니다. duration과 resolution은 문자열이므로 10이 아니라 "10"을 보내셔야 합니다. 그리고 오디오 토글은 존재하지 않습니다. 소리가 그림과 함께 생성되고 여러분의 prompt에서 조종되기 때문입니다. 필드 정의는 기계 판독용 명세에서 최신으로 유지됩니다.
바뀌는 것만 쓰십시오. 피사체와 빛과 구도는 파일과 함께 도착했습니다. 그것을 되풀이하시면 모델이 움직임에 쓸 수 있었을 주의를 대신 쓰게 됩니다. 아무 움직임도 말씀하지 않으시면 정가로 미세하게 흔들리는 정지 화면을 받으십니다.
움직임 하나에 이름을. 김이 오른다. 문이 안쪽으로 열린다. 머리카락이 들린다. 중요한 동작 하나를 고르시고 나머지는 가만히 두십시오. 소리 내어 그렇게 적어 두는 것이 생각보다 많이 도움이 됩니다.
카메라 지시 하나. "느린 푸시인", "고정", "핸드헬드 왼쪽 드리프트". 담백한 문장이 촬영 기법을 늘어놓은 한 문단을 이기고, 말하지 않은 카메라는 모델의 결정이 됩니다.
그 아래 깔릴 소리. 룸 톤, 교통 소음, 구체적인 효과음 하나. 침묵은 기본값이 아니며, 지정하지 않은 믹스는 여러분 대신 지어집니다. prompt는 50,000자까지 들어가므로 길이가 한계였던 적은 없습니다. 한계는 정확도입니다. 저희 Gemini Omni prompting 가이드가 문장 다듬기를 더 깊이 다룹니다.
청구서에서 발견하시기보다 저희에게서 들으십시오. Veo 3.1 Fast image-to-video는 바로 이 플랫폼에서 초당 $0.01에 돌아갑니다. 이 페이지의 endpoint보다 아홉 배 아래입니다.
| Endpoint | 8초 클립 | 이럴 때 손을 뻗으십시오 |
|---|---|---|
| Veo 3.1 Fast image-to-video | $0.08 | 스틸 하나, 클립 하나, 뒤에 걸린 것이 없을 때 |
| Omni 1.1 Flash image-to-video | $0.72 | 10초나 360p 초안 패스가 필요하거나, 이 컷이 다른 컷들 옆에 놓여야 할 때 |
| Veo 3.1 Fast text-to-video | $0.08 | 그 스틸이 $0.64어치 일을 하고 있지 않을 때 |
가격과 제품 조건은 시간이 지나면서 변경될 수 있습니다. 구매를 결정하기 전에 각 프로바이더의 현재 가격을 확인하시기 바랍니다. Google의 Batch 또는 Flex 가격은 스케줄링, 가용성, 처리 조건이 다르기 때문에 표준 온디맨드 API request와 직접 동등하지 않으며, 따라서 이 비교에서는 제외했습니다. 이는 특정 범위에 한정된 비교이며, E2X가 모든 구성에서 세계에서 가장 저렴하다는 주장은 아닙니다.
진지하게 받아들이십시오. 사진 한 장을 한 번 움직이게 하는 일은 Veo에 속합니다. 여기서의 프리미엄이 값을 하는 경우는 셋입니다. 여러분의 편집에 10초가 필요한데 Veo가 8초에서 멈출 때, 초당 $0.0297으로 초안을 잡고 싶으실 때, 또는 이 클립이 한 세트에 속해야 할 때입니다. 스틸을 움직이게 하는 다른 방법들은 image-to-video 카테고리에, 그리고 모델 카탈로그와 나란히 있습니다.
출력은 24 fps, 생성 한 번에 3초에서 10초이고, 사슬 안의 누구도 끌 수 없는 SynthID watermark가 모든 프레임에 실립니다. 결과 URL은 임시입니다. 완료 핸들러 안에서 파일을 보관하십시오. 내일 가져올 수 없는 링크는 두 번 값을 치르는 렌더입니다.
사진을 업로드하시기 때문에 특별히 걸리는 규칙이 하나 있습니다. EEA와 스위스, 영국에서는 Google이 미성년자가 나오는 소스 스틸을 차단하고, 알아볼 수 있는 일부 인물도 마찬가지입니다. 그리고 Google이 평가한 prompt 언어는 영어뿐입니다. 저희가 여전히 운영 중인 직전 모델에서 그 밖에 무엇이 바뀌었는지는 Gemini Omni 1.1 Flash 릴리스 노트에 있으며, 그 직전 모델은 2026년 9월 30일에 업스트림에서 지원이 종료됩니다.
9센트에 720p 1초를 사십니다. 기본 클립이 8초이므로 $0.72이고, 상한인 10초는 $0.90입니다. 그 요율은 정가 $0.15에서 40% 할인된 값이며 2026년 8월 28일에 저희 라이브 카탈로그에서 읽었습니다. 해상도가 배수를 움직입니다. 360p 0.33×, 1080p 1.5×, 4K 2×입니다.
스틸 한 장짜리 작업 대부분에는 Veo입니다. 초당 $0.09 대비 $0.01, 8초로 치면 $0.72 대비 $0.08입니다. 10초가 필요하실 때, 360p 초안 패스가 전체적으로 돈을 아껴 줄 때, 또는 같은 피사체로 만든 다른 클립들과 맞아야 할 때 돌아오십시오.
16:9와 9:16뿐입니다. 제출 전에 소스를 목표 비율로 크롭하십시오. 그러지 않으면 모델이 그 어긋남을 알아서 조정하고, 승인하신 구도의 일부를 잃으실 수 있습니다.
저희 파이프라인이 공개 HTTPS로 닿을 수 있는 곳이면 어디든 됩니다. CDN, S3나 GCS 버킷, 여러분의 웹 서버 모두 좋습니다. 로컬 경로와 localhost, 인증 뒤에 있는 것은 실패합니다. 서명된 URL은 만료 시각이 job에 걸리는 4분을 넉넉히 넘길 때 작동합니다.
대개는 prompt가 이미지를 연출하는 대신 다시 묘사하고 있기 때문입니다. 스틸이 피사체와 프레이밍을 이미 고정해 두었는데 움직임도 카메라 무브도 말씀하지 않으시면 모델에게는 작용할 대상이 없습니다. 움직임 하나에 카메라 지시 하나로 다시 쓰십시오.
네, 그림과 함께 네이티브로 만들어지고 그림에 동기화됩니다. has_sound 필드도 무음 모드도 없으므로 앰비언스를 prompt에 적어 두십시오. 오디오는 나중에 편집할 수 없습니다. 변경은 곧 또 한 번의 생성을 뜻합니다.
있습니다. Google은 EEA와 스위스, 영국 사용자에 대해 미성년자가 나오는 소스 스틸과 알아볼 수 있는 특정 인물을 차단합니다. Google의 정책이고 모든 프로바이더에서 동일하게 집행됩니다. 출력에는 보이지 않는 SynthID watermark도 실리므로 라벨이 붙은 AI 자산을 전제로 계획하십시오.