Imagen a modelo 3D con ComfyUI
ComfyUI reconstruye una malla a partir de una imagen con un modelo local (Trellis.2, Pixel3D, Hunyuan3D…). No modelas nada: eliges el flujo de trabajo, lo ejecutas y entregas el archivo. Se ejecuta en la GPU del usuario, no cuesta nada y toma desde unos minutos hasta un cuarto de hora.
La mecánica ya está en tus herramientas: comfy_workflows lista los flujos de trabajo que el usuario
guardó, prepara uno con la imagen adjunta y recoge el resultado, y te indica cada
próximo paso; la conexión de ComfyUI valida, ejecuta y espera. Sigue lo que esas herramientas
devuelvan. Esta habilidad trata sobre las decisiones que te dejan a ti.
Si no tienes ni comfy_workflows ni las herramientas de la conexión de ComfyUI, detente y dilo:
el usuario instala la conexión de ComfyUI (Herramientas → Conexiones), le da a este agente
comfy_workflows, comfyui_validate_workflow, comfyui_run_workflow, comfyui_job,
y mantiene ComfyUI abierto.
Qué flujo de trabajo
comfy_workflows con action: "list" muestra lo que el usuario guardó. Elige según lo que sea
la imagen:
| La imagen es | Usa un flujo de trabajo para |
|---|---|
| Una foto de un objeto (una foto, un render, un concepto) | imagen a modelo 3D, imagen única (un flujo de trabajo multivista que el usuario nombra también funciona con una sola foto) |
| Una hoja con varias vistas del mismo objeto (frontal, lateral, trasera; un giro de personaje) | multivista a modelo 3D |
| Varias imágenes separadas adjuntas del mismo objeto | multivista, si el flujo de trabajo lee varios archivos; de lo contrario, pregunta qué imagen usar |
- Un flujo de trabajo que el usuario nombre tiene prioridad sobre tu elección.
- Si dos flujos guardados encajan y nada los diferencia, pregunta; no ejecutes ambos.
- Si ninguno encaja, dilo y nombra lo que el usuario tiene. Solo entonces ofrece una plantilla de
la galería en línea de Comfy (
comfyui_search_templates, si la tienes), y dile al usuario de antemano que la galería es contenido de internet, por lo que la aplicación le pedirá que apruebe cada paso después de que lo leas.
Qué preparar
- Pasa la imagen adjunta en
files, con el nombre que la conversación muestra para ella. - Un objeto por ejecución. Si la imagen muestra varios objetos, pregunta cuál, o di que el modelo contendrá toda la escena como una sola pieza.
- Una imagen con fondo liso y el objeto completo dentro del cuadro da el mejor modelo. Si el objeto está cortado por el borde o escondido detrás de algo, dilo antes de ejecutar: el generador inventa lo que no puede ver.
Decisiones dentro de un flujo de trabajo
comfy_workflows cita las notas que el autor del flujo de trabajo dejó. Léelas: dicen lo que
hacen los interruptores del flujo de trabajo.
- Dos generadores detrás de un interruptor (un flujo de trabajo que puede usar uno de dos modelos):
déjalo como el usuario lo guardó. Cámbialo solo cuando nombre el generador que quiere,
con
comfyui_list_workflow_slotspara encontrar el interruptor ycomfyui_set_workflow_slotpara configurarlo, y di en el informe cuál se ejecutó. - Los valores del usuario se mantienen. Ejecuta el flujo de trabajo con los valores que el usuario guardó. No cambies
target_face_count, la resolución, el sampler ni nada más por tu cuenta, ni siquiera cuando la imagen parezca simple o la última ejecución haya dado un modelo pesado: un flujo de trabajo guardado es la decisión del usuario, y un valor que bajes "para ayudar" produce un modelo que no pidieron (una reconstrucción diezmada muy por debajo de su detalle sale como una forma arrugada, no una copia más ligera). Si crees que un modelo más ligero le serviría, dilo en el informe y ofrécelo; no lo hagas. - Un modelo más ligero, solo cuando se pida. Cuando el usuario pida explícitamente un modelo ligero,
nombre un recuento de caras, o diga que es para un juego, la web o un teléfono, baja
el recuento de caras ANTES de ejecutar, en dos llamadas sobre el archivo preparado:
comfyui_list_workflow_slots, y en su respuesta encuentra el slot cuyo nombre seatarget_face_count(pertenece a un nodoDecimateMesh); copia suaddress.comfyui_set_workflow_slotconstdout: falsey[{"address": "<esa dirección>", "value": 50000}]para un accesorio en un juego (150000 para un objeto principal al que la cámara se acerca). Nunca bajes de 50000 a menos que el usuario nombre un número menor por sí mismo. Luego valida y ejecuta como siempre, y di en el informe lo que configuraste. Si el flujo de trabajo no tiene ese slot, o careces de esas dos herramientas, ejecútalo como está y di claramente que el modelo es pesado para un juego y en qué cantidad.
- Una sola imagen es suficiente para un flujo multivista. Un flujo de trabajo que recorta varias vistas desde su entrada también funciona con una sola foto: los recortes que quedan fuera de la imagen salen vacíos y el modelo se construye a partir de la única vista real. No busques una hoja de vistas ni intentes crear una; ejecútalo con la imagen que el usuario dio.
Cuando no se ejecuta
- Falta un modelo o nodo: nombra los archivos que la validación informa y detente. El usuario los instala desde ComfyUI (abrir el flujo de trabajo allí ofrece las descargas). No cambies a otro flujo de trabajo para evitarlo.
- El trabajo falla:
comfy_workflowsconaction: "collect"informa el nodo y la razón. La falta de memoria es común: dilo, y ofrece intentarlo de nuevo con una resolución más baja o con el otro generador si el flujo tiene uno. No reintentes por tu cuenta más de una vez. - Se agota el tiempo de espera: el trabajo sigue ejecutándose. Espera de nuevo; nunca lo inicies dos veces.
El informe
- El archivo que
collectdevolvió, su tamaño y su recuento de triángulos, exactamente como se dieron. - Qué flujo de trabajo se ejecutó, y cualquier cosa que cambiaste en él.
- No has visto el modelo: di que se generó, no cómo se ve.
- Una línea sobre qué esperar: los lados que la imagen no muestra son inventados por el generador, y el resultado es una sola malla con texturas horneadas, no partes separadas.
- Si el usuario quiere limpiarlo, reducirlo aún más o exportarlo para un motor, ese es
trabajo para Blender (la habilidad
blender-game-export).