> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/generaciya-3d/triposr.md).

# TripoSR

Создавайте 3D-модели из одного изображения с TripoSR на Clore.ai

Создавайте 3D-модели из одиночных изображений менее чем за секунду.

{% hint style="success" %}
Все примеры можно запускать на GPU-серверах, арендованных через [маркетплейс CLORE.AI](https://clore.ai/marketplace).
{% endhint %}

## Аренда на CLORE.AI

1. Перейдите на [маркетплейс CLORE.AI](https://clore.ai/marketplace)
2. Отфильтруйте по типу GPU, объёму VRAM и цене
3. Выберите **On-Demand** (фиксированная ставка) или **Spot** (цена ставки)
4. Настройте свой заказ:
   * Выберите Docker-образ
   * Установите порты (TCP для SSH, HTTP для веб-интерфейсов)
   * При необходимости добавьте переменные окружения
   * Введите команду запуска
5. Выберите способ оплаты: **CLORE**, **BTC**, или **USDT/USDC**
6. Создайте заказ и дождитесь развертывания

### Получите доступ к своему серверу

* Найдите данные для подключения в **Мои заказы**
* Веб-интерфейсы: используйте URL HTTP-порта
* SSH: `ssh -p <port> root@<proxy-address>`

## Что такое TripoSR?

TripoSR от Stability AI и Tripo AI позволяет:

* Создание 3D-сетки по одному изображению
* Инференс менее чем за секунду
* Высококачественные текстурированные сетки
* Экспорт в OBJ, GLB и другие форматы

## Ресурсы

* **GitHub:** [VAST-AI-Research/TripoSR](https://github.com/VAST-AI-Research/TripoSR)
* **HuggingFace:** [stabilityai/TripoSR](https://huggingface.co/stabilityai/TripoSR)
* **Статья:** [Статья о TripoSR](https://arxiv.org/abs/2403.02151)
* **Демо:** [HuggingFace Space](https://huggingface.co/spaces/stabilityai/TripoSR)

## Рекомендуемое оборудование

| Компонент | Минимум       | Рекомендуется | Оптимально    |
| --------- | ------------- | ------------- | ------------- |
| GPU       | RTX 3060 12GB | RTX 4080 16GB | RTX 4090 24GB |
| VRAM      | 8 ГБ          | 12GB          | 16GB          |
| CPU       | 4 ядра        | 8 ядер        | 16 ядер       |
| ОЗУ       | 16GB          | 32GB          | 64GB          |
| Хранилище | 20 ГБ SSD     | 50GB NVMe     | 100GB NVMe    |
| Интернет  | 100 Мбит/с    | 500 Мбит/с    | 1 Гбит/с      |

## Быстрое развертывание на CLORE.AI

**Docker-образ:**

```
pytorch/pytorch:2.11.0-cuda12.8-cudnn9-devel
```

**Порты:**

```
22/tcp
7860/http
```

**Команда:**

```bash
cd /workspace && \
git clone https://github.com/VAST-AI-Research/TripoSR.git && \\
cd TripoSR && \\
pip install -r requirements.txt && \
python gradio_app.py
```

## Доступ к вашему сервису

После развертывания найдите свой `http_pub` URL в **Мои заказы**:

1. Перейдите на **Мои заказы** страницу
2. Нажмите на свой заказ
3. Найдите `http_pub` URL (например, `abc123.clorecloud.net`)

Используйте `https://YOUR_HTTP_PUB_URL` вместо `localhost` в примерах ниже.

## Установка

```bash
git clone https://github.com/VAST-AI-Research/TripoSR.git
cd TripoSR
pip install -r requirements.txt

# Модель автоматически загружается при первом запуске
```

## Что вы можете создать

### Игры и VR

* Преобразуйте концепт-арт в 3D-ресурсы
* Быстрое прототипирование игровых объектов
* Создание моделей персонажей
* Объекты окружения

### Электронная коммерция

* 3D-визуализация продуктов
* AR-примерка
* 360-градусный обзор продуктов
* Виртуальные шоурумы

### Архитектура

* Быстрые 3D-модели по эскизам
* Визуализация дизайна интерьера
* Прототипы мебели
* Создание строительных элементов

### Образование

* 3D-модели для учебных материалов
* Научная визуализация
* Воссоздание исторических артефактов
* Модели анатомии

### Творческие проекты

* Цифровое искусство и NFT
* Анимационные ресурсы
* Подготовка к 3D-печати
* Создание мемов и аватаров

## Базовое использование

### Командная строка

```bash
python run.py input_image.png \\
    --output-dir output/ \\
    --render
```

### Python API

```python
import torch
from PIL import Image
from tsr.system import TSR
from tsr.utils import remove_background, save_video

# Загрузить модель
model = TSR.from_pretrained(
    "stabilityai/TripoSR",
    config_name="config.yaml",
    weight_name="model.ckpt"
)
model.to("cuda")

# Загрузить и предварительно обработать изображение
image = Image.open("input.png")

# Сгенерировать 3D-сетку
with torch.no_grad():
    scene_codes = model([image], device="cuda")

# Извлечь сетку
meshes = model.extract_mesh(scene_codes)

# Сохранить сетку
meshes[0].export("output.obj")
```

### С удалением фона

```python
from tsr.system import TSR
from tsr.utils import remove_background
from PIL import Image

model = TSR.from_pretrained("stabilityai/TripoSR")
model.to("cuda")

# Загрузить изображение и удалить фон
image = Image.open("photo.jpg")
image_no_bg = remove_background(image)

# Сгенерировать 3D
with torch.no_grad():
    scene_codes = model([image_no_bg], device="cuda")

mesh = model.extract_mesh(scene_codes)[0]
mesh.export("model.glb")  # Экспортировать как GLB для веба
```

## Пакетная обработка

```python
import os
from PIL import Image
import torch
from tsr.system import TSR
from tsr.utils import remove_background

model = TSR.from_pretrained("stabilityai/TripoSR")
model.to("cuda")

input_dir = "./images"
output_dir = "./3d_models"
os.makedirs(output_dir, exist_ok=True)

images_to_process = []
filenames = []

for filename in os.listdir(input_dir):
    if not filename.endswith(('.jpg', '.png')):
        continue

    image = Image.open(os.path.join(input_dir, filename))
    image_no_bg = remove_background(image)
    images_to_process.append(image_no_bg)
    filenames.append(filename)

# Обработка пакетами
batch_size = 4
for i in range(0, len(images_to_process), batch_size):
    batch = images_to_process[i:i+batch_size]
    batch_names = filenames[i:i+batch_size]

    with torch.no_grad():
        scene_codes = model(batch, device="cuda")

    meshes = model.extract_mesh(scene_codes)

    for mesh, name in zip(meshes, batch_names):
        output_name = name.rsplit('.', 1)[0] + '.obj'
        mesh.export(os.path.join(output_dir, output_name))
        print(f"Сгенерировано: {output_name}")
```

## Форматы экспорта

```python
from tsr.system import TSR
from PIL import Image

model = TSR.from_pretrained("stabilityai/TripoSR")
model.to("cuda")

image = Image.open("input.png")

with torch.no_grad():
    scene_codes = model([image], device="cuda")

mesh = model.extract_mesh(scene_codes)[0]

# Разные форматы экспорта
mesh.export("model.obj")   # Wavefront OBJ
mesh.export("model.glb")   # GLTF Binary (готово для веба)
mesh.export("model.ply")   # Формат PLY
mesh.export("model.stl")   # STL (3D-печать)
```

## Рендер предпросмотрового видео

```python
from tsr.system import TSR
from tsr.utils import save_video
from PIL import Image
import torch

model = TSR.from_pretrained("stabilityai/TripoSR")
model.to("cuda")

image = Image.open("input.png")

with torch.no_grad():
    scene_codes = model([image], device="cuda")

# Рендер 360-градусного видео
render_images = model.render(
    scene_codes,
    n_views=30,
    return_type="pil"
)

save_video(render_images[0], "preview.mp4", fps=30)
```

## Интерфейс Gradio

```python
import gradio as gr
import torch
from PIL import Image
from tsr.system import TSR
from tsr.utils import remove_background
import tempfile

model = TSR.from_pretrained("stabilityai/TripoSR")
model.to("cuda")

def generate_3d(image, remove_bg, output_format):
    if remove_bg:
        image = remove_background(image)

    with torch.no_grad():
        scene_codes = model([image], device="cuda")

    mesh = model.extract_mesh(scene_codes)[0]

    with tempfile.NamedTemporaryFile(suffix=f".{output_format}", delete=False) as f:
        mesh.export(f.name)
        return f.name, image

demo = gr.Interface(
    fn=generate_3d,
    inputs=[
        gr.Image(type="pil", label="Входное изображение"),
        gr.Checkbox(label="Удалить фон", value=True),
        gr.Dropdown(choices=["obj", "glb", "ply", "stl"], value="glb", label="Формат вывода")
    ],
    outputs=[
        gr.File(label="3D-модель"),
        gr.Image(label="Обработанный вход"ույթ
    ],
    title="TripoSR - Изображение в 3D",
    description="Создавайте 3D-модели из одиночных изображений за секунды. Работает на GPU-серверах CLORE.AI."
)

demo.launch(server_name="0.0.0.0", server_port=7860)
```

## С уточнением сетки

```python
from tsr.system import TSR
from PIL import Image
import torch

model = TSR.from_pretrained("stabilityai/TripoSR")
model.to("cuda")

image = Image.open("input.png")

with torch.no_grad():
    scene_codes = model([image], device="cuda")

# Извлечь с более высоким разрешением
mesh = model.extract_mesh(
    scene_codes,
    resolution=256  # Выше = больше деталей, по умолчанию 128
)[0]

mesh.export("high_detail.obj")
```

## Производительность

| Разрешение         | GPU      | Скорость | Качество |
| ------------------ | -------- | -------- | -------- |
| 128 (по умолчанию) | RTX 3090 | 0,5 с    | Хорошо   |
| 128                | RTX 4090 | 0,3 с    | Хорошо   |
| 256                | RTX 4090 | 1,2 с    | Лучше    |
| 256                | A100     | 0,8 с    | Лучше    |

## Распространённые проблемы и решения

### Плохое качество 3D

**Проблема:** Сгенерированная сетка выглядит неверно или искажённо

**Решения:**

* Используйте изображения с чётким объектом и простым фоном
* Удалите фон перед обработкой
* Используйте фронтальный ракурс объекта
* Обеспечьте хорошее освещение на исходном изображении

```python

# Всегда удаляйте фон для лучших результатов
from tsr.utils import remove_background

image = Image.open("photo.jpg")
clean_image = remove_background(image)
```

### Не удаётся удалить фон

**Проблема:** После удаления фона остаются артефакты

**Решения:**

* Предварительно обработайте изображение с помощью специального инструмента, например rembg
* Отредактируйте фон изображения вручную
* Используйте изображения с простым фоном

```bash
pip install rembg
```

```python
from rembg import remove
from PIL import Image

image = Image.open("photo.jpg")
image_no_bg = remove(image)
image_no_bg.save("clean.png")
```

### Недостаточно памяти

**Проблема:** CUDA OOM при высоком разрешении

**Решения:**

```python

# Используйте более низкое разрешение
mesh = model.extract_mesh(scene_codes, resolution=128)

# Или очищайте кэш между пакетами
import torch
torch.cuda.empty_cache()
```

### В сетке есть дыры

**Проблема:** У сгенерированной сетки отсутствуют части

**Решения:**

* Используйте извлечение с более высоким разрешением
* Попробуйте другой угол обзора объекта
* Постобработайте сетку в Blender или MeshLab
* Используйте изображения с полностью видимым объектом

### Медленная обработка

**Проблема:** Слишком долго для каждого изображения

**Решения:**

* Используйте пакетную обработку для нескольких изображений
* Снизьте разрешение для прототипирования
* Используйте GPU RTX 4090 или A100

## Устранение неполадок

### Плохое качество 3D-сетки

* Используйте изображения с чёткими границами объекта
* Удалите или замаскируйте фон
* Лучше всего работают фронтальные ракурсы

### Не удаётся выполнить экспорт

* Проверьте, что выходной каталог существует
* Проверьте, поддерживается ли формат сетки
* Убедитесь, что достаточно места на диске

### Отсутствует текстура

* Некоторые экспортируемые файлы не включают текстуру
* Используйте формат GLB для текстурированного вывода
* Проверьте настройки экспорта материалов

{% hint style="danger" %}
**Не хватает памяти**
{% endhint %}

* TripoSR эффективен, но требует 6 ГБ+
* Уменьшите разрешение вывода
* Обрабатывайте по одному изображению за раз

## Оценка стоимости

Типичные цены на маркетплейсе CLORE.AI (по состоянию на 2024 год):

| GPU        | Почасовая ставка | Дневная ставка | 4-часовая сессия |
| ---------- | ---------------- | -------------- | ---------------- |
| RTX 3060   | \~$0.03          | \~$0.70        | \~$0.12          |
| RTX 3090   | \~$0.06          | \~$1.50        | \~$0.25          |
| RTX 4090   | \~$0.10          | \~$2.30        | \~$0.40          |
| A100 40 ГБ | \~$0.17          | \~$4.00        | \~$0.70          |
| A100 80 ГБ | \~$0.25          | \~$6.00        | \~$1.00          |

*Цены зависят от провайдера и спроса. Проверьте* [*маркетплейс CLORE.AI*](https://clore.ai/marketplace) *актуальные тарифы.*

**Сэкономьте деньги:**

* Используйте **Spot** рынок для прерываемых задач — примерно треть серверов оценивает spot-цены ниже on-demand (медиана \~13% скидки), остальные совпадают с ними
* Платите **CLORE** токенами
* Сравните цены у разных провайдеров

## Дальнейшие шаги

* Stable Diffusion — генерация входных изображений
* [IC-Light](/guides/guides_v2-ru/obrabotka-izobrazhenii/iclight.md) - Перенастраивайте освещение изображений перед 3D
* ComfyUI — интеграция рабочего процесса


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/generaciya-3d/triposr.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
