KJNodes/weightsgenerated

Spline Editor(SplineEditor)

Desde la perspectiva de la implementación técnica, este nodo admite múltiples métodos de muestreo (como por longitud de ruta o tiempo) y algoritmos de interpolación (como Cardinal, Basis, etc.) para calcular transiciones suaves entre los puntos de control.

Spline Editor

bg_image
mask
coord_str
float
count
normalized_str
points_store
STRING
coordinates
STRING
mask_width
512
mask_height
512
points_to_sample
16
sampling_method
time
interpolation
cardinal
tension
0.50
repeat_output
1
float_output_type
list
min_value
0.00
max_value
1.00
KJNodes

⚠️ EN PROGRESO
No consideres esto como parte de tu flujo de trabajo todavía,
probablemente contiene muchos errores y la estabilidad no está
garantizada.

Editor gráfico para crear valores para varios horarios o lotes de máscaras

Desde la perspectiva de la implementación técnica, el nodo Spline Editor admite varios métodos de muestreo (como por longitud de ruta o tiempo) y algoritmos de interpolación (como Cardinal, Basis, etc.) para calcular transiciones suaves entre los puntos de control.

Spline Editor es un nodo para crear y editar curvas spline, que permite a los usuarios generar trayectorias suaves o secuencias de valores definiendo una serie de puntos de control. La función principal de este nodo es convertir estos puntos en máscaras (Mask) utilizables para procesamiento de imágenes o en una secuencia de valores FLOAT, proporcionando datos base para animaciones posteriores o control de ponderaciones.

Controles de edición

  • Mayús + Haz clic: añade un punto de control al final.
  • Ctrl + Haz clic: añade un punto de control (subdividir) entre dos puntos.
  • Haz clic derecho en un punto: lo elimina (no se puede eliminar el primer/último punto).
  • Haz clic derecho en el Lienzo para un Menú Contextual:
    • Añadir nuevo spline: crea un nuevo spline en el mismo Lienzo; estas trayectorias se devuelven actualmente solo como coordenadas.
    • Añadir punto único: crea un punto único que devuelve sus coordenadas de posición actuales.
    • Eliminar spline: elimina el spline seleccionado actualmente (selecciona haciendo clic en su trayectoria o recorre los splines mediante la opción "Siguiente spline").
  • Opciones puramente visuales (no afectan la salida):
    • Alternar visibilidad de los controles
    • Mostrar puntos de muestra: muestra los puntos que se devolverán.

El valor points_to_sample establece el número de muestras devueltas del propio spline dibujado; esto es independiente de los puntos de control reales, por lo que el tipo de interpolación importa.

sampling_method:

  • time – muestrea a lo largo del eje temporal (para horarios)
  • path – muestrea a lo largo de la trayectoria (útil para coordenadas)
  • controlpoints – muestrea solo los propios puntos de control
  • speed – muestrea según la velocidad a lo largo de la trayectoria

output types:

  • mask batch – compatible con nodos que aceptan máscaras
  • list of floats – compatible con pesos de IPAdapter, etc.
  • pandas series – compatible con los nodos Batch Value Schedule de Fizz
  • torch tensor – compatible con nodos desconocidos

Funcionalidad del Nodo

Desde la perspectiva de la implementación técnica, este nodo admite varios métodos de muestreo (como por longitud de ruta o tiempo) y algoritmos de interpolación (como Cardinal, Basis, etc.) para calcular transiciones suaves entre los puntos de control. Recibe datos de coordenadas de puntos en formato STRING y puede generar la correspondiente imagen de máscara en escala de grises o una lista de valores en un tamaño de Lienzo definido por el usuario (mask_width y mask_height). También admite repetir la salida un número especificado de veces.

Explicación de Parámetros del Nodo - Spline Editor

Conexiones de entrada (Inputs)

Nombre del ParámetroTipo de DatoRequeridoDescripción
points_storeSTRINGpoints_store: STRING utilizado para almacenar y transmitir datos de coordenadas de puntos de control. Normalmente se genera mediante la interfaz interactiva del nodo, en un formato definido internamente.
coordinatesSTRINGcoordinates: Secuencia de coordenadas de puntos de control introducida directamente como STRING. El formato debe cumplir con "x1,y1,x2,y2...".
bg_imageIMAGENobg_image: Entrada opcional de una imagen de Fondo. El nodo generará la máscara basándose en las dimensiones de esta imagen, anulando los parámetros de ancho y alto establecidos manualmente.

