Separate Masks(SeparateMasks)
このノードは、コンピュータビジョンライブラリ(例:OpenCV)を基に実装されており、入力マスク内の輪郭を検出することで、独立した連結領域を識別します。
Separate Masks
Separate Masks ノードは、コンピュータビジョンライブラリ(例:OpenCV)を基に実装されており、入力マスク内の輪郭を検出することで独立した連結領域を識別します。
Separate Masks ノードは、マスクを処理するためのツールです。その中核機能は、複数の非連続領域を含む入力マスクを、設定された条件に基づいて複数の独立したマスクに分離することです。マスク内の連結領域を識別し、サイズや形状に基づいてフィルタリングおよび分割することで、複雑なマスク領域の管理と後続の操作を簡素化します。
ノード機能
このノードは、コンピュータビジョンライブラリ(例:OpenCV)を基に実装されており、入力マスク内の輪郭を検出することで独立した連結領域を識別します。3つの分離モード(convex_polygons、area、box)を提供しており、各モードは異なるアルゴリズムを使用してマスクを処理および出力します。処理後の出力は、複数の独立したマスクを含むバッチであり、ワークフロー内で個別に使用することが容易です。
ノードパラメータ説明 - Separate Masks
入力
| パラメータ名 | データ型 | 必須 | デフォルト値 | 範囲/オプション | 説明 |
|---|---|---|---|---|---|
mask | MASK | はい | - | - | 分離する入力マスク。 |
パラメータ
| パラメータ名 | データ型 | 必須 | デフォルト値 | 範囲/オプション | 説明 |
|---|---|---|---|---|---|
mode | COMBO | はい | convex_polygons | "convex_polygons", "area", "box" | 分離モード。オプション:convex_polygons(凸多角形で輪郭を近似)、area(領域サイズに基づくフィルタリング)、box(バウンディングボックスサイズに基づくフィルタリング)。 |
size_threshold_width | INT | はい | 256 | 0.0 - 4096 (ステップ: 1) | 領域をフィルタリングするための幅のサイズ閾値を設定します。範囲は0から4096、ステップは1です。 |
size_threshold_height | INT | はい | 256 | 0.0 - 4096 (ステップ: 1) | 領域をフィルタリングするための高さのサイズ閾値を設定します。範囲は0から4096、ステップは1です。 |
max_poly_points | INT | はい | 8 | 3 - 32 (ステップ: 1) | convex_polygons モードにおいて、輪郭を近似するために使用される最大多角形頂点数を制御します。範囲は3から32、ステップは1です。 |
出力
| パラメータ名 | データ型 | 説明 |
|---|---|---|
| mask | MASK | 分離後に得られる複数の独立したマスクを出力します。 |
使用シナリオ
画像編集や領域特化型生成のワークフローにおいて、このノードは非常に有用です。例えば、複数の分散したオブジェクトを含むセマンティックセグメンテーションマスクがある場合、このノードを使用して各オブジェクトを独立したマスクに分離し、その後、各オブジェクトに対して異なる画像処理ノード(例:再描画、彩色、スタイル変換)を個別に適用することで、きめ細かい制御を実現できます。
注意事項
ノードの分離効果は、入力マスクの品質と連結性に依存することに注意してください。エッジがぼやけていたり、隣接部分がひどく癒着している領域では、分離が十分に正確でない可能性があります。また、max_poly_points パラメータは多角形近似モードの精度に影響を与えるため、必要な詳細度に応じて調整する必要があります。
Separate Masks ノードソースコードリンク
Separate Masks ノードは ComfyUI-KJNodes ノードパッケージに含まれています。
コメント
GitHubでサインインしてディスカッションに参加しましょう。