Skip to main content
AIHubMix는 세 가지 작업 API를 제공합니다. 이미지는 /ai/v1/images, 비디오는 /ai/v1/videos, 통합 작업 기록은 /ai/v1/tasks를 사용합니다.
  • 이미지 생성은 기본적으로 동기 방식이며, async: true를 전달하면 비동기로 실행됩니다.
  • 비디오 생성은 항상 비동기로 실행됩니다.
  • 이미지 및 비디오 상세 API는 미디어 작업의 최신 상태를 가져오는 데 사용합니다.
  • /ai/v1/tasks는 이미지, 비디오 및 LLM 작업에 대한 통합 읽기 전용 보기를 제공합니다.
Doubao Seedance 비디오에서 실존 인물 에셋을 참조해야 한다면 Doubao 실존 인물 에셋 사용 가이드에 따라 본인 확인과 에셋 준비를 완료한 후 비디오 작업을 생성하세요.

영상 튜토리얼: 비동기 작업

비동기 작업의 전체 구조를 설명하고, 비동기 이미지 생성을 예로 전체 호출 절차를 시연합니다.

콘솔에서 비동기 작업 활성화

/ai/v1 미디어 작업 API를 사용하기 전에 현재 계정에서 비동기 작업 기능을 활성화하세요.
비동기 작업 기능이 활성화되지 않은 경우 이미지 및 비디오 작업 생성 요청은 403 async_not_enabled를 반환합니다.

빠른 시작

다음 예시는 wan2.6-t2v로 비디오를 생성합니다. 이 모델은 durationsize를 지원하며, 유효한 필드는 모델마다 다를 수 있습니다.

세 가지 API를 어떻게 선택하나요?

Base URL은 https://aihubmix.com이며, Bearer Token으로 인증합니다.
모델 목록과 모델 Schema API는 공개 검색 API이므로 Bearer Token이 필요하지 않습니다. 나머지 API는 인증이 필요합니다.
/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가 게시되고 검토된 모델만 반환됩니다.
두 요청은 같은 API를 사용합니다. 현재 type 필터는 하나의 값만 허용하므로 모델 유형별로 요청하세요. 응답 구조는 {success, message, data}입니다. 비동기 미디어 연동과 관련된 data 필드는 다음과 같습니다.

단일 모델의 요청 Schema 조회

지원 필드, 열거형 및 숫자 범위는 모델마다 다를 수 있습니다. 이미지 또는 비디오 요청을 보내기 전에 다음 공개 API를 사용하여 선택한 모델의 사용 가능한 엔드포인트와 요청 JSON Schema를 조회하세요.
응답의 modalityimage 또는 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-t2vduration, size, seed를 지원하며, resolution, aspect_ratio, frame_images, input_references, generate_audio는 지원하지 않습니다.
  • qwen-image-2.0n, size, seed, negative_prompt, image, images를 지원하며, aspect_ratiomask는 지원하지 않습니다.
표준 필드 집합이 모든 모델에서 모든 필드를 지원한다는 의미는 아닙니다. 현재 모델이 지원하지 않는 필드를 전달하면 파라미터 오류가 반환됩니다.

LLM 중단 복구 모델

현재 다음 모델을 지원합니다.
  • gpt-5.6-sol
  • gpt-5.5-pro
  • gpt-5.4-pro
  • gpt-5.2-pro
  • claude-fable-5
  • claude-opus-5
지원 범위는 변경될 수 있으므로 이 페이지의 목록을 기준으로 확인하세요. 중단 복구를 사용하려면 현재 계정에서 비동기 작업 기능도 활성화해야 합니다. 어느 조건이든 충족하지 않으면 원래 LLM 요청은 정상적으로 실행되지만, 클라이언트 연결이 끊어진 후 복구 작업은 저장되지 않습니다.

이미지 작업을 생성하는 방법

동기 이미지

async를 생략하거나 false로 설정하면 API는 생성이 완료될 때까지 기다린 후 작업 객체를 반환합니다.
동기 이미지 작업도 작업 기록에 저장됩니다. 클라이언트 연결이 끊어지거나 생성 응답을 잃은 경우 GET /ai/v1/images로 해당 작업을 찾을 수 있습니다.

비동기 이미지