Parámetros de Control (Parameters)

Nombre del ParámetroTipo de DatoRequeridoValor por DefectoRango/OpcionesDescripción
sampling_methodCOMBOtime"path", "time", "controlpoints", "speed"Determina la lógica de generación de valores. Opciones: time, controlpoints, speed, y path.
interpolationCOMBOcardinal"cardinal", "monotone", "basis", "linear", "step-before", "step-after", "polar", "polar-reverse", "bezier"Afecta directamente la suavidad y forma de la curva generada. Opciones: cardinal, monotone, basis, linear, step-before, step-after, polar, polar-reverse, y bezier.
float_output_typeCOMBOlist"list", "pandas series", "tensor"Especifica el formato de salida para los valores FLOAT: list, pandas series o tensor, para adaptarse a diferentes nodos de procesamiento posteriores.
mask_widthINT51284096 (Paso: 8)mask_width: Establece el ancho de la imagen de máscara de salida. Rango de 8 a 4096, paso de 8. Debe coincidir con el ancho de la imagen del escenario de uso.
mask_heightINT51284096 (Paso: 8)mask_height: Establece el alto de la imagen de máscara de salida. Rango de 8 a 4096, paso de 8. Debe coincidir con el alto de la imagen del escenario de uso.
points_to_sampleINT1621000 (Paso: 1)points_to_sample: Define el número de puntos a muestrear desde la curva spline. Rango de 2 a 1000. Cuantos más puntos, más detallada será la descripción de la curva.
tensionFLOAT0.50.01.0 (Paso: 0.01)tension: Ajusta la tensión del algoritmo de interpolación Cardinal. Rango de 0.0 a 1.0, paso de 0.01. Afecta qué tan ajustada pasa la curva por los puntos de control.
repeat_outputINT114096 (Paso: 1)repeat_output: Controla el número de repeticiones de la secuencia de salida (por ejemplo, la lista de máscaras). Rango de 1 a 4096. Se utiliza para generar rápidamente secuencias cíclicas o extendidas.
min_valueFLOATNo0.0-10000.010000.0 (Paso: 0.01)Límite inferior opcional para reasignar los valores FLOAT de salida.
max_valueFLOATNo1.0-10000.010000.0 (Paso: 0.01)Límite superior opcional para reasignar los valores FLOAT de salida.

Salidas

Nombre del ParámetroTipo de DatoDescripción
maskMASKmask (parámetro de salida): Imagen de máscara en escala de grises de salida. Las áreas blancas representan la trayectoria del spline.
coord_strSTRINGcoord_str (parámetro de salida): STRING de salida que contiene información de coordenadas de todos los puntos muestreados.
floatFLOATfloat (parámetro de salida): Secuencia de valores FLOAT de salida, que representa los valores obtenidos al muestrear a lo largo de la curva spline.
countINTcount (parámetro de salida): Valor INT de salida que indica la cantidad real de puntos muestreados.
normalized_strSTRINGnormalized_str (parámetro de salida): STRING de salida que contiene información de coordenadas de los puntos muestreados después de la normalización.

Escenarios de Uso

En aplicaciones concretas, este nodo se utiliza comúnmente para construir máscaras dinámicas o curvas de parámetros de control. Por ejemplo, en un flujo de trabajo de procesamiento de fotogramas de video, un usuario puede dibujar una trayectoria de movimiento. El Spline Editor generará una secuencia de máscaras a lo largo de esa trayectoria, que se utilizará en nodos posteriores para guiar el movimiento de contenido de imagen (como partículas o rayos de luz), creando así efectos de animación complejos.

Consideraciones

Es importante tener en cuenta que el formato STRING de las coordenadas de entrada debe ser correcto, y las dimensiones del Lienzo definido deben coincidir con las dimensiones de la imagen final utilizada. De lo contrario, la máscara generada podría estar desalineada. Además, el número de puntos de muestreo no debe establecerse demasiado bajo para garantizar la suavidad de la curva.

Enlace al Código Fuente del Nodo Spline Editor

El nodo Spline Editor proviene del paquete de nodos ComfyUI-KJNodes.

Comentarios

Inicia sesión con GitHub para unirte a la conversación.

Cargando comentarios…