KJNodes/imagegenerated

Imagen Aleatoria de un Lote(RandomImageFromBatch)

Selecciona una secuencia de cuadros de un lote de imágenes o máscaras dentro de un rango de índices seleccionado. Con aleatoriedad=0 las selecciones están espaciadas uniformemente en el rango; con aleatoriedad=1 son uniformemente aleatorias sin reemplazo; los valores intermedios se mezclan linealmente. La salida siempre está ordenada por índice de lote. Los índices negativos cuentan desde el final (-1 = último).

Random Image From Batch

input
output
start_index
0
end_index
-1
num_frames
1
randomness
1.00
min_distance
0
max_distance
0
seed
0
KJNodes

Descripción

El Nodo Imagen Aleatoria de un Lote (clase RandomImageFromBatch) selecciona una secuencia de cuadros de un lote de imágenes o máscaras dentro de un rango de índices seleccionado. Con randomness = 0 las selecciones están espaciadas uniformemente en el rango; con randomness = 1 son uniformemente aleatorias sin reemplazo; los valores intermedios se mezclan linealmente. La salida siempre está ordenada por índice de lote. Los índices negativos cuentan desde el final (-1 = último cuadro).

Este nodo es útil para generar un subconjunto controlado y reproducible de cuadros de un lote más grande – por ejemplo, para crear una secuencia de cuadros espaciados (skip-frame) o para seleccionar una muestra aleatoria con un espacio mínimo o máximo entre los cuadros elegidos.

Entradas

NombreTipoPredeterminadoMínMáxDescripción / Comportamiento
inputMATCHTYPELote de imágenes o máscaras del cual muestrear.
start_indexENTERO0-40964096Inicio inclusivo del rango de muestreo. Los valores negativos cuentan desde el final (ej., -1 es el último cuadro).
end_indexENTERO-1-40964096Fin inclusivo del rango de muestreo. -1 significa el último cuadro.
num_framesENTERO114096Cuántos cuadros seleccionar del rango. Debe ser ≤ número de cuadros en el rango.
randomnessFLOTANTE10.01.0Mezcla entre espaciado uniforme (0) y aleatorio uniforme sin reemplazo (1). Los valores intermedios producen espaciado uniforme con perturbación (jitter).
min_distanceENTERO004096Espacio mínimo (en cuadros) entre selecciones consecutivas. 0 = sin mínimo. Las selecciones se empujan hacia adelante para cumplir esta restricción; las selecciones posteriores pueden ajustarse al final del rango.
max_distanceENTERO004096Espacio máximo (en cuadros) entre selecciones consecutivas. 0 = sin máximo. Las selecciones se acercan para cumplirlo, lo que puede comprimir la secuencia hacia el inicio.
seedENTERO002^64-1Semilla aleatoria para un muestreo reproducible. Se ignora cuando randomness es 0.

Salidas

TipoDescripción
MATCHTYPELos cuadros seleccionados (mismo tipo que la entrada) en orden ordenado por índice de lote.

Notas de uso

  • Definición del rango: start_index y end_index definen un rango inclusivo. Si start_index > end_index, el rango está vacío y no se seleccionará ningún cuadro (la salida será un lote Vacío). Use índices negativos para referirse convenientemente a los últimos cuadros (ej., -1 para el último cuadro).
  • Número de cuadros: num_frames no debe exceder el número de cuadros en el rango, de lo contrario el comportamiento no está definido (el nodo puede ajustarlo o dar error; consulte los mensajes en tiempo de ejecución).
  • Comportamiento de la aleatoriedad:
    • 0.0 → Los cuadros se seleccionan a intervalos iguales (espaciado Lineal) en todo el rango. La primera selección está al inicio, la última al final.
    • 1.0 → Cada selección es uniformemente aleatoria sin reemplazo (barajar). Los resultados son reproducibles con una Semilla dada.
    • 0.5 → Los cuadros se colocan en posiciones uniformemente espaciadas, luego cada uno se desplaza con un offset aleatorio proporcional al espaciado (mezcla).
  • Restricciones de distancia (min_distance, max_distance):
    • Estas restricciones se aplican después de la selección inicial (ya sea aleatoria o uniformemente espaciada). Si las restricciones entran en conflicto con num_frames y la longitud del rango, el nodo ajustará las selecciones para que sean lo más cercanas posible, ajustándose a los límites del rango.
    • Un min_distance > 0 asegura que las selecciones estén separadas. El nodo empuja las selecciones posteriores hacia adelante; la última selección puede ser más tarde que el end_index original? (En realidad, la descripción dice "las selecciones se empujan hacia adelante para satisfacer esto; las selecciones posteriores pueden ajustarse al final del rango", lo que significa que las selecciones no se extenderán más allá del rango.)
    • Un max_distance > 0 obliga a que las selecciones permanezcan juntas. El nodo acerca las selecciones hacia el inicio; si el rango es demasiado corto, el espaciado puede reducirse aún más.
    • Establecer ambos en 0 (predeterminado) desactiva las restricciones de distancia por completo.
  • Semilla: La Semilla solo se usa cuando randomness > 0. Para resultados deterministas entre ejecuciones, mantenga la misma semilla y valor de aleatoriedad.
  • Ordenamiento de la salida: Independientemente de cómo se realicen las selecciones (aleatorias o secuenciales), el lote devuelto siempre está ordenado por índice de cuadro, por lo que los Nodos posteriores reciben los cuadros en orden.

Ejemplos de uso

  • Crear una VISTA PREVIA de baja velocidad de fotogramas: Seleccione cada N cuadros configurando randomness=0 y num_frames apropiado para la longitud del rango.
  • Muestrear cuadros aleatoriamente para entrenamiento: Establezca randomness=1, un num_frames grande y opcionalmente min_distance para evitar cuadros casi idénticos.
  • Espaciado uniforme con perturbación: Establezca randomness=0.3 para romper patrones regulares marcados mientras se mantiene un tempo aproximadamente consistente.

Comentarios

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

Cargando comentarios…
Imagen Aleatoria de un Lote (RandomImageFromBatch) - ComfyUI-KJNodes | ComfyUI Wiki