NodaroAccount
Nodaro ドキュメント
ドキュメントノードリファレンスモデルテンプレートAI エージェント(MCP)開発者向けセルフホスティングリサーチ比較
画像

レイヤーに分割

1 枚の画像を、ベース画像と個別のレイヤーに分割します。各要素はそれぞれ透過 PNG になり、名前、位置ボックス、重なり順も一緒に返ります。

レイヤーに分割ノードは、1 枚の画像をベース画像と個別のレイヤーに分解します。人物、動物、商品、1 行のテキスト、ロゴなどの各要素が、それぞれ独立した透過 PNG として返ります。ノードはレイヤーデータも返し、各レイヤーが何で、どこにあり、どう重なるかを示します。

レイヤーを 1 枚ずつ編集したり、アニメーション化したり、差し替えたりしてから、元どおりに組み立てます。分離する対象を空欄のままにしてノードに主な要素を見つけさせるか、欲しい要素を説明します。

使いどころ

  • 商品や見出しなど、画像の 1 つの要素だけを、ほかの部分に触れずに編集します。
  • レイヤーを動画生成に接続して、各要素を個別にアニメーション化します。
  • 画像をアップスケールで、すべての要素を個別にアップスケールします。
  • 要素を移動、リサイズ、差し替えしてからベース画像の上に戻し、画像を組み立て直します。
  • すべての要素を、デザインツールですぐに使える透過 PNG として取り出します。

クイックスタート

ノードを追加する

キャンバス上で Tab を押し、画像 › 編集とレタッチ › レイヤーに分割を選びます。

画像を接続する

画像アップロードや画像生成などの画像ノードを、画像入力に接続します。ノード上で画像をアップロードすることもできます。

設定を選ぶ

設定パネルを開きます。最大レイヤー数とサイズを設定します。要素を自分で選ぶには、分離する対象にその要素を説明します。

実行する

ノードの実行をクリックします。1 回の実行には、通常 1 分もかかりません。ノードには、ベース画像と、レイヤーを名前付きで並べた列が表示されます。

画像レイヤー画像アップロードポスターレイヤーに分割最大レイヤー数 9画像をアップスケールレイヤーごとに 1 回
ポスターをレイヤーに分割し、個別モードの接続で各レイヤーを 1 枚ずつアップスケールします。

入力

入力受け付けるもの役割
画像画像アップロード、画像生成、画像修正などの画像ノード、またはキャラクター、オブジェクト、ロケーション分割する画像で、JPEG、PNG、WebP に対応します。サイズの大きいファイルや、HEIC、AVIF などのほかの形式は、先に変換されます。接続したキャラクター、オブジェクト、ロケーションは、画像として使われます。必須です。

出力

出力渡すもの
ベースベース画像で、不透明な PNG です。
レイヤーすべてのレイヤーを下から上の順に並べたリストです。各レイヤーは、要素に合わせて切り抜いた透過 PNG です。
レイヤーデータレイヤーごとに 1 件のエントリーで、レイヤーと同じ順に並びます。

レイヤーはリストです。そこからの接続がデフォルトの個別モードの場合、次のノードはレイヤーごとに 1 回ずつ実行されます。たとえば、画像をアップスケールに接続してすべてのレイヤーをアップスケールしたり、動画生成に接続して各レイヤーをアニメーション化したりします。接続を一括にすると、画像コラージュや画像生成のリファレンスなど、複数の画像を受け取るノードに、すべてのレイヤーをまとめて渡せます。リストとバッチ処理を参照してください。

ベース画像とすべてのレイヤーは、ライブラリにも保存されます。各レイヤーは、その名前で保存されます。

レイヤーデータ

レイヤーデータ出力は次のようになります。

[
  {
    "name": "Arctic fox",
    "description": "The full body of the standing white arctic fox, with no background.",
    "zIndex": 1,
    "width": 1108,
    "height": 946,
    "box": { "x1": 228, "y1": 482, "x2": 897, "y2": 1070 },
    "boxNormalized": { "x1": 223, "y1": 314, "x2": 875, "y2": 696 },
    "url": "https://…/layer.png",
    "baseUrl": "https://…/base.png"
  }
]
フィールド意味
zIndex重なり順です。1 はベース画像のすぐ上に置かれ、数字が大きいほど上に描かれます。
boxベース画像上でレイヤーが置かれる位置を、ベース画像のピクセルで示します。x1 と y1 は左上の角、x2 と y2 は右下の角です。
boxNormalized同じボックスを、ベース画像の幅と高さを 0〜1000 とした値で示します。
width、heightレイヤーのファイル自体のピクセル数です。レイヤーは、ベース画像の縮尺で切り抜かれるわけではありません。要素に合わせて切り抜かれ、要素自体の形のまま、サイズ設定のピクセル数の目安(1K で約 1 メガピクセル)で保存されます。レイヤーを元の位置に戻すには、その box に合わせて拡大縮小します。
name、descriptionその要素が何かを示します。レイヤーによっては含まれないことがあります。
urlレイヤーのファイルで、レイヤーの該当する項目と同じです。
baseUrlレイヤーの切り抜き元のベース画像で、ベースと同じです。

