> 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/3d-generaciya/triposr.md).

# TripoSR

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

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

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

1. Посетите [CLORE.AI Marketplace](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      | 8GB           | 12GB          | 16GB          |
| CPU       | 4 ядра        | 8 ядер        | 16 ядер       |
| ОЗУ       | 16GB          | 32GB          | 64GB          |
| Хранилище | 20 ГБ SSD     | 50GB NVMe     | 100GB NVMe    |
| Интернет  | 100 Мбит/с    | 500 Мбит/с    | 1 Гбит/с      |

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

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

```
pytorch/pytorch:2.5.1-cuda12.4-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"Generated: {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 бинарный (готов для веба)
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="Remove Background", value=True),
        gr.Dropdown(choices=["obj", "glb", "ply", "stl"], value="glb", label="Output Format")
    ],
    outputs=[
        gr.File(label="3D Model"),
        gr.Image(label="Processed Input")
    ],
    title="TripoSR - Image to 3D",
    description="Generate 3D models from single images in seconds. Running on CLORE.AI GPU servers."
)

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 при высоком разрешении

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

```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 40GB | \~$0.17          | \~$4.00        | \~$0.70       |
| A100 80GB | \~$0.25          | \~$6.00        | \~$1.00       |

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

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

* Используйте **Spot** рынок для гибких рабочих нагрузок (часто на 30–50% дешевле)
* Платите с помощью **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/3d-generaciya/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.
