CommunityImagegithub.com

Photo vers low poly

Transforme une photo d’animal, de personnage ou d’objet en maillages low poly éditables, à budget de triangles fixe, caméra verrouillée, surface fermée soudée, et erreur de silhouette mesurée.

Qu'est-ce que Photo vers low poly ?

Une photo, un nombre de triangles. Le skill cale une caméra, soude un maillage fermé à ce budget, et montre si les triangles en plus ont vraiment servi, avec des vues argile et fil de fer sous huit angles. Pas de rig, pas de texture, pas d’animation.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gokayfem/image-to-lowpoly/tree/HEAD/skills/image-to-lowpoly

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

Image 2 Low Poly

Une photo en entrée, un maillage low-poly éditable par budget de triangles, chaque maillage est évalué par rapport à la photo via la même caméra verrouillée et compté de quatre manières indépendantes. La géométrie low-poly elle-même réalise l'approximation : pas de texture, de panneau publicitaire, de photo projetée ou de géométrie non comptée pour représenter la forme.

Entrées : l'image de référence (jamais modifiée), le sujet, les budgets. Exemple pratique : examples/cat/ dans le dépôt (un chat tigré orange, budgets 100 / 200 / 500 / 1000).

Avant de commencer

SituationÀ faire
Une seule photo, sujet entier visible, fond unile chemin principal
Un animal à quatre pattesle modèle proxy fourni (fit_camera_proxy.py, build_proxy.py) est un chat quadrupède ; ajustez ses a priori
Tout autre sujetécrivez d'abord un modèle proxy pour celui-ci (cylindres généralisés par partie, format catlib/skeleton.py) ; le reste des outils est indépendant du sujet
Plusieurs photos, une vidéo, un scanhors de portée : une vue, une caméra
L'utilisateur souhaite de la couleur ou de la textureuniquement des couleurs plates par face ; dites-le avant de commencer
Pas de Blendernon pris en charge : le comptage, l'assemblage et tous les chiffres officiels nécessitent Blender 5.2+

Dites avant de commencer que tout ce que la photo ne montre pas est inféré, non vérifié.

Flux de travail

S ci-dessous signifie skills/image-to-lowpoly/scripts. Chaque script prend --case CASE (ou LOWPOLY_CASE). Publiez une image étiquetée à chaque point de contrôle (superpositions, argile, filaire, huit vues) : les images d'abord, les chiffres ensuite.

  1. Cas et référence. Créez CASE/reference/reference.png (copie bit à bit de l'image de l'utilisateur) et un fichier de provenance avec son SHA-256. Ne le régénérez, redimensionnez ou modifiez jamais.
  2. Cibles fixes. Annotez les points de repère et les fenêtres d'image en examinant des recadrages agrandis (12 points nets : pointes des oreilles, yeux, nez, quatre contacts des pattes, base/milieu/extrémité de la queue pour un chat ; adaptez la liste au sujet), puis python3 $S/preflight_reference.py --case CASE. Regardez mask_overlay.png et landmarks_overlay.png. Le masque exclut l'ombre au sol et les moustaches.
  3. Caméra et proxy. fit_camera_proxy.py --case CASE (CPU, dizaines de minutes), puis build_proxy.py, build_proxy.py --lock et build_proxy.py --report. Regardez le proxy depuis les huit vues : c'est la réponse pour tout ce qui est caché. Ensuite, figez : écrivez les empreintes de référence, masque, points de repère, régions, caméra, scène, proxy et le code d'évaluation dans contract/FROZEN.json avant que tout budget ne soit évalué (references/contract.md).
  4. Contrôles. make_decimation_baseline.py --case CASE --budget N pour chaque budget : Décimation du proxy à exactement N, et la même chose après le raffineur partagé. Ce sont les chiffres à battre.
  5. Allouer et construire, par budget. Donnez à chaque budget son propre worker et répertoire variants/<N>/ (references/budget-worker.md). Écrivez le tableau d'allocation (région, triangles, anneaux x côtés, raison), construisez au moins deux allocations matériellement différentes, donnez à chacune le même court raffinement, comparez, choisissez. variants/<N>/build.py écrit un catmesh-1 mesh.json avec exactement N triangles (affirmez-le), régions, matériaux et attachements de points de repère. Une seule surface fermée : soudez les membres, la queue et les oreilles dans le corps.
  6. Point de contrôle initial. evaluate.py --case CASE --mesh variants/<N>/checkpoints/v0_initial/mesh.json --views. Ceci est la ligne "initiale".
  7. Affiner, mesurer, regarder, éditer, répéter. refine_vertices.py (--flips, --freeze-verts pour les faces et tout kit gelé), evaluate.py, puis regardez ref_overlay.png, ref_clay.png, ref_wire.png et les huit vues. Effectuez des modifications topologiques ciblées là où la superposition montre un budget mal alloué. Gardez le meilleur point de contrôle validé ; le plus récent ne doit pas nécessairement gagner.
  8. Révision à l'aveugle. make_critic_packet.py --case CASE --round K prépare la photo et des rendus d'argile, filaire et contour nommés de manière neutre. Lancez un sous-agent frais qui ne voit que ce dossier ; transformez ses conclusions en modifications géométriques neutres en termes de budget. Rejetez toute suggestion qui est une texture, une carte ou une géométrie non comptée.
  9. Finaliser et agréger. finalize_variant.py --case CASE --budget N --checkpoint TAG --reason "..." copie le point de contrôle et le ré-évalue ; aggregate_metrics.py construit le tableau inter-budgets et refuse les empreintes ou comptes non correspondants ; make_comparison.py crée les feuilles.
  10. Rapporter et arrêter. Présentez la feuille d'argile/filaire avec les quatre comptes, le tableau des lignes initiale, finale et les deux contrôles par budget, les tableaux d'allocation, les verdicts du réviseur, et ce qui ne va pas. Dites où le maillage conçu ne bat pas le contrôle. L'utilisateur décide de la suite.
  11. Timelapse (optionnel). Enregistrez les étapes de construction (--stages-dir dans votre script de construction) et les instantanés de l'optimiseur (refine_vertices.py --snapshot-dir DIR --snapshot-every K), puis timelapse/timelapse.py --case CASE : le maillage dessiné sur la photo via la caméra verrouillée.