1 回の実行で複数の画像を処理する

画像に画像のリストを接続します。たとえば、画像リンクのリストや、個別モードの接続で複数の画像を作るノードです。するとノードは、画像ごとに 1 回ずつ実行されます。各実行の結果はそれぞれ独立したテイクになり、その画像のベース、レイヤー、レイヤーデータを持ちます。

  • ベースは、結果を出したすべての画像のベース画像を、画像が入ってきた順に並べます。実行が失敗した画像にはベースがないので、リストから除かれます。
  • レイヤーは、すべての画像のレイヤーを、画像ごとに順に渡します。個別モードの接続では、すべての画像のレイヤーごとに次のノードが 1 回ずつ実行されます。最初の画像のレイヤー、次に 2 番目の画像のレイヤー、という順です。一括モードの接続はすべてをまとめて渡し、選択中モードの接続は最初のものを読み取り、項目モードの接続はリスト全体から 1 つを選びます。
  • レイヤーデータは、それらのレイヤーと 1 対 1 で対応します。各エントリーには row も含まれます。これは元になった入力画像の番号で、0 から数えます。レイヤーのない画像は、レイヤーにもレイヤーデータにも何も加えません。実行が失敗した画像も同じです。各画像は自分の番号を保つので、row の番号は飛ぶことがあります。

レイヤーとそのベース画像を対応させるには、row ではなく baseUrl を使います。ベースには、結果を出した画像だけが並びます。ある画像が失敗すると、それより後の画像の row は、ベースの中の位置と一致しなくなります。次の例では、2 番目の画像が失敗しています。フクロウのベース画像はベースの 2 番目の項目ですが、その row は 2 です。

[
  { "name": "Fox", "zIndex": 1, "url": "https://…/fox.png", "baseUrl": "https://…/base-1.png", "row": 0 },
  { "name": "Owl", "zIndex": 1, "url": "https://…/owl.png", "baseUrl": "https://…/base-3.png", "row": 2 }
]

1 枚の画像での実行では、最初の例のように、レイヤーデータに row は含まれません。ノードには、表示中のテイクのレイヤーが表示されます。別のテイクを選ぶと、その画像のレイヤーが表示されます。レイヤーとレイヤーデータからの接続は、どのテイクを選んでも、すべての画像のレイヤーを渡し続けます。同じように、ベースからの個別モードの接続も、すべての画像のベース画像を並べ続けます。最初の実行の前は、実行の見積もりで、レイヤーからの個別モードの接続を、画像ごとに最大レイヤー数として数えます。

設定

設定役割
最大レイヤー数1 回の実行で作るレイヤーの最大数で、1〜99 です。デフォルトは 9 です。ベース画像はこれとは別に付きます。要素がこの数より多い画像では、要素が省かれることはなく、まとめられるので、より少なく大きなレイヤーになります。
サイズ各画像のピクセル数の目安で、1K(デフォルト)、1.5K、2K から選びます。自動は、画像本来のサイズを 1K〜2K の範囲で使います。
分離する対象任意で、最大 2,000 文字です。どの要素を分離するかを、平易な言葉で説明します。空欄のままにすると、ノードが主な要素を自動で見つけます。

分離する対象では、<bbox>x1 y1 x2 y2</bbox> で要素の位置を示せます。数値は、画像全体を 0〜1000 とした角の座標です。例:

Separate the title <bbox>179 58 809 197</bbox> and the parrot <bbox>330 274 641 991</bbox>

公開アプリで

このノードを含むワークフローで作ったアプリでは、ユーザーが最大レイヤー数を 1〜20 のスライダーで、サイズを自動、1K、1.5K、2K のいずれかで設定できるようにできます。アプリのスライダーと、ワークフローの実行での上書きは、これらの値に制限されます。それ以外の値は、実行が始まる前に拒否されます。

アプリは、ユーザーが変更した値だけを送ります。最大レイヤー数を変更しない実行では、作成者がノードに保存した値(最大 99 レイヤー)が使われ、その値の分が確保されます。たとえば、ノードに 50 レイヤーを保存した場合、51 枚の画像の分が確保されます。スライダーを最大にした場合、2K で 20 レイヤーなら 369 クレジットが確保されます。

クレジット

1 回の実行では、返す可能性のある最大の画像数、つまり最大レイヤー数とベース画像の分が確保されます。請求されるのは、実際に返された画像、つまりベース画像と各レイヤーの分だけです。1K と 1.5K は同じ料金で、2K と自動はそれより高くなります。実行ボタンには、選んだ設定で確保される額が表示されます。

