ComfyUI ノード
ComfyUI-Tripo は、Tripo 公式の ComfyUI 向けカスタムノード拡張です。テキスト、画像、マルチビュー画像からの 3D 生成を ComfyUI ワークフローに統合し、モデルのインポート、テクスチャ生成、精細化、メッシュ処理、ローポリ化、スタイル変換、リギング、アニメーションのリターゲティング、形式変換、リトポロジーにも対応します。
| 項目 | 値 |
|---|---|
| Node プロジェクトバージョン | 1.3.0 |
| ソースタグ | v1.3.1.1 |
| リポジトリ | VAST-AI-Research/ComfyUI-Tripo |
機能と変更履歴
機能
- テキストから 3D モデルを生成します。
- 画像から 3D モデルを生成します。
model_urlを使って URL からモデルをインポートします。- モデルのパーツ分割に対応します。
- 3D モデルをリグしてアニメーションを適用します。
- 形式変換とリトポロジーを実行します。
変更履歴
- 2026-06-30:モデルのパーツ分割に対応する Mesh Segmentation v2.0 と
model_urlによる URL 直接インポートを追加。 - 2026-05-28:モデルインポートを追加。
- 2025-06-19:最新 API に更新し、ノードを追加。
- 2025-03-31:
tripo3dパッケージへ移行。 - 2025-02-24:
glbviewerを削除。 - 2025-02-01:新 API に対応し、モデル表示を Preview 3D に変更。
- 2024-11-11:新 API に対応。
- 2024-10-14:モデル変換を追加。
- 2024-09-13:
model_versionv2.0-20240919に対応。
インストール
公式ツール:ComfyUI-Manager、Comfy Registry、comfy-cli。
いずれかの方法でインストールし、ComfyUI を再起動します。
- ComfyUI-Manager: Custom Nodes Manager で
Tripo for ComfyUIを検索してインストールします。 - comfy-cli:
comfy node registry-install comfyui-tripo
- ソースから:
cd ComfyUI/custom_nodes
git clone https://github.com/VAST-AI-Research/ComfyUI-Tripo.git
python -m pip install -r ComfyUI-Tripo/requirements.txt
API Key の設定
まず Tripo プラットフォームで API Key を作成し、次のいずれかの方法で設定します。
API Key は次の順序で解決されます。
- ノードの空でない
apikey入力。 - 環境変数
TRIPO_API_KEY。 - プロジェクトディレクトリの
config.jsonにあるTRIPO_API_KEYフィールド。
Generate と Import は apikey を持ち、後続ノードは解決済み Key を MODEL_INFO で受け取ります。 実際の Key をスクリーンショット、workflow、ログ、リポジトリに含めないでください。
環境変数を使った起動例
Windows:
set TRIPO_API_KEY=tsk_XXXXXXX
python.exe main.py [--cpu]
Linux または macOS:
TRIPO_API_KEY=tsk_XXXXXXX python main.py [--cpu]
ノード一覧
ComfyUI-Tripo には次の 11 個の Tripo ノードがあります。
| 内部 ID | 表示名 | 機能 | 出力 |
|---|---|---|---|
TripoAPIDraft |
Tripo: Generate model | テキスト、画像、複数視点からモデルを生成します。 | STRING model_file + MODEL_INFO |
TripoImportModel |
Tripo: Import model | ローカルモデルまたは URL をインポートします。 | MODEL_INFO |
TripoTextureModel |
Tripo: Texture model | モデルにテクスチャを生成します。 | STRING model_file + MODEL_INFO |
TripoRefineModel |
Tripo: Refine Draft model | 互換性のある草モデルを精修します。 | STRING model_file + MODEL_INFO |
TripoMeshSegmentation |
Tripo: Segment mesh | メッシュを分割します。 | STRING model_file + MODEL_INFO |
TripoMeshCompletion |
Tripo: Complete mesh | 分割済みメッシュを補完します。 | STRING model_file + MODEL_INFO |
TripoSmartLowPoly |
Tripo: Smart low poly | 低ポリゴンモデルを生成します。 | STRING model_file + MODEL_INFO |
TripoStylizeModel |
Tripo: Stylize model | 幾何学スタイルを適用します。 | STRING model_file + MODEL_INFO |
TripoAnimateRigNode |
Tripo: Rig model | モデルを自動リグします。 | STRING model_file + MODEL_INFO |
TripoAnimateRetargetNode |
Tripo: Retarget rigged model | プリセットアニメーションを適用します。 | STRING model_file + MODEL_INFO |
TripoConvertNode |
Tripo: Convert model | モデルを変換して書き出します。 | STRING model_file |
Preview 3D は ComfyUI のノードであり、11 個の Tripo ノードには含まれません。
接続とデータフロー
flowchart LR
G["Generate model"] -->|MODEL_INFO| P["モデル処理"]
I["Import model"] -->|MODEL_INFO| P
P -->|MODEL_INFO| R["Rig model"]
R -->|MODEL_INFO| A["Retarget rigged model"]
A -->|MODEL_INFO| C["Convert model"]
model_fileは、プレビューやファイル処理に使うダウンロード済みファイルのパスです。MODEL_INFOにはtask_id、解決済みapikey、file_prefix、output_directoryが含まれます。- 外部モデルは最初に
TripoImportModelを通す必要があり、ファイルパスだけではMODEL_INFOの代わりになりません。 - Tripo の処理を続けるときは
MODEL_INFOを接続します。
全ノードパラメーター
「必須」はノード定義で必須とされている入力を示します。空の apikey は環境変数または設定へフォールバックできます。「—」は明示的なデフォルト値がないことを示します。
生成とインポート
TripoAPIDraft — Tripo: Generate model
テキスト、画像、複数視点からモデルを生成します。
| 入力 | 型 | 必須 | デフォルト | 値 / 範囲 |
|---|---|---|---|---|
mode |
ENUM | はい | 先頭値 | text_to_model, image_to_model, multiview_to_model |
apikey |
STRING | はい | 空 | API key またはフォールバック |
prompt |
STRING multiline | いいえ | 空 | text_to_model |
negative_prompt |
STRING multiline | いいえ | 空 | — |
image |
IMAGE | いいえ | — | image_to_model 入力元; multiview_to_model 正面画像 |
image_left |
IMAGE | いいえ | — | multiview_to_model |
image_back |
IMAGE | いいえ | — | multiview_to_model |
image_right |
IMAGE | いいえ | — | multiview_to_model |
model_version |
ENUM | いいえ | v3.1-20260211 |
v1.4-20240625, v2.0-20240919, v2.5-20250123, v3.0-20250812, v3.1-20260211 |
texture |
BOOLEAN | いいえ | true |
— |
pbr |
BOOLEAN | いいえ | true |
— |
image_seed |
INT | いいえ | 42 |
text_to_model |
model_seed |
INT | いいえ | 42 |
— |
texture_seed |
INT | いいえ | 42 |
— |
texture_quality |
ENUM | いいえ | standard |
standard, detailed |
geometry_quality |
ENUM | いいえ | standard |
standard, detailed; image_to_model |
texture_alignment |
ENUM | いいえ | original_image |
original_image, geometry |
face_limit |
INT | いいえ | -1 |
-1–500000; ≤ 0 は未設定として扱う |
quad |
BOOLEAN | いいえ | false |
— |
compress |
BOOLEAN | いいえ | false |
— |
generate_parts |
BOOLEAN | いいえ | false |
— |
smart_low_poly |
BOOLEAN | いいえ | false |
— |
auto_size |
BOOLEAN | いいえ | false |
— |
orientation |
ENUM | いいえ | default |
default, align_image; 画像/multiview モード |
file_prefix |
STRING | いいえ | 空 | — |
output_directory |
STRING | いいえ | 空 | — |
出力: STRING model_file + MODEL_INFO. 前提: なし. 主な失敗条件: 条件入力/Key 不足、API タスクまたは出力移動の失敗. 最小接続: テキスト/画像 → TripoAPIDraft → Preview 3D.
3 つのモードには次の条件付き必須入力があります。
mode |
条件付き必須 | 説明 |
|---|---|---|
text_to_model |
prompt |
prompt を空にできません。 |
image_to_model |
image |
image が必須です。 |
multiview_to_model |
image |
image は正面で、左・背面・右は任意です。 |
TripoImportModel — Tripo: Import model
ローカルモデルまたは URL をインポートします。
| 入力 | 型 | 必須 | デフォルト | 値 / 範囲 |
|---|---|---|---|---|
apikey |
STRING | はい | 空 | API key またはフォールバック |
model_file |
file selector | いいえ | none |
ComfyUI input ディレクトリ |
model_url |
STRING | いいえ | 空 | 直接 URL |
file_prefix |
STRING | いいえ | 空 | 後続へ引き継ぐ |
output_directory |
STRING | いいえ | 空 | 後続へ引き継ぐ |
出力: MODEL_INFO. 前提: ローカルファイルまたは URL. 主な失敗条件: 入力元なし/到達不能、形式拒否または import 失敗. 最小接続: ローカルファイルまたは URL → TripoImportModel → MODEL_INFO.
空でない model_url は model_file より優先されます。両方が空なら失敗します。アップロードは .glb、.fbx、.obj、.stl、.ply、.3mf、.gltf を受け付け、バックエンドは .zip も認識します。
モデル処理
TripoTextureModel — Tripo: Texture model
モデルにテクスチャを生成します。
| 入力 | 型 | 必須 | デフォルト | 値 / 範囲 |
|---|---|---|---|---|
model_info |
MODEL_INFO | はい | — | 上流タスクコンテキスト |
model_version |
ENUM | いいえ | v3.0-20250812 |
v2.5-20250123, v3.0-20250812 |
texture |
BOOLEAN | いいえ | true |
— |
pbr |
BOOLEAN | いいえ | true |
— |
texture_seed |
INT | いいえ | 42 |
— |
texture_quality |
ENUM | いいえ | standard |
standard, detailed |
texture_alignment |
ENUM | いいえ | original_image |
original_image, geometry |
text_prompt |
STRING multiline | いいえ | 空 | — |
image_prompt |
IMAGE | いいえ | — | — |
style_image |
IMAGE | いいえ | — | — |
part_names |
STRING multiline | いいえ | 空 | 1 行に 1 部位名 |
compress |
BOOLEAN | いいえ | false |
— |
bake |
BOOLEAN | いいえ | true |
— |
出力: STRING model_file + MODEL_INFO. 前提: Generate / Import MODEL_INFO. 主な失敗条件: 非互換コンテキスト、無効画像または API 失敗. 最小接続: Generate / Import → TripoTextureModel → Preview 3D.
TripoRefineModel — Tripo: Refine Draft model
互換性のある草モデルを精修します。
| 入力 | 型 | 必須 | デフォルト | 値 / 範囲 |
|---|---|---|---|---|
model_info |
MODEL_INFO | はい | — | 草モデルコンテキスト |
出力: STRING model_file + MODEL_INFO. 前提: 精修可能な草モデルの MODEL_INFO. 主な失敗条件: 精修不可の草モデルまたは API 失敗. 最小接続: Generate draft → TripoRefineModel → Preview 3D.
TripoMeshSegmentation — Tripo: Segment mesh
メッシュを分割します。
| 入力 | 型 | 必須 | デフォルト | 値 / 範囲 |
|---|---|---|---|---|
model_info |
MODEL_INFO | はい | — | 上流タスクコンテキスト |
model_version |
ENUM | はい | v1.0-20250506 |
v1.0-20250506, v2.0-20260430 |
segmentation_granularity |
ENUM | いいえ | balanced |
simple, balanced, detailed; v2 only |
ref_image |
IMAGE | いいえ | — | v2 のみ |
split_by_connectivity |
BOOLEAN | いいえ | true |
v2 のみ |
出力: STRING model_file + MODEL_INFO. 前提: Generate / Import MODEL_INFO. 主な失敗条件: 非互換モデル/参照画像または API 失敗. 最小接続: Generate / Import → TripoMeshSegmentation → Completion / Preview.
segmentation_granularity、ref_image、split_by_connectivity は v2.0-20260430 の場合だけ送信され、v1 では無視されます。
TripoMeshCompletion — Tripo: Complete mesh
分割済みメッシュを補完します。
| 入力 | 型 | 必須 | デフォルト | 値 / 範囲 |
|---|---|---|---|---|
model_info |
MODEL_INFO | はい | — | 分割済みコンテキスト |
model_version |
ENUM | はい | v1.0-20250506 |
v1.0-20250506 |
part_names |
STRING multiline | いいえ | 空 | 1 行に 1 部位名 |
出力: STRING model_file + MODEL_INFO. 前提: 分割済み MODEL_INFO. 主な失敗条件: 補完に不適切なタスクまたは API 失敗. 最小接続: Segment → TripoMeshCompletion → Preview 3D.
TripoSmartLowPoly — Tripo: Smart low poly
低ポリゴンモデルを生成します。
| 入力 | 型 | 必須 | デフォルト | 値 / 範囲 |
|---|---|---|---|---|
model_info |
MODEL_INFO | はい | — | 上流タスクコンテキスト |
model_version |
ENUM | はい | P-v2.0-20251225 |
P-v2.0-20251225 |
quad |
BOOLEAN | いいえ | false |
— |
part_names |
STRING multiline | いいえ | 空 | 1 行に 1 部位名 |
face_limit |
INT | いいえ | 10000 |
-1–20000 |
bake |
BOOLEAN | いいえ | true |
— |
出力: STRING model_file + MODEL_INFO. 前提: Generate / Import MODEL_INFO. 主な失敗条件: 非互換モデル/部位または API 失敗. 最小接続: Generate / Import → TripoSmartLowPoly → Preview / Convert.
TripoStylizeModel — Tripo: Stylize model
幾何学スタイルを適用します。
| 入力 | 型 | 必須 | デフォルト | 値 / 範囲 |
|---|---|---|---|---|
model_info |
MODEL_INFO | はい | — | 上流タスクコンテキスト |
style |
ENUM | はい | 先頭値 | lego, voxel, voronoi, minecraft |
block_size |
INT | はい | 80 |
1–1000 |
出力: STRING model_file + MODEL_INFO. 前提: Generate / Import MODEL_INFO. 主な失敗条件: 非互換モデル/スタイルまたは API 失敗. 最小接続: Generate / Import → TripoStylizeModel → Preview 3D.
リグとアニメーション
TripoAnimateRigNode — Tripo: Rig model
モデルを自動リグします。
| 入力 | 型 | 必須 | デフォルト | 値 / 範囲 |
|---|---|---|---|---|
model_info |
MODEL_INFO | はい | — | 上流タスクコンテキスト |
model_version |
ENUM | はい | v2.0-20250506 |
v1.0-20240301, v2.0-20250506 |
out_format |
ENUM | はい | glb |
glb, fbx |
spec |
ENUM | はい | tripo |
mixamo, tripo |
出力: STRING model_file + MODEL_INFO. 前提: Generate / Import MODEL_INFO. 主な失敗条件: リグ不可、rig type なし、または API 失敗. 最小接続: Generate / Import → TripoAnimateRigNode → Retarget / Preview.
リグ処理の前に、ノードはリグ可能か確認し rig type を取得します。
TripoAnimateRetargetNode — Tripo: Retarget rigged model
プリセットアニメーションを適用します。
| 入力 | 型 | 必須 | デフォルト | 値 / 範囲 |
|---|---|---|---|---|
model_info |
MODEL_INFO | はい | — | リグ済みコンテキスト |
animation |
ENUM | はい | 先頭値 | 下記 16 プリセット |
out_format |
ENUM | はい | glb |
glb, fbx |
bake_animation |
BOOLEAN | いいえ | true |
— |
export_with_geometry |
BOOLEAN | いいえ | false |
— |
出力: STRING model_file + MODEL_INFO. 前提: リグ済み MODEL_INFO. 主な失敗条件: 未リグコンテキストまたは API 失敗. 最小接続: Rig → TripoAnimateRetargetNode → Preview / Convert.
16 個のアニメーション値: preset:idle, preset:walk, preset:run, preset:dive, preset:climb, preset:jump, preset:slash, preset:shoot, preset:hurt, preset:fall, preset:turn, preset:quadruped:walk, preset:hexapod:walk, preset:octopod:walk, preset:serpentine:march, preset:aquatic:march.
形式出力
TripoConvertNode — Tripo: Convert model
モデルを変換して書き出します。
| 入力 | 型 | 必須 | デフォルト | 値 / 範囲 |
|---|---|---|---|---|
model_info |
MODEL_INFO | はい | — | 上流タスクコンテキスト |
format |
ENUM | はい | 先頭値 | GLTF, USDZ, FBX, OBJ, STL, 3MF |
quad |
BOOLEAN | いいえ | false |
— |
force_symmetry |
BOOLEAN | いいえ | false |
— |
face_limit |
INT | いいえ | -1 |
-1–500000 |
flatten_bottom |
BOOLEAN | いいえ | false |
— |
flatten_bottom_threshold |
FLOAT | いいえ | 0.01 |
0.0–1.0 |
texture_size |
INT | いいえ | 4096 |
128–4096 |
texture_format |
ENUM | いいえ | JPEG |
BMP, DPX, HDR, JPEG, OPEN_EXR, PNG, TARGA, TIFF, WEBP |
pivot_to_center_bottom |
BOOLEAN | いいえ | false |
— |
scale_factor |
FLOAT | いいえ | 1.0 |
最小 0 |
with_animation |
BOOLEAN | いいえ | true |
— |
pack_uv |
BOOLEAN | いいえ | false |
— |
bake |
BOOLEAN | いいえ | true |
— |
part_names |
STRING multiline | いいえ | 空 | 1 行に 1 部位名 |
fbx_preset |
ENUM | いいえ | blender |
blender, mixamo, 3dsmax |
export_vertex_colors |
BOOLEAN | いいえ | false |
— |
export_orientation |
ENUM | いいえ | +x |
+x, +y, -x, -y |
animate_in_place |
BOOLEAN | いいえ | false |
— |
出力: STRING model_file. 前提: 互換性のある MODEL_INFO. 主な失敗条件: 未対応変換、無効設定または出力失敗. 最小接続: MODEL_INFO → TripoConvertNode.
Convert は出力ノードで、MODEL_INFO を返しません。
workflow 例
Preview 3D は任意の ComfyUI ビューアーです。
flowchart LR
T["テキスト"] --> GT["Generate model<br/>mode: text_to_model"]
IM["画像"] --> GI["Generate model<br/>mode: image_to_model"]
MV["正面 + 任意ビュー"] --> GM["Generate model<br/>mode: multiview_to_model"]
GT --> V["Preview 3D"]
GI --> V
GM --> V
- Text to Model:
prompt→text_to_modelの Generate → Preview 3D。 - Image to Model: IMAGE →
image、image_to_model→ Preview 3D。 - Multiview to Model: 正面を
image、任意画像をimage_left、image_back、image_rightへ接続。 - Texture Model: Generate/Import → MODEL_INFO → Texture → Preview。
- Refine Model: 互換草モデル → MODEL_INFO → Refine → Preview。
- Rig and Retarget: Generate/Import → Rig → Retarget。各接続は MODEL_INFO。
- Import and Process: ファイル/URL → Import → Segment/Smart low poly/Stylize/Texture。
- Convert and Export: 最終 MODEL_INFO → Convert → 形式を選択。
公式 workflow PNG
次の 6 個の PNG には ComfyUI workflow データが埋め込まれています。ダウンロードリンクから原本を保存し、ComfyUI にドラッグするか手動で読み込んでください。画像内のパラメーター値は例です。現在のデフォルト値はパラメーター表を参照してください。
Text to Mesh

