/ai/v1/images, 비디오는 /ai/v1/videos, 통합 작업 기록은 /ai/v1/tasks를 사용합니다.
- 이미지 생성은 기본적으로 동기 방식이며,
async: true를 전달하면 비동기로 실행됩니다. - 비디오 생성은 항상 비동기로 실행됩니다.
- 이미지 및 비디오 상세 API는 미디어 작업의 최신 상태를 가져오는 데 사용합니다.
/ai/v1/tasks는 이미지, 비디오 및 LLM 작업에 대한 통합 읽기 전용 보기를 제공합니다.
영상 튜토리얼: 비동기 작업
콘솔에서 비동기 작업 활성화
빠른 시작
다음 예시는wan2.6-t2v로 비디오를 생성합니다. 이 모델은 duration과 size를 지원하며, 유효한 필드는 모델마다 다를 수 있습니다.
세 가지 API를 어떻게 선택하나요?
Base URL은
https://aihubmix.com이며, Bearer Token으로 인증합니다.
/ai/v1/tasks는 생성 API를 제공하지 않습니다. 이미지와 비디오는 해당 미디어
생성 API로 생성해야 합니다. LLM 복구 작업은 클라이언트 중단 후 플랫폼이
자동으로 저장합니다.미디어 API와 통합 작업 API의 차이
미디어 상세 API와 통합 작업 API는 동일한 작업 최상위 필드를 반환하지만,output 항목과 조회 동작은 다릅니다.
따라서 미디어 생성 상태를 폴링할 때는 이미지 또는 비디오 상세 API를 사용하세요. 작업을 통합 필터링하거나 결과 메타데이터를 읽거나 LLM 응답을 복구하려면
/ai/v1/tasks를 사용하세요.
비동기 미디어 모델을 찾고 Schema를 가져오는 방법
검색 절차는 두 단계입니다. 먼저 공개 모델 카탈로그에서 비동기 API를 지원하는 텍스트 이미지 또는 텍스트 비디오 모델을 가져옵니다. 그런 다음 모델의model_id를 사용해 해당 엔드포인트의 요청 Schema를 가져옵니다.
비동기 API를 지원하는 모델 목록 조회
모델 카탈로그는 Playground와 같은 데이터 소스를 사용합니다. 텍스트 이미지 모델에는type=image_generation, 텍스트 비디오 모델에는 type=video를 사용하세요. schema_checked=true를 추가하면 요청 Schema가 게시되고 검토된 모델만 반환됩니다.
type 필터는 하나의 값만 허용하므로 모델 유형별로 요청하세요.
응답 구조는 {success, message, data}입니다. 비동기 미디어 연동과 관련된 data 필드는 다음과 같습니다.
단일 모델의 요청 Schema 조회
지원 필드, 열거형 및 숫자 범위는 모델마다 다를 수 있습니다. 이미지 또는 비디오 요청을 보내기 전에 다음 공개 API를 사용하여 선택한 모델의 사용 가능한 엔드포인트와 요청 JSON Schema를 조회하세요.modality는 image 또는 video입니다. endpoints 배열의 각 항목은 사용 가능한 호출 프로토콜 하나를 설명합니다.
같은 모델에서
/ai/v1 엔드포인트와 OpenAI 호환 /v1 엔드포인트가 함께 반환될 수 있습니다. OpenAI 호환 엔드포인트는 최신 모델을 아직 지원하지 않을 수 있으므로 /ai/v1 엔드포인트를 우선 사용하세요. 비동기 작업 API에는 path가 /ai/v1/images/generations 또는 /ai/v1/videos인 항목을 선택한 후 해당 request.schema를 사용하세요. endpoints 배열의 위치에 의존하지 마세요.
다음 명령은 각 비동기 작업 엔드포인트의 요청 Schema를 직접 추출합니다.
404 model_not_found를 반환합니다. 엔드포인트 데이터를 일시적으로 사용할 수 없으면 500 endpoints_unavailable를 반환합니다.
지원 모델 및 필드
이미지와 비디오 프로토콜은 모델 간 공통 표준 필드를 정의하지만, 각 모델은 실제 기능에 따라 필드, 열거형 및 값 범위를 제한합니다. 호출하기 전에 모델 Schema API에서 해당 모델의 현재 제약 조건을 조회하세요. 예시:wan2.6-t2v는duration,size,seed를 지원하며,resolution,aspect_ratio,frame_images,input_references,generate_audio는 지원하지 않습니다.qwen-image-2.0은n,size,seed,negative_prompt,image,images를 지원하며,aspect_ratio와mask는 지원하지 않습니다.
LLM 중단 복구 모델
현재 다음 모델을 지원합니다.- gpt-5.6-sol
- gpt-5.5-pro
- gpt-5.4-pro
- gpt-5.2-pro
- claude-fable-5
- claude-opus-5
이미지 작업을 생성하는 방법
동기 이미지
async를 생략하거나 false로 설정하면 API는 생성이 완료될 때까지 기다린 후 작업 객체를 반환합니다.
GET /ai/v1/images로 해당 작업을 찾을 수 있습니다.
비동기 이미지
async를 불리언 값 true로 설정하면 API가 작업 객체를 즉시 반환하고 생성은 백그라운드에서 계속됩니다.
GET /ai/v1/images/{id}로 비동기 이미지 작업을 조회하세요. 완료 후 각 output 항목의 content_url을 직접 요청할 수 있습니다. 이 URL에는 해당 이미지의 result_id가 포함되어 있습니다.
이미지 요청의
async는 불리언 값이어야 합니다. webhook_url과
webhook_events_filter는 async: true와 함께만 사용할 수 있습니다.이미지 표준 필드
비디오 작업을 생성하는 방법
비디오 요청은 항상 비동기이며,Prefer: wait로 동기 대기로 전환할 수 없습니다. 표준 프로토콜은 정수 duration을 초 단위로 사용합니다.
비디오 표준 필드
input_references 항목 구조:
type은 image_url, video_url 또는 audio_url일 수 있습니다.
frame_images 항목 구조:
frame_type은 first_frame 또는 last_frame일 수 있습니다.
미디어 작업 객체
이미지 및 비디오 전용 API는 다음 구조를 반환합니다.
미디어
output 항목:
상태 설명
상태가
completed, failed 또는 cancelled로 바뀔 때까지 클라이언트에서 15초마다 조회할 수 있습니다. 15초는 클라이언트 폴링 권장 간격이며 서버 프로토콜 제한이 아닙니다.
미디어 작업을 조회하는 방법
미디어 상세 조회
미디어 목록 조회
생성 응답을 잃은 경우 해당 미디어 목록에서 작업 ID를 찾을 수 있습니다.통합 작업 API를 사용하는 방법
통합 작업 API는 다음 필터를 지원합니다.
통합 작업 상세:
output 항목:
/ai/v1/tasks/{id}/content로 직접 요청하세요. 다중 결과물 작업은 /ai/v1/tasks/{id}/content/{result_id}를 요청해야 하며, 결과 ID를 지정하지 않으면 400 result_id_required가 반환됩니다.
통합 작업 목록, 상세 및 콘텐츠 API는 작업을 생성한 Bearer Token에 따라
격리됩니다. 같은 계정의 다른 API Key로는 해당 작업을 읽을 수 없습니다.
미디어 결과를 다운로드하는 방법
이미지 다운로드
이미지가 완료되면 미디어 작업 객체의output[].content_url을 각 항목별로 요청하세요.
/ai/v1/images/{id}/content/{result_id}입니다. 미디어 작업 객체는 result_id를 별도로 공개하지 않으므로 클라이언트는 content_url을 직접 사용하면 됩니다.
b64_json이 비어 있지 않으면 해당 필드를 직접 Base64 디코딩할 수 있습니다.
비디오 다운로드
Webhook 사용 방법
비동기 이미지 및 비디오는 작업 단위 Webhook을 지원합니다.webhook_url은 최대 512자이며 로컬 호스트, 사설망 또는 기타 제한된 주소를 가리킬 수 없습니다. webhook_events_filter를 생략하면 플랫폼은 completed, failed, cancelled를 전송합니다. 명시적으로 전달하는 경우 배열은 비어 있거나 중복될 수 없으며 webhook_url과 함께 사용해야 합니다.
요청에 webhook_url을 전달하지 않으면 비동기 이미지 및 비디오는 계정에 설정된 기본 콜백 주소를 사용하려고 시도합니다. 유효하지 않은 계정 기본 주소는 무시되며 작업 생성을 차단하지 않습니다.
콜백 요청
results는 결과가 저장된 경우에만 표시되며 다운로드에는 여전히 Bearer Token이 필요합니다.
재시도 및 중복 제거
플랫폼은 최소 한 번 전달 방식을 사용하므로 동일한 이벤트가 중복 전송될 수 있습니다.- HTTP
2xx는 수신 성공을 의미합니다. - HTTP
5xx, 네트워크 오류 또는 타임아웃은 재시도를 유발합니다. - HTTP
3xx및4xx는 재시도하지 않습니다. - 최대 6회 전달하며, 재시도 간격은 순서대로 1, 4, 16, 64, 256초입니다.
event_id를 저장하고 동일한 이벤트를 다시 받으면 즉시 2xx를 반환해야 합니다.
LLM 중단 복구 동작 방식
LLM 중단 복구는 클라이언트 연결이 끊어진 후 최종 응답을 가져오는 데 사용합니다. 요청 방식, 스트리밍 동작 및 응답 형식은 그대로 유지되며 요청 시작 시 작업 ID를 미리 반환하지 않습니다. 다음 조건을 모두 충족해야 합니다.
플랫폼은 응답이 완전히 전달되지 않았고 클라이언트 연결이 끊어진 것을 감지한 경우에만 복구 작업을 생성하고 최종 JSON 또는 SSE를 저장합니다. 정상적으로 완료되어 클라이언트에 모두 전달된 LLM 요청은 복구 작업을 생성하지 않습니다.
LLM 응답 헤더에는
X-Aihubmix-Request-Id가 포함됩니다. 클라이언트는 콘솔에서 해당 요청을 찾을 수 있도록 이 값을 가능한 한 빨리 저장해야 합니다. 공개 작업 API는 현재 요청 ID 필터링을 지원하지 않습니다. 모델과 생성 시간을 기준으로 최근 LLM 작업을 조회할 수 있습니다.
output 항목에는 type=response, content_type, content_url, truncated가 포함됩니다. GET /ai/v1/tasks/{id}/content는 저장된 원본 JSON 또는 SSE를 반환합니다.
오류 응답 및 오류 코드
이 절은/ai/v1/images/*, /ai/v1/videos/* 및 이미지나 동영상으로 식별된 /ai/v1/tasks/*에 적용됩니다. LLM 작업은 기존 오류 규약을 유지합니다. 미디어 유형이 지정되지 않았고 Task도 아직 가져오지 못한 조회에는 일반 오류 규약이 계속 적용됩니다.
- 현재 요청 실패: HTTP 상태가 2xx가 아니면 현재 생성, 조회 또는 다운로드 요청이 실패한 것입니다. HTTP 요청 실패를 참조하세요.
- 작업 실행 실패: 조회는 HTTP 200을 반환하지만 작업의
status=failed이며 원인은 작업 내error에 기록됩니다. 작업 실행 실패를 참조하세요. - 목록의 개별 결과 읽기 실패: 목록은 HTTP 200을 반환하지만 일부 작업에
output_error가 포함됩니다. 목록의 개별 결과 읽기 실패를 참조하세요.
message 열은 API가 반환하는 영어 메시지이며, 설명 열은 의미와 조치 방법을 안내합니다. 매개변수 검증 오류에는 일반 메시지를 표시하며, 실제 응답에는 구체적인 필드와 제약 조건이 포함될 수 있습니다. 클라이언트는 code로 오류 유형을 판단하고 message 전체 문자열의 일치 여부에 의존하지 않아야 합니다.
HTTP 5xx 오류 신고
HTTP 요청 실패
아래 HTTP 상태는 현재 요청 자체가 실패한 경우에 적용됩니다. 이미 생성된 작업의 실행 실패는 아래 작업 실행 실패 표를 참조하세요.요청 매개변수 및 미디어 입력
- 미디어 크기: 이미지 작업이 한도를 초과하면
image_too_large, 다른 미디어 작업은media_too_large를 반환합니다. 동영상 작업에 참조 이미지를 업로드할 때도media_too_large를 사용합니다. 구체적인 한도는 오류 메시지 또는error.details.max_bytes를 확인하세요. - 전체 요청 크기:
request_too_large는 텍스트, 매개변수 및 인라인 미디어 인코딩을 포함한 HTTP 본문이 32 MiB를 초과했음을 의미합니다. URL만 전송하면 링크 자체가 본문에 포함되며, 링크가 가리키는 파일은 모델의 미디어 제한을 충족해야 합니다. - 실제 크기:
error.details.actual_bytes는 전체 크기가 확인된 경우에만 제공됩니다. URL에서 미디어를 읽다가 읽기 한도에 도달해 중단되면 이 필드가 생략될 수 있습니다.
error.details.allowed_mime_types 또는 오류 메시지의 형식 목록을 확인하세요. 목록이 없으면 모델의 Schema를 참조하세요.
메시지의 자리표시자
{media_kind}: 실제 미디어 유형입니다. 유형이 확인되면invalid_media_data및media_url_unreachable메시지에도image또는video가 사용됩니다.{max_bytes}: 바이트 단위 한도입니다. 이미지 한도를 알 수 없으면The image is too large. Reduce the image size and try again.을 반환합니다.{allowed_formats}: 허용되는 형식 목록입니다. 형식 오류 메시지에Use one of: {allowed_formats}.가 추가될 수 있습니다.
생성 요청 및 반환 결과
계정 및 권한
서비스 가용성 및 요청 속도 제한
provider_unavailable은 모델 프로바이더의 장애가 명확히 확인되었음을 의미합니다. 일반적인 429 또는 4xx만으로 계정 할당량, 콘텐츠 심사 또는 매개변수 문제를 확인할 수 없습니다.
작업 조회 및 결과 다운로드
작업 실행 실패
작업이 생성된 후 발생한 생성 실패는status=failed와 작업 내 error로 표시됩니다. 조회가 성공하면 HTTP 200을 반환합니다.
message는 submit a new task.로 끝나며 미디어 크기를 줄여 새 작업을 제출하도록 안내합니다.
output_blocked는 명확한 차단이 발생했고 사용 가능한 이미지가 반환되지 않았음을 의미하며 이번 생성에는 요금이 부과되지 않습니다. output_policy_violation에는 기존 콘텐츠 심사 과금 규칙이 적용됩니다. 과거 요금은 청구 기록을 확인하세요.
목록의 개별 결과 읽기 실패
이미지 및 동영상 작업 목록의 일부 행에output_error가 포함될 수 있습니다.
output=[]가 됩니다. 기존 id, status, error 및 페이지네이션은 유지되며 정상적으로 읽을 수 있는 다른 작업에는 영향이 없습니다. status=completed여도 output_error를 확인한 후 결과를 읽을 수 있는지 판단하세요.
output_error.tid를 제공하여 지원팀에 문의하세요. 해당 필드에 tid가 없으면 현재 응답 헤더의 요청 ID를 제공할 수 있습니다. 이 오류는 작업 상태나 요금을 변경하지 않으며 Webhook을 발생시키지 않습니다.
통합 /ai/v1/tasks 목록의 읽기 실패 행은 expires_at=null을 반환할 수 있지만 결과에는 기존 보관 기간이 그대로 적용됩니다. 이미지 및 동영상 전용 목록은 이미 가져온 만료 시간을 유지합니다.
이 처리는 개별 행의 결과를 읽을 수 없고 사용 가능한 대체 결과도 없는 경우에만 적용됩니다. 통합 tasks API에서 목록 전체 조회가 실패하면 HTTP 오류를 반환하며, 상세 조회에서 같은 장애가 발생하면 HTTP 500을 반환합니다.
관련 문서: 이미지 API · 동영상 API · 비동기 작업
전체 비디오 예시
자주 묻는 질문
미디어 작업은/ai/v1/tasks/{id}와 미디어 상세 API 중 어디에서 조회해야 하나요?
생성 상태를 폴링할 때는 미디어 상세 API를 사용하세요. 이미지는 /ai/v1/images/{id}, 비디오는 /ai/v1/videos/{id}로 조회합니다. /ai/v1/tasks/{id}는 읽기 전용 스냅샷을 반환합니다.
비디오 요청에서 seconds를 사용하면 파라미터 오류가 발생하는 이유는 무엇인가요?
/ai/v1/videos 표준 프로토콜은 정수 duration을 초 단위로 사용합니다. 구체적인 허용 값은 해당 모델이 지원하는 파라미터에 따라 결정됩니다.
일부 비디오 모델에서 resolution을 사용하면 파라미터 오류가 발생하는 이유는 무엇인가요?
표준 비디오 프로토콜에는 resolution과 size가 포함되지만, 각 모델은 지원 필드를 제한할 수 있습니다. 예를 들어 wan2.6-t2v는 size를 사용하며 resolution을 지원하지 않습니다.
생성 응답을 잃은 후 미디어 작업을 어떻게 찾나요?
이미지는 GET /ai/v1/images, 비디오는 GET /ai/v1/videos를 요청하세요. 목록은 after, limit, order 페이지네이션 파라미터를 지원합니다.
두 상세 API의 output 필드가 다른 이유는 무엇인가요?
미디어 상세 API는 직접 다운로드에 필요한 간소화된 필드를 제공합니다. 통합 작업 API는 result_id와 content_type을 추가로 제공하며, LLM 저장 응답에는 truncated도 제공합니다.
Webhook을 받지 못한 경우 어떻게 해야 하나요?
콜백 주소가 외부에서 접근 가능하고 즉시 2xx를 반환하는지 확인한 후 미디어 상세 API로 최종 상태를 조회하세요.
마지막 업데이트: 2026-08-12