Image → 3D · Multi-view → 3D · PBR textures
3DNew

Pixal3D single-image + multi-view 3D

Turn one photo or multiple views of the same object into a textured GLB with baked PBR maps for games, 3D scenes, and AR.

Start with one photo, or add views of the same object for more complete visual guidance. Get a textured GLB.

Interactive 3D model of a white-armored sci-fi character created with Pixal3D

Drag to spin it · this is the real GLB

One image in, a GLB out

What actually happens to your picture

This existing example shows the single-image workflow. Multi-View adds other sides of the same subject before reconstruction; this example was made from one image.

A neon-lit alley outside a diner at night with a pink sloth-unicorn standing in the middle of the frame, a jukebox on the left and a red scooter on the right
Step 1

The picture you hand it

One image is the whole request. This frame is deliberately busy — wet reflections, a jukebox, a scooter, string lights — and none of it needs cropping first.

The same pink sloth-unicorn with the alley removed, standing alone on a transparent background
Step 2

Background dropped for you

BiRefNet runs inside the workflow and isolates the subject before reconstruction starts. Nothing to prompt, nothing to mask. If you want one particular object out of a crowded frame instead, cut it with SAM 3 first and hand Pixal3D that.

Interactive 3D model of Sogni's pink sloth-unicorn mascot, reconstructed from the photo in this example

Drag to explore the 3D result

Step 3

Rebuilt as a textured mesh

What comes back is a GLB carrying base colour, metallic-roughness, normal and ambient-occlusion maps — an asset Unity, Unreal, Blender, three.js and AR viewers open natively, not another picture of an object.

Drag the sloth-unicorn to explore the 3D model from this example. The armored character at the top is another Pixal3D creation.

About

Pixal3D turns photos into a textured GLB 3D model with baked PBR materials. Start with one image, or use Multi-View to supply a front image plus any combination of left, back, and right views of the same subject. Extra views show the reconstruction surfaces hidden in the front photo.

The mesh arrives at roughly 695,000 triangles carrying a full PBR material set baked from the high-poly reconstruction: base colour, metallic-roughness, normal and ambient occlusion, at 4K, 2K and 1K respectively. That is enough surface information to light the object properly in an engine instead of leaning on the shading that happened to be in the source photo.

Built on TRELLIS.2, both workflows require a starting image and take no text prompt. BiRefNet isolates the subject before reconstruction. For Multi-View, use consistent photos of the same object and pose. A front view is required; add one to three other views in their labelled slots. If a photo contains several objects, isolate the intended subject with SAM 3 first.

Four options can only reduce the work: texture size, mesh target faces, normal-map size and ambient-occlusion size. Each already ships at its maximum, so lowering one costs less to produce and can never cost more. Mesh target faces is the one most worth setting — 695K triangles is far heavier than a real-time engine wants, and asking for a fraction of that gives you a more useful asset from the same reconstruction.

Single-image and Multi-View reconstructions have the same price: 60 Spark ($0.30) at the default 1024 shape resolution or 84 Spark ($0.42) at 1536. Adding views does not add a per-image charge. Shape resolution is the only reconstruction option that changes the price.

In Sogni Web, open an image and choose Make a 3D model, then add optional photos of its other sides and choose a detail preset. Both workflows run on the Sogni Supernet and are included in eligible Unlimited plans under fair use. You can also call them by exact model ID with the JavaScript or Python SDK.

Choose single-image or Multi-View reconstruction

Both return a textured GLB with the same output controls and prices. Multi-View adds photos of the same object in the left, back, and right slots.

Variant Details From
Single image
pixal3d_int8_i23d
Input: One source image, required
Shape resolution: 1024 default · 1024–1536
Output: Textured GLB (binary glTF)
60.0 Spark · $0.30 Create →
Multi-View
pixal3d_multiview_int8_i23d
Input: One front image; Multi-View adds 1–3 side/back images
Shape resolution: 1024 default · 1024–1536
Output: Textured GLB (binary glTF)
60.0 Spark · $0.30 Create →

Prompting tips

Pixal3D takes no prompt at all, and it rebuilds what it can actually see — so every bit of the quality comes out of the source image:

  • Keep every view consistent — For Multi-View, use photos of the same object in the same pose. Fill the named front, left, back, and right slots rather than mixing unrelated angles or subjects.
  • One object, fully visible — Frame a single subject with none of it cropped away. Geometry that never appears in the picture has to be invented, and invented geometry is where reconstructions go soft.
  • Sharp beats big — A crisp, in-focus photo reconstructs better than a large blurry one. Motion blur and heavy compression artefacts both end up in the mesh.
  • Avoid heavy occlusion — Hands, foliage and props in front of the subject become part of the silhouette. Shoot or pick a frame where nothing overlaps the object.
  • Even, diffuse light — Baked-in highlights and hard shadows are baked into the base-colour map too. Flat, even lighting gives you a texture you can relight in an engine.
  • Busy frame? Cut it out first — BiRefNet keeps whatever it decides is the foreground, which is the wrong call when several things are in front. Select the object with SAM 3, cut it out on transparency, and reconstruct that instead.
  • Ask for fewer triangles — Set meshTargetFaces to whatever your engine actually wants. The 700,000-face default costs the same as 60,000, but 60,000 is the one you can ship.

Show the sides one photo cannot

Multi-View combines a required front image with one to three optional views of the same subject. Keep the object, pose, and appearance consistent. Left and right mean the subject’s own sides: for the left slot, its own left side faces the camera; for the right slot, its own right side faces the camera. The back slot shows it from behind.

Use Single image when you have only a front photo. Choose Multi-View when you can provide additional views. Both share the same GLB output, PBR maps, detail controls, and $0.30 / $0.42 shape-resolution pricing.

The five options

Four of these already ship at their maximum, so each one can only ask for less work than you are already paying for. shapeResolution is the exception: its default sits at the floor, and raising it is the only thing on this page that costs more.

Option Range Default What it controls
textureSize 1024–4096 4096 Base-colour bake and UV atlas resolution.
meshTargetFaces 5,000–700,000 700,000 Decimation target in triangles. The one worth setting if the asset is going into a real-time engine.
normalMapSize 512–2048 2048 Normal-map resolution.
ambientOcclusionSize 256–1024 1024 Ambient-occlusion map resolution.
shapeResolution 1024–1536 1024 Sparse-latent upsampling resolution — the only option that moves the price, and the only one that can move it up.

Pricing

Use pay-as-you-go Spark packs for each model (1 Spark = $0.005), or choose a flat-rate Sogni plan for credit-free fair-use generation in the app.

Variant / configuration Spark USD
1024 shape resolution (the shipped default) 60.0 Spark $0.30
1536 shape resolution (the finer shape latent, priced as a step up) 84.0 Spark $0.42

Shape resolution is the only option that changes what a reconstruction costs. A request is billed at the cheapest priced point that covers the resolution it will actually run at, so 1024 pays the 1024 rate and anything from 1025 to 1536 pays the 1536 rate.

1 Spark = $0.005. Pay as you go with Spark packs, or generate under fair use on a flat monthly Sogni plan.

API

One Sogni API key reaches every model on the Supernet — call Pixal3D with the exact model id for the variant you want.

import { readFileSync } from 'node:fs';
import { SogniClient } from '@sogni-ai/sogni-client';

const client = await SogniClient.createInstance({
  appId: crypto.randomUUID(),
  apiKey: process.env.SOGNI_API_KEY,
  network: 'fast',
});

const project = await client.projects.create({
  type: 'image',
  modelId: 'pixal3d_multiview_int8_i23d',
  positivePrompt: '',
  numberOfMedia: 1,
  startingImage: readFileSync('teapot-front.jpg'),
  leftViewImage: readFileSync('teapot-left.jpg'),
  backViewImage: readFileSync('teapot-back.jpg'),
  // rightViewImage is optional, as are the other side/back views.
  shapeResolution: 1024, // 60 Spark ($0.30), same as single-image
  // Reduce-only: this default is already the maximum, so it costs no more.
  meshTargetFaces: 60000,
});

const [url] = await project.waitForCompletion();
console.log(url); // textured .glb — download within 24h
import asyncio, os
from sogni_client import SogniClient

async def main():
    async with await SogniClient.create(
        api_key=os.environ["SOGNI_API_KEY"],
        app_id="pixal3d-example",
    ) as sogni:
        project = await sogni.projects.create(
            type="image",
            model_id="pixal3d_int8_i23d",
            positive_prompt="",
            number_of_media=1,
            starting_image="teapot.jpg",
            # Reduce-only: this default is already the maximum.
            mesh_target_faces=60000,
        )
        for url in await project.wait_for_completion():
            print(url)  # textured .glb

