PopNowAPI
Get API key

Seed3D 2.0 API

by ByteDance

Richly textured 3D models from one image, great for characters

bytedance/seed3d-2.0/image-to-3d
  • Image to 3D

About Seed3D 2.0

Richly textured 3D models from one image, great for characters.

Call it with the model name bytedance/seed3d-2.0/image-to-3d on POST /jobs/createTask, from $0.48.

Introduction

Seed3D 2.0 is the 3D asset model from ByteDance's Seed team, released in April 2026. It reads a single picture and builds the object in it as a full 3D mesh with materials, so a product shot or a character render becomes something you can turn around, light and place in a scene. The request takes one image (image_url) and an optional density switch (mesh_detail); there is no prompt, seed or style field. The result is one binary glTF file (.glb) with the textures packed inside it.

Key features

Geometry and materials from one picture

Seed3D 2.0 generates the shape and a physically based material together. In our runs every model came back with two 4096×4096 textures, a base-colour map and a metal-roughness map, so leather looked worn and matte while brass eyelets and a helmet visor picked up highlights. There is no separate normal map; the surface detail lives in the mesh itself.

A dense, closed mesh

At the default medium level both test models came back at just under 500,000 triangles in one mesh and one material; at low the same boot had 99,977 faces. The publisher describes the levels as about 100,000, 500,000 and 1,000,000 faces. A denser mesh holds small features such as laces, stitching and fingers better; a lighter one loads faster in a browser.

What we measured

We sent a 1024×1024 studio photo of a leather boot and a 682×1024 render of a toy astronaut. Both returned valid GLB files: 37.2 MB and 28.6 MB, 499,998 and 499,992 triangles, processed in 356 and 340 seconds. The astronaut kept its face, visor, chest panel and orange trim on all sides. The boot, sent as a straight front view, came back with the back half mirrored from the front.

Request parameters

ParameterRequiredDescription
image_urlYesThe picture to start from.
mesh_detailNoMesh density: low (about 100,000 faces), medium (about 500,000) or high (about 1,000,000). All three cost the same; higher levels keep finer detail and make larger files. low · medium · high · Default: medium

Pricing

Prices are in USD. The API uses a separate USD balance. Website credits cannot be used or transferred to it, and API funds cannot be transferred to website credits. When a task is accepted, we reserve the maximum quoted amount from your API balance. On completion, we charge for actual usage, never more than the hold, and release the remainder. If the task fails, the hold is released.

OptionUSD per run
Standard$0.48

Send the same request body to POST /jobs/quote to see the estimated and maximum USD charge before running. A quote does not run the task or charge your balance.

Use cases

E-commerce and product viewers

A packshot becomes an interactive model for a product page or an AR preview. Shoot or render the product at a three-quarter angle on a plain background, keep the whole object in frame, and use the medium level for a good balance between detail and download size.

Characters, toys and collectibles

Character renders and figurine photos convert well because their shapes are simple and their colours are bold. The texture carries painted details such as faces, badges and stripes; the back is inferred, so pick a pose where most of the character is visible.

Prompt guide & pro tips

Prepare the picture

Use one subject, centred, with some margin around it and nothing touching the frame edge. A plain light background separates the object cleanly. JPEG, PNG or WebP up to 10 MB is accepted, and the image should stay between about 2:5 and 5:2 in shape.

Choose the angle on purpose

The model only sees one side. A straight front view of a shoe or a car leaves the length of the object unknown, and the hidden half may be filled in as a mirror of the front. A three-quarter view that shows the front and one side gives a far more reliable result.

Pick the detail level for where the model will be used

Use low for mobile previews and scenes with many props, medium for most web viewers and high when the model will be inspected up close or 3D-printed.

Check the result before you ship it

Open the GLB in a viewer, turn it all the way round and look at the side you did not show. If the back looks wrong, try another photo angle rather than another detail level.

API quick start

Call the Seed3D 2.0 API in three steps

  1. Create an API key. Sign in to PopNow and create a key in the API console. Keys start with sk-popnow-. API calls use your separate USD balance.
  2. Send the request. POST /jobs/createTask with model bytedance/seed3d-2.0/image-to-3d and an input object that follows the parameter table. The response returns a task ID straight away.
  3. Get the result. Poll GET /jobs/recordInfo with the task ID, or pass a callBackUrl and we post the result to it. Download the output links when the task succeeds.
# 1. Create the task. Keep the Idempotency-Key if you retry after a network error.
export IDEMPOTENCY_KEY="$(uuidgen)"
curl -X POST https://api.popnow.ai/api/v1/jobs/createTask \
  -H "Authorization: Bearer $POPNOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  -d '{
  "model": "bytedance/seed3d-2.0/image-to-3d",
  "input": {
    "image_url": "https://media.popnow.ai/influencer/examples/marco.webp",
    "mesh_detail": "medium"
  }
}'

# 2. Copy data.taskId from the response, then poll until state is succeeded, failed, canceled or expired.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
  -H "Authorization: Bearer $POPNOW_API_KEY"

Replace the prompt and any links with your own. The API tab has the response, polling and callback reference.

Seed3D 2.0 API questions

How much does the Seed3D 2.0 API cost?

Seed3D 2.0 costs $0.48 per run. The API uses a separate USD balance. Website credits cannot be used or transferred to it, and API funds cannot be transferred to website credits. When a task is accepted, we reserve the maximum quoted amount from your API balance. On completion, we charge for actual usage, never more than the hold, and release the remainder. If the task fails, the hold is released.

What is the model name for Seed3D 2.0 in the API?

Put bytedance/seed3d-2.0/image-to-3d for Image to 3D in the model field of POST /jobs/createTask.

What do I get back?

One .glb file, binary glTF 2.0, with the textures embedded: a base-colour map and a metal-roughness map, both 4096×4096 PNG in our runs. Blender, three.js, model-viewer, Unity and Unreal all import it directly.

Does it need a prompt?

No. The only required input is the picture. mesh_detail is optional and changes only how dense the mesh is.

Which picture works best?

One subject, fully in frame, on a plain background, seen from a three-quarter angle. Crowded scenes, cropped objects and straight-on views leave the model guessing about what it cannot see.

What are the limits of the Seed3D 2.0 API?

Largest upload: 10 MB. Requests outside these limits are rejected before anything is charged.

Can I try Seed3D 2.0 without writing code?

Run Seed3D 2.0 in the Playground with your API USD balance, without an API key. Each run appears in your developer history with its matching code.

More about Seed3D 2.0