Loading...
Loading...
더 빠르고 저렴한 Veo 3.1 등급. 텍스트·이미지·참조 이미지 기반 영상 생성과 시작·끝 프레임 전환을 지원합니다.
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/veo-3.1-fast/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)재생 시간 및 해상도별 예상 생성 비용입니다. 실행한 만큼만 요금이 청구됩니다.
이 endpoint에 스틸 한 장을 건네시면 그것이 움직이고 소리가 입혀진 샷의 첫 프레임이 됩니다. 저희는 Google의 Veo 3.1 Fast를 google/veo-3.1-fast/image-to-video로 운영하며 출력 1초 단위로 청구합니다. 초당 $0.01이고, 오디오 트랙이 켜져 있으면 ×1.5입니다. 그래서 소리가 있는 8초 720p 클립은 $0.12입니다. 이미지 하나에 prompt 하나, 참조를 씨름할 일은 없습니다.
작업할 시작 이미지가 없으신가요? 그렇다면 Veo 3.1 Fast text-to-video가 여러분의 endpoint입니다. 같은 모델, 같은 가격, prompt만 있으면 되고, 4초나 6초로 내려가실 수도 있습니다. 반대로 이미지가 여럿 있고 요점이 여러 컷에 걸쳐 한 캐릭터를 일관되게 유지하는 것이라면 Veo 3.1 Fast reference-to-video로 가십시오.
이 모델을 영상 단위로 파는 곳은 없습니다. Google도, fal.ai도, Replicate도, 저희도 출력을 1초씩 계량합니다. 그래서 공정한 비교는 구성을 고정해야 합니다. 2026년 8월 26일에 마지막으로 확인한 8초, 720p, 오디오 켬 기준입니다.
| API 프로바이더 | 과금 방식 | 요율 (720p, 오디오 켬) | 8초 클립 | 저희 대비 |
|---|---|---|---|---|
| E2X (현재) | 초당 | $0.01/s ×1.5 오디오 | $0.12 | — |
| Google Gemini API | 초당 | $0.10/s | $0.80 | 저희 가격의 6.7배 |
| fal.ai | 초당 | $0.15/s | $1.20 | 저희 가격의 10배 |
| Replicate | 초당 | $0.15/s | $1.20 | 저희 가격의 10배 |
| E2X 정가 (할인 전) | 초당 | $0.10/s ×1.5 | $1.20 | 저희의 할인 전 요율 |
맨 아랫줄에 잠시 머무르십시오. 저희 할인 전 정가는 8초 클립에 $1.20으로, fal.ai와 Replicate가 받는 것과 똑같은 수치입니다. 지금 내시는 $0.12는 그 10분의 1이고, 그러고도 Google 자사 API보다 6.7배 낮습니다.
해상도가 청구서를 때리는 방식은 어디서 사시느냐에 따라 다릅니다. 720p에서 1080p로 올리는 것은 fal.ai나 Replicate에서 추가 비용이 없지만, Google은 더 높은 초당 요율을 받습니다. 저희도 해상도를 배수로 다루므로, 1080p 실행을 계획하시기 전에 이 모델의 llms.txt에서 현재 수치를 읽어 보십시오.
가격과 제품 조건은 시간이 지나면서 변경될 수 있습니다. 구매를 결정하기 전에 각 프로바이더의 현재 가격을 확인하시기 바랍니다. Google의 Batch 또는 Flex 가격은 스케줄링, 가용성, 처리 조건이 다르기 때문에 표준 온디맨드 API request와 직접 동등하지 않으며, 따라서 이 비교에서는 제외했습니다. 이는 특정 범위에 한정된 비교이며, E2X가 모든 구성에서 세계에서 가장 저렴하다는 주장은 아닙니다.
여러분의 이미지가 첫 프레임을 고정합니다. 그 뒤의 모든 것은 생성됩니다. 이 심상을 붙들고 계십시오. 강점과 실패 양식을 함께 설명해 주기 때문입니다.
강점은 이렇습니다. 구성과 팔레트, 의상, 세트가 이미 정해져 있습니다. 클라이언트가 이미 승인한 제품 컷을 산문으로 재현해 보려고 도박을 걸지 않으셔도 됩니다. 스틸을 먹이고, 움직임을 묘사하고, 그 스틸이 있던 자리에서 정확히 시작하는 클립을 받으십시오.
실패 양식은 이렇습니다. 클립이 그 프레임에서 멀어질수록 모델은 더 즉흥적으로 갑니다. 8초 안에 180도 궤도 이동을 요청하시면 피사체의 반대편은 창작입니다. 느린 푸시인과 고개 돌림을 요청하시면 버텨 냅니다.
오디오는 덤으로 따라옵니다. Google이 네이티브로 생성하고 그들의 API에는 이를 비활성화하는 스위치가 없습니다. 입에 맞춘 대사, 발이 닿는 곳의 발소리, 그 아래에 깔리는 룸 톤. 정지 사진이 들어가고, 사운드트랙이 붙은 무언가가 나옵니다.
소스 이미지에 대한 Google의 제약을 그대로 옮기면 이렇습니다.
image_url을 가져옵니다.마지막 항목이 나머지를 다 합친 것보다 많은 실패를 만듭니다. 수명이 짧은 서명 링크가 큐 대기 중에 만료됩니다.
여기서 필수 필드는 둘입니다. prompt와 image_url.
curl -X POST https://api.e2x.ai/v1/jobs/submit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/veo-3.1-fast/image-to-video",
"input": {
"prompt": "바리스타가 잔을 앞으로 밀자 김이 피어오른다. 크레마를 향한 느린 푸시인. 에스프레소 머신의 쉭 소리, 뒤로는 낮은 카페 대화 소리.",
"image_url": "https://example.com/counter-shot.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "8",
"has_sound": "true"
}
}'
job ID가 돌아옵니다. polling하시거나 저희에게 webhook을 넘기십시오.
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
const submitted = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/veo-3.1-fast/image-to-video",
input: {
prompt:
"그녀가 선글라스를 내리고 프레임 왼쪽 바깥을 힐끗 본다. 옷자락이 바람에 들린다. 고정된 카메라, 아래로 갈매기 소리와 파도 소리.",
image_url: "https://example.com/lookbook-03.jpg",
aspect_ratio: "9:16",
resolution: "720p",
duration: "8",
has_sound: "true",
seed: 88117,
},
}),
}).then((r) => r.json());
const jobId = submitted.data.jobId;
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 || "Animation failed");
}
await new Promise((r) => setTimeout(r, 5000));
}
job은 pending → processing → completed로 움직이거나 failed / cancelled에서 멈춥니다. polling하지 않으시려면 webhookUrl을 보내십시오. 저희는 대략 4분을 계획합니다. Google이 게시한 범위는 잘해야 11초, 피크 시 6분입니다.
타입을 살피십시오. duration, resolution, has_sound는 문자열입니다. true가 아니라 "true"입니다.
동일한 가중치로 들어가는 문 셋이고, 초당 가격도 동일합니다. 어느 문인지는 여러분의 입력이 정합니다.
| Endpoint | 8초 클립, 720p + 오디오 | 이럴 때 고르십시오 |
|---|---|---|
| Veo 3.1 Fast image-to-video | $0.12 | 승인된 스틸 하나가 첫 프레임이 되어야 할 때 |
| Veo 3.1 Fast text-to-video | $0.12 | 아직 아무것도 없을 때 — 그리고 4초나 6초 선택지를 원할 때 |
| Veo 3.1 Fast reference-to-video | $0.12 | 이미지 최대 세 장이 반복 등장하는 얼굴·제품·장소를 정의해야 할 때 |
솔직한 갈림길은 이렇습니다. 스틸이 곧 오프닝 프레임인 경우에 이 endpoint를 쓰십시오. 이미지가 그 대신 안내일 때 — 다섯 장면에 걸친 같은 배우 — 는 reference-to-video를 쓰시고, 그것이 8초로 묶어 둔다는 점을 받아들이십시오. 그저 탐색 중이신가요? 아무것도 업로드하지 마십시오. 4초 text-to-video는 $0.06이고 스토리보드를 빠르게 훑어 나갑니다. 나머지는 image-to-video 카테고리나 모델 카탈로그 전체에서 살펴보십시오.
흔한 실수는 방금 업로드하신 이미지를 다시 묘사하는 것입니다. 모델은 그것을 볼 수 있습니다. "부두 위 빨간 코트를 입은 여자"에 쓴 모든 단어는 다음에 무슨 일이 일어나는지에 쓰지 못한 단어이고, 이미 고정해 두신 프레임을 다시 해석하라는 초대가 됩니다.
대신 변화를 쓰십시오. 품질의 대부분을 짊어지는 습관 셋입니다.
주된 움직임을 하나만 주십시오. 고개 돌림, 카메라 푸시, 문이 열리는 것. 8초에 동작 넷을 쌓으면 그중 어느 것도 읽히지 않습니다.
카메라가 어디에 있고 움직이는지 말씀하십시오. "고정", "느린 달리 인", "핸드헬드로 오른쪽 드리프트". 이 지점에 침묵하시면 목적 없는 부유가 나옵니다.
소리를 소리 내어 짜십시오. 앰비언스에 이름을 붙이고 대사가 있다면 인용부호에 넣으십시오. 오디오는 계획하시든 아니든 생성되므로, 계획하십시오.
영어 prompt는 완전히 지원됩니다. Google은 이 모델에 대해 다른 언어를 평가하지 않았으니, 말하는 대사가 다른 언어라도 지시문은 영어로 유지하십시오.
이틀. 그것이 여러분의 다운로드 창입니다. Google은 생성된 영상을 이틀 동안 보관합니다. 그들의 표현은 생성 후 2일 이내에 영상을 다운로드해야 한다는 것입니다. outputs[0].url을 읽는 바로 그 코드 경로에서 그것을 여러분의 스토리지로 끌어오십시오. 반환된 링크는 임시입니다.
SynthID는 모든 프레임에 있습니다. Google은 모든 Veo 출력에 감지되지 않는 출처 표식을 watermark로 넣고, 그들의 플랫폼을 통해 검증할 수 있습니다. 저희를 포함해 어떤 프로바이더도 이를 비활성화할 수 없습니다.
규제 지역의 인물. EU와 영국, 스위스, MENA 전역에서 personGeneration은 allow_adult로 제한됩니다.
aspect ratio를 소스에 맞추십시오. 16:9 스틸에 9:16을 요청하시면 모델이 가장자리를 지어내야 합니다.
저희는 생성된 영상 1초당 $0.01을 청구하며, 오디오가 켜져 있으면 1.5가 곱해집니다. 그래서 소리가 있는 8초 720p 클립은 $0.12가 됩니다. 더 높은 해상도에는 자체 배수가 적용되니, 1080p나 4k batch의 예산을 잡기 전에 실시간 모델 페이지를 확인하십시오.
8 MB 미만, 최소 720p, 그리고 16:9 또는 9:16입니다. 저희는 제공하신 image_url에서 이를 가져오므로, job이 돌아갈 때에도 그 링크가 유효해야 합니다. 만료되는 서명 URL이 여기서 가장 흔한 실패입니다.
이 endpoint에서는 안 됩니다. image_url을 정확히 하나만 받습니다. 이미지 여럿이 생성을 안내해야 한다면 최대 세 장의 배열을 받는 reference-to-video를 쓰십시오.
네, 그리고 이 모델에 손을 뻗을 주된 이유 중 하나입니다. Google은 동기화된 대사와 효과음, 앰비언스를 네이티브로 만들어 내며 자사 API에는 끄는 스위치가 없습니다. 저희 schema는 기본값 true인 has_sound를 노출하고, 이것이 ×1.5 배수를 실어 나릅니다.
최대 8초입니다. 이 endpoint는 4초, 6초, 8초를 받지만 1080p와 4k 출력은 온전한 8초를 요구합니다. Veo 3.1 Fast 제품군에서 한 번의 호출로 8초를 넘기는 것은 없습니다.
모든 Veo 영상에는 Google의 감지되지 않는 AI 출처 watermark인 SynthID가 실리며, 그들의 검증 플랫폼에서 확인할 수 있습니다. 이를 끄는 방법을 제공하는 곳은 없습니다.
job당 4분 안팎을 계획하십시오. Google의 공식 수치는 하한 11초, 피크 시간대 상한 6분이므로, 실제 물량을 돌리기 시작하시면 polling 루프보다 webhook이 낫습니다.