mcpField
I
image-to-sculpt

image-to-sculpt

github.com/gokayfemクリエイティブ・メディア25613 回インストール3 日前に更新
リポジトリ

image-to-sculpt について

Image 2 Sculptは、画像から確認可能な3Dスカルプトを作り、各工程を記録するワークフローです。見えている面は入力画像に合わせ、隠れた部分は相互に整合する生成ビューで補い、Blenderで工程を再生できます。

主な機能

  1. 011枚の画像からスカルプトを作成
  2. 02複数角度のビュー生成と選別
  3. 03画像の法線と輪郭に沿った表面フィット
  4. 04領域の修整と見える隙間の切り出し
  5. 05ビューごとの確認と指標比較
  6. 06Blenderで再生しOBJ、STL、GLBへ出力

活用シーン

  1. 01キャラクターや物体のレンダーをスカルプト化
  2. 02実物写真からフィギュアや製品を再構築
  3. 03同一物体の写真で生成ビューを置き換える
  4. 04輪郭や部分構造を確認してスカルプトを修整

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gokayfem/image-to-sculpt --skill image-to-sculpt

インストール後、Claude Code で/image-to-sculptを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
blender-and-delivery.md
checking.md
conventions.md
fitting.md
inputs.md
lessons.md
views.md
scripts/
i2s.py
scripts/blender/
build.py
scripts/i2s/
__init__.py
case.py
falio.py
film.py
fit.py
geom.py
hull.py
inputs.py
maps.py
register.py
report.py
sdf.py
synth.py
templates/
acceptance.json
CONTRACT.md

詳細

Image 2 Sculpt

画像を入力するだけで、根拠を示せるスカルプトを出力します。画像に映るすべての表面は、画像自身のカメラにおける法線、輪郭、奥行きに合わせてフィットされます。隠れた表面は、互いに一致することを確認した生成ビューから作られ、構築の全工程が Blender に記録され、再生されます。

入力の振り分け

どの入力も同じケースのレイアウトに収まります(i2s.py new CASE --input ...)。詳細は references/inputs.md を参照してください。

入力操作備考
キャラクター、クリーチャー、物体のレンダー画像またはAI画像new → run基本の手順です
実物の物体(フィギュア、おもちゃ、製品、彫像)の写真new --kind photo → runMoGe が実際の焦点距離と奥行きを推定します
透過情報付きの切り抜きPNGnew → runアルファチャンネルがマスクになるため、マスク処理の呼び出しは不要です
複数の物体が写った複雑な画像prep --select "the red dragon"SAM-3 が対象を選択します
絵、スケッチ、フラットなイラストprep --restylenano banana がポーズを維持したまま、まず3Dレンダーに変換します
同じ物体の複数の写真views --import DIR生成ビューの代わりに写真を使います。角度は位置合わせによって特定します
アイデアだけimagine OUT.png "idea" → new最初に使う、全身がきれいに収まったレンダーを生成します
APIキーがない場合切り抜きPNG(+独自のビュー)正面だけでも動作します。シルエットを膨らませ、奥行きは推定します

ワークフロー

各チェックポイントでラベル付きビジュアルを記録します(checks/sheet_*.png、ビューシート、ターンテーブルのフレーム):まず画像、次に数値です。修正ラウンドではステップを追加します。記録済みのものは編集しません。

  1. スキャフォールド。 i2s.py new CASE --input IMG --subject "short noun phrase"。画像を見て、主題を表すフレーズを自分で書きます(「ずんぐりした漫画風のトロール」「陶器のフクロウの置物」など)。このフレーズはすべてのビューのプロンプトに入ります。入力画像は sha256 とともにコピーされ、最も近いジェネレーターのアスペクト比に合わせて余白が追加されるため、すべてのビューで同じレンズが使われます。
  2. 正面マップ。 i2s.py prep CASE(マスク、MoGe-3 による深度と焦点距離、Marigold による法線。単位は主題に合わせて正規化)。次に進む前に、ref/front_mask.png と ref/front_normals.png を確認します。選択された主題が違う場合は --select を使います。描画の場合は --restyle を使います。
  3. ビュー。 i2s.py views CASE(9 ビュー+保留 1 ビュー、推定約 2 ドル。5 ビューにするには --set minimal)。生成された画像をすべて確認します。ポーズが変わっている、余分な手足がある、主題が切れている場合、そのビューは不適切です。登録処理では、他のビューの外殻と一致しないビュー(IoU < 0.80)は除外されますが、目にした内容を伝えてください。どのビューからも見えない領域には、さらに平滑化するのではなく、その領域を見通せる角度の新しいビューが必要です(--angles "-30:25")(references/views.md)。
  4. 外殻。 i2s.py hull CASE:すべてのビューの登録(指定した角度はあくまで事前情報です。左右の入れ替わりは検出され、前後は維持されます)、再センタリング、スクリーニング、記録されたカービング、対称性の検出を行います。case.json に記録された登録角度を確認します。i2s.py symmetry CASE on|off で検出された対称面を上書きできます。
  5. フィット。 i2s.py fit CASE --stage all(フォーム → サーフェス → ディテール、記録されたパスは 38 回)を実行し、続けて cut(写真に写っている指、脚、腕と胴体の隙間を開きます)、smooth(網状の部分や小さなノイズを取り除きます)、fit --stage polish を実行します。i2s.py run CASE は、このデフォルトのプランでステップ 2~8 を順番に実行します(references/fitting.md)。
  6. 確認と反復。 i2s.py check CASE はビューごとにシートを出力します。内容は、参照画像、参照法線、彫刻、法線誤差、シルエットの差分です。こぶ、網状の部分、不足している隙間、平坦化した特徴を探します。対象を絞り込みます。parts CASE --prompt "hands" の後に fit --stage focus --region hands、cut --region hands、smooth --region box:... を実行します(references/checking.md)。修正前後のシートなしに、修正したと主張してはいけません。
  7. 仕上げ、Blender、動画。 finish(ファセットの平滑化、OBJ/STL)、blender(写真のカメラから各ステップを再生、360°ターンテーブル、各ビュー、sculpt.blend、GLB)、film(360°回転、ターンテーブル、ビューシート、ヒーロー画像で終わる2画面のタイムラプス)を実行します(references/blender-and-delivery.md)。
  8. 報告して終了。 report は out/REPORT.md、out/index.html、ステップごとのグラフを出力します。タイムラプス、ビューシート、計測値の表を提示し、弱い部分を伝えたら終了します。次に何をするかはユーザーが決めます。

