コンテンツにスキップ

マスクの適用 (ApplyMask)

概要 (What is it?)

ApplyMask ノードは、入力画像にマスクを適用して透過効果を作成します。画像とマスクを受け取り、マスクから指定されたチャンネルを取り出して最終画像のアルファチャンネル(透明度)として適用します。マスクデータがどのチャンネルに格納されているかに応じて、使用するチャンネル(赤、緑、青、またはアルファ)を選択できます。これにより、マスクに基づいて画像の一部を選択的に透過させることができます。

使用する場面 (When would I use it?)

以下のような場面でこのノードを使用します:

  • マスクを使用して画像に透過効果を適用したい場合
  • 画像の合成処理のために選択的な透明度を作成したい場合
  • 他のノード(DisplayMask、PaintMask、InvertMask など)で作成されたマスクを利用して画像の透明度を調整したい場合
  • 画像から切り抜き(マット作成)を行ったり背景を削除したい場合
  • 画像処理ワークフローで複雑な透過効果を適用したい場合
  • マスク画像のどのチャンネルを透明度として使用するか制御したい場合

使い方 (How to use it)

基本セットアップ

  1. ワークフローに ApplyMask ノードを追加します
  2. 画像ソースを "input_image" 入力に接続します
  3. マスクソースを "input_mask" 入力に接続します
  4. "channel" パラメータで適切なチャンネルを選択します
  5. マスクが適用された画像が "output" パラメータから出力されます

パラメータ一覧 (Parameters)

  • input_image: マスクを適用する対象の画像(他の画像ノードから接続可能)

  • input_mask: 適用するマスク(DisplayMask、PaintMask、InvertMask などのマスクノードから接続可能)

  • channel: マスク画像から使用するチャンネル:

    • red: 赤チャンネルを使用(デフォルト。PaintMask の出力と互換性あり)
    • green: 緑チャンネルを使用
    • blue: 青チャンネルを使用
    • alpha: アルファチャンネルを使用(利用可能な場合)

出力 (Outputs)

  • output: マスクが適用された最終画像(マスクに基づいた透明度を持つ画像)

使用例 (Example)

一般的なワークフローパターンの例:

  1. GenerateImage または LoadImage などのノードを使用して画像を生成または読み込みます
  2. DisplayMask または PaintMask などのノードを使用してマスクを作成します
  3. 画像を ApplyMask ノードの "input_image" パラメータに接続します
  4. マスクを ApplyMask ノードの "input_mask" パラメータに接続します
  5. 適切なチャンネルを選択します(通常、PaintMask の出力には "red"、RGBA マスクには "alpha" を選択)
  6. ApplyMask ノードがマスクを適用して透過効果を生成します
  7. "output" を DisplayImage に接続して結果を確認します

重要な注意点 (Important Notes)

  • チャンネルの選択: マスクデータが含まれているチャンネルを選択してください:
    • PaintMask 出力: 通常は "red" チャンネルを使用します
    • アルファデータを持つ RGBA マスク: "alpha" チャンネルを使用します
    • カスタムマスク: 最適に動作するチャンネルを試してください
  • マスクのリサイズ処理: マスクは入力画像の寸法に合わせて自動的にリサイズされます
  • RGBA 出力: 透明度をサポートするため、最終画像は RGBA フォーマットに変換されます
  • リアルタイム処理: 両方の入力が揃うと即座に処理が実行されます
  • 出力フォーマット: 透明度を保持するため、マスクされた画像は PNG ファイルとして保存されます

よくある問題 (Common Issues)

  • 出力されない: "input_image" と "input_mask" の両方が正しく接続されているか確認してください
  • 意図しない透過: マスクの白い領域は不透明に、黒い領域は透明になります(逆になっている場合は InvertMask の使用を検討してください)
  • チャンネルの誤選択: マスクが正しく適用されない場合は、別のチャンネル(赤、緑、青、またはアルファ)を試してください
  • マスクサイズの違い: マスクは入力画像に合わせて自動リサイズされますが、解像度の差が大きい場合は輪郭の品質に影響が出ることがあります

技術的な詳細 (Technical Details)

このノードは以下の手順でマスクと画像を処理します:

  • 画像の読み込み: 入力画像とマスクをそれぞれの URL から読み込みます
  • チャンネル抽出: マスク画像から指定されたチャンネルを抽出します:
    • RGB 画像: 赤、緑、または青チャンネルを抽出可能
    • RGBA 画像: 赤、緑、青、またはアルファチャンネルを抽出可能
    • L(グレースケール)画像: グレースケールチャンネルを直接使用
    • LA 画像: アルファまたはグレースケールチャンネルを抽出可能
  • リサイズ: 抽出したチャンネルを入力画像の寸法に合わせてリサイズします
  • アルファ適用: PIL の putalpha() を使用して、抽出したチャンネルを入力画像のアルファチャンネルとして適用します
  • 出力生成: 結果を新しい RGBA 画像アーティファクトとして保存します

サポートされるマスク形式: - RGB: 赤、緑、青チャンネルを抽出可能(alpha が選択された場合は赤にフォールバック) - RGBA: 赤、緑、青、アルファチャンネルを抽出可能 - L: グレースケールチャンネルを直接使用(channel パラメータは無視) - LA: アルファまたはグレースケールチャンネルを抽出可能 - その他のフォーマット: サポートされていないモードの場合はエラーが発生します