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

# TripoSR

Genera modelos 3D a partir de una sola imagen con TripoSR en Clore.ai

Genera modelos 3D a partir de imágenes individuales en menos de un segundo.

{% hint style="success" %}
Todos los ejemplos se pueden ejecutar en servidores GPU alquilados a través de [Marketplace de CLORE.AI](https://clore.ai/marketplace).
{% endhint %}

## Alquilar en CLORE.AI

1. Visita [Marketplace de CLORE.AI](https://clore.ai/marketplace)
2. Filtra por tipo de GPU, VRAM y precio
3. Elige **Bajo demanda** (tarifa fija) o **Spot** (precio ofertado)
4. Configura tu pedido:
   * Selecciona la imagen de Docker
   * Configura los puertos (TCP para SSH, HTTP para interfaces web)
   * Añade variables de entorno si es necesario
   * Introduce el comando de inicio
5. Selecciona el método de pago: **CLORE**, **BTC**, o **USDT/USDC**
6. Crea el pedido y espera al despliegue

### Accede a tu servidor

* Encuentra los detalles de conexión en **Mis pedidos**
* Interfaces web: Usa la URL del puerto HTTP
* SSH: `ssh -p <port> root@<proxy-address>`

## ¿Qué es TripoSR?

TripoSR de Stability AI y Tripo AI permite:

* Generación de mallas 3D a partir de una sola imagen
* Velocidad de inferencia inferior a un segundo
* Mallas texturizadas de alta calidad
* Exportación a OBJ, GLB y otros formatos

## Recursos

* **GitHub:** [VAST-AI-Research/TripoSR](https://github.com/VAST-AI-Research/TripoSR)
* **HuggingFace:** [stabilityai/TripoSR](https://huggingface.co/stabilityai/TripoSR)
* **Artículo:** [Documento técnico de TripoSR](https://arxiv.org/abs/2403.02151)
* **Demo:** [Espacio de Hugging Face](https://huggingface.co/spaces/stabilityai/TripoSR)

## Hardware recomendado

| Componente     | Mínimo        | Recomendado   | Óptimo        |
| -------------- | ------------- | ------------- | ------------- |
| GPU            | RTX 3060 12GB | RTX 4080 16GB | RTX 4090 24GB |
| VRAM           | 8GB           | 12GB          | 16GB          |
| CPU            | 4 núcleos     | 8 núcleos     | 16 núcleos    |
| RAM            | 16GB          | 32GB          | 64GB          |
| Almacenamiento | SSD de 20 GB  | 50GB NVMe     | 100GB NVMe    |
| Internet       | 100 Mbps      | 500 Mbps      | 1 Gbps        |

## Despliegue rápido en CLORE.AI

**Imagen de Docker:**

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

**Puertos:**

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

**Comando:**

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

## Accediendo a tu servicio

Después del despliegue, encuentra tu `http_pub` URL en **Mis pedidos**:

1. Ve a **Mis pedidos** página
2. Haz clic en tu pedido
3. Encuentra la `http_pub` URL (p. ej., `abc123.clorecloud.net`)

Usa `https://YOUR_HTTP_PUB_URL` en lugar de `localhost` en los ejemplos a continuación.

## Instalación

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

# El modelo se descarga automáticamente en la primera ejecución
```

## Lo que puedes crear

### Juegos y VR

* Convierte arte conceptual en recursos 3D
* Prototipado rápido de objetos de juego
* Generación de modelos de personajes
* Propiedades del entorno

### Comercio electrónico

* Visualización 3D de productos
* Experiencias de prueba en AR
* Vistas de productos en 360 grados
* Salas de exposición virtuales

### Arquitectura

* Modelos 3D rápidos a partir de bocetos
* Visualización de diseño interior
* Prototipos de muebles
* Generación de elementos de construcción

### Educación

* Modelos 3D para materiales de aprendizaje
* Visualización científica
* Recreación de artefactos históricos
* Modelos anatómicos

### Proyectos creativos

* Arte digital y NFT
* Recursos de animación
* Preparación para impresión 3D
* Creación de memes y avatares

## Uso básico

### Línea de comandos

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

### API de Python

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

# Cargar modelo
model = TSR.from_pretrained(
    "stabilityai/TripoSR",
    config_name="config.yaml",
    weight_name="model.ckpt"
)
model.to("cuda")

# Cargar y preprocesar la imagen
image = Image.open("input.png")

# Generar malla 3D
with torch.no_grad():
    scene_codes = model([image], device="cuda")

# Extraer malla
meshes = model.extract_mesh(scene_codes)

# Guardar malla
meshes[0].export("output.obj")
```

### Con eliminación de fondo

```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")

# Cargar imagen y eliminar el fondo
image = Image.open("photo.jpg")
image_no_bg = remove_background(image)

# Generar 3D
with torch.no_grad():
    scene_codes = model([image_no_bg], device="cuda")

mesh = model.extract_mesh(scene_codes)[0]
mesh.export("model.glb")  # Exportar como GLB para la web
```

## Procesamiento por lotes

```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)

# Procesar en lotes
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"Generado: {output_name}")
```

## Formatos de exportación

```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]

# Diferentes formatos de exportación
mesh.export("model.obj")   # Wavefront OBJ
mesh.export("model.glb")   # GLTF binario (listo para la web)
mesh.export("model.ply")   # Formato PLY
mesh.export("model.stl")   # STL (impresión 3D)
```

## Renderizar video de vista previa

```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")

# Renderizar video de 360 grados
render_images = model.render(
    scene_codes,
    n_views=30,
    return_type="pil"
)

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

## Interfaz de 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="Imagen de entrada"),
        gr.Checkbox(label="Eliminar fondo", value=True),
        gr.Dropdown(choices=["obj", "glb", "ply", "stl"], value="glb", label="Formato de salida")
    ],
    outputs=[
        gr.File(label="Modelo 3D"),
        gr.Image(label="Entrada procesada")
    ],
    title="TripoSR - Imagen a 3D",
    description="Genera modelos 3D a partir de imágenes individuales en segundos. Ejecutándose en servidores GPU de CLORE.AI."
)

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

## Con refinamiento de malla

```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")

# Extraer con mayor resolución
mesh = model.extract_mesh(
    scene_codes,
    resolution=256  # Más alto = más detalle, el valor predeterminado es 128
)[0]

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

## Rendimiento

| Resolución           | GPU      | Velocidad | Calidad |
| -------------------- | -------- | --------- | ------- |
| 128 (predeterminado) | RTX 3090 | 0,5 s     | Bueno   |
| 128                  | RTX 4090 | 0,3 s     | Bueno   |
| 256                  | RTX 4090 | 1,2 s     | Mejor   |
| 256                  | A100     | 0,8 s     | Mejor   |

## Problemas comunes y soluciones

### Mala calidad 3D

**Problema:** La malla generada se ve incorrecta o distorsionada

**Soluciones:**

* Usa imágenes con un sujeto claro y un fondo simple
* Elimina el fondo antes de procesar
* Usa una vista frontal del objeto
* Asegura una buena iluminación en la imagen de origen

```python

# Elimina siempre el fondo para obtener los mejores resultados
from tsr.utils import remove_background

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

### La eliminación del fondo falla

**Problema:** La eliminación del fondo deja artefactos

**Soluciones:**

* Preprocesa con una herramienta dedicada como rembg
* Edita manualmente el fondo de la imagen
* Usa imágenes con fondos simples

```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")
```

### Sin memoria

**Problema:** OOM de CUDA con alta resolución

**Soluciones:**

```python

# Usa una resolución más baja
mesh = model.extract_mesh(scene_codes, resolution=128)

# O borra la caché entre lotes
import torch
torch.cuda.empty_cache()
```

### La malla tiene agujeros

**Problema:** La malla generada tiene partes faltantes

**Soluciones:**

* Usa una extracción con mayor resolución
* Prueba un ángulo de vista diferente del sujeto
* Posprocesa la malla en Blender o MeshLab
* Usa imágenes con visibilidad completa del objeto

### Procesamiento lento

**Problema:** Tarda demasiado por imagen

**Soluciones:**

* Usa procesamiento por lotes para varias imágenes
* Menor resolución para prototipado
* Usa una GPU RTX 4090 o A100

## Solución de problemas

### La calidad de la malla 3D es pobre

* Usa imágenes con límites claros del objeto
* Elimina o enmascara el fondo
* Las vistas frontales funcionan mejor

### La exportación falla

* Comprueba que el directorio de salida existe
* Verifica que el formato de malla sea compatible
* Asegura suficiente espacio en disco

### Falta la textura

* Algunas exportaciones no incluyen textura
* Usa el formato GLB para salida con textura
* Comprueba la configuración de exportación de materiales

{% hint style="danger" %}
**Sin memoria**
{% endhint %}

* TripoSR es eficiente, pero necesita 6 GB o más
* Reduce la resolución de salida
* Procesa una imagen a la vez

## Estimación de costos

Tarifas típicas del marketplace de CLORE.AI (a partir de 2024):

| GPU       | Tarifa por hora | Tarifa diaria | Sesión de 4 horas |
| --------- | --------------- | ------------- | ----------------- |
| 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           |

*Los precios varían según el proveedor y la demanda. Consulta* [*Marketplace de CLORE.AI*](https://clore.ai/marketplace) *las tarifas actuales.*

**Ahorra dinero:**

* Usa el **Spot** mercado para trabajo interrumpible — alrededor de un tercio de los servidores fija el precio spot por debajo del precio bajo demanda (mediana de \~13% de descuento), el resto lo iguala
* Paga con **CLORE** tokens
* Compara precios entre distintos proveedores

## Siguientes pasos

* Stable Diffusion - Genera imágenes de entrada
* [IC-Light](/guides/guides_v2-es/procesamiento-de-imagenes/iclight.md) - Reilumina las imágenes antes del 3D
* ComfyUI - Integración de flujo de trabajo


---

# 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-es/generacion-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.
