Image to 3D
Use model_generate_fromimage when you want to generate a 3D model from a reference image.
When To Use
- converting concept art or sketches into 3D
- turning product or object images into initial 3D assets
- keeping shape cues from a visual reference
Expected outcome: GLB outputs retrievable by asset_id after flow completion.
Inputs
- required input data type: image data URL or base64 payload in JSON
- supported formats:
image/png,image/jpg,image/tiff,image/webp - recommended: centered subject, clear silhouette, minimal visual noise
Minimal input object:
{
"data": "data:image/png;base64,<base64-image>"
}
Parameters
| Name | Type | Default | Allowed values | Practical guidance |
|---|---|---|---|---|
quality | string | high | low, high | Use high when visual fidelity matters. |
seed | integer | -1 | integer | Fix seed for repeatability across tests. |
texture | boolean | true | true, false | Keep true for textured output in most cases. |
Minimal Runnable Payload
from pathlib import Path
from base64 import b64encode
def image_to_data_url(path: Path) -> str:
encoded = b64encode(path.read_bytes()).decode()
return f"data:image/png;base64,{encoded}"
payload = {
"template": "model_generate_fromimage",
"parameters": {
"quality": "high",
"texture": True,
"seed": -1
},
"inputs": [
{
"data": image_to_data_url(Path("input.png"))
}
]
}
Polling And Output Retrieval
- Create flow with
POST /flows. - Poll until
completed,failed, oraborted. - On
completed, list outputs and fetch byasset_id.
Use shared implementation from Template Helpers.
Common Failure Modes
- unsupported MIME type or malformed data URL
- image too large or low-quality reference
- attempting output retrieval before completion
Recovery:
- verify data URL format and MIME
- use cleaner, smaller, and better-lit input images
- wait for completed state before download
See Troubleshooting for full error handling guidance.