비디오 작업 제출
curl --request POST \
--url https://api.gravitex.ai/v1/video/generations \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"image": "<string>",
"duration": 123,
"resolution": "<string>",
"aspect_ratio": "<string>"
}
'import requests
url = "https://api.gravitex.ai/v1/video/generations"
payload = {
"model": "<string>",
"prompt": "<string>",
"image": "<string>",
"duration": 123,
"resolution": "<string>",
"aspect_ratio": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
prompt: '<string>',
image: '<string>',
duration: 123,
resolution: '<string>',
aspect_ratio: '<string>'
})
};
fetch('https://api.gravitex.ai/v1/video/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gravitex.ai/v1/video/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => '<string>',
'prompt' => '<string>',
'image' => '<string>',
'duration' => 123,
'resolution' => '<string>',
'aspect_ratio' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.gravitex.ai/v1/video/generations"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"image\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.gravitex.ai/v1/video/generations")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"image\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gravitex.ai/v1/video/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"image\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body비디오 시리즈
비디오 작업 제출
POST
/
v1
/
video
/
generations
비디오 작업 제출
curl --request POST \
--url https://api.gravitex.ai/v1/video/generations \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"image": "<string>",
"duration": 123,
"resolution": "<string>",
"aspect_ratio": "<string>"
}
'import requests
url = "https://api.gravitex.ai/v1/video/generations"
payload = {
"model": "<string>",
"prompt": "<string>",
"image": "<string>",
"duration": 123,
"resolution": "<string>",
"aspect_ratio": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
prompt: '<string>',
image: '<string>',
duration: 123,
resolution: '<string>',
aspect_ratio: '<string>'
})
};
fetch('https://api.gravitex.ai/v1/video/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gravitex.ai/v1/video/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => '<string>',
'prompt' => '<string>',
'image' => '<string>',
'duration' => 123,
'resolution' => '<string>',
'aspect_ratio' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.gravitex.ai/v1/video/generations"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"image\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.gravitex.ai/v1/video/generations")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"image\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gravitex.ai/v1/video/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"image\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body소개
비디오 작업 제출 API는 새 비디오 생성 작업을 만드는 데 사용됩니다. 제출에 성공하면 작업 상태를 조회하는 데 사용할 수 있는 작업 ID가 반환됩니다. 중요 안내: 비디오 생성은 비동기 작업입니다. 먼저 작업을 제출하여 작업 ID를 받은 후, 성공할 때까지 작업 상태를 폴링해야 합니다.인증
string
필수
Bearer Token, 예:
Bearer sk-xxxxxxxxxx요청 매개변수
string
필수
모델 식별자, 지원 모델 및 기능:Sora 2 시리즈:
sora-2- 텍스트-투-비디오, 이미지-투-비디오, 비디오-투-비디오(Remix 모드) 지원.POST /v1/videos도 지원 — Sora 2 참조
veo-3.0-fast-generate-001- 텍스트-투-비디오(첫 프레임 모드)veo-3.1-fast-generate-preview- 텍스트-투-비디오(첫 프레임 모드, 첫/마지막 프레임 모드)
wan2.7-t2v-2026-04-25- 텍스트-투-비디오(멀티샷, 커스텀 오디오). Wan 2.7 참조wan2.7-i2v-2026-04-25- 이미지-투-비디오(첫 프레임, 첫+마지막, 연속 생성). Wan 2.7 참조wan2.7-r2v- 참조-투-비디오(멀티모달 참조, 보이스 클론). Wan 2.7 참조wan2.5-t2v-preview- 텍스트-투-비디오. Wan 2.5 참조wan2.5-i2v-preview- 이미지-투-비디오(첫 프레임 모드). Wan 2.5 참조
seedance-2-0- T2V, I2V, 멀티모달 참조, 에셋 라이브러리(asset://). Seedance 2.0 참조seedance-2-0-fast- Fast(1080p 미지원). Seedance 2.0 참조
doubao-seedance-1-0-lite-t2v-250428- 텍스트-투-비디오doubao-seedance-1-0-lite-i2v-250428- 이미지-투-비디오(첫 프레임 모드, 첫/마지막 프레임 모드, 참조 이미지 모드)doubao-seedance-1-0-pro-250528- 텍스트-투-비디오(첫 프레임 모드)doubao-seedance-1-5-pro-251215- 텍스트-투-비디오, 이미지-투-비디오(첫 프레임 모드, 첫/마지막 프레임 모드), 오디오 생성 지원doubao-seedance-1-5-pro-251215-noAudio- 텍스트-투-비디오, 이미지-투-비디오(첫 프레임 모드, 첫/마지막 프레임 모드), 오디오 생성 없음
string
장면 동작과 설정을 설명하는 비디오 생성 프롬프트. 참고: Doubao Seedance 시리즈 모델은 이 필드가 필요하지 않으며, 프롬프트는
metadata.content 배열의 text 필드에 직접 작성해야 합니다string
이미지-투-비디오용 참조 이미지(Base64 또는 URL 형식 지원)
integer
기본값:"5"
비디오 길이(초), 모델마다 지원 길이가 다름
string
기본값:"720p"
비디오 해상도:
480p, 720p, 1080p, 4kstring
기본값:"16:9"
화면 비율:
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive(적응형, 일부 모델만 지원)모델별 매개변수
모델마다 지원하는 전용 매개변수가 다릅니다. 모델 시리즈별 상세 설명:- Sora 2
- Veo
- Ali Wanxiang
- Doubao Seedance
string|integer
기본값:"4"
비디오 길이(초), 지원:
4, 8, 12string
기본값:"720x1280"
비디오 해상도, 지원:
720x1280(세로), 1280x720(가로)string
참조 이미지(URL 또는 Base64 형식 지원), 이미지-투-비디오용
string
Remix 모드: 기존 비디오 ID 기반 재생성(
video_로 시작해야 함)integer
기본값:"4"
비디오 길이(초), 지원:
4, 6, 8string
기본값:"16:9"
화면 비율,
16:9, 9:16만 지원string
기본값:"1080p"
해상도, 지원:
720p, 1080pinteger
기본값:"24"
프레임 레이트, 기본값 24
string
첫 프레임 참조 이미지(URL 또는 Base64 형식 지원)
string
마지막 프레임 참조 이미지(URL 또는 Base64 형식 지원),
veo-3.1 시리즈만 지원boolean
기본값:"false"
동기화된 오디오 생성 여부. Fast 모델은 이 매개변수를 무시하고 항상 오디오 포함
string
기본값:"allow_all"
인물 생성 전략:
allow_all(전 연령), allow_adult(성인만), dont_allow(인물 없음)boolean
기본값:"false"
워터마크 추가 여부
integer
결과 재현용 랜덤 시드
integer
기본값:"1"
요청당 생성할 비디오 수, 범위:
1-4integer
기본값:"5"
비디오 길이(초), 지원:
5, 10string
기본값:"720p"
비디오 해상도, 지원:
480p, 720p, 1080pstring
비디오 크기(t2v 모드 전용), 형식:
width*height, 예: 1280*720boolean
기본값:"false"
지능형 프롬프트 확장 활성화 여부
boolean
기본값:"false"
비디오와 동기화된 오디오 생성 여부
string
커스텀 오디오 파일 URL(HTTPS 형식)
integer
랜덤 시드, 범위:
0-2147483647array
필수
콘텐츠 배열,
metadata 객체 안에 배치해야 합니다. 텍스트와 선택적 이미지를 포함해야 합니다. 매개변수는 텍스트 프롬프트의 특수 마커로 제어됩니다:--rs또는--resolution: 해상도(480p,720p,1080p)--ratio: 화면 비율(16:9,9:16,1:1,4:3,3:4,adaptive,doubao-seedance-1-0-lite-t2v-250428은adaptive미지원)--dur또는--duration: 길이(초, 예:5,10)--frames: 프레임 수(1.5 pro 시리즈만 지원).--frames또는--dur중 하나 사용 가능,frames가duration보다 우선. 소수 초 비디오가 필요하면frames지정. 범위:25 + 4n(n은 양의 정수)에 해당하는[29, 289]내 모든 정수--fps또는--framespersecond: 프레임 레이트(예:24,30)--seed: 랜덤 시드,[-1, 2^32-1]범위의 정수--wm또는--watermark: 워터마크 토글(true,false)--cf또는--camerafixed: 고정 카메라(true,false, lite 모델만 지원)
- 1.0 lite/pro 시리즈:
doubao-seedance-1-0-lite-t2v-250428,doubao-seedance-1-0-lite-i2v-250428,doubao-seedance-1-0-pro-250528- 기본 비디오 생성 기능 지원
- lite-i2v는 첫/마지막 프레임 모드 및 참조 이미지 모드 지원
- pro 모델은 고해상도(720p/1080p) 지원
- 1.5 pro 시리즈:
doubao-seedance-1-5-pro-251215,doubao-seedance-1-5-pro-251215-noAudio- 1.5-pro: 텍스트-투-비디오 및 이미지-투-비디오(첫 프레임 모드, 첫/마지막 프레임 모드) 지원, 자동으로 맞춤 오디오 생성
- 1.5-pro-noAudio: 1.5-pro와 동일 기능, 오디오 생성 없음, 더 빠른 렌더링
- 해상도 지원:
480p,720p만 지원(1080p 미지원) - 길이 지원: 4~12초 사이 임의의 정수(예: 4, 5, 6, 7, 8, 9, 10, 11, 12)
- 이미지-투-비디오 모드: 첫 프레임 모드 및 첫/마지막 프레임 모드 지원(참조 이미지 모드 미지원)
{
"metadata": {
"content": [
{
"type": "text",
"text": "Prompt content --ratio 16:9 --dur 5 --rs 720p --wm false"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,..."
},
"role": "first_frame" // Optional: first_frame, last_frame, reference_image
}
],
"return_last_frame": true, // Whether to return the last frame (1.5 Pro series)
"callback_url": "https://your-domain.com/callback" // Optional callback URL
}
}
사용 예제
- Sora 2
- Veo
- Ali Wanxiang
- Doubao Seedance
1. 텍스트-투-비디오(기본 예제)2. 텍스트-투-비디오(가로, 8초)3. 이미지-투-비디오(첫 프레임 모드)4. Remix 모드(비디오-투-비디오)
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "A cute little cat playing in the garden, sunny and warm",
"seconds": "4",
"size": "720x1280"
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "A cute little cat playing in the garden, sunny and warm",
"seconds": "8",
"size": "1280x720"
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "A cute little cat playing in the garden, sunny and warm",
"seconds": "4",
"size": "720x1280",
"input_reference": "data:image/png;base64,iVBORw0KGgoAAxxxx..."
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "Change the video to a night scene with stars",
"seconds": "4",
"size": "720x1280",
"remix_from_video_id": "video_69095b4ce0048190893a01510c0c98b0"
}'
1. 텍스트-투-비디오(기본 예제)2. 이미지-투-비디오(첫 프레임 모드)3. 이미지-투-비디오(첫/마지막 프레임 모드, veo-3.1만 지원)
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-fast-generate-preview",
"prompt": "Aerial view of a sci-fi city at dawn, sunlight piercing through clouds",
"durationSeconds": 8,
"aspectRatio": "16:9",
"resolution": "1080p",
"fps": 24
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-fast-generate-preview",
"prompt": "Generate video based on this image, scene gradually unfolds",
"durationSeconds": 8,
"aspectRatio": "16:9",
"resolution": "1080p",
"fps": 24,
"image": "data:image/png;base64,iVBORw0KGgoAAxxxx..."
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-fast-generate-preview",
"prompt": "Transition from first image to second image",
"durationSeconds": 8,
"aspectRatio": "16:9",
"resolution": "1080p",
"fps": 24,
"image": "data:image/png;base64,iVBORw0KGgoAAxxxx...",
"lastFrame": "data:image/png;base64,iVBORw0KGgoAAyyyy..."
}'
1. 텍스트-투-비디오(기본 예제)2. 텍스트-투-비디오(10초, 1080p, 랜덤 시드)3. 이미지-투-비디오(첫 프레임 모드)4. 이미지-투-비디오(커스텀 오디오)
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.5-t2v-preview",
"prompt": "A kitten slowly opens its eyes, ears gently twitch, camera slowly pushes in",
"duration": 5,
"size": "1280*720",
"smart_rewrite": true,
"generate_audio": true
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.5-t2v-preview",
"prompt": "A kitten slowly opens its eyes, ears gently twitch, camera slowly pushes in",
"duration": 10,
"size": "1920*1080",
"smart_rewrite": false,
"generate_audio": false,
"seed": 123456
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.5-i2v-preview",
"prompt": "Kitten slowly opens its eyes, ears gently twitch, camera slowly pushes in",
"duration": 5,
"resolution": "720p",
"smart_rewrite": true,
"generate_audio": true,
"image": "data:image/png;base64,iVBORw0KGgoAAxxxx..."
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.5-i2v-preview",
"prompt": "Kitten slowly opens its eyes, ears gently twitch, camera slowly pushes in",
"duration": 10,
"resolution": "1080p",
"smart_rewrite": false,
"generate_audio": false,
"audio_url": "https://example.com/audio.mp3",
"image": "data:image/png;base64,iVBORw0KGgoAAxxxx...",
"seed": 789012
}'
1. 텍스트-투-비디오(T2V, 기본 예제)2. 텍스트-투-비디오(T2V, 전체 매개변수)3. 이미지-투-비디오(첫 프레임 모드)4. 이미지-투-비디오(첫/마지막 프레임 모드, lite-i2v 및 1.5 pro 지원)5. 이미지-투-비디오(참조 이미지 모드, lite-i2v만 지원)6. Pro 모델(첫 프레임 모드)7. Seedance 1.5 Pro 텍스트-투-비디오(오디오 포함)8. Seedance 1.5 Pro 이미지-투-비디오(첫 프레임 모드, 오디오 없음)9. Seedance 1.5 Pro 이미지-투-비디오(첫/마지막 프레임 모드, 오디오 포함)
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-0-lite-t2v-250428",
"metadata": {
"content": [
{
"type": "text",
"text": "A cute kitten playing in a garden, sunny day --ratio 16:9 --dur 5 --rs 720p --wm false"
}
]
}
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-0-lite-t2v-250428",
"metadata": {
"content": [
{
"type": "text",
"text": "A cute kitten playing in a garden, sunny day --ratio 9:16 --dur 10 --rs 1080p --fps 30 --wm true --seed 12345"
}
]
}
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-0-lite-i2v-250428",
"metadata": {
"content": [
{
"type": "text",
"text": "A girl opens her eyes and looks gently at the camera --ratio adaptive --dur 5 --rs 720p --wm false"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgoAAxxxx..."
}
}
]
}
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-0-lite-i2v-250428",
"metadata": {
"content": [
{
"type": "text",
"text": "A blue-green jingwei bird transforms into human form --rs 720p --dur 5 --fps 24 --cf false --wm false --seed 67890"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgoAAxxxx..."
},
"role": "first_frame"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgoAAyyyy..."
},
"role": "last_frame"
}
]
}
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-0-lite-i2v-250428",
"metadata": {
"content": [
{
"type": "text",
"text": "[图1] A boy wearing glasses and blue T-shirt and [图2] corgi dog, sitting on [图3] lawn, 3D cartoon style --rs 720p --dur 5 --ratio 16:9 --wm false"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/ref1.png"
},
"role": "reference_image"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/ref2.png"
},
"role": "reference_image"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/ref3.png"
},
"role": "reference_image"
}
]
}
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-0-pro-250528",
"metadata": {
"content": [
{
"type": "text",
"text": "A girl opens her eyes and looks gently at the camera --ratio 16:9 --dur 5 --rs 1080p --wm false"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgoAAxxxx..."
}
}
]
}
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-5-pro-251215",
"metadata": {
"content": [
{
"type": "text",
"text": "A cute kitten chasing butterflies in a garden, spring sunlight on flowers --ratio 16:9 --dur 6 --rs 720p --wm false"
}
]
}
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-5-pro-251215-noAudio",
"metadata": {
"content": [
{
"type": "text",
"text": "The scene gradually comes to life, person smiles and looks into the distance --ratio 16:9 --dur 5 --rs 720p --wm false"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgoAAxxxx..."
}
}
]
}
}'
curl -X POST "https://api.gravitex.ai/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-5-pro-251215",
"metadata": {
"content": [
{
"type": "text",
"text": "Smooth transition from static scene to dynamic scene --ratio 16:9 --dur 8 --rs 720p --wm false"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgoAAxxxx..."
},
"role": "first_frame"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgoAAyyyy..."
},
"role": "last_frame"
}
]
}
}'
content배열은metadata객체 안에 배치해야 합니다- 모든 매개변수는 프롬프트 텍스트의 특수 마커로 전달됩니다(예:
--ratio 16:9) - 이미지는
image_url유형으로content배열에 배치해야 합니다 - 첫/마지막 프레임 모드는 두 이미지가 필요하며, 각각
role: "first_frame"및role: "last_frame"로 표시 - 참조 이미지 모드는 프롬프트에서
[图1],[图2]등으로 이미지를 참조하고, 이미지는role: "reference_image"로 표시 doubao-seedance-1-0-lite-t2v-250428은 이미지 입력 및adaptive화면 비율 미지원doubao-seedance-1-0-pro-250528은 첫 프레임 모드만 지원doubao-seedance-1-5-pro-251215는 자동으로 오디오를 생성하며, 배경 음악이 필요한 장면에 적합doubao-seedance-1-5-pro-251215-noAudio는 오디오를 생성하지 않으며, 더 빠른 렌더링, 후반 오디오 작업이 필요한 장면에 적합- 1.5 pro 시리즈는 텍스트-투-비디오 및 이미지-투-비디오(첫 프레임 모드, 첫/마지막 프레임 모드)를 지원하며, 참조 이미지 모드는 미지원
- 1.5 pro 시리즈 해상도 제한:
480p,720p만 지원(1080p 미지원) - 1.5 pro 시리즈 길이 범위: 4~12초 사이 임의의 정수 지원
- 첫/마지막 프레임 모드: 두 이미지를 제공하고 각각
role: "first_frame"및role: "last_frame"로 표시
응답 예제
{
"task_id": "video_69095b4ce0048190893a01510c0c98b0",
"status": "submitted",
"format": "mp4"
}
관련 API
비디오 작업 조회
비디오 생성 작업 상태 및 결과 조회
비디오 다운로드
완료된 비디오 파일 다운로드 (Sora 2 전용)
⌘I
