KJNodes/imagegenerated

Случайное изображение из пакета(RandomImageFromBatch)

Выбирает последовательность кадров из пакета изображений или масок в заданном диапазоне индексов. При randomness=0 выборки равномерно распределены по диапазону; при randomness=1 они полностью случайны без повторений; промежуточные значения линейно смешиваются. Выход всегда отсортирован по индексу пакета. Отрицательные индексы отсчитываются от конца (-1 = последний).

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

Описание

Нода Random Image From Batch (класс RandomImageFromBatch) выбирает последовательность кадров из пакета изображений или масок в заданном диапазоне индексов. При randomness = 0 выборки равномерно распределены по диапазону; при randomness = 1 они полностью случайны без повторений; промежуточные значения линейно смешиваются. Выход всегда отсортирован по индексу пакета. Отрицательные индексы отсчитываются от конца (-1 = последний кадр).

Этот узел полезен для создания контролируемого, воспроизводимого подмножества кадров из большего пакета: например, для создания разреженной последовательности с пропуском кадров или для выбора случайной выборки с минимальным или максимальным промежутком между выбранными кадрами.

Входы

ИмяТипПо умолч.МинМаксПодсказка / Поведение
inputMATCHTYPEПакет изображений или масок для выборки.
start_indexINT0-40964096Включительно начальный индекс диапазона выборки. Отрицательные значения отсчитываются от конца (например, -1 — последний кадр).
end_indexINT-1-40964096Включительно конечный индекс диапазона выборки. -1 означает последний кадр.
num_framesINT114096Сколько кадров выбрать из диапазона. Должно быть ≤ количество кадров в диапазоне.
randomnessFLOAT10.01.0Смешивание между равномерным распределением (0) и полностью случайным без повторений (1). Промежуточные значения создают дрожащее равномерное распределение.
min_distanceINT004096Минимальный промежуток (в кадрах) между последовательными выборками. 0 = нет минимума. Выборки сдвигаются вперед для выполнения этого ограничения; поздние выборки могут быть прижаты к концу диапазона.
max_distanceINT004096Максимальный промежуток (в кадрах) между последовательными выборками. 0 = нет максимума. Выборки стягиваются внутрь для выполнения этого, что может сжать последовательность к началу.
seedINT002^64-1Случайное зерно для воспроизводимой выборки. Игнорируется, когда randomness равно 0.

Выходы

ТипОписание
MATCHTYPEВыбранные кадры (того же типа, что и вход) в отсортированном порядке по индексу пакета.

Примечания по использованию

  • Определение диапазона: start_index и end_index определяют включительный диапазон. Если start_index > end_index, диапазон пуст, и кадры не будут выбраны (выход будет пустым пакетом). Используйте отрицательные индексы для удобного обращения к последним кадрам (например, -1 для последнего кадра).
  • Количество кадров: num_frames не должно превышать количество кадров в диапазоне, иначе поведение не определено (нода может ограничить значение или выдать ошибку; смотрите сообщения во время выполнения).
  • Поведение randomness:
    • 0.0 → Кадры выбираются с равными интервалами (линейное распределение) по всему диапазону. Первый выбор находится в начале, последний — в конце.
    • 1.0 → Каждый выбор полностью случайный без повторений (перемешивание). Результаты воспроизводимы при заданном seed.
    • 0.5 → Кадры размещаются на равномерно распределенных позициях, затем каждый сдвигается на случайное смещение, пропорциональное интервалу (смешивание).
  • Ограничения расстояния (min_distance, max_distance):
    • Эти ограничения применяются после первоначального выбора (случайного или равномерного). Если ограничения конфликтуют с num_frames и длиной диапазона, нода будет корректировать выборки, чтобы они были как можно ближе, прижимая их к границам диапазона.
    • min_distance > 0 гарантирует, что выборки разнесены. Нода сдвигает последующие выборки вперед; последняя выборка может оказаться позже исходного end_index? (На самом деле, описание говорит "выборки сдвигаются вперед для выполнения этого; поздние выборки могут быть прижаты к концу диапазона" – это означает, что выборки не выйдут за пределы диапазона.)
    • max_distance > 0 заставляет выборки оставаться близко друг к другу. Нода стягивает выборки к началу; если диапазон слишком короткий, интервал может быть уменьшен еще больше.
    • Установка обоих на 0 (по умолчанию) отключает ограничения расстояния.
  • Зерно (seed): seed используется только когда randomness > 0. Для детерминированных результатов между запусками сохраняйте одинаковое значение seed и randomness.
  • Сортировка выхода: Независимо от того, как сделаны выборки (случайно или последовательно), возвращаемый пакет всегда отсортирован по индексу кадра, поэтому последующие ноды получают кадры по порядку.

Примеры использования

  • Создать низкочастотный предпросмотр: Выберите каждый N-ый кадр, установив randomness=0 и подходящее num_frames для длины диапазона.
  • Случайная выборка кадров для обучения: Установите randomness=1, большое num_frames и, опционально, min_distance, чтобы избежать почти идентичных кадров.
  • Равномерное распределение с дрожанием: Установите randomness=0.3, чтобы разбить жесткие регулярные паттерны, сохраняя при этом примерно равномерный темп.

Комментарии

Войдите через GitHub, чтобы участвовать в обсуждении.

Загрузка комментариев…
Случайное изображение из пакета (RandomImageFromBatch) - ComfyUI-KJNodes | ComfyUI Wiki