Skip to main content

Spline Editor

KJNodes/weights
SplineEditor

# WORK IN PROGRESS Do not count on this as part of your workflow yet, probably contains lots of bugs and stability is not guaranteed!! ## Graphical editor to create values for various ## schedules and/or mask batches. **Shift + click** to add control point at end. **Ctrl + click** to add control point (subdivide) between two points. **Right click on a point** to delete it. Note that you can't delete from start/end. Right click on canvas for context menu: NEW!: - Add new spline - Creates a new spline on same canvas, currently these paths are only outputed as coordinates. - Add single point - Creates a single point that only returns it's current position coords - Delete spline - Deletes the currently selected spline, you can select a spline by clicking on it's path, or cycle through them with the 'Next spline' -option. These are purely visual options, doesn't affect the output: - Toggle handles visibility - Display sample points: display the points to be returned. **points_to_sample** value sets the number of samples returned from the **drawn spline itself**, this is independent from the actual control points, so the interpolation type matters. sampling_method: - time: samples along the time axis, used for schedules - path: samples along the path itself, useful for coordinates - controlpoints: samples only the control points themselves output types: - mask batch example compatible nodes: anything that takes masks - list of floats example compatible nodes: IPAdapter weights - pandas series example compatible nodes: anything that takes Fizz' nodes Batch Value Schedule - torch tensor example compatible nodes: unknown

Example

JSON Example
{
  "class_type": "SplineEditor",
  "inputs": {
    "points_store": "",
    "coordinates": "",
    "mask_width": 512,
    "mask_height": 512,
    "points_to_sample": 16,
    "sampling_method": "time",
    "interpolation": "cardinal",
    "tension": 0.5,
    "repeat_output": 1,
    "float_output_type": "list"
  }
}

This example shows required inputs only. Connection values like ["node_id", 0] should reference actual node IDs from your workflow.

Inputs

NameTypeStatusConstraintsDefault
points_storeSTRINGrequired--
coordinatesSTRINGrequired--
mask_widthINTrequiredmin: 8, max: 4096, step: 8512
mask_heightINTrequiredmin: 8, max: 4096, step: 8512
points_to_sampleINTrequiredmin: 2, max: 1000, step: 116
sampling_methodENUM
4 options
  • path
  • time
  • controlpoints
  • speed
required-"time"
interpolationENUM
8 options
  • cardinal
  • monotone
  • basis
  • linear
  • step-before
  • step-after
  • polar
  • polar-reverse
required-"cardinal"
tensionFLOATrequiredmin: 0, max: 1, step: 0.010.5
repeat_outputINTrequiredmin: 1, max: 4096, step: 11
float_output_typeENUM
3 options
  • list
  • pandas series
  • tensor
required-"list"
min_valueFLOAToptionalmin: -10000, max: 10000, step: 0.010
max_valueFLOAToptionalmin: -10000, max: 10000, step: 0.011
bg_imageIMAGEoptional--

Outputs

IndexNameTypeIs ListConnection Reference
0maskMASKNo["{node_id}", 0]
1coord_strSTRINGNo["{node_id}", 1]
2floatFLOATNo["{node_id}", 2]
3countINTNo["{node_id}", 3]
4normalized_strSTRINGNo["{node_id}", 4]
How to connect to these outputs

To connect another node's input to an output from this node, use the connection reference format:

["node_id", output_index]

Where node_id is the ID of this SplineEditor node in your workflow, and output_index is the index from the table above.

Example

If this node has ID "5" in your workflow:

  • mask (MASK): ["5", 0]
  • coord_str (STRING): ["5", 1]
  • float (FLOAT): ["5", 2]
Was this page helpful?