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:
- Mejorar el prompt para mejor generacion 3D
- Seleccionar el proveedor optimo (Tripo vs Meshy)
- 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:
Warning
Nunca enviar model_version en peticiones Tripo — causa error 2017.
Consultar Estado de Tarea¶
Respuesta (exito):
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:
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.