텍스트로 3D API는 Meshy의 텍스트로 3D 기능을 여러분의 애플리케이션에 통합할 수 있게 해주는 기능입니다. 이 섹션에서는 이 API를 시작하는 데 필요한 모든 정보를 확인할 수 있습니다.
텍스트로 3D는 두 단계로 이루어진 워크플로우를 사용합니다. 먼저 preview 작업(mode: "preview")을 생성하여 텍스처가 없는 3D 메시를 생성함으로써 형태를 평가할 수 있습니다. 그런 다음, 완료된 preview 작업의 작업 ID를 refine 작업(mode: "refine")에 전달하여 메시에 텍스처를 적용합니다. 두 단계 모두 동일한 엔드포인트를 공유합니다.
이 엔드포인트는 텍스트 prompt로부터 텍스처가 없는 3D 메시(지오메트리만)를 생성하는 Text to 3D preview 작업을 생성합니다. 이는 2단계 워크플로우의 첫 번째 단계입니다. preview가 성공하면, 반환된 작업 ID를 사용하여 텍스처링을 위한 refine 작업을 생성하세요. 전체 응답 스키마는
The Text to 3D Task Object를 참고하세요.
파라미터
Name
mode
Type
string
필수
Description
preview 작업을 생성할 때 이 필드는 "preview"로 설정해야 합니다.
Name
prompt
Type
string
필수
Description
3D 모델이 어떤 종류의 객체인지 설명합니다. 최대 800자입니다.
Name
model_type
Type
string
기본값 standard
Description
3D 메시 생성 유형을 지정합니다.
사용 가능한 값:
standard: 일반적인 고디테일 3D 메시 생성입니다.
smart-topology: ai_model(meshy-t2)로 Smart Topology 모델을 선택합니다.
lowpoly(지원 중단): 더 깨끗한 폴리곤에 최적화된 로우폴리 메시를 생성합니다. 대신 smart-topology를 사용하는 것을 권장합니다.
meshy-t2(기본값): Smart Topology 모델 — 더 깨끗한 topology, 기본적으로 분리된 파츠, triangle 출력, 그리고 target_polycount로 설정할 수 있는 면 개수를 제공합니다.
Name
geometry_resolution
Type
string
기본값 standard
Description
지오메트리 생성 패스입니다. 2k는 2048³에서 Ultra 패스를 실행하고, 4k는 4096³에서 실행하여
가장 정교한 표면 디테일을 제공합니다.
사용 가능한 값: standard, 2k, 4k
preview mode에서만 지원됩니다. meshy-7.1 또는 latest가 필요합니다.
Name
ultra_mode
Type
boolean
⚠ 사용 중단
기본값 false
Description
대신 geometry_resolution을 사용하세요. ultra_mode: true는 geometry_resolution: "2k"와 동일합니다.
Name
should_remesh
Type
boolean
기본값 false (Meshy 6 and Meshy 7 models), true (others)
Description
리메시 단계를 활성화할지 여부를 제어합니다. 최고 품질의 모델을 원한다면 should_remesh를 false로 설정하는 것을 권장합니다.
다음 경우에만 적용 should_remesh = true
Name
topology
Type
string
기본값 triangle
Description
생성된 모델의 topology를 지정합니다.
사용 가능한 값:
quad: quad 위주의 메시를 생성합니다.
triangle: 감소된 triangle 메시를 생성합니다.
Smart Topology 출력은 triangle만 지원됩니다. ai_model: meshy-t2와 함께 quad를 요청하면 오류가 반환됩니다.
Name
decimation_mode
Type
integer
Description
폴리곤 수 레벨을 설정하여 적응형 decimation을 활성화합니다. 설정하면 target_polycount는 무시됩니다.
사용 가능한 값:
1: 적응형 — 초고 폴리곤 수.
2: 적응형 — 고 폴리곤 수.
3: 적응형 — 중간 폴리곤 수.
4: 적응형 — 저 폴리곤 수.
Name
target_polycount
Type
integer
Description
출력에서 목표로 하는 폴리곤(면) 개수입니다. 실제 개수는 지오메트리에 따라 목표값과 다를 수 있습니다.
target_polycount는 두 가지 독립적인 경우에 적용됩니다:
Remesh — standard 모델에서 should_remesh: true를 설정한 경우입니다. 메시는 이 개수에 가깝게 리메시(decimation)됩니다. 범위는 100에서 300,000이며, 기본값은 30,000입니다. decimation_mode가 설정되어 있으면 우선적으로 적용되고 target_polycount는 무시됩니다.
Smart Topology — model_type: smart-topology와 ai_model: meshy-t2를 사용하는 경우입니다. 모델은 이 면 개수로 직접 생성되며, 리메시는 실행되지 않고 should_remesh도 필요하지 않습니다. 범위는 100에서 15,000이며, 기본값은 4,000입니다.
Name
symmetry_mode
Type
string
⚠ 사용 중단
기본값 auto
Description
지원 중단됨. 이 파라미터는 더 이상 출력에 영향을 주지 않습니다.
symmetry_mode 필드는 모델 생성 과정 중 대칭 동작을 제어합니다.
유효한 값은 다음과 같습니다:
off: 대칭을 비활성화합니다.
auto: 입력 지오메트리를 기반으로 대칭을 자동으로 판단하고 적용합니다.
on: 생성 중 대칭을 강제로 적용합니다.
Name
pose_mode
Type
string
기본값 ""
Description
생성된 모델의 pose mode를 지정합니다.
사용 가능한 값:
a-pose: 모델을 A 포즈로 생성합니다.
t-pose: 모델을 T 포즈로 생성합니다.
""(빈 문자열): 특정 포즈를 적용하지 않습니다.
Name
is_a_t_pose
Type
boolean
⚠ 사용 중단
기본값 false
Description
대신 pose_mode를 사용하세요. 모델을 A/T 포즈로 생성할지 여부입니다.
Name
art_style
Type
string
⚠ 사용 중단
기본값 realistic
Description
Meshy-6에서는 지원되지 않습니다. Meshy-6을 사용하는 요청은 art_style을 무시하며, 일부 조합에서는 오류가 발생할 수 있습니다. 사용 가능한 값: realistic, sculpture.
Sculpture 스타일은 자체 PBR 맵 세트를 생성하므로, Sculpture 스타일을 사용할 때는 enable_pbr를 false로 설정해야 합니다.
Name
moderation
Type
boolean
기본값 false
Description
true로 설정하면 입력 콘텐츠가 잠재적으로 유해한 콘텐츠에 대해 자동으로 검사됩니다. 유해한 콘텐츠가 감지되면 작업이 생성 단계로 진행되지 않습니다.
prompt의 텍스트가 검사됩니다.
Name
target_formats
Type
string[]
Description
출력에 포함할 3D 파일 형식을 지정합니다. 요청된 형식만 생성되어 반환되며, 이를 통해 작업 완료 시간을 줄일 수 있습니다. 생략하면 지원되는 모든 형식이 포함됩니다.
사용 가능한 값: glb, obj, fbx, stl, usdz, 3mf
생략하면 3mf를 제외한 모든 형식이 생성됩니다. 3mf는 명시적으로 지정된 경우에만 포함됩니다.
Name
alpha_thumbnail
Type
boolean
기본값 false
Description
true로 설정하면 작업은 preview의 투명 배경(RGBA) 버전도 추가로 렌더링하여 GET 응답에 alpha_thumbnail_url로 반환합니다. 기존의 thumbnail_url 필드는 변경되지 않습니다.
Name
auto_size
Type
boolean
기본값 false
Description
true로 설정하면 서비스는 AI 비전을 사용하여 객체의 실제 높이를 자동으로 추정하고 그에 따라 모델의 크기를 조정합니다. origin_at이 명시적으로 설정되지 않은 경우 원점은 기본적으로 bottom이 됩니다.
다음 경우에만 적용 auto_size = true
Name
origin_at
Type
string
기본값 bottom
Description
auto_size가 활성화된 경우 원점의 위치입니다.
사용 가능한 값: bottom, center.
반환값
응답의 result 속성에는 새로 생성된 Text to 3D 작업의 id가 포함됩니다.
실패 모드
Name
400 - Bad Request
Description
요청이 허용되지 않았습니다. 일반적인 원인:
파라미터 누락: 필수 파라미터(예: prompt, mode)가 누락되었습니다.
잘못된 파라미터: art_style이 허용된 값 중 하나가 아닙니다.
prompt가 너무 길음: prompt가 문자 수 제한을 초과했습니다.
로우폴리에 대해 지원되지 않는 모델: ai_model: "meshy-6-lite"는 model_type: "lowpoly"를 지원하지 않습니다.
Ultra에 대해 지원되지 않는 모델: geometry_resolution을 사용하려면 meshy-7.1 또는 latest가 필요합니다.
대신 texture_resolution을 사용하세요 — texture_resolution: "4k"와 동일합니다. 두 값이 모두 설정된 경우 texture_resolution이 우선 적용됩니다.
Name
texture_prompt
Type
string
Description
텍스처링 과정을 안내할 추가 텍스트 프롬프트를 제공합니다. 최대 800자입니다.
Name
texture_image_url
Type
string
Description
텍스처링 과정을 안내할 2D 이미지를 제공합니다. 현재 .jpg, .jpeg, .png 형식을 지원합니다.
이미지를 제공하는 방법은 두 가지입니다:
공개적으로 접근 가능한 URL: 공용 인터넷에서 접근 가능한 URL
Data URI: 이미지의 base64로 인코딩된 data URI. data URI 예시: data:image/jpeg;base64,<your base64-encoded image data>
원본 asset과 업로드된 이미지 간에 지오메트리 차이가 상당히 클 경우 이미지 텍스처링이 최적으로 동작하지 않을 수 있습니다. 텍스처링 과정을 안내하는 데는 texture_image_url 또는 texture_prompt 중 하나만 사용할 수 있습니다. 두 파라미터가 모두 제공된 경우, 기본적으로 texture_prompt가 모델 텍스처링에 사용됩니다.
이 엔드포인트는 텍스트로 3D 작업을 관련된 모든 모델 및 데이터와 함께 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다.
Path Parameters
Name
id
Type
path
Description
삭제할 텍스트로 3D 작업의 ID입니다.
Task Status
아직 PENDING 상태인 작업은 삭제되며, 생성 시 소모된 크레딧은
환불됩니다.
이미 IN_PROGRESS 상태인 작업은 삭제할 수 없습니다. 요청은
409 Conflict로 거부되며 작업은 계속 실행됩니다. 워커가 이미 시작한 작업에 대한
크레딧은 환불되지 않으므로, 실행 도중 삭제하면 크레딧과 결과물을 모두
잃게 됩니다. SUCCEEDED, FAILED 또는 CANCELED 상태에
도달할 때까지 기다린 후 삭제하세요.
최종 상태(SUCCEEDED, FAILED 또는 CANCELED)인 작업은
환불 없이 삭제됩니다.
Returns
성공 시 200 OK를 반환하며, 작업이 IN_PROGRESS 상태인 경우에는
409 Conflict를 반환합니다.
// 200 OK on success, with an empty body.//// 409 Conflict when the task is IN_PROGRESS — the task is left running:{"message":"Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."}
Text to 3D Task 객체는 텍스트 입력으로부터 3D 모델을 생성하기 위해 Meshy가 추적하는 작업 단위입니다. 텍스트로 3D API에는 preview와 refine이라는 두 단계가 있습니다. Preview 단계는 메시만 있는 3D 모델을 생성하기 위한 것이고, refine 단계는 preview 단계의 결과를 기반으로 텍스처가 적용된 3D 모델을 생성하기 위한 것입니다.
이 객체는 다음과 같은 속성을 가지고 있습니다:
속성
Name
id
Type
string
Description
작업의 고유 식별자입니다. 구현 세부 사항으로 작업 id에 k-정렬 가능한 UUID를 사용하지만, id의 형식에 대해 어떠한 가정도 하지 말아야 합니다.
Name
type
Type
string
Description
텍스트로 3D 작업의 유형입니다. 가능한 값은 preview 단계 작업의 경우 text-to-3d-preview, refine 단계 작업의 경우 text-to-3d-refine입니다.
Name
model_urls
Type
object
Description
Meshy가 생성한 텍스처가 적용된 3D 모델 파일을 다운로드할 수 있는 URL입니다. 해당 형식이 생성되지 않은 경우, 빈 문자열을 반환하는 대신 해당 형식에 대한 속성이 생략됩니다.
Name
glb
Type
string
Description
GLB 파일을 다운로드할 수 있는 URL입니다.
Name
fbx
Type
string
Description
FBX 파일을 다운로드할 수 있는 URL입니다.
Name
usdz
Type
string
Description
USDZ 파일을 다운로드할 수 있는 URL입니다.
Name
obj
Type
string
Description
OBJ 파일을 다운로드할 수 있는 URL입니다.
Name
mtl
Type
string
Description
MTL 파일을 다운로드할 수 있는 URL입니다.
Name
stl
Type
string
Description
STL 파일을 다운로드할 수 있는 URL입니다.
Name
3mf
Type
string
Description
3MF 파일을 다운로드할 수 있는 URL입니다. target_formats를 통해 3mf가 요청된 경우에만 존재합니다.
Name
prompt
Type
string
Description
작업을 생성할 때 사용된 수정되지 않은 prompt입니다.
Name
negative_prompt
Type
string
⚠ 사용 중단
Description
이전 버전과의 호환성을 위해 유지됩니다. 이 필드는 생성된 모델에 기능적으로 영향을 미치지 않습니다.
Name
art_style
Type
string
⚠ 사용 중단
Description
preview 작업을 생성할 때 사용된 수정되지 않은 art_style입니다. Meshy-6에서는 지원되지 않습니다.
Name
texture_richness
Type
string
⚠ 사용 중단
Description
이전 버전과의 호환성을 위해 유지됩니다. 이 필드는 생성된 모델에 기능적으로 영향을 미치지 않습니다.
Name
texture_prompt
Type
string
Description
refine 단계에서 텍스처링 과정을 안내하기 위해 제공되는 추가 텍스트 prompt입니다.
Name
ultra_mode
Type
boolean
⚠ 사용 중단
Description
지원 중단됨; 대신 geometry_resolution을 참조하세요.
Name
geometry_resolution
Type
string
Description
preview 작업이 실행된 Ultra 등급(2k 또는 4k)입니다. standard인 경우 생략됩니다.
Name
texture_image_url
Type
string
Description
텍스처링 과정을 안내하는 데 사용된 텍스처 이미지를 다운로드할 수 있는 URL입니다.
Name
thumbnail_url
Type
string
Description
모델 파일의 썸네일 이미지를 다운로드할 수 있는 URL입니다.
Name
alpha_thumbnail_url
Type
string
Description
thumbnail_url의 투명 배경(RGBA) 버전을 다운로드할 수 있는 URL입니다. 작업이 alpha_thumbnail: true로 생성되었고 투명 미리보기가 성공적으로 렌더링된 경우에만 존재하며, 그렇지 않으면 이 필드는 생략됩니다.
Name
video_url
Type
string
⚠ 사용 중단
Description
미리보기 동영상을 다운로드할 수 있는 URL입니다. 향후 릴리스에서 제거될 예정입니다.
Name
progress
Type
integer
Description
작업의 progress입니다. 작업이 아직 시작되지 않은 경우 이 속성은 0입니다. 작업이 성공하면 100이 됩니다.
Name
started_at
Type
timestamp
Description
작업이 시작된 시각의 타임스탬프(밀리초)입니다. 작업이 아직 시작되지 않은 경우 이 속성은 0입니다.
타임스탬프는 RFC 3339 표준을 따라
1970년 1월 1일 UTC 이후 경과한 밀리초 수를 나타냅니다.
예를 들어, 2023년 9월 1일 금요일 GMT 오후 12시 00분 00초는 1693569600000으로 표현됩니다. 이는 Meshy API의
모든 타임스탬프에 적용됩니다.
Name
created_at
Type
timestamp
Description
작업이 생성된 시각의 타임스탬프(밀리초)입니다.
Name
finished_at
Type
timestamp
Description
작업이 완료된 시각의 타임스탬프(밀리초)입니다. 작업이 아직 완료되지 않은 경우 이 속성은 0입니다.
Name
status
Type
string
Description
작업의 상태입니다. 가능한 값은 PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED 중 하나입니다.
Name
texture_urls
Type
array
Description
작업에서 생성된 텍스처 URL 객체의 배열입니다. 일반적으로 이 배열에는 텍스처 URL 객체가 하나만 포함됩니다. 각 텍스처 URL은 다음과 같은 속성을 가지고 있습니다:
Name
base_color
Type
string
Description
base color 맵 이미지를 다운로드할 수 있는 URL입니다.
Name
metallic
Type
string
Description
metallic 맵 이미지를 다운로드할 수 있는 URL입니다.
작업이 enable_pbr: false로 생성된 경우, 이 속성은 생략됩니다.
Name
normal
Type
string
Description
노멀 맵 이미지를 다운로드할 수 있는 URL입니다.
작업이 enable_pbr: false로 생성된 경우, 이 속성은 생략됩니다.
Name
roughness
Type
string
Description
roughness 맵 이미지를 다운로드할 수 있는 URL입니다.
작업이 enable_pbr: false로 생성된 경우, 이 속성은 생략됩니다.
Name
emission
Type
string
Description
emission 맵 이미지를 다운로드할 수 있는 URL입니다.
작업이 enable_pbr: false로 생성되었거나 ai_model이 meshy-6-lite인 경우, 이 속성은 생략됩니다.
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을 반환합니다(실패 시 크레딧은 환불됩니다).
Example Text to 3D Task Object
{"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"text-to-3d-preview","model_urls": {"glb":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***","fbx":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***","usdz":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***","obj":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***","mtl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.mtl?Expires=***","stl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***" },"prompt":"a monster mask","texture_prompt":"green slimy skin with scales and warts","texture_image_url":"","thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","progress":100,"started_at":1692771667037,"created_at":1692771650657,"finished_at":1692771669037,"status":"SUCCEEDED","texture_urls": [ {"base_color":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***","metallic":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX","normal":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX","roughness":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX","emission":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX" } ],"preceding_tasks":0,"task_error": {"message":"" },"consumed_credits":20}