async를 불리언 값 true로 설정하면 API가 작업 객체를 즉시 반환하고 생성은 백그라운드에서 계속됩니다.
GET /ai/v1/images/{id}로 비동기 이미지 작업을 조회하세요. 완료 후 각 output 항목의 content_url을 직접 요청할 수 있습니다. 이 URL에는 해당 이미지의 result_id가 포함되어 있습니다.
이미지 요청의 async는 불리언 값이어야 합니다. webhook_urlwebhook_events_filterasync: true와 함께만 사용할 수 있습니다.

이미지 표준 필드


비디오 작업을 생성하는 방법

비디오 요청은 항상 비동기이며, Prefer: wait로 동기 대기로 전환할 수 없습니다. 표준 프로토콜은 정수 duration을 초 단위로 사용합니다.

비디오 표준 필드

input_references 항목 구조:
typeimage_url, video_url 또는 audio_url일 수 있습니다. frame_images 항목 구조:
frame_typefirst_frame 또는 last_frame일 수 있습니다.

미디어 작업 객체

이미지 및 비디오 전용 API는 다음 구조를 반환합니다.
미디어 output 항목:

상태 설명

상태가 completed, failed 또는 cancelled로 바뀔 때까지 클라이언트에서 15초마다 조회할 수 있습니다. 15초는 클라이언트 폴링 권장 간격이며 서버 프로토콜 제한이 아닙니다.

미디어 작업을 조회하는 방법

미디어 상세 조회

미디어 상세 API는 갱신된 작업 상태를 반환할 수 있으므로, 미디어 폴링에는 해당 이미지 또는 비디오 상세 API를 사용하세요.

미디어 목록 조회

생성 응답을 잃은 경우 해당 미디어 목록에서 작업 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 디코딩할 수 있습니다.

비디오 다운로드

결과는 만료될 수 있으며 다운로드 횟수 제한이 적용될 수 있습니다. 만료된 경우 410 artifact_expired, 다운로드 횟수 제한을 초과한 경우 429 too_many_downloads가 반환됩니다.

Webhook 사용 방법

비동기 이미지 및 비디오는 작업 단위 Webhook을 지원합니다.
webhook_url은 최대 512자이며 로컬 호스트, 사설망 또는 기타 제한된 주소를 가리킬 수 없습니다. webhook_events_filter를 생략하면 플랫폼은 completed, failed, cancelled를 전송합니다. 명시적으로 전달하는 경우 배열은 비어 있거나 중복될 수 없으며 webhook_url과 함께 사용해야 합니다. 요청에 webhook_url을 전달하지 않으면 비동기 이미지 및 비디오는 계정에 설정된 기본 콜백 주소를 사용하려고 시도합니다. 유효하지 않은 계정 기본 주소는 무시되며 작업 생성을 차단하지 않습니다.

콜백 요청

results는 결과가 저장된 경우에만 표시되며 다운로드에는 여전히 Bearer Token이 필요합니다.

재시도 및 중복 제거

플랫폼은 최소 한 번 전달 방식을 사용하므로 동일한 이벤트가 중복 전송될 수 있습니다.
  • HTTP 2xx는 수신 성공을 의미합니다.
  • HTTP 5xx, 네트워크 오류 또는 타임아웃은 재시도를 유발합니다.
  • HTTP 3xx4xx는 재시도하지 않습니다.
  • 최대 6회 전달하며, 재시도 간격은 순서대로 1, 4, 16, 64, 256초입니다.
수신 측은 event_id를 저장하고 동일한 이벤트를 다시 받으면 즉시 2xx를 반환해야 합니다.
작업 단위 Webhook 자체에는 별도의 서명 키가 없습니다. 서명 검증이 필요하면 계정 단위 Webhook 구독을 설정하고 작업 상세 조회를 결과 확인 방법으로 유지하세요.

LLM 중단 복구 동작 방식

LLM 중단 복구는 클라이언트 연결이 끊어진 후 최종 응답을 가져오는 데 사용합니다. 요청 방식, 스트리밍 동작 및 응답 형식은 그대로 유지되며 요청 시작 시 작업 ID를 미리 반환하지 않습니다. 다음 조건을 모두 충족해야 합니다. 플랫폼은 응답이 완전히 전달되지 않았고 클라이언트 연결이 끊어진 것을 감지한 경우에만 복구 작업을 생성하고 최종 JSON 또는 SSE를 저장합니다. 정상적으로 완료되어 클라이언트에 모두 전달된 LLM 요청은 복구 작업을 생성하지 않습니다. LLM 응답 헤더에는 X-Aihubmix-Request-Id가 포함됩니다. 클라이언트는 콘솔에서 해당 요청을 찾을 수 있도록 이 값을 가능한 한 빨리 저장해야 합니다. 공개 작업 API는 현재 요청 ID 필터링을 지원하지 않습니다. 모델과 생성 시간을 기준으로 최근 LLM 작업을 조회할 수 있습니다.
LLM 작업의 통합 output 항목에는 type=response, content_type, content_url, truncated가 포함됩니다. GET /ai/v1/tasks/{id}/content는 저장된 원본 JSON 또는 SSE를 반환합니다.
LLM 중단 복구 작업은 현재 작업 단위 Webhook을 전송하지 않습니다. 클라이언트 중단은 플랫폼의 요청 처리를 중지하지 않으며 해당 호출은 원래 API 규칙에 따라 과금됩니다.

오류 응답 및 오류 코드

이 절은 /ai/v1/images/*, /ai/v1/videos/*/ai/v1/tasks/*에서 object=image 또는 object=video인 미디어 작업에 적용됩니다. 클라이언트는 HTTP 비 2xx 응답과 HTTP 200, status=failed인 작업의 최종 상태를 모두 처리해야 합니다.

HTTP 5xx 오류 피드백 제출

HTTP 5xx 오류가 발생한 경우에만 피드백을 제출하고 error.tid를 함께 제공하세요.

HTTP 비 2xx 오류

invalid_requestschema_violation 행에 표시된 message는 대체 템플릿입니다. 서비스가 구체적인 필드 또는 파라미터 제약 조건을 식별할 수 있으면 동적 message를 반환합니다. 클라이언트는 message 문자열을 고정 비교하지 말고 code로 오류 유형을 판단해야 합니다. media_form_unsupportedmessage는 확인된 원인에 따라 생성되며, 일반적인 템플릿은 다음과 같습니다. 예를 들어 모델이 PNG, JPEG, WebP, HEIC 및 HEIF를 허용하는 경우 GIF 이미지는 다음 message를 반환합니다.

HTTP 200 + Task status=failed

조회 요청이 성공해도 생성 성공을 의미하지는 않습니다. 작업이 failed이면 클라이언트는 작업 객체의 error.codeerror.message에서 실패 원인을 읽어야 합니다.

전체 비디오 예시


자주 묻는 질문

미디어 작업은 /ai/v1/tasks/{id}와 미디어 상세 API 중 어디에서 조회해야 하나요? 생성 상태를 폴링할 때는 미디어 상세 API를 사용하세요. 이미지는 /ai/v1/images/{id}, 비디오는 /ai/v1/videos/{id}로 조회합니다. /ai/v1/tasks/{id}는 읽기 전용 스냅샷을 반환합니다. 비디오 요청에서 seconds를 사용하면 파라미터 오류가 발생하는 이유는 무엇인가요? /ai/v1/videos 표준 프로토콜은 정수 duration을 초 단위로 사용합니다. 구체적인 허용 값은 해당 모델이 지원하는 파라미터에 따라 결정됩니다. 일부 비디오 모델에서 resolution을 사용하면 파라미터 오류가 발생하는 이유는 무엇인가요? 표준 비디오 프로토콜에는 resolutionsize가 포함되지만, 각 모델은 지원 필드를 제한할 수 있습니다. 예를 들어 wan2.6-t2vsize를 사용하며 resolution을 지원하지 않습니다. 생성 응답을 잃은 후 미디어 작업을 어떻게 찾나요? 이미지는 GET /ai/v1/images, 비디오는 GET /ai/v1/videos를 요청하세요. 목록은 after, limit, order 페이지네이션 파라미터를 지원합니다. 두 상세 API의 output 필드가 다른 이유는 무엇인가요? 미디어 상세 API는 직접 다운로드에 필요한 간소화된 필드를 제공합니다. 통합 작업 API는 result_idcontent_type을 추가로 제공하며, LLM 저장 응답에는 truncated도 제공합니다. Webhook을 받지 못한 경우 어떻게 해야 하나요? 콜백 주소가 외부에서 접근 가능하고 즉시 2xx를 반환하는지 확인한 후 미디어 상세 API로 최종 상태를 조회하세요.
마지막 업데이트: 2026-08-12