例確保請求
デフォルト:1K で 9 レイヤー104—
1K で 3 レイヤーを返した場合(4 枚)44
2K または自動で 3 レイヤーを返した場合(4 枚)74
1K で最大レイヤー数が 564—
要素が見つからない場合:1K でベース画像のみ15
  • 要素が見つからない場合:実行はベース画像だけで完了し、その 1 枚の分が請求されます。
  • 保存できないレイヤーがある場合:何度か試してもレイヤーを保存できない場合、実行はそのレイヤーなしで完了し、保存できた画像の分だけが請求されます。ノードには、「9 件中 2 件のレイヤーを保存できませんでした」のように、保存できなかったレイヤーの数が表示されます。
  • 失敗した実行のクレジットは返還される:ベース画像を保存できない実行も含まれます。

セルフホスティングの Community エディションと Business エディションでは、クレジットを使いません。

ヒント

  • 順番どおりに組み立て直す:画像を作り直すには、各レイヤーをベース画像上のその box の位置に、zIndex の順に配置します。
  • まとめる度合いを選ぶ:最大レイヤー数を小さくすると、見出し全体を 1 枚のレイヤーにするなど、要素がまとめられます。大きくすると、要素は分かれたままになります。
  • 必要な要素を指定する:主な要素が欲しいものと違う場合は、分離する対象に「the logo and the price tag」(ロゴと値札)のように説明します。

トラブルシューティング

問題対処
実行がベース画像だけを返したノードが要素を見つけられませんでした。分離する対象に欲しい要素を書くか、<bbox> で位置を指定してください。
2 つの要素が 1 つのレイヤーになった画像の要素が最大レイヤー数より多い状態です。最大レイヤー数を増やしてください。
レイヤーがベース画像とずれるレイヤーのファイルは、ベース画像と同じ縮尺ではありません。配置する前に、レイヤーデータの box に合わせて拡大縮小してください。
一部のレイヤーを保存できなかったと表示される実行はそのレイヤーを除いて完了し、保存した画像の分だけが請求されています。もう一度ノードを実行すると、そのレイヤーを得られます。

API から

POST /v1/split-into-layers に { imageUrl, maxLayers?, size?, prompt?, sessionId?, origin? } を渡すとジョブがキューに入り、その jobId が返ります。形式が正しくないリクエストは、クレジットが確保される前に 400 validation_error を返します。sessionId はジョブをあなたのセッションの 1 つに入れ、origin はジョブにあなたのアプリのスラッグでタグを付けます。Idempotency-Key ヘッダーを付けると、再試行は 2 つ目のジョブを開始せず、最初のリクエストが開始したジョブを返します({ jobId, deduped: true })。

完了したジョブの output_data.imageUrl はベース画像で、output_data.layers はレイヤーのファイルを順に並べます。output_data.layerData は上記のレイヤーデータです。output_data.layerCount は保存できたレイヤーの数、output_data.layersNotSaved は保存できなかったレイヤーの数です(すべてのレイヤーを保存できた場合は 0)。

実行前に確保額を知るには、同じ本文で { "type": "split-into-layers", "params": { … } } を POST /v1/quote に送ります。何も開始されません。応答の identifier は確保に使われる料金(split-into-layers:<1k|2k>:<images>)で、reserve は確保されるクレジットです。1K で最大レイヤー数が 5 なら 64 クレジット、デフォルトなら 104 クレジットです。SDK では client.nodes.quote("split-into-layers", body) を呼び出します。ノードを実行できない場合、見積もりも実行と同じように 403 node_not_available で拒否されます。

SDK のメソッドは client.media.splitIntoLayers、MCP ツールは split_into_layers、CLI コマンドは nodaro media split-layers です。単一ノードの実行、ジョブ、SDK のメディアとアップロード、MCP ツールを参照してください。

よくある質問

「レイヤーに分割」ノードは何を返しますか?

要素の背後にあるシーンであるベース画像と、人物、商品、1 行のテキスト、ロゴなど、要素ごとに 1 枚の透過 PNG のレイヤーを返します。各レイヤーの名前、位置ボックス、重なり順を含むレイヤーデータも返します。

プロンプトを書く必要はありますか?

いいえ。「分離する対象」を空欄のままにすると、ノードが主な要素を自動で見つけます。欲しい要素を説明するのは、主な要素が必要な要素と違う場合だけです。

1 回の実行で、いくつのレイヤーを作れますか?

「最大レイヤー数」の設定までで、1〜99 の範囲、デフォルトは 9 です。要素がそれより多い画像では、要素が省かれることはなく、まとめられるので、より少なく大きなレイヤーになります。

「レイヤーに分割」のクレジットはいくらですか?

1 回の実行では、最大レイヤー数とベース画像の分が確保され、実際に返された画像の分だけが請求されます。デフォルトの 1K で 9 レイヤーの場合、104 クレジットが確保されます。1K で 3 レイヤーを返した実行には、44 クレジットが請求されます。

レイヤーを元どおりに組み立てるにはどうすればよいですか?

各レイヤーを、ベース画像上のそのボックスの位置に、zIndex の小さいものから大きいものの順に重ねます。レイヤーのファイルは要素に合わせて切り抜かれているので、先にそのボックスの大きさに拡大縮小してください。

最終更新

目次