ComfyUI による画像から3Dモデルへの変換
ComfyUI は、ローカルモデル(Trellis.2、Pixal3D、Hunyuan3D など)を使用して画像からメッシュを再構築します。モデリングは行いません。ワークフローを選択し、実行して、ファイルを提供します。これはユーザーのGPU上で動作し、コストはかからず、数分から15分程度で完了します。
仕組みはすでにツールに組み込まれています:comfy_workflows はユーザーが保存したワークフローを一覧表示し、添付画像を使用してワークフローを準備し、結果を収集して、次のステップを指示します。ComfyUI 接続は検証、実行、待機を行います。それらのツールが返す指示に従ってください。このスキルは、それらのツールから委ねられる判断に関するものです。
comfy_workflows と ComfyUI 接続のツールの両方がない場合は、その旨を伝えて停止してください。ユーザーは ComfyUI 接続(ツール → 接続)をインストールし、このエージェントに comfy_workflows、comfyui_validate_workflow、comfyui_run_workflow、comfyui_job を付与し、ComfyUI を起動したままにする必要があります。
どのワークフローを使用するか
comfy_workflows を action: "list" で実行すると、ユーザーが保存したワークフローが表示されます。画像の内容に基づいて選択してください:
| 画像の内容 | 使用するワークフロー |
|---|---|
| 1つのオブジェクトの1枚の写真(写真、レンダリング、コンセプトアートなど) | 画像から3Dモデル、単一画像(ユーザーが名前を付けたマルチビューワークフローも1枚の写真で動作します) |
| 同じオブジェクトの複数ビュー(正面、側面、背面;キャラクターのターンアラウンド)を含むシート | マルチビューから3Dモデル |
| 同じオブジェクトの別々の添付画像が複数 | マルチビュー(ワークフローが複数ファイルを読み取る場合)。それ以外の場合は、どの画像を使用するかを確認する |
- ユーザーが名前を指定したワークフローは、あなたの選択よりも優先されます。
- 保存されたワークフローのうち2つが適合し、それらを区別するものがない場合は、ユーザーに確認してください。両方を実行しないでください。
- 適合するワークフローがない場合は、その旨を伝え、ユーザーが持っているワークフローを列挙してください。その場合のみ、Comfy のオンラインギャラリー(
comfyui_search_templatesがあれば使用)からテンプレートを提案し、その前に、ギャラリーはインターネット上のコンテンツであるため、あなたが読み取った後、アプリがユーザーに各ステップの承認を求めると伝えてください。
準備するもの
- 添付画像を会話で表示されている名前で
filesに渡します。 - 1回の実行につき1つのオブジェクト。画像に複数のオブジェクトが写っている場合は、どれかを確認するか、モデルがシーン全体を1つのピースとして含むことを伝えてください。
- 背景が単色で、オブジェクト全体がフレーム内に収まっている画像が最良のモデルを生成します。オブジェクトが端で切れていたり、何かの後ろに隠れている場合は、実行前にその旨を伝えてください。生成器は見えない部分を補完します。
ワークフロー内の選択肢
comfy_workflows はワークフローの作成者が残したノートを引用します。それを読んでください。ワークフローのスイッチが何をするかが書かれています。
- スイッチの背後にある2つの生成器(2つのモデルのいずれかを使用できるワークフロー):ユーザーが保存したままにしておきます。ユーザーが使用したい生成器を指定した場合のみ、
comfyui_list_workflow_slotsでスイッチを見つけ、comfyui_set_workflow_slotで設定し、レポートでどちらが実行されたかを報告します。 - ユーザーの値はそのまま保持します。 ワークフローはユーザーが保存した値で実行します。
target_face_count、解像度、サンプラー、その他の値を自分で変更しないでください。たとえ画像が単純に見えたり、前回の実行で重いモデルが生成された場合でも同様です。保存されたワークフローはユーザーの決定であり、あなたが「助けよう」と変更した値は、ユーザーが求めていないモデルを生成します(詳細を大幅に間引いた再構築は、軽量コピーではなく、しわくちゃな形状になります)。軽量モデルの方が適していると思われる場合は、レポートでその旨を伝え、提案してください。実行しないでください。 - 軽量モデルは、要求された場合のみ。 ユーザーが明示的に軽量モデルを要求したり、面数を指定したり、ゲーム、ウェブ、スマートフォン用であると述べた場合のみ、実行前に面数を減らします。準備されたファイルに対して2回の呼び出しを行います:
comfyui_list_workflow_slotsを実行し、その応答からtarget_face_countという名前のスロット(DecimateMeshノードに属します)を見つけ、そのaddressをコピーします。comfyui_set_workflow_slotをstdout: falseおよび[{"address": "<そのアドレス>", "value": 50000}]で実行します(ゲーム内の小道具の場合。カメラが近づくヒーローオブジェクトの場合は150000)。ユーザーが自分でより低い数値を指定しない限り、50000未満にしないでください。 その後、通常どおり検証して実行し、レポートで設定した値を報告します。ワークフローにそのようなスロットがない場合、またはそれらの2つのツールがない場合は、そのまま実行し、モデルがゲーム用としては重く、その程度を明確に伝えてください。
- マルチビューワークフローには1枚の写真で十分です。 入力から複数のビューを切り出すワークフローは、1枚の写真でも機能します。画像の外側に当たる切り出し部分は空になり、モデルは実際の1つのビューから構築されます。ビューのシートを探したり、自分で作成しようとしたりしないでください。ユーザーが指定した画像で実行してください。
実行できない場合
- モデルまたはノードが見つからない場合:バリデーションで報告されたファイル名を伝えて停止します。ユーザーは ComfyUI からそれらをインストールします(ワークフローを開くとダウンロードが提供されます)。回避するために別のワークフローに切り替えないでください。
- ジョブが失敗した場合:
comfy_workflowsをaction: "collect"で実行すると、ノードと理由が報告されます。メモリ不足が一般的な原因です。その旨を伝え、解像度を下げるか、ワークフローに別の生成器がある場合はそちらで再試行することを提案してください。自分で再試行するのは1回までにしてください。 - 待機がタイムアウトした場合:ジョブはまだ実行中です。再度待機してください。決して2回実行を開始しないでください。
レポート
collectで返されたファイル、そのサイズ、三角形の数を、指定されたとおりに報告します。- 実行したワークフローと、その中で変更した内容。
- モデルは見ていません。生成されたことだけを伝え、その見た目については述べないでください。
- 期待されることについて1行:画像に写っていない側面は生成器によって補完され、結果はベイクされたテクスチャを持つ単一のメッシュであり、パーツに分割されていません。
- ユーザーがモデルのクリーンアップ、さらなる削減、エンジンへのエクスポートを希望する場合は、Blender(
blender-game-exportスキル)の作業です。