Community影像github.com

照片轉低多邊形

把一張動物、角色或物體的照片做成可編輯的低多邊形網格,三角面數量按預算鎖死,相機固定,表面焊成一體,並量出剪影誤差。

照片轉低多邊形 是什麼?

給它一張參考照片和一個三角面預算。它擬合相機,按這個預算焊出封閉網格,再用八個角度的素模和線框說明多出來的面有沒有真的幫上忙。不管綁定、貼圖和動畫。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gokayfem/image-to-lowpoly/tree/HEAD/skills/image-to-lowpoly

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

影像轉低多邊形

一張照片輸入,每個三角形預算輸出一個可編輯的低多邊形網格,每個網格透過相同的鎖定相機與照片進行評分,並以四種獨立方式計數。低多邊形幾何本身負責近似:沒有紋理、廣告牌、投影照片或未計數的幾何來代替形狀。

輸入:參考影像(永不改變)、主體、預算。工作範例:儲存庫中的 examples/cat/(一隻橙色虎斑貓,預算 100 / 200 / 500 / 1000)。

開始之前

情況執行方式
一張照片,主體完整可見,背景單一主要路徑
四足動物內附的代理模板(fit_camera_proxy.py、build_proxy.py)是四足貓;調整其先驗知識
任何其他主體先為其編寫代理模板(每個部位的廣義圓柱體,catlib/skeleton.py 格式);其餘工具與主體無關
多張照片、影片、掃描超出範圍:一個視角、一個相機
使用者需要顏色或紋理僅支援平面每面顏色;開始前先說明
無 Blender不支援:計數、組裝及所有官方數字需 Blender 5.2+

開始前說明:照片未顯示的一切均為推斷,未經驗證。

工作流程

下方 S 表示 skills/image-to-lowpoly/scripts。每個腳本皆接受 --case CASE(或 LOWPOLY_CASE)。在每個檢查點發布帶標籤的影像(疊加、黏土、線框、八個視角):先影像,後數字。

  1. 案例與參考。 建立 CASE/reference/reference.png(使用者影像的逐位元複本)以及包含其 SHA-256 的來源檔案。永不重新產生、調整大小或編輯。
  2. 固定目標。 透過檢視放大裁切(12 個銳利點:耳尖、眼睛、鼻子、四個爪子接觸點、貓的尾巴基部/中部/尖端;根據主體調整列表)來標註地標和影像窗口,然後執行 python3 $S/preflight_reference.py --case CASE。檢視 mask_overlay.png 和 landmarks_overlay.png。 遮罩排除地板陰影和鬍鬚。
  3. 相機與代理。 執行 fit_camera_proxy.py --case CASE(CPU,數十分鐘),然後執行 build_proxy.py、build_proxy.py --lock 和 build_proxy.py --report。從所有八個視角檢視代理:它是隱藏部分的答案。然後凍結:在對任何預算進行評分之前,將參考、遮罩、地標、區域、相機、場景、代理和評估程式碼的雜湊值寫入 contract/FROZEN.json(references/contract.md)。
  4. 控制組。 為每個預算執行 make_decimation_baseline.py --case CASE --budget N:將代理簡化為正好 N 個三角形,並在共享精煉器之後也執行相同操作。這些是待超越的數字。
  5. 分配與建構,按預算執行。 為每個預算分配其自己的工作區和目錄 variants/<N>/(references/budget-worker.md)。撰寫分配表(區域、三角形、環數 x 邊數、原因),建構至少兩個實質不同的分配,對每個分配進行相同的短精煉,比較,選擇。variants/<N>/build.py 會寫入一個具有正好 N 個三角形(斷言)、區域、材質和地標附著點的 catmesh-1 mesh.json。一個封閉曲面:將四肢、尾巴和耳朵焊接進身體。
  6. 初始檢查點。 執行 evaluate.py --case CASE --mesh variants/<N>/checkpoints/v0_initial/mesh.json --views。這是「初始」行。
  7. 精煉、測量、檢視、編輯、重複。 執行 refine_vertices.py(--flips、--freeze-verts 用於面和任何凍結套件)、evaluate.py,然後檢視 ref_overlay.png、ref_clay.png、ref_wire.png 和八個視角。在疊加顯示預算分配不當的位置進行有針對性的拓撲編輯。保留最佳驗證檢查點;最新的不一定勝出。
  8. 盲審。 執行 make_critic_packet.py --case CASE --round K 打包照片以及中性命名的黏土、線框和外輪廓渲染。啟動一個全新的子代理,僅檢視該資料夾;將其發現轉化為預算中性的幾何編輯。拒絕任何涉及紋理、卡片或未計數幾何的建議。
  9. 最終確定與聚合。 執行 finalize_variant.py --case CASE --budget N --checkpoint TAG --reason "..." 複製檢查點並重新評分;aggregate_metrics.py 建立跨預算表格,拒絕不符的雜湊值或計數;make_comparison.py 製作比對表。
  10. 報告並停止。 呈現附四個計數的黏土/線框表、每個預算的初始、最終和兩個控制組的表格、分配表、審查員的判決以及缺失之處。說明設計網格何處未超越控制組。由使用者決定下一步。
  11. 縮時攝影(可選)。 記錄建構階段(在建構腳本中使用 --stages-dir)和最佳化器快照(refine_vertices.py --snapshot-dir DIR --snapshot-every K),然後執行 timelapse/timelapse.py --case CASE:透過鎖定相機在照片上繪製的網格。

嚴格規則

  • 計數是評估後的匯出幾何。 四個計數(網格檔案、評估的 .blend 中所有物件、重新匯入的 GLB、解析後的 GLB)必須一致且最多為 N;目標是正好 N。絕不使用 Blender 的多邊形計數(references/counting.md)。
  • 不得隱藏三角形或形狀。 僅三角形,一個物件,無修改器,無細分、曲線、毛髮、實例、Alpha 卡片、重複或退化填充、廣告牌或平面輪廓擠出。
  • 目標永不移動。 參考、遮罩、地標、窗口和相機僅建立一次並進行雜湊處理。真正的修正需揭露,且每個預算需重新評分。
  • 沒有一個數字能決定一切。 IoU、邊界距離、地標和腿部間隙不得互相矛盾,且黏土和八個視角必須看起來更好。分數更好但形狀更差是回歸。
  • 焊接,不要穿插。 埋藏的三角形浪費預算,且接合處會顯現。
  • 最佳化器是共享的;分配是實驗。 相同的精煉器、相同的設定可用於每個預算和控制組。
  • 地標隨幾何移動。 地標附著於其命名的特徵;切勿滑動附著點以改善數字。
  • 一次只渲染一個。 僅 render_variant.py 執行渲染,且它會自行取得鎖定。
  • 材質絕不計入形狀。 具有解剖意義的平面每面顏色;僅根據黏土和輪廓對幾何進行排名。
  • 說明它不包含什麼。 推斷的隱藏側面;平手結果即為平手;頭部和薄部分是最弱的環節。

參考資料

檔案何時閱讀
references/contract.md設定案例時:佈局、單位、相機、網格格式、指標、渲染、代理、地標、頭部套件
references/budget-worker.md委派或執行一個預算時:程序、優先事項、應檢視的內容
references/counting.md四個方向的計數、硬性失敗、需揭露的內容
references/lessons.md貓運行中出錯的地方以及每個失敗演變成規則的原因

相關技能