Spline Editor(SplineEditor)
技術的な実装の観点から、このノードは複数のサンプリング方法(パス長や時間によるものなど)と補間アルゴリズム(Cardinal、Basisなど)をサポートし、制御点間の滑らかな遷移を計算します。
Spline Editor
⚠️ 進行中
まだワークフローの一部として期待しないでください。
多くのバグが含まれている可能性があり、安定性は
保証されません!!
さまざまなスケジュールやマスクバッチの値を生成するためのグラフィカルエディタ
技術的な実装の観点から、Spline Editorノードは複数のサンプリング方法(パス長や時間によるものなど)と補間アルゴリズム(Cardinal、Basisなど)をサポートし、制御点間の滑らかな遷移を計算します。
Spline Editorは、スプライン曲線を作成および編集するためのノードです。ユーザーは一連の制御点を定義することで、滑らかなパスや数値シーケンスを生成できます。このノードの中核機能は、これらの点を画像処理に使用可能なマスク(Mask)または一連の浮動小数点数の値に変換し、後続のアニメーションや重み制御のための基礎データを提供することです。
編集コントロール
- Shift + クリック で末尾に制御点を追加します。
- Ctrl + クリック で2点間に制御点を追加(分割)します。
- 点を右クリック で削除します(最初/最後の点は削除できません)。
- キャンバス上で右クリックするとコンテキストメニューが表示されます:
- 新しいスプラインを追加 – 同じキャンバス上に新しいスプラインを作成します。これらのパスは現在、座標としてのみ出力されます。
- 単一点を追加 – 現在位置の座標を返す単一の点を作成します。
- スプラインを削除 – 現在選択されているスプラインを削除します(パスをクリックするか、「次のスプライン」オプションでスプラインを切り替えて選択します)。
- 純粋に視覚的なオプション(出力には影響しません):
- ハンドルの表示/非表示を切り替え
- サンプル点を表示 – 返される点を表示します。
points_to_sample の値は、描かれたスプライン自体から返されるサンプル数を設定します。これは実際の制御点とは独立しているため、補間の種類が重要です。
sampling_method:
time– 時間軸に沿ってサンプリング(スケジュール用)path– パス自体に沿ってサンプリング(座標に便利)controlpoints– 制御点のみをサンプリングspeed– パスに沿った速度に基づいてサンプリング
出力タイプ:
- マスクバッチ – マスクを受け入れるノードと互換性あり
- 浮動小数点数のリスト – IPAdapterの重みなどと互換性あり
- pandasシリーズ – Fizzのノード Batch Value Schedule と互換性あり
- torchテンソル – 不明なノードと互換性あり
ノード機能
技術的な実装の観点から、このノードはさまざまなサンプリング方法(パス長や時間によるものなど)と補間アルゴリズム(Cardinal、Basisなど)をサポートし、制御点間の滑らかな遷移を計算します。文字列形式の座標点データを受け取り、ユーザー定義のキャンバスサイズ(mask_width および mask_height)上で対応するグレースケールマスク画像または数値リストを生成できます。また、出力結果を指定回数繰り返すこともサポートしています。
ノードパラメータ説明 - Spline Editor
接続入力 (Inputs)
| パラメータ名 | データ型 | 必須 | 説明 |
|---|---|---|---|
points_store | STRING | はい | points_store: 制御点の座標データを保存および受け渡すための文字列です。通常は、内部で定義された形式でノードインターフェースの操作によって生成されます。 |
coordinates | STRING | はい | coordinates: 制御点の座標シーケンスを文字列形式で直接入力します。形式は「x1,y1,x2,y2...」に準拠している必要があります。 |
bg_image | IMAGE | いいえ | bg_image: オプションで背景画像を入力します。ノードはこの画像のサイズに基づいてマスクを生成し、手動で設定した幅・高さパラメータを上書きします。 |
コントロールパラメータ (Parameters)
| パラメータ名 | データ型 | 必須 | デフォルト値 | 範囲/オプション | 説明 |
|---|---|---|---|---|---|
sampling_method | COMBO | はい | time | "path", "time", "controlpoints", "speed" | 値生成のロジックを決定します。オプションにはtime、controlpoints、speed、pathがあります。 |
interpolation | COMBO | はい | cardinal | "cardinal", "monotone", "basis", "linear", "step-before", "step-after", "polar", "polar-reverse", "bezier" | 生成される曲線の滑らかさと形状に直接影響します。オプションにはcardinal、monotone、basis、linear、step-before、step-after、polar、polar-reverse、bezierがあります。 |
float_output_type | COMBO | はい | list | "list", "pandas series", "tensor" | 浮動小数点数の出力形式を指定します。list、pandas series、tensorなどから選択し、異なる下流処理ノードに適応させます。 |
mask_width | INT | はい | 512 | 8 – 4096 (ステップ: 8) | mask_width: 出力マスク画像の幅を設定します。範囲は8~4096、ステップは8です。使用シーンの画像幅と一致させる必要があります。 |
mask_height | INT | はい | 512 | 8 – 4096 (ステップ: 8) | mask_height: 出力マスク画像の高さを設定します。範囲は8~4096、ステップは8です。使用シーンの画像高さと一致させる必要があります。 |
points_to_sample | INT | はい | 16 | 2 – 1000 (ステップ: 1) | points_to_sample: スプライン曲線からサンプリングする点の数を設定します。範囲は2~1000です。点数が多いほど曲線の記述が詳細になります。 |
tension | FLOAT | はい | 0.5 | 0.0 – 1.0 (ステップ: 0.01) | tension: Cardinal補間アルゴリズムのテンションを調整します。範囲は0.0~1.0、ステップは0.01です。曲線が制御点を通過する際の引き締まり具合に影響します。 |
repeat_output | INT | はい | 1 | 1 – 4096 (ステップ: 1) | repeat_output: 出力シーケンス(マスクリストなど)の繰り返し回数を制御します。範囲は1~4096です。ループの生成やシーケンスの延長に使用します。 |
min_value | FLOAT | いいえ | 0.0 | -10000.0 – 10000.0 (ステップ: 0.01) | 出力浮動小数点数の値を再マッピングするためのオプションの下限値です。 |
max_value | FLOAT | いいえ | 1.0 | -10000.0 – 10000.0 (ステップ: 0.01) | 出力浮動小数点数の値を再マッピングするためのオプションの上限値です。 |
出力
| パラメータ名 | データ型 | 説明 |
|---|---|---|
| mask | MASK | mask(出力パラメータ):出力されるグレースケールマスク画像です。白色の領域がスプラインパスを表します。 |
| coord_str | STRING | coord_str(出力パラメータ):出力される文字列で、すべてのサンプリング点の座標情報を含みます。 |
| float | FLOAT | float(出力パラメータ):出力される浮動小数点数のシーケンスで、スプライン曲線に沿ってサンプリングされた値を表します。 |
| count | INT | count(出力パラメータ):出力される整数で、実際のサンプリング点の数を示します。 |
| normalized_str | STRING | normalized_str(出力パラメータ):出力される文字列で、正規化されたサンプリング点の座標情報を含みます。 |
使用シーン
実際のアプリケーションでは、このノードは動的マスクや制御パラメータ曲線の構築によく使用されます。例えば、ビデオフレーム処理ワークフローでは、ユーザーが動きのパスを描画できます。Spline Editorはそのパスに沿ったマスクシーケンスを生成し、後続のノードで画像コンテンツ(粒子や光線など)の移動軌道を導くために使用され、複雑なアニメーション効果を作り出します。
注意事項
入力座標点の文字列形式は正確でなければならず、定義されたキャンバスサイズは最終的に使用する画像サイズと一致させる必要があります。一致しない場合、生成されるマスクがずれる可能性があります。また、曲線の滑らかさを確保するため、サンプリング点の数は低く設定しすぎないように注意してください。
Spline Editor ノードソースコードリンク
Spline Editor ノードは ComfyUI-KJNodes ノードパッケージに含まれています。
コメント
GitHubでサインインしてディスカッションに参加しましょう。