厳守事項

  • 写真が捉えているものを基準にします。 生成ビューは写真に写っていない部分だけを補います。深度は決して使用しません(ビューごとに数センチずれて一致しないためです)。生成ビューの法線を写真の法線と平均してはいけません。
  • すべてのビューを位置合わせし、指定された角度を信用してはいけません。 トロールでは、生成ビューの角度が20~155°ずれており、その多くは左右が入れ替わっていました。検索ではそのようなずれも許容しますが、正面ビューは前方、背面ビューは後方に保ちます(対称的な対象では、背面の輪郭が正面と似ているためです)。位置合わせ後の角度はcase.jsonで確認してください。
  • 彫り始める前にスクリーニングします。 ほかのビューと一致しないビューは別の対象またはポーズです。そのビューを拒否し、理由を伝えてください。そのビューでスカルプトを削ってはいけません。
  • 1つのビューを検証用に残します。 このビューはサーフェスを動かしません。フィッティングの前にカメラを固定します。フィッティングに使用したビューとは分けて報告してください。このビューも生成されたものなので、真実ではなく一貫性を測定します。
  • 目視だけに頼らず、測定してください。 IoU、輪郭距離、法線角度、参照画像自身の粗さに対する粗さ、写真の深度を測定します。1つの数値だけで「品質」を表すことはできません。並べて報告してください。
  • 距離フィールドは常に正確に保ちます。 すべての操作でグリッドの距離を再計算します(帯域内では三角形からの正確な距離を、それ以外ではEDTを使用します)。不正確なフィールドのオフセット、フィールド自体のミラーリング、法線ターゲットのぼかしは、このケースの元になった事例で階段状のアーティファクト、モアレ状のリング、平坦化した鼻を生みました(references/lessons.md)。
  • すべてを記録します。 すべての彫り込み、パス、カット、スムージングをbuild/steps/とbuild/log.jsonlのステップとして記録し、Blenderで再生してタイムラプスに表示します。記録済みのステップは編集せず、新しいステップを追加してください。
  • 有料の呼び出し: falの呼び出しはすべてケースの予算(settings.budget_usd)を通し、待機前にリクエストIDをcase.jsonに保存し、むやみに再送信しないでください。FAL_KEYを出力したり書き込んだりしてはいけません。
  • すべてのチェックポイントで視覚的なフィードバックを行い、すべての映像のフレーム0には完成したサムネイルを表示します。
  • 何を創作したかを明示します。 正面からしか見ていない対象の背面は、生成モデルの推測です。

参考資料

ファイル読むタイミング
references/inputs.md特殊な入力の振り分け、マスク、スタイル変更、選択、取り込み写真、アイデアのみの入力
references/views.mdビューの生成、評価、位置合わせ、スクリーニング、追加
references/fitting.mdパスの動作、段階、パラメーター、カット/スムージング/フォーカス、デフォルトプラン
references/checking.mdマップシートと測定値、検証用ビュー、次に修正する内容の確認
references/blender-and-delivery.mdBlenderでの再生、映像、エクスポート、レポート、レビューページ
references/conventions.mdワールド座標系、カメラ、単位、ファイル形式(新しいツールの作成用)
references/lessons.md最初のケースで起きた問題と、上記のルールが設けられた理由

テンプレート:templates/CONTRACT.md(すべてのケースにコピー)、templates/acceptance.json(目標)。

コメント