Règles strictes

  • Le compte est la géométrie évaluée et exportée. Quatre comptes (fichier de maillage, .blend évalué sur chaque objet, GLB réimporté, GLB analysé) doivent concorder et être au plus N ; visez exactement N. Jamais le nombre de polygones de Blender (references/counting.md).
  • Rien ne cache les triangles ou la forme. Triangles uniquement, un seul objet, pas de modificateurs, pas de subdivision, courbes, cheveux, instances, cartes alpha, remplissage dupliqué ou dégénéré, panneaux publicitaires ou extrusions de silhouette plates.
  • La cible ne bouge jamais. Référence, masque, points de repère, fenêtres et caméra sont créés une fois et hachés. Une correction authentique est divulguée et chaque budget est ré-évalué.
  • Aucun chiffre unique ne décide. IoU, distance des bords, points de repère et écarts entre les pattes ne doivent pas se contredire, et l'argile et les huit vues doivent avoir meilleure apparence. Un meilleur score avec une forme moins bonne est une régression.
  • Soudez, ne laissez pas d'interpénétration. Les triangles enterrés gaspillent le budget et les jonctions sont visibles.
  • L'optimiseur est partagé ; l'allocation est l'expérience. Même raffineur, mêmes paramètres disponibles pour chaque budget et pour le contrôle.
  • Les points de repère se déplacent avec la géométrie. Un point de repère est attaché à la caractéristique qu'il nomme ; ne faites jamais glisser l'attachement pour améliorer un chiffre.
  • Un rendu à la fois. Seul render_variant.py rend, et il prend le verrou lui-même.
  • Les matériaux ne comptent jamais comme forme. Couleurs plates par face avec signification anatomique ; classez la géométrie sur l'argile et les silhouettes uniquement.
  • Dites ce que ce n'est pas. Caché côté inféré ; un résultat égalant le contrôle est une égalité ; les têtes et les parties fines sont les points faibles de ces maillages.

Références

FichierQuand le lire
references/contract.mden configurant un cas : mise en page, unités, caméra, format de maillage, métriques, rendus, proxy, points de repère, kit de tête
references/budget-worker.mden déléguant ou en réalisant un budget : procédure, priorités, quoi regarder
references/counting.mdles quatre comptes, les échecs critiques, ce qui est divulgué
references/lessons.mdce qui a mal fonctionné dans le run du chat et la règle que chaque échec est devenue

Skills associés