원본 사진을 두 단계로 치비 스타일의 수집용 3D 피규어로 변환합니다:
prototype은 입력 사진에서 스타일이 적용된 콘셉트 이미지를 생성한 다음,
build는 해당 콘셉트 이미지를 텍스처가 적용된 3D 모델로 변환합니다. 두 단계는
input_task_id를 통해 연결됩니다.
소스 사진에서 단일 치비 스타일 콘셉트 이미지를 생성합니다. 반환된 작업 ID는 빌드
엔드포인트에 input_task_id로 전달하는 값입니다. 응답 형식은
The Figure Prototype Task Object를
참조하세요.
파라미터
Name
image_url
Type
string
필수
Description
Meshy가 치비 피규어로 스타일화할 소스 사진입니다. 현재 .jpg, .jpeg, .png, .webp 형식을 지원합니다.
이미지를 제공하는 방법은 두 가지입니다.
공개적으로 접근 가능한 URL: 공개 인터넷에서 접근할 수 있는 URL입니다.
Data URI: 이미지의 base64로 인코딩된 Data URI입니다. Data URI 예시: data:image/jpeg;base64,<your base64-encoded image data>.
Name
name
Type
string
Description
표시 목적의 선택적 작업 이름입니다. 최대 100자입니다.
반환값
응답의 result 속성에는 새로 생성된 피규어 프로토타입 작업의 task id가 포함됩니다. 작업이 SUCCEEDED에 도달할 때까지 Get a Task 엔드포인트를 폴링하거나 stream을 구독한 다음, 해당 ID를 build endpoint에 input_task_id로 전달하세요.
실패 모드
Name
400 - Bad Request
Description
요청이 허용되지 않았습니다. 일반적인 원인:
누락된 파라미터: image_url이 필요합니다.
유효하지 않은 이미지 형식: 제공된 image_url이 지원되는 형식(.jpg, .jpeg, .png, .webp)이 아닙니다.
이미지 크기가 범위를 벗어남: 이미지가 너무 작거나, 최대 파일 크기를 초과하거나, 최대 픽셀 수를 초과합니다.
접근할 수 없는 URL: image_url을 다운로드할 수 없습니다(404 또는 timeout).
유효하지 않은 Data URI: base64 문자열 형식이 잘못되었습니다.
플래그된 콘텐츠: 입력 이미지가 NSFW 또는 지적 재산권 moderation에 의해 플래그되었습니다.
Name
401 - Unauthorized
Description
인증에 실패했습니다. API 키를 확인하세요.
Name
402 - Payment Required
Description
이 작업을 수행하기 위한 크레딧이 부족합니다.
Name
429 - Too Many Requests
Description
속도 제한을 초과했습니다.
Request
POST
/openapi/creative-lab/figure/v1/prototype
# Stage 1: generate a chibi-style concept imagecurl https://api.meshy.ai/openapi/creative-lab/figure/v1/prototype \ -X POST \ -H "Authorization: Bearer ${YOUR_API_KEY}" \ -H 'Content-Type: application/json' \ -d '{ "image_url": "<your publicly accessible image url or base64-encoded data URI>" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source portrait, then generate the prototype image used by the build stage.
성공한 프로토타입 작업에서 최종 텍스처가 적용된 3D 피규어를 생성합니다.
빌드는 이미지로 3D와 동일한 이미지로 3D 파이프라인을
실행하므로 응답 객체 형식과 출력 URL 목록이 정확히 일치합니다.
응답 구조는 피규어 빌드 작업 객체를
참조하세요.
파라미터
Name
input_task_id
Type
string
필수
Description
이 동일한 OpenAPI 엔드포인트를 통해 생성된 프로토타입 작업의 작업 ID입니다. 프로토타입은 동일한 API 키로 생성되어야 하고, SUCCEEDED에 도달해야 하며, 정확히 하나의 후보 이미지를 생성해야 합니다.
웹앱을 통해 생성된 프로토타입 작업은 허용되지 않습니다 — 빌드 엔드포인트는 POST /openapi/creative-lab/figure/v1/prototype에서 생성된 프로토타입 작업만 허용하며, 다른 모든 소스는 404로 거부합니다.
Name
name
Type
string
Description
표시용 선택적 작업 이름입니다. 최대 100자입니다.
반환값
응답의 result 속성에는 새로 생성된 피규어 빌드 작업의 작업 id가 포함됩니다. 작업이 SUCCEEDED에 도달할 때까지 작업 조회 엔드포인트를 폴링하거나 스트림을 구독한 다음, model_urls.glb에서 텍스처가 적용된 GLB를 다운로드하세요(또는 다운스트림 파이프라인에서 OBJ를 선호하는 경우 model_urls.obj 및 model_urls.mtl에서 OBJ + MTL 쌍을 다운로드하세요).
실패 모드
Name
400 - Bad Request
Description
요청을 수락할 수 없습니다. 일반적인 원인:
누락된 파라미터: input_task_id는 필수입니다.
잘못된 UUID: input_task_id가 유효한 UUID가 아닙니다.
상위 작업이 성공하지 않음: 참조된 프로토타입 작업이 아직 SUCCEEDED에 도달하지 않았습니다.
후보 없음: 프로토타입 작업은 성공했지만 후보 이미지를 생성하지 않았습니다.
Name
401 - Unauthorized
Description
인증에 실패했습니다. API 키를 확인하세요.
Name
402 - Payment Required
Description
이 작업을 수행하기에 크레딧이 부족합니다.
Name
404 - Not Found
Description
참조된 프로토타입 작업이 존재하지 않거나, 다른 사용자에게 속해 있거나, 웹앱을 통해 생성되었습니다(API mode 프로토타입 작업만 빌드로 체인될 수 있음).
Name
429 - Too Many Requests
Description
속도 제한을 초과했습니다.
Request
POST
/openapi/creative-lab/figure/v1/build
# Stage 2: chain build off a succeeded prototype taskcurl https://api.meshy.ai/openapi/creative-lab/figure/v1/build \ -X POST \ -H "Authorization: Bearer ${YOUR_API_KEY}" \ -H 'Content-Type: application/json' \ -d '{ "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578" }'
Response
{"result":"019c320e-9a8f-7a1c-9c11-2a1876f8a9bb"}
Build example
The build task turns the selected prototype image into a downloadable textured 3D model.
피규어 작업을 취소합니다. 작업이 아직 PENDING 상태인 경우, 생성 시
사용된 크레딧이 환불됩니다. 이미 IN_PROGRESS 상태인 작업은 환불 없이
취소됩니다(작업자가 이미 리소스를 사용하고 있을 수 있음). 이미 최종 상태
(SUCCEEDED, FAILED, CANCELED)에 도달한 작업은 취소할 수 없습니다.
Server-Sent Events(SSE)를 통해 피규어 작업의 실시간 업데이트를 스트리밍합니다.
URL 경로는 작업의 단계와 일치해야 합니다. 예를 들어
/prototype/:buildId/stream에서 스트림을 열면 status_code: 404가 포함된 단일 event: error 페이로드를 내보내고 스트림을 닫습니다.
매개변수
Name
id
Type
path
Description
스트리밍할 피규어 작업의 고유 식별자입니다.
반환값
Server-Sent Events로 피규어 프로토타입
또는 피규어 빌드 작업 객체의 스트림을
반환합니다. PENDING 또는 IN_PROGRESS 작업의 경우 응답
스트림에는 필요한 progress 및 status 필드만 포함됩니다.
피규어 프로토타입 태스크 객체는 Meshy가 소스 사진에서 치비 스타일 콘셉트 이미지를 생성하기 위해 추적하는 작업 단위입니다. 이 단계의 출력은 input_task_id를 통해 빌드 단계로 연결됩니다.
속성
Name
id
Type
string
Description
작업의 고유 식별자입니다. 구현 세부 사항으로 작업 ID에 k-정렬 가능 UUID를 사용하지만, id의 형식에 대해 어떠한 가정도 해서는 안 됩니다.
Name
type
Type
string
Description
작업의 유형입니다. 값은 creative-lab-figure-prototype입니다.
Name
name
Type
string
Description
작업이 생성될 때 제공된 작업 이름입니다. 이름이 제공되지 않은 경우 빈 문자열입니다.
Name
status
Type
string
Description
작업의 상태입니다. 가능한 값은 PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED 중 하나입니다.
Name
progress
Type
integer
Description
작업의 progress입니다. 작업이 아직 시작되지 않은 경우 이 속성은 0입니다. 작업이 성공하면 100이 됩니다.
Name
created_at
Type
timestamp
Description
작업이 생성된 시점의 타임스탬프이며, 밀리초 단위입니다.
타임스탬프는 1970년 1월 1일 UTC 이후 경과한 밀리초 수를 나타내며,
RFC 3339 표준을 따릅니다.
예를 들어, 2023년 9월 1일 금요일 12:00:00 PM GMT는 1693569600000으로 표시됩니다. 이는 Meshy API의
모든 타임스탬프에 적용됩니다.
Name
started_at
Type
timestamp
Description
작업이 시작된 시점의 타임스탬프이며, 밀리초 단위입니다. 작업이 아직 시작되지 않은 경우 이 속성은 0입니다.
Name
finished_at
Type
timestamp
Description
작업이 완료된 시점의 타임스탬프이며, 밀리초 단위입니다. 작업이 아직 완료되지 않은 경우 이 속성은 0입니다.
Name
expires_at
Type
timestamp
Description
작업 결과가 만료되는 시점의 타임스탬프이며, 밀리초 단위입니다.
Name
preceding_tasks
Type
integer
Description
선행 작업 수입니다.
이 필드의 값은 작업 상태가 PENDING인 경우에만 의미가 있습니다.
Name
task_error
Type
object
Description
실패한 작업에 대한 오류 세부 정보입니다. 전체 task_error 객체 참조는 오류를 참조하세요.
Name
consumed_credits
Type
integer
Description
이 작업에서 소비한 크레딧 수입니다. 작업 상태가 PENDING, IN_PROGRESS 또는 SUCCEEDED일 때 표시됩니다. FAILED 작업의 경우 0을 반환합니다(실패 시 크레딧이 환불됩니다).
Name
image_urls
Type
array of strings
Description
이 프로토타입 작업에서 생성된 콘셉트 이미지 후보의 다운로드 가능한 URL입니다. 현재 API는 항상 정확히 하나의 후보만 반환합니다. 이 필드는 향후 개정에서 호환성을 깨뜨리는 변경 없이 여러 후보를 제공할 수 있도록 배열입니다.
피규어 빌드 작업 객체는 성공한 프로토타입 작업에서 텍스처가 적용된 3D 피규어를
생성하기 위해 Meshy가 추적하는 작업 단위입니다. 이 작업은 이미지로 3D에서 사용하는 것과 동일한 이미지로 3D 파이프라인을
실행하므로, 출력 필드는 해당 엔드포인트의 작업 객체와 동일합니다.
속성
Name
id
Type
string
Description
작업의 고유 식별자입니다.
Name
type
Type
string
Description
작업의 유형입니다. 값은 creative-lab-figure-build입니다.
Name
name
Type
string
Description
작업이 생성될 때 제공된 작업 이름입니다. 이름이 제공되지 않은 경우 빈 문자열입니다.
Name
status
Type
string
Description
작업의 상태입니다. 가능한 값은 PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED 중 하나입니다.
Name
progress
Type
integer
Description
작업의 progress입니다. 작업이 아직 시작되지 않은 경우 이 속성은 0입니다. 작업이 성공하면 100이 됩니다.
Name
created_at
Type
timestamp
Description
작업이 생성된 시점의 타임스탬프(밀리초)입니다.
Name
started_at
Type
timestamp
Description
작업이 시작된 시점의 타임스탬프(밀리초)입니다.
Name
finished_at
Type
timestamp
Description
작업이 완료된 시점의 타임스탬프(밀리초)입니다.
Name
expires_at
Type
timestamp
Description
작업 결과가 만료되는 시점의 타임스탬프(밀리초)입니다.
Name
preceding_tasks
Type
integer
Description
선행 작업의 개수입니다. 상태가 PENDING일 때만 의미가 있습니다.
Name
task_error
Type
object
Description
실패한 작업에 대한 오류 세부 정보입니다. 전체 task_error 객체 참조는 오류를 참조하세요.
Name
consumed_credits
Type
integer
Description
이 작업에서 소비한 크레딧 수입니다. FAILED 작업의 경우 0을 반환합니다(실패 시 크레딧은 환불됩니다).
Name
prompt
Type
string
Description
피규어 빌드에서는 항상 비어 있습니다. 이미지로 3D에서 사용하는 공유 V2ImageTo3DTaskResponse 형태와의 교차 엔드포인트 호환성을 위해 존재합니다.
Name
negative_prompt
Type
string
Description
피규어 빌드에서는 항상 비어 있습니다. 교차 엔드포인트 호환성을 위해 존재합니다.
Name
texture_prompt
Type
string
Description
피규어 빌드에서는 항상 비어 있습니다. 교차 엔드포인트 호환성을 위해 존재합니다.
Name
texture_image_url
Type
string
Description
피규어 빌드에서는 항상 비어 있습니다. 교차 엔드포인트 호환성을 위해 존재합니다.
Name
model_urls
Type
object
Description
생성된 3D 모델의 다운로드 가능한 URL입니다. 피규어 빌드는 텍스처가 적용된 GLB와, Wavefront OBJ를 선호하는 파이프라인을 위한 OBJ + MTL 쌍을 내보냅니다. 필드 형태는 이미지로 3D model_urls 객체와 일치하므로 향후 형식 추가 시 breaking change 없이 포함할 수 있습니다.
Name
glb
Type
string
Description
텍스처가 적용된 GLB 파일의 다운로드 가능한 URL입니다.
Name
obj
Type
string
Description
Wavefront OBJ 파일(지오메트리 + UV)의 다운로드 가능한 URL입니다.
Name
mtl
Type
string
Description
OBJ와 함께 사용되는 MTL 머티리얼 파일의 다운로드 가능한 URL입니다. obj 및 texture_urls[0].base_color의 항목과 함께 사용하세요.
Name
thumbnail_url
Type
string
Description
모델 파일의 썸네일 이미지에 대한 다운로드 가능한 URL입니다.
Name
texture_urls
Type
array
Description
이 작업에서 생성된 텍스처 URL 객체의 배열입니다. 현재는 기본 색상 맵이 포함된 단일 객체를 포함합니다.