wan2.7-t2v
필수 필드는 model과 prompt뿐입니다. size와 duration을 생략하면 게이트웨이가 1280*720, 5초로 제출합니다.
일치하는 항목이 없습니다. 프로토콜, 기능 또는 엔드포인트 경로로 검색해 보세요.
동영상 모델은 한 번의 응답이 아니라 작업으로 답합니다. POST /v1/videos는 작업 ID와 "status": "queued"를 반환하고, GET /v1/videos/{task_id}로 작업이 completed 또는 failed가 될 때까지 진행 상황을 확인합니다. 완료되면 metadata.url에는 게이트웨이가 서명한 다운로드 링크 https://api.chinaapi.ai/v1/videos/{task_id}/download?…가 담깁니다. Authorization 헤더 없이 쓸 수 있으므로 브라우저나 자사 사용자에게 그대로 넘길 수 있습니다. 링크를 가진 사람은 누구나 만료 전까지 파일을 받을 수 있으며, 만료 시점은 이 링크를 돌려준 조회로부터 24시간 뒤입니다. 작업을 다시 조회하면 새 링크를 받습니다. Authorization 헤더를 붙인 GET /v1/videos/{task_id}/content로도 같은 파일을 받을 수 있습니다. 파일은 제한된 기간만 보관되므로 링크를 저장하지 말고 파일을 내려받으세요. 실패한 작업은 업스트림 오류 코드와 메시지를 error.code와 error.message에 담으므로 요청에서 어떤 필드가 빠졌는지 대개 바로 알 수 있습니다. POST /v1/video/generations도 같은 핸들러로 연결되어, 해당 경로로 이미 구현한 클라이언트를 그대로 쓸 수 있습니다.
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-i2v",
"prompt": "the cat turns and walks toward the camera",
"input_reference": "https://example.com/first-frame.jpg",
"size": "1280*720",
"duration": 5
}'
# {"id":"task_9f2c...","task_id":"task_9f2c...","object":"video",
# "model":"wan2.7-i2v","status":"queued","progress":0}
curl https://api.chinaapi.ai/v1/videos/task_9f2c... \
-H "Authorization: Bearer $CHINAAPI_KEY"
# {"id":"task_9f2c...","object":"video","model":"wan2.7-i2v",
# "status":"completed","progress":100,
# "metadata":{"url":"https://api.chinaapi.ai/v1/videos/task_9f2c.../download?e=...&kv=v1&s=...&u=..."}}
# No key needed until the link expires: hand it to a browser or a user as it is.
curl -o video.mp4 "https://api.chinaapi.ai/v1/videos/task_9f2c.../download?e=...&kv=v1&s=...&u=..."
# The content endpoint serves the same file against your key instead.
curl -o video.mp4 https://api.chinaapi.ai/v1/videos/task_9f2c.../content \
-H "Authorization: Bearer $CHINAAPI_KEY"
필수 필드는 model과 prompt뿐입니다. size와 duration을 생략하면 게이트웨이가 1280*720, 5초로 제출합니다.
정지 이미지를 움직이게 합니다. input_reference에 공개적으로 접근할 수 있는 이미지 URL을 넣으면 그것이 첫 프레임이 되며, size와 duration을 함께 보내세요.
참조 소재로 동영상을 만듭니다. input_reference는 참조 이미지 한 장을 받습니다. 여러 장을 보내려면 images를 쓰고, video_url로 참조 동영상을 추가합니다 — 참조는 합쳐서 최대 5개입니다. input_reference와 images를 함께 보내지 마세요. 게이트웨이는 input_reference만 남깁니다.
프롬프트로 기존 클립을 편집합니다. video_url에는 원본 영상을 넣습니다. 원본은 2~10초 길이의 MP4 또는 MOV여야 하며, 출력은 size로 정해집니다.
참조 이미지는 images에 넣고, input_reference는 한 장을 받습니다. 둘 다 보내면 둘 다 전달됩니다. 길이는 seconds 또는 duration에, 공급자 파라미터는 metadata에 넣고, resolution은 480p 또는 720p만 가능합니다.
요청 형태는 doubao-seedance-2-5-260628과 같고 metadata.content의 role 규칙도 그대로 적용됩니다. doubao-seedance-2-0-fast-260128과 doubao-seedance-2-0-mini-260615는 품질을 내주고 속도와 비용을 얻습니다. 또한 2.0 계열은 이미지나 동영상 참조가 최소 하나 필요하며, 2.5처럼 오디오만 넣는 입력은 받지 않습니다.
네이티브 오디오가 포함된 720p 또는 1080p 영상을 3–30초 생성합니다. Gateway는 기본값으로 720p, 5초, 16:9를 명시해 전송합니다. 첫 프레임은 image에 넣습니다. 최대 10개의 키프레임은 metadata.contents의 prompt, first_frame, middle_frame, last_frame 항목으로 전달합니다. 길이, 해상도, 화면 비율은 metadata.settings에 지정합니다. 이 경로는 참조 영상, Omni 편집, 공유 에셋 ID, 4K를 지원하지 않습니다. 제출 전에 현재 요금을 확인하세요. 실패한 작업은 환불되며 조회는 새 생성을 시작하지 않습니다. 이미지 기반 영상의 화면 비율은 키프레임을 따릅니다. aspect_ratio는 텍스트 기반 영상 설정입니다.
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-4.0",
"prompt": "A red wooden toy boat floats on a calm pond in soft daylight.",
"metadata": {
"settings": {"duration": 3, "resolution": "720p", "aspect_ratio": "16:9"}
}
}'
# Poll GET /v1/videos/{id} from the response, as shown above.
# For image-to-video, add "image": "https://your-site.example/first-frame.png".
첫 프레임은 image에 넣습니다. 이 계열은 input_reference를 전혀 읽지 않습니다. mode의 기본값은 std, duration의 기본값은 5초입니다. 나머지는 metadata가 맡습니다 — 마지막 프레임용 image_tail, on 또는 off를 받는 sound(기본값 off), 그리고 negative_prompt, cfg_scale, camera_control입니다.
텍스트로 동영상을 만들려면 prompt만 보내고, 첫 프레임을 쓰려면 image를 더하면 업스트림이 요구하는 contents 배열은 게이트웨이가 만들어 줍니다. 크기 관련 값은 metadata.settings 아래에 있습니다. resolution은 720p 또는 1080p, duration은 3~15초, aspect_ratio는 16:9·9:16·1:1 중 하나입니다. 오디오는 항상 포함되며 끄는 스위치가 없습니다.
여러 장의 참조 이미지를 한 번에 사용해 생성합니다. 모든 파라미터는 metadata 안에 있고 resolution 필드는 없습니다 — 품질 등급은 mode입니다. 아래의 실제 예시를 참고하세요.
게이트웨이 자체 필드를 받아 업스트림 페이로드를 대신 조립합니다. image 또는 input_reference는 첫 프레임이 되고, images는 참조 이미지, video_url은 참조 동영상이 됩니다. size로 768P나 2K를 고르고 duration은 4에서 15 사이의 정수입니다. 텍스트만 있는 요청에는 adaptive가 아닌 metadata.ratio를 명시해야 합니다.
MiniMax-Hailuo-2.3-Fast, MiniMax-Hailuo-02도 마찬가지입니다. 이들이 최상위에서 읽는 값은 prompt, duration, size뿐이고, 이미지는 모두 metadata를 거쳐 first_frame_image, last_frame_image, subject_reference 중 하나로 전달해야 합니다.
happyhorse-1.1-i2v, happyhorse-1.1-r2v도 같습니다. 필드는 wan2.7 계열과 동일한 prompt, input_reference, size, duration이고, 여기서는 480P에도 가격이 있어 wan2.7이 거부하는 832*480이 통과합니다. duration은 3에서 15 사이의 정수입니다. 참조를 여러 개 넘길 때는 metadata.input.media에 넣으세요. images 필드가 일으키는 자동 조립은 wan2.7-r2v 전용입니다.
1280*720처럼 씁니다. x는 쓸 수 없습니다. 832x480은 invalid size: 832x480, example: 1920*1080을 돌려줍니다. duration은 초 단위 정수입니다. wan2.7-t2v, wan2.7-i2v, wan2.7-r2v, wan2.7-videoedit에서는 게이트웨이가 size를 해상도 등급으로 접고 업스트림에는 두 등급뿐이므로 720P에는 1280*720, 1080P에는 1920*1080을 보내세요. 832*480 같은 480P 크기는 이 네 모델에 가격이 없어서 즉시 거부되거나, 일단 접수된 뒤 업스트림에서 InvalidParameter로 실패합니다. 실패한 작업은 환불되지만 어느 쪽이든 왕복은 헛수고가 됩니다. wan2.7-t2v, happyhorse-1.1-t2v, happyhorse-1.1-r2v에서는 크기의 가로세로 비율도 반영되므로 720*1280을 보내면 세로형 720P 동영상이 나옵니다.
size에서 화면비를 읽지만, 그 대응표는 크기를 x로 씁니다 — 1280x720, 1920x1080, 720x1280, 1080x1920, 1024x1024, 512x512 — 그리고 표에 없는 값은 오류 없이 1:1이 됩니다. 따라서 kling-v3에 별표 형식 1280*720을 보내면 항의가 아니라 정사각형 영상이 돌아옵니다. 화면 구도가 중요하면 metadata.aspect_ratio를 직접 지정하세요.
MiniMax-Hailuo-2.3, MiniMax-Hailuo-2.3-Fast, MiniMax-Hailuo-02은 최상위의 image, input_reference, images, video_url을 아무 말 없이 버립니다. 요청은 성공하지만 텍스트-투-비디오로 실행되고 그 기준으로 과금됩니다. 이미지는 metadata.first_frame_image에 넣고, 마지막 프레임은 metadata.last_frame_image, 인물 참조는 metadata.subject_reference를 쓰세요. MiniMax-H3은 이 계열의 예외로 최상위 필드를 읽습니다.
curl https://api.chinaapi.ai/v1/video/generations \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v3-omni",
"prompt": "the character from the references walks through a neon-lit street",
"metadata": {
"image_list": [
{"image_url": "https://example.com/character.jpg"},
{"image_url": "https://example.com/outfit.jpg"},
{"image_url": "https://example.com/scene.jpg"}
],
"mode": "std",
"duration": "5",
"aspect_ratio": "16:9",
"sound": "off"
}
}'
curl https://api.chinaapi.ai/v1/video/generations/task_9f2c... \
-H "Authorization: Bearer $CHINAAPI_KEY"
# {"code":"success",
# "data":{"task_id":"task_9f2c...","status":"SUCCESS",
# "progress":"100%","fail_reason":"",
# "result_url":"https://api.chinaapi.ai/v1/videos/task_9f2c.../download?e=...&kv=v1&s=...&u=..."}}
type을 붙이지 않습니다. 이 필드는 first_frame이나 end_frame을 표시할 때만 쓰이고, 첫 프레임이 없으면 aspect_ratio가 필수입니다. mode는 품질 등급으로 std, pro, 4k 중 하나이며, 업스트림 기본값은 pro라서 표시 가격의 1.33배로, 4k는 5배로 과금됩니다. 예상한 금액대로 청구되게 하려면 mode를 명시하세요. duration은 "3"부터 "15"까지의 문자열이고 sound의 기본값은 off입니다. 참조 동영상은 video_list에 넣고 반드시 "refer_type": "feature"를 지정해야 합니다. 편집 모드인 base는 넘긴 영상 길이로 과금되어 제출 전에 가격을 낼 수 없으므로 거부됩니다. 참조 이미지에는 업스트림 쪽 최소 크기도 있습니다. 아이콘만 한 파일은 제출까지는 통과하지만 작업이 Image pixel is invalid로 실패합니다. 실패한 작업은 환불되지만 왕복은 헛수고가 됩니다.
GET /v1/videos/{task_id}는 OpenAI 동영상 형식으로 답하며 파일은 metadata.url, 진행률은 숫자입니다. GET /v1/video/generations/{task_id}는 {"code": "success", "data": {…}}로 답하며 파일은 data.result_url, data.status는 SUCCESS나 FAILURE 같은 대문자 단어, data.progress는 "100%" 같은 문자열이고, 실패 사유는 data.fail_reason에 담깁니다. 제출한 쪽과 같은 경로로 조회하세요.
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-5-260628",
"prompt": "the subject slowly turns toward the camera",
"images": ["https://example.com/first-frame.jpg"],
"seconds": "5",
"metadata": {"resolution": "480p"}
}'
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-5-260628",
"prompt": "keep the subject from the reference image",
"seconds": "5",
"metadata": {
"resolution": "480p",
"ratio": "16:9",
"content": [
{
"type": "image_url",
"image_url": {"url": "https://example.com/reference.jpg"},
"role": "reference_image"
}
]
}
}'
role이 없는 이미지는 참조가 아니라 첫 프레임으로 읽힙니다. 출력은 그 이미지의 화면비를 따르고, ratio를 함께 보내면 InvalidParameter.TaskTypeConstraint로 거부되며, 이 모드에서는 seconds 2도 거부됩니다(5는 됩니다). generate_audio는 업스트림 기본값이 true이므로 metadata에서 false로 두지 않으면 오디오 트랙이 포함된 파일이 돌아옵니다. metadata.content의 각 항목에 role을 달면 참조 모드 전체 — 이미지 30장, 동영상 10개, 오디오 10개까지, 오디오만 입력, 30초 연속 생성 — 를 쓸 수 있고 그곳에서는 ratio도 허용됩니다.