CommunityImagegithub.com

TraX22/comfyui-image-to-3d

Transforme une image en modèle 3D (GLB) avec le ComfyUI local de l'utilisateur, en choisissant le bon workflow sauvegardé pour l'image, en l'exécutant avec les valeurs enregistrées par l'utilisateur, en sélectionnant le générateur lorsqu'un workflow en propose deux, en réduisant le nombre de faces uniquement à la demande de l'utilisateur pour un modèle plus léger, et en rapportant honnêtement le résultat.

Qu'est-ce que comfyui-image-to-3d ?

Cette compétence permet à un agent IA d'exploiter ComfyUI localement pour transformer une image en modèle 3D (mesh GLB) à l'aide de modèles génératifs comme Trellis.2, Pixal3D ou Hunyuan3D. L'agent sélectionne automatiquement le workflow sauvegardé le plus adapté (image unique ou multi-vues) via l'outil `comfy_workflows`, prépare l'image fournie, valide l'exécution et collecte le fichier résultant. La compétence respecte scrupuleusement les choix de l'utilisateur (valeurs, générateur) et ne modifie que le nombre de faces si l'utilisateur demande explicitement un modèle léger, en utilisant `comfyui_set_workflow_slot`. En cas d'échec, elle diagnostique les problèmes (modèles manquants, mémoire insuffisante) et guide l'utilisateur vers une solution. Le rapport final inclut la taille du fichier, le nombre de triangles, le workflow utilisé, et une description honnête des limites (parties inventées par le générateur, mesh unique avec textures cuites).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/TraX22/HydraOps-Skills/tree/HEAD/comfyui-image-to-3d

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Transformation d'image en modèle 3D avec ComfyUI

ComfyUI reconstruit un mesh à partir d'une image avec un modèle local (Trellis.2, Pixal3D, Hunyuan3D…). Vous ne modélisez rien : vous choisissez le workflow, l'exécutez et livrez le fichier. L'opération se déroule sur le GPU de l'utilisateur, ne coûte rien et prend de quelques minutes à un quart d'heure.

Les mécanismes sont déjà dans vos outils : comfy_workflows liste les workflows que l'utilisateur a sauvegardés, en prépare un avec l'image jointe et collecte le résultat, et vous indique chaque étape suivante ; la connexion ComfyUI valide, exécute et attend. Suivez ce que ces outils retournent. Cette compétence concerne les choix qu'ils vous laissent.

Si vous ne disposez ni de comfy_workflows ni des outils de la connexion ComfyUI, arrêtez-vous et dites-le : l'utilisateur installe la connexion ComfyUI (Outils → Connexions), donne à cet agent comfy_workflows, comfyui_validate_workflow, comfyui_run_workflow et comfyui_job, et garde ComfyUI ouvert.

Quel workflow

comfy_workflows avec action: "list" montre ce que l'utilisateur a sauvegardé. Choisissez selon ce qu'est l'image :

L'image estUtilisez un workflow pour
Une photo d'un objet unique (une photo, un rendu, un concept)transformation d'image en modèle 3D, image unique (un workflow multi-vues que l'utilisateur nomme fonctionne aussi avec une seule image)
Une planche avec plusieurs vues du même objet (face, profil, dos ; un tour de personnage)transformation multi-vues en modèle 3D
Plusieurs images séparées jointes du même objetmulti-vues, si le workflow lit plusieurs fichiers ; sinon demandez quelle image utiliser
  • Un workflow que l'utilisateur nomme prime sur votre choix.
  • Si deux workflows sauvegardés correspondent et rien ne les distingue, demandez ; n'exécutez pas les deux.
  • Si aucun ne correspond, dites-le et nommez ce que l'utilisateur possède. Proposez alors un modèle depuis la galerie en ligne de Comfy (comfyui_search_templates, si vous l'avez), et prévenez l'utilisateur que la galerie est du contenu provenant d'Internet, donc l'application lui demandera d'approuver chaque étape après lecture.

Que préparer

  • Passez l'image jointe dans files, avec le nom que la conversation affiche pour elle.
  • Un objet par exécution. Si l'image montre plusieurs objets, demandez lequel, ou dites que le modèle contiendra toute la scène comme une seule pièce.
  • Une image avec un fond uni et l'objet entier dans le cadre donne le meilleur modèle. Si l'objet est coupé par le bord ou caché derrière quelque chose, dites-le avant d'exécuter : le générateur invente ce qu'il ne voit pas.

