Saltar a contenido

Generacion de Modelos 3D

MDU genera modelos 3D usando dos proveedores de IA: Tripo3D y Meshy.

Endpoints

Metodo Ruta Auth Descripcion
POST /api/generate-model Requerido Generacion Tripo3D
POST /api/check-model-task Requerido Consultar tarea Tripo3D
POST /api/generate-model-meshy Requerido Generacion Meshy
POST /api/check-meshy-task Requerido Consultar tarea Meshy
POST /api/refine-model-meshy Requerido Refinamiento PBR Meshy
POST /api/generate-rpg-map Requerido Generacion de mapas DALL-E 3
GET /api/proxy-model - Proxy CORS para archivos GLB

Enrutamiento de Proveedores IA

Entrada Proveedor Modo
Solo texto Tripo3D text_to_model
Una imagen Tripo3D image_to_model
Multiples imagenes Tripo3D multiview_to_model
Texto + estilo Meshy text-to-3d (preview)
Una imagen (Meshy) Meshy image-to-3d
Refinar preview Meshy text-to-3d (refine)

Optimizacion de Prompt

Antes de llamar al proveedor IA, las peticiones solo de texto pasan por el Flow 1 (Optimizador de Prompt) que usa GPT-4o para:

  1. Mejorar el prompt para mejor generacion 3D
  2. Seleccionar el proveedor optimo (Tripo vs Meshy)
  3. Anadir detalles especificos de miniaturas (pose, escala, nivel de detalle)

Generar Modelo (Tripo3D)

# Texto a 3D
POST /api/generate-model
Authorization: Bearer <token>

{ "prompt": "un guerrero enano medieval con un hacha" }

# Imagen a 3D
{ "image_url": "https://...", "prompt": "un dragon rojo" }

# Multivista
{ "multiview_urls": ["https://frente.png", "https://lado.png"] }

Respuesta:

{ "task_id": "abc123" }

Warning

Nunca enviar model_version en peticiones Tripo — causa error 2017.

Consultar Estado de Tarea

POST /api/check-model-task
Authorization: Bearer <token>

{ "task_id": "abc123" }

Respuesta (exito):

{
  "status": "success",
  "model_url": "https://api.tripo3d.ai/...",
  "task_id": "abc123"
}

Valores de estado: queued, running, success, failed

Generar Modelo (Meshy)

# Texto a 3D
POST /api/generate-model-meshy
Authorization: Bearer <token>

{ "prompt": "un goblin ladron", "art_style": "realistic" }

# Imagen a 3D
{ "image_url": "https://..." }

Note

Meshy imagen-a-3D usa API v1 (/openapi/v1/image-to-3d). Texto-a-3D usa v2 (/openapi/v2/text-to-3d). No existe v2 para imagen-a-3D.

Generacion de Mapas RPG

POST /api/generate-rpg-map
Authorization: Bearer <token>

{
  "prompt": "bosque antiguo con templo oculto",
  "map_type": "battle_map",
  "style": "parchment"
}

Tipos de mapa validos: battle_map, world_map, city, dungeon

Estilos validos: parchment, hand_drawn, painterly, realistic, top_down, isometric

Proxy de Modelos

Proxy CORS para cargar archivos GLB de proveedores IA en el navegador:

GET /api/proxy-model?url=<url_codificada>

Dominios permitidos: tripo3d.ai, meshy.ai y sus subdominios.

Incluye proteccion SSRF: bloquea IPs privadas, localhost y direcciones link-local.

Almacenamiento en Base de Datos

Los modelos generados se almacenan en la tabla model_generations:

Columna Tipo Descripcion
id UUID Clave primaria
user_id UUID Propietario
task_id TEXT ID de tarea del proveedor
prompt TEXT Prompt original
provider TEXT tripo3d, meshy, o meshy_image
model_url TEXT URL descarga GLB
status TEXT pending, running, completed, failed
is_public BOOLEAN Visibilidad en galeria

Limites de Uso

Los conteos de generacion se aplican por plan de suscripcion:

Plan Generaciones/mes
Free 1
Starter 10
Pro 30

Consulta el uso actual via GET /api/usage.