テキストからモデルを生成し、model_file を Preview 3D に渡します。
Image to Mesh

画像を読み込み、image_to_model モードの Generate model に接続して結果を表示します。
Multiview Images to Mesh

正面画像と任意の側面画像を multiview_to_model モードの Generate model に接続します。
Texture a generated model

Generate model の MODEL_INFO を Texture model に渡し、両方の出力を表示します。
Refine a draft Mesh

互換性のあるドラフトを生成し、MODEL_INFO を Refine Draft model に渡して結果を表示します。
Animation / Rig and export

出力とトラブルシューティング
ダウンロード先のデフォルトは ComfyUI/output です。file_prefix は名前を変更し、output_directory は移動先を指定します。どちらも MODEL_INFO で引き継がれます。
| 症状 | 確認 |
|---|---|
| API Key がない | ノード Key、TRIPO_API_KEY、または config.json を設定します。 |
| prompt/正面画像がない | mode と条件付き入力を確認します。 |
| Import が開始しない | 到達可能な URL または既存ファイルを指定します。URL が優先です。 |
| リグできない | 適切なキャラクターモデルを使用します。 |
| API タスク失敗 | error_code、error_msg、権限、残高を確認します。 |
| 出力を移動できない | 移動先と書き込み権限を確認します。 |
| ノードが表示されない | ComfyUI を再起動し、ディレクトリと requirements.txt を確認します。 |
| アップロード失敗 | 拡張子と ComfyUI の応答を確認します。 |