asyncio.run(main())

The JavaScript example uses pixal3d_multiview_int8_i23d with a front image and optional named leftViewImage, backViewImage, and rightViewImage uploads. Omit unused views; do not pass contextImages. The Python example shows the single-image pixal3d_int8_i23d workflow. Neither workflow takes a text prompt. Full reference at docs.sogni.ai.

Why run it on Sogni

Subscriptions or Spark

Use a flat monthly plan for credit-free fair-use generation, or buy Spark packs when pay-as-you-go fits better. Both run on the same creator-owned GPU network.

∞

Unlimited plans

One flat price in the app. Generate under fair use without a per-image meter.

🧩

200+ models

Image, video, music, and language models in one workspace and one API key.

⚡

Pay-as-you-go Spark

Prefer pay-as-you-go? Call Pixal3D by id and pay with Spark packs.

🌐

Powered by people

Runs on a decentralized GPU network where workers share subscription revenue.

FAQ

Pixal3D on Sogni

Can Pixal3D build a 3D model from multiple images?

Yes. Multi-View takes a required front image and one to three additional views: left, back, and right. Use photos of the same subject in the same pose. Left and right refer to the subject’s own sides. The model ID is pixal3d_multiview_int8_i23d; use pixal3d_int8_i23d for a single source image.

Does Multi-View cost more than single-image Pixal3D?

No. Both cost 60 Spark ($0.30) at 1024 shape resolution or 84 Spark ($0.42) at 1536. Extra views do not add a per-image charge. Both are included in eligible Unlimited plans under fair use.

What does Pixal3D actually return?

A textured GLB — a binary glTF file, the standard interchange format for 3D on the web. It carries the mesh plus baked base-colour, metallic-roughness, normal and ambient-occlusion maps, and opens directly in Unity, Unreal, Blender, three.js and common AR and VR viewers. It is a 3D asset, not an image.

Do I need to write a prompt?

No. Both Pixal3D workflows use photos, with BiRefNet isolating the subject automatically. One clear photo is enough for Single image; Multi-View adds other sides of the same object. When a frame holds several objects and you need a specific one, select it with SAM 3 first and reconstruct the cutout.

Can I generate a 3D model from text alone?

Not with Pixal3D — it always needs a starting image. If you only have an idea, generate the object first with an image model such as Z-Image Turbo or Krea 2 Turbo on a plain background, then feed that render to Pixal3D.

How much does it cost?

A reconstruction costs $0.30 (60 Spark) at the shipped 1024 shape resolution. Asking for 1536 costs $0.42 (84 Spark). Shape resolution is the only option that changes the price, and the only one you can raise — texture size, mesh target faces, normal-map size and ambient-occlusion size all ship at their maximum and can only reduce the work for the same money.

How long does a reconstruction take?

On one measured run on an RTX 5090 at 1536, about 122 seconds. That is a single run rather than a benchmark, and jobs land on whichever eligible worker on the Supernet picks them up, so treat it as an order of magnitude rather than a promise. That measurement was for single-image reconstruction; Multi-View has not been benchmarked here.

The mesh is far too heavy for my game engine. Can I get less?

Yes. Set meshTargetFaces to your own budget — anywhere from 5,000 to the 700,000-face default. The decimation happens during the reconstruction, so a lighter mesh comes back already decimated with its maps baked against it, and it costs exactly the same as the heavy one.

What is Pixal3D built on?

TRELLIS.2. Sogni runs the Comfy-Org native Pixal3D/TRELLIS.2 workflow with the official INT8 ConvRot checkpoint, DINOv3 conditioning and MoGe-2 camera estimation. Pixal3D itself is published by TencentARC under the MIT licence, with a separate licence covering the bundled DINOv3 weights.

Do I need a GPU or ComfyUI?

No. Pixal3D needs a 30GB-class GPU to run at all, which is exactly why it is worth renting by the job. It runs on the Sogni Supernet — a decentralized network of creator GPUs — so there is no local install, no ComfyUI graph to wire up, and no card to buy.

Start with Pixal3D today

Create in the app, or build with the API. Your call.