Prepare downloadable texture maps
texture_maps_createConvert uploaded PNG/JPEG images or supplied maps into a bounded PBR map package without changing the scene. Supplied maps win; derived relief and roughness are labeled approximations. Returns a durable job; job_get.result.textureMaps contains map, ZIP, repeat-preview and manifest artifact IDs. Use image_prompt_assist for source-image guidance.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| roles | No | ||
| options | No | ||
| profile | No | surface | |
| projectId | Yes | ||
| sourceMaps | No | ||
| materialName | No | Image Material | |
| sourceAssetId | No | ||
| idempotencyKey | Yes | Caller-chosen key. Replaying it with IDENTICAL input returns the EXISTING job instead of queueing a second one — a restarted driver adopts its own in-flight work rather than duplicating or orphaning it. Vary the key to force a new job. Full semantics: the same key with DIFFERENT input is rejected with IDEMPOTENCY_CONFLICT (never silently replayed, so a stale result cannot be mistaken for a fresh one). A key is recorded only once a job is actually created, so a request rejected beforehand (validation, APPROVAL_REQUIRED, quota) leaves the key unused and free to reuse. A key bound to a job keeps resolving to that job even after it fails or is cancelled — use a NEW key to genuinely retry cancelled work. Keys live 48 hours and are scoped per principal+deployment+operation, which means they SPAN SESSIONS: a plain descriptive key like "hero-final-1024-v1" will collide with your own run from yesterday and be rejected. Include a project id or a timestamp. This scope used to be stated only in the conflict error, i.e. after the round trip it cost — a field build lost two that way, ~34 hours after unrelated work had taken the same names. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job | Yes |