Hy
On this page
Endpoint: POST https://tokenhub-intl.tencentcloudmaas.com/v1/wand/hunyuan-video/generation
인증: Tokenhub API Key / Bearer
Hy Video 1.5는 텍스트 또는 첫 프레임 이미지로 영상을 생성합니다.
기본 정보
| 항목 | 값 |
|---|---|
| 호출 경로 | Tokenhub API |
| 가드레일 해제 지원 | 미지원 |
버전별 지원 규격
| 버전 | 해상도 | 비율 | 길이 |
|---|---|---|---|
hy-video-v1.5 |
720p |
16:9 / 9:16 / 1:1 / 4:3 / 3:4 |
5초 |
입력 모드
| 버전 | 입력 |
|---|---|
hy-video-v1.5 |
텍스트-동영상 / 이미지-동영상 |
호출 절차
동영상 생성은 시간이 오래 걸리는 작업이므로 API는 비동기 호출 방식을 사용하며, 다음 두 단계로 나뉩니다.
작업 제출: 동영상 생성 API를 호출합니다. 성공하면
task_id(작업 ID)와request_id가 반환됩니다.결과 폴링: 작업 ID로 작업 결과 조회 API를
status = succeeded가 될 때까지 호출하고videos[].url에서 동영상 URL을 가져옵니다.
참고: 이 API 시리즈의 응답은 통합 code / message / data 응답 구조를 사용하지 않습니다. 제출에 성공하면 {"task_id": "...", "created": ..., "request_id": "..."}가 반환되고, 조회 시 작업 객체(task_id / status / videos / usage 등의 필드 포함)가 반환됩니다. 작업 상태 값은 queued(스케줄링 대기) / running(생성 중) / succeeded(성공) / failed(실패)로 통일됩니다.
동영상 생성
API 설명
텍스트-동영상 또는 이미지-동영상 작업을 제출합니다. 이미지를 제공하지 않으면 텍스트-동영상 작업이고, image(Base64) 또는 image_url(이미지 URL)을 제공하면 이미지-동영상 작업입니다.
API: POST https://tokenhub-intl.tencentcloudmaas.com/v1/wand/hunyuan-video/generation
요청 파라미터
| 파라미터 | 필수 | 타입 | 설명 |
|---|---|---|---|
| model | 필수 | string | 모델 버전. 값: hy-video-v1.5 |
| prompt | 조건부 필수 | string | 텍스트 프롬프트. 텍스트-동영상 생성에서는 필수이며, 이미지-동영상 생성에서는 선택 사항입니다(이미지 속 참조 대상의 움직임을 설명하는 데 사용). |
| negative_prompt | 선택 | string | 표시되지 않아야 하는 콘텐츠를 설명하는 네거티브 프롬프트입니다. |
| image | 선택 | string | Base64로 인코딩된 입력 이미지입니다. 이 파라미터를 전달하면 이미지-동영상 생성이 사용됩니다. 이 파라미터와 image_url 중 하나를 사용합니다. 둘 다 전달하면 image가 우선합니다. |
| image_url | 선택 | string | 공개적으로 액세스할 수 있는 입력 이미지 URL입니다. URL을 전달하면 이미지-동영상 생성이 사용됩니다. 이 파라미터와 image 중 하나를 사용합니다. |
| n | 선택 | int | 출력 동영상 수입니다. |
| duration | 선택 | number | 동영상 길이(초)입니다. 소수 값은 정수로 잘립니다. 현재 버전은 5초의 고정 길이로 생성합니다. |
| aspect_ratio | 선택 | string | 비율이며 텍스트-동영상 생성에만 유효합니다. 열거형 값: 16:9 / 9:16 / 1:1 / 4:3 / 3:4. |
| resolution | 선택 | string | 해상도입니다. 현재 버전은 720p의 고정 해상도로 출력합니다. |
| revise | 선택 | bool | 지능형 프롬프트 재작성 활성화 여부입니다(모델 서비스에 그대로 전달되는 확장 파라미터). |
| moderation | 선택 | bool | 콘텐츠 검토 스위치입니다(모델 서비스에 그대로 전달되는 확장 파라미터). |
| seed | 선택 | int | 무작위 시드입니다(모델 서비스에 그대로 전달되는 확장 파라미터이며, 적용 여부는 모델 측에 따라 달라짐). |
| footnote | 선택 | string | 사용자 지정 워터마크 콘텐츠입니다. 중국어 또는 영어와 관계없이 줄 바꿈과 공백을 제거한 16자로 제한되며 동영상 오른쪽 아래에 생성됩니다. |
참고: 위 표에 나열된 필드 외에 인식되지 않는 다른 필드는 모델 서비스에 그대로 전달됩니다.
요청 예시
텍스트-동영상:
curl -X POST 'https://tokenhub-intl.tencentcloudmaas.com/v1/wand/hunyuan-video/generation' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "hy-video-v1.5",
"prompt": "A puppy is running on the grass under bright sunshine."
"negative_prompt": "blurry, distorted"
"aspect_ratio": "16:9"
}'이미지-동영상(이미지 URL):
curl -X POST 'https://tokenhub-intl.tencentcloudmaas.com/v1/wand/hunyuan-video/generation' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "hy-video-v1.5",
"prompt": "Make the subject in the image turn its head naturally, with a gentle breeze blowing through its hair."
"image_url": "https://example.com/start.jpg"
}'이미지-동영상(이미지 Base64):
curl -X POST 'https://tokenhub-intl.tencentcloudmaas.com/v1/wand/hunyuan-video/generation' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "hy-video-v1.5",
"prompt": "The camera slowly moves in",
"image": "<BASE64_ENCODED_IMAGE>"
}'응답 파라미터
제출에 성공하면 다음 항목이 반환됩니다.
| 필드 | 타입 | 설명 |
|---|---|---|
| task_id | string | 시스템에서 생성한 작업 ID이며 후속 작업 조회에 사용됩니다. |
| created | integer | 작업 생성 시간이며 초 단위 Unix 타임스탬프입니다. |
| request_id | string | 이 요청의 고유 ID이며 문제 해결 및 기술 지원에 사용됩니다. |
제출에 실패하면 통합 오류 응답 구조가 반환됩니다.
| 필드 | 타입 | 설명 |
|---|---|---|
| task_id | string | 작업 ID입니다(생성에 실패하면 빈 문자열). |
| status | string | failed로 고정됩니다. |
| error.code | string | 오류 코드입니다. 부록: 통합 오류 코드를 참조합니다. |
| error.message | string | 오류 설명입니다. |
응답 예시
제출 성공:
{
"task_id": "251435731-WandVideo-05c42d57d3a74c1fa39d56ff59b31e20",
"created": 1787108411,
"request_id": "835a268e-af02-4615-a30b-7e4b815e8839"
}제출 실패:
{
"task_id": "",
"status": "failed",
"error": {
"code": "1300",
"message": "Trigger the platform strategy"
}
}오류 코드
요청이 실패하면 {"task_id":"","status":"failed","error":{...}} 형식의 응답 구조가 반환됩니다. 구체적인 오류 코드와 처리 권장 사항은 부록: 통합 오류 코드를 참조합니다. 작업 제출에 성공한 후 생성 단계의 작업 상태는 작업 결과 조회 API를 통해 확인할 수 있습니다.
| status | 설명 | 처리 권장 사항 |
|---|---|---|
| queued | 제출되었으며 스케줄링 대기 중 | 상태 조회를 계속합니다. |
| running | 생성 중 | 상태 조회를 계속합니다. |
| succeeded | 생성 성공 | 조회 결과의 videos[].url에서 동영상 URL을 가져오십시오. |
| failed | 생성 실패 | error.message에서 실패 원인을 확인하고 수정한 후 재시도합니다. 실패가 계속되면 기술 지원에 문의하십시오. |
작업 결과 조회
API 설명
작업이 제출되고 작업 ID가 반환되면 작업 조회 엔드포인트를 통해 작업 상태를 폴링합니다. 성공하면 결과에서 동영상 URL을 가져옵니다.
API: GET https://tokenhub-intl.tencentcloudmaas.com/v1/wand/hunyuan-video/tasks/{task_id}
참고: 경로의 {task_id}는 작업 제출 시 반환된 task_id입니다. 동영상 생성에는 약 몇 분이 걸리므로 3~5초마다 폴링하는 것이 좋습니다. 응답은 모델 측 반환 패킷을 그대로 전달하면서 플랫폼에서 정규화한 필드를 추가한 것이며, 다음 표에 나열되지 않은 원본 공급업체 필드가 포함될 수 있습니다. 실제 반환 응답을 기준으로 합니다.
요청 파라미터
| 파라미터 | 필수 | 타입 | 설명 |
|---|---|---|---|
| task_id | 필수 | string | 작업 ID(경로 파라미터)이며 작업 제출 시 반환된 task_id입니다. |
요청 예시
curl -X GET 'https://tokenhub-intl.tencentcloudmaas.com/v1/wand/hunyuan-video/tasks/YOUR_TASK_ID' \
-H 'Authorization: Bearer YOUR_API_KEY'응답 파라미터
| 필드 | 타입 | 설명 |
|---|---|---|
| task_id | string | 작업 ID입니다. |
| status | string | 작업 상태: queued(스케줄링 대기) / running(생성 중) / succeeded(성공) / failed(실패) |
| created | integer | 작업 생성 시간이며 초 단위 Unix 타임스탬프입니다. |
| videos | array | 동영상 결과 배열입니다(성공 시 반환). |
| videos[].url | string | 동영상 파일 URL은 임시 URL입니다. 즉시 다운로드하여 저장합니다. |
| videos[].audio_url | string | 오디오 파일 URL입니다(오디오가 없으면 빈 문자열). |
| videos[].generate_info | string | 모델 측에서 생성된 추가 정보입니다(없으면 빈 문자열). |
| tokenhub_usage | object | 사용량입니다(작업이 최종 상태에 도달하고 청구가 완료된 후 반환). |
| tokenhub_usage.total_tokens | integer | 이 작업에서 소비한 토큰 수이며 청구/정산에 사용됩니다. |
| error | object | 실패 정보입니다(status=failed일 때 반환). code / message를 포함하며 실패가 없으면 null입니다. |
| error.code | string | 오류 코드입니다. |
| error.message | string | 오류 설명입니다. |
| request_id | string | 이 요청의 고유 ID이며 문제 해결 및 기술 지원에 사용됩니다. |
응답 예시
생성 중(running):
{
"created": 1787108411,
"error": null,
"task_id": "251435731-WandVideo-05c42d57d3a74c1fa39d56ff59b31e20",
"status": "running",
"request_id": "252e94a8-dbce-4440-8747-e36f52e0fc29"
}생성 성공:
{
"created": 1787108411,
"error": null,
"task_id": "251435731-WandVideo-05c42d57d3a74c1fa39d56ff59b31e20",
"status": "succeeded",
"videos": [
{
"audio_url": "",
"generate_info": "",
"url": "https://result.example.com/generated-image.png"
}
],
"tokenhub_usage": {
"total_tokens": 150000
},
"request_id": "252e94a8-dbce-4440-8747-e36f52e0fc29"
}생성 실패:
{
"created": 1787108411,
"task_id": "251435731-WandVideo-05c42d57d3a74c1fa39d56ff59b31e20",
"status": "failed",
"error": {
"code": "InternalServiceError",
"message": "generate video failed"
},
"request_id": "252e94a8-dbce-4440-8747-e36f52e0fc29"
}오류 코드
요청이 실패하면 통합 오류 응답 구조가 반환됩니다. 구체적인 오류 코드와 처리 권장 사항은 부록: 통합 오류 코드를 참조합니다. 작업 상태 설명은 "동영상 생성"의 설명과 같습니다.
부록
통합 오류 코드
| HTTP 상태 코드 | 비즈니스 코드 | 오류 메시지 | 설명 |
|---|---|---|---|
200 |
0 |
성공 | 요청에 성공했습니다. |
401 |
1000 |
인증 실패 | Authorization이 없거나 apikey가 유효하지 않습니다. |
401 |
1001 |
Authorization이 비어 있음 | Authorization 헤더가 전달되지 않았습니다. |
401 |
1002 |
Authorization이 유효하지 않음 | apikey가 유효하지 않거나 만료되었습니다. |
401 |
1003 |
Authorization이 아직 유효하지 않음 | apikey가 아직 유효하지 않습니다. |
401 |
1004 |
Authorization 만료 | apikey가 만료되었습니다. |
429 |
1100 |
계정 예외 | 계정 예외입니다(연체, 정지 또는 차단 등이 원인일 수 있음). |
429 |
1101 |
계정 연체(후불) | 후불 계정에 연체 금액이 있습니다. |
429 |
1102 |
리소스 팩 소진 또는 만료 | 리소스 팩을 모두 사용했거나 리소스 팩이 만료되었습니다. |
403 |
1103 |
요청한 리소스에 대한 액세스 거부 | 요청한 리소스에 액세스할 수 없습니다(해당 모델/기능을 구독하지 않음). |
400 |
1200 |
잘못된 요청 파라미터 | 요청 파라미터가 잘못되었습니다(필수 필드 누락, 잘못된 타입, 범위를 벗어난 열거형 값 등). |
400 |
1201 |
잘못된 파라미터 | 파라미터 값이 잘못되었습니다. 문서에서 유효한 값 범위를 확인합니다. |
404 |
1202 |
요청한 메서드가 유효하지 않음 | HTTP 메서드가 잘못되었습니다. |
404 |
1203 |
요청한 리소스가 존재하지 않음 | 엔드포인트 경로가 잘못되었거나 리소스가 존재하지 않습니다. |
400 |
1300 |
플랫폼 정책 발동 | 플랫폼 정책이 발동되었습니다(콘텐츠 검토 실패 또는 규정을 준수하지 않는 입력 등). |
400 |
1301 |
플랫폼 민감어 목록 발동 | 콘텐츠에 민감어 또는 규정을 준수하지 않는 프롬프트가 포함되어 있습니다. |
429 |
1302 |
API 호출이 너무 빈번함 | 호출 빈도가 너무 높아 속도 제한이 적용되었습니다. |
429 |
1303 |
동시 실행 수 또는 QPS 제한 초과 | 동시 실행 수 또는 QPS가 사전 설정된 할당량을 초과했습니다. |
400 |
1304 |
IP 정책 발동 | IP 주소 정책에 따른 차단이 발동되었습니다. |
500 |
5000 |
내부 서버 오류 | 내부 서버 오류입니다. |
503 |
5001 |
서버를 일시적으로 사용할 수 없음 | 서비스를 일시적으로 사용할 수 없습니다(일반적으로 높은 부하 또는 유지 관리로 인함). |
504 |
5002 |
서버 내부 시간 초과 | 내부 서버 시간 초과입니다. |
FAQ
- 텍스트-동영상과 이미지-동영상 간에 어떻게 전환합니까?
모드는 입력 파라미터에 따라 자동으로 결정됩니다. image / image_url 중 어느 것도 제공하지 않으면 텍스트-동영상이고, 이미지 파라미터 중 하나를 제공하면 이미지-동영상입니다. image와 image_url을 모두 제공하면 image(Base64)가 우선합니다.
- 동영상 길이, 해상도 및 비율에는 어떤 값이 지원됩니까?
현재 버전에서 동영상 길이는 5초, 해상도는 720p로 고정됩니다. 비율 aspect_ratio는 텍스트-동영상에만 지정할 수 있으며(16:9 / 9:16 / 1:1 / 4:3 / 3:4), 이미지-동영상의 비율은 입력 이미지에 따라 결정됩니다.
- 조회 API는 어떤 상태 값을 반환합니까?
queued(스케줄링 대기) / running(생성 중) / succeeded(성공) / failed(실패)입니다. 상태가 succeeded일 때만 videos[].url에 값이 있습니다. 상태가 failed이면 error 필드에서 실패 원인을 확인합니다.
- 문서에 나열되지 않은 필드가 조회 응답에 표시됩니까?
조회 응답은 모델 측 응답을 그대로 전달하면서 플랫폼에서 정규화한 필드(예: usage.total_tokens 및 request_id)를 추가한 것입니다. 다른 공급업체별 필드도 포함될 수 있으며 이는 정상입니다. 실제 응답을 기준으로 합니다.
