/ Модель

Характеристики

Лицензия
MIT
Опубликована
27 янв 2026

triposr-ios

Языковая модель

ONNX-конверсия TripoSR для восстановления 3D-сетки объекта по одному изображению с запуском на мобильном устройстве или компьютере.

0скачиваний за 30 дней8лайковвеса обновлены3 июл 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

jc-builds/triposr-ios — конвертированная в ONNX часть модели TripoSR, разработанной Stability AI и Tripo AI, для восстановления 3D-сетки по одному изображению. Репозиторий ориентирован на запуск на iPhone, iPad и Mac; описанный конвейер приложения Haplo AI выполняет обработку изображения и инференс на устройстве.

Модель использует энкодер изображений DINO ViT-B/16 примерно на 86 млн параметров, трансформерный декодер примерно на 268 млн параметров и постпроцессор triplane примерно на 65 млн параметров. Изображение приводится к размеру 512×512, после чего признаки обрабатываются для построения 3D-сетки. Инференс выполняется за один прямой проход, без диффузии и итеративного шумоподавления. ONNX-версия занимает около 1,6 ГБ.

Для лучших результатов ожидается одиночный объект по центру на нейтральном фоне; README описывает удаление фона, кадрирование и центрирование как этапы подготовки входа. Качество может ухудшаться на необработанных фотографиях, при неподходящем фоне или неудачном кадрировании. Лицензия репозитория — MIT.

Сценарии применения

  • создание 3D-сетки предмета по фотографии
  • восстановление формы объекта для мобильного 3D-прототипирования
  • преобразование снимка объекта в модель для просмотра на iPhone или iPad

Ограничения

Для качественного результата требуется одиночный объект, расположенный по центру на нейтральном фоне; необработанные фотографии могут давать грубую реконструкцию. ONNX-веса занимают около 1,6 ГБ, что ограничивает применение на устройствах с нехваткой памяти или места.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

TripoSR iOS (ONNX)

Single image → 3D mesh, on your iPhone.

The ONNX-converted encoder from TripoSR by Stability AI × Tripo AI — optimized for on-device inference.


Demo

More examples  —  single photo in, 3D mesh out


Benchmarks

Evaluated on GSO and OmniObject3D datasets. Results from the TripoSR paper.

F-Score @ 0.1  (higher is better)

F-Score Comparison

Chamfer Distance  (lower is better)

Chamfer Distance Comparison

F-Score Across Thresholds

F-Score Line Chart

Cross-Dataset Comparison

Grouped Comparison

GSO Dataset

MethodCD ↓FS@0.1 ↑FS@0.2 ↑FS@0.5 ↑
One-2-3-450.2270.3820.6300.878
OpenLRM0.1800.4300.6980.938
ZeroShape0.1600.4890.7570.952
TGS0.1220.6370.8460.968
TripoSR0.1110.6510.8710.980

OmniObject3D Dataset

MethodCD ↓FS@0.1 ↑FS@0.2 ↑FS@0.5 ↑
One-2-3-450.1970.4450.6980.907
ZeroShape0.1440.5070.7860.968
OpenLRM0.1550.4860.7590.959
TGS0.1420.6020.8180.949
TripoSR0.1020.6770.8900.986

Architecture

One forward pass — no diffusion, no iterative denoising.

graph LR
    A["Input Image<br/>(512x512)"] --> B["DINO ViT-B/16<br/>Image Tokenizer"]
    B --> C["Transformer Decoder<br/>+ Cross-Attention"]
    C --> D["Post Processor<br/>Triplane Features"]
    D --> E["Marching Cubes<br/>3D Mesh"]

    style A fill:#4a9eff,stroke:#30363d,color:#fff
    style B fill:#7c3aed,stroke:#30363d,color:#fff
    style C fill:#7c3aed,stroke:#30363d,color:#fff
    style D fill:#7c3aed,stroke:#30363d,color:#fff
    style E fill:#3fb950,stroke:#30363d,color:#fff
ComponentParametersRole
DINO ViT-B/16~86MPretrained image encoder
Transformer Decoder~268MCross-attention to image tokens
Triplane Post-Processor~65MTokens → triplane features (3x40x64x64)

PyTorch vs. This Model

OriginalThis Conversion
FormatPyTorchONNX
Size~3 GB+1.6 GB
Runs onGPU serveriPhone / iPad / Mac
Dependenciestorch, einops, transformersonnxruntime
ConnectivityCloud APIFully offline

What I Learned Getting This to Work Well

Getting TripoSR to produce clean 3D meshes on a phone took more work than just converting the model to ONNX. The raw model expects a very specific kind of input — a single object, centered, on a neutral background — and if you just feed it a raw photo, the results are pretty rough.

The biggest improvement came from stripping the background before inference. I'm using Apple's Vision framework (VNGenerateForegroundInstanceMaskRequest on iOS 17+) to automatically detect and isolate the main subject. This is the same API that powers the "lift subject from background" feature in Photos — it's fast, runs on-device, and handles edges surprisingly well. The isolated subject gets composited onto a flat gray background (RGB 0.5, 0.5, 0.5), which matches what TripoSR was trained on.

The second big win was smart cropping and centering. After removing the background, I analyze the remaining foreground pixels to find the bounding box, then scale and center the subject so it fills roughly 85-95% of the frame. Too small and the model loses detail; too large and geometry gets clipped. The fill ratio adapts based on the object's shape — tall/narrow objects get a bit more breathing room, compact objects fill more of the frame. A small amount of padding (2-6%) prevents edge artifacts.

I also added a lightweight image enhancement pipeline before inference: noise reduction, luminance sharpening, and edge smoothing after the resize. Lanczos resampling (instead of bilinear) for the 512x512 resize made a noticeable difference in preserving fine detail. All of this runs through Core Image with Metal acceleration, so it adds minimal overhead.

The full pipeline — background removal, crop, center, enhance, infer — runs entirely on-device in Haplo AI. No server, no internet required.


Quick Start

import onnxruntime as ort
import numpy as np
from PIL import Image

session = ort.InferenceSession(
    "triposr_encoder.onnx",
    providers=['CPUExecutionProvider']  # or 'CoreMLExecutionProvider'
)

image = Image.open("photo.png").convert("RGB").resize((512, 512))
input_array = np.array(image).astype(np.float32) / 255.0
input_array = input_array.transpose(2, 0, 1)[np.newaxis, ...]

scene_codes = session.run(None, {"input_image": input_array})[0]
# scene_codes.shape == (1, 3, 40, 64, 64)
import OnnxRuntimeBindings

let session = try ORTSession(env: env, modelPath: modelPath, sessionOptions: nil)

let inputTensor = try ORTValue(
    tensorData: imageData,
    elementType: .float,
    shape: [1, 3, 512, 512]
)

let outputs = try session.run(
    withInputs: ["input_image": inputTensor],
    outputNames: ["scene_codes"]
)

Files

FileSizeDescription
triposr_encoder.onnx2.6 MBModel graph
triposr_encoder.onnx.data1.6 GBWeights

Citation

@article{TripoSR2024,
  title={TripoSR: Fast 3D Object Reconstruction from a Single Image},
  author={Tochilkin, Dmitry and Pankratz, David and Liu, Zexiang and Huang, Zixuan
          and Letts, Adam and Li, Yangguang and Liang, Ding and Laforte, Christian
          and Jampani, Varun and Cao, Yan-Pei},
  journal={arXiv preprint arXiv:2403.02151},
  year={2024}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

3D-генерация пока не поддерживается.

Ревизия весов
f0c7507

0 моделей