Choix à l'intérieur d'un workflow

comfy_workflows cite les notes laissées par l'auteur du workflow. Lisez-les : elles disent ce que font les commutateurs du workflow.

  • Deux générateurs derrière un commutateur (un workflow pouvant utiliser l'un ou l'autre de deux modèles) : laissez-le tel que l'utilisateur l'a sauvegardé. Changez-le uniquement lorsqu'il nomme le générateur souhaité, avec comfyui_list_workflow_slots pour trouver le commutateur et comfyui_set_workflow_slot pour le régler, et mentionnez dans le rapport lequel a fonctionné.
  • Les valeurs de l'utilisateur restent. Exécutez le workflow avec les valeurs que l'utilisateur a sauvegardées. Ne modifiez pas target_face_count, la résolution, l'échantillonneur ou quoi que ce soit de votre propre chef, même lorsque l'image semble simple ou que la dernière exécution a produit un modèle lourd : un workflow sauvegardé est la décision de l'utilisateur, et une valeur que vous abaissez « pour aider » produit un modèle qu'il n'a pas demandé (une reconstruction décimée bien en dessous de son détail donne une forme froissée, pas une copie plus légère). Si vous pensez qu'un modèle plus léger lui conviendrait, dites-le dans le rapport et proposez-le ; ne le faites pas.
  • Un modèle plus léger, seulement lorsqu'il est demandé. Lorsque l'utilisateur demande explicitement un modèle léger, nomme un nombre de faces, ou dit que c'est pour un jeu, le web ou un téléphone, abaissez le nombre de faces AVANT d'exécuter, en deux appels sur le fichier préparé :
    1. comfyui_list_workflow_slots, et dans sa réponse, trouvez l'emplacement dont le nom est target_face_count (il appartient à un nœud DecimateMesh) ; copiez son address.
    2. comfyui_set_workflow_slot avec stdout: false et [{"address": "<cette adresse>", "value": 50000}] pour un objet de jeu (150000 pour un objet héroïque que la caméra approche). Ne descendez jamais en dessous de 50000 à moins que l'utilisateur ne nomme lui-même un nombre inférieur. Puis validez et exécutez normalement, et dites dans le rapport ce que vous avez réglé. Si le workflow n'a pas un tel emplacement, ou si vous ne disposez pas de ces deux outils, exécutez-le tel quel et dites clairement que le modèle est lourd pour un jeu et de combien.
  • Une seule image suffit pour un workflow multi-vues. Un workflow qui recadre plusieurs vues à partir de son entrée fonctionne aussi avec une seule photo : les recadrages qui tombent en dehors de l'image sont vides et le modèle est construit à partir de la seule vue réelle. Ne cherchez pas une planche de vues ou n'en créez pas ; exécutez-le avec l'image que l'utilisateur a donnée.

Quand cela ne s'exécute pas

  • Un modèle ou nœud manquant : nommez les fichiers que la validation rapporte et arrêtez-vous. L'utilisateur les installe depuis ComfyUI (ouvrir le workflow y propose les téléchargements). Ne passez pas à un autre workflow pour contourner le problème.
  • La tâche échoue : comfy_workflows avec action: "collect" rapporte le nœud et la raison. La mémoire insuffisante est la cause courante : dites-le, et proposez de réessayer avec une résolution inférieure ou avec l'autre générateur si le workflow en a un. Ne réessayez pas vous-même plus d'une fois.
  • Une attente expire : la tâche est toujours en cours. Attendez à nouveau ; ne la lancez jamais deux fois.

Le rapport

  • Le fichier que collect a retourné, sa taille et son nombre de triangles, exactement comme donnés.
  • Quel workflow a été exécuté, et tout ce que vous y avez changé.
  • Vous n'avez pas vu le modèle : dites qu'il a été généré, pas à quoi il ressemble.
  • Une ligne sur ce à quoi s'attendre : les côtés que l'image ne montre pas sont inventés par le générateur, et le résultat est un mesh unique avec des textures cuites, pas des pièces séparées.
  • Si l'utilisateur souhaite le nettoyer, le réduire davantage ou l'exporter pour un moteur, c'est le travail de Blender (la compétence blender-game-export).

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills associés