Spline Editor
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
{
"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
| Name | Type | Status | Constraints | Default |
|---|---|---|---|---|
points_store | STRING | required | - | - |
coordinates | STRING | required | - | - |
mask_width | INT | required | min: 8, max: 4096, step: 8 | 512 |
mask_height | INT | required | min: 8, max: 4096, step: 8 | 512 |
points_to_sample | INT | required | min: 2, max: 1000, step: 1 | 16 |
sampling_method | ENUM4 options
| required | - | "time" |
interpolation | ENUM8 options
| required | - | "cardinal" |
tension | FLOAT | required | min: 0, max: 1, step: 0.01 | 0.5 |
repeat_output | INT | required | min: 1, max: 4096, step: 1 | 1 |
float_output_type | ENUM3 options
| required | - | "list" |
min_value | FLOAT | optional | min: -10000, max: 10000, step: 0.01 | 0 |
max_value | FLOAT | optional | min: -10000, max: 10000, step: 0.01 | 1 |
bg_image | IMAGE | optional | - | - |
Outputs
| Index | Name | Type | Is List | Connection Reference |
|---|---|---|---|---|
0 | mask | MASK | No | ["{node_id}", 0] |
1 | coord_str | STRING | No | ["{node_id}", 1] |
2 | float | FLOAT | No | ["{node_id}", 2] |
3 | count | INT | No | ["{node_id}", 3] |
4 | normalized_str | STRING | No | ["{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]