Spline Editor(SplineEditor)
С технической точки зрения, этот узел поддерживает различные методы выборки (например, по длине пути или времени) и алгоритмы интерполяции (такие как Cardinal, Basis и др.) для вычисления плавных переходов между контрольными точками.
Spline Editor
⚠️ В РАБОТЕ
Не рассчитывайте на этот узел в вашем рабочем процессе,
вероятно, содержит много ошибок, и стабильность не гарантируется!!
Графический редактор для создания значений для различных расписаний и/или пакетов масок
С технической точки зрения, узел Spline Editor поддерживает различные методы выборки (например, по длине пути или времени) и алгоритмы интерполяции (такие как Cardinal, Basis и др.) для вычисления плавных переходов между контрольными точками.
Spline Editor — это узел для создания и редактирования сплайн-кривых. Он позволяет пользователям генерировать плавные пути или числовые последовательности, определяя ряд контрольных точек. Основная функция этого узла — преобразование этих точек в маски (Mask), пригодные для обработки изображений, или в последовательность значений с плавающей запятой (FLOAT), предоставляя базовые данные для последующей анимации или управления весами.
Элементы управления редактированием
- Shift + щелчок — добавить контрольную точку в конце.
- Ctrl + щелчок — добавить контрольную точку (подразделить) между двумя точками.
- Правый щелчок по точке — удалить её (примечание: первую и последнюю точки удалить нельзя).
- Правый щелчок на холсте открывает контекстное меню:
- Добавить новый сплайн — создаёт новый сплайн на том же холсте; эти пути в настоящее время выводятся только в виде координат.
- Добавить одну точку — создаёт одну точку, возвращающую её текущие координаты.
- Удалить сплайн — удаляет выбранный сплайн (выберите, щёлкнув по его пути, или переключайте сплайны через опцию «Следующий сплайн»).
- Чисто визуальные опции (не влияют на выходные данные):
- Переключить видимость маркеров
- Отобразить точки выборки — показывает точки, которые будут возвращены.
Значение points_to_sample задаёт количество выборок, возвращаемых из самого нарисованного сплайна; это не зависит от фактических контрольных точек, поэтому тип интерполяции имеет значение.
sampling_method:
time— выборка вдоль временной оси (для расписаний)path— выборка вдоль самого пути (полезно для координат)controlpoints— выборка только самих контрольных точекspeed— выборка на основе скорости вдоль пути
output types:
- пакет масок — совместим с узлами, принимающими маски
- список значений с плавающей запятой — совместим с весами IPAdapter и т.д.
- pandas series — совместим с узлами Fizz’ Nodes Batch Value Schedule
- torch tensor — совместим с неизвестными узлами
Функциональность узла
С технической точки зрения, этот узел поддерживает различные методы выборки (например, по длине пути или времени) и алгоритмы интерполяции (такие как Cardinal, Basis и др.) для вычисления плавных переходов между контрольными точками. Он принимает данные координат точек в строковом формате (STRING) и может генерировать соответствующие полутоновые изображения масок или числовые списки на холсте с размерами, заданными пользователем (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) | Необязательная верхняя граница для пересопоставления выходных значений с плавающей запятой. |
Выходные данные (Outputs)
| Название параметра | Тип данных | Описание |
|---|---|---|
| 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, чтобы участвовать в обсуждении.