Buckets:
EDMEulerScheduler
Формулировка Karras для планировщика Euler (алгоритм 2) из статьи Elucidating the Design Space of Diffusion-Based Generative Models авторов Karras et al. Это быстрый планировщик, который часто позволяет получать качественные результаты за 20–30 шагов. Планировщик основан на исходной реализации k-diffusion от Katherine Crowson.
EDMEulerScheduler[[diffusers.EDMEulerScheduler]]
diffusers.EDMEulerScheduler[[diffusers.EDMEulerScheduler]]
diffusers.EDMEulerScheduler(sigma_min: float = 0.002, sigma_max: float = 80.0, sigma_data: float = 0.5, sigma_schedule: typing.Literal['karras', 'exponential'] = 'karras', num_train_timesteps: int = 1000, prediction_type: typing.Literal['epsilon', 'v_prediction'] = 'epsilon', rho: float = 7.0, final_sigmas_type: typing.Literal['zero', 'sigma_min'] = 'zero')
Параметры:
sigma_min (float, optional, по умолчанию 0.002) : Минимальная величина шума в расписании сигм. В статье EDM [1] это значение было установлено в 0.002; разумный диапазон — [0, 10].
sigma_max (float, optional, по умолчанию 80.0) : Максимальная величина шума в расписании сигм. В статье EDM [1] это значение было установлено в 80.0; разумный диапазон — [0.2, 80.0].
sigma_data (float, необязательный, по умолчанию 0.5) : Стандартное отклонение распределения данных. В статье EDM [1] это значение установлено в 0.5.
sigma_schedule (Literal["karras", "exponential"], optional, по умолчанию "karras") : Расписание сигм для вычисления sigmas. По умолчанию используется расписание, предложенное в статье EDM (https://huggingface.co/papers/2206.00364). Расписание "exponential" было добавлено в эту модель: https://huggingface.co/stabilityai/cosxl.
num_train_timesteps (int, необязательный, по умолчанию 1000) : Количество шагов диффузии для обучения модели.
prediction_type (Literal["epsilon", "v_prediction"], необязательный, по умолчанию "epsilon") : Тип предсказания функции планировщика. "epsilon" предсказывает шум диффузионного процесса, а "v_prediction" (см. раздел 2.4 статьи Imagen Video).
rho (float, optional, по умолчанию 7.0) : Параметр rho, используемый для расчёта расписания сигм Karras, который установлен в 7.0 в статье EDM [1].
final_sigmas_type (Literal["zero", "sigma_min"], необязательный, по умолчанию "zero") : Значение конечного sigma для расписания шума в процессе выборки. Если указано "sigma_min", конечное sigma совпадает с последним sigma в расписании обучения. Если указано "zero", конечное sigma устанавливается в 0.
Реализует планировщик Эйлера в формулировке EDM, представленной в работе Karras et al. 2022 [1].
[1] Karras, Tero, et al. "Elucidating the Design Space of Diffusion-Based Generative Models." https://huggingface.co/papers/2206.00364
Эта модель наследуется от SchedulerMixin и ConfigMixin. Общие методы, которые библиотека реализует для всех планировщиков, такие как загрузка и сохранение, описаны в документации суперкласса.
add_noise[[diffusers.EDMEulerScheduler.add_noise]]
add_noise(original_samples: Tensor, noise: Tensor, timesteps: Tensor)
Параметры:
original_samples (torch.Tensor) : исходные образцы, к которым будет добавлен шум.
noise (torch.Tensor) : тензор шума, который нужно добавить к исходным образцам.
timesteps (torch.Tensor) : Шаги, на которых добавляется шум, определяющие уровень шума по расписанию.
Возвращает: torch.Tensor
Шумовые образцы с добавленным шумом, масштабированным в соответствии с расписанием шагов времени.
Добавьте шум к исходным образцам в соответствии с расписанием шума на указанных временных шагах.
index_for_timestep[[diffusers.EDMEulerScheduler.index_for_timestep]]
index_for_timestep(timestep: typing.Union[float, torch.Tensor], schedule_timesteps: typing.Optional[torch.Tensor] = None)
Параметры:
timestep (float или torch.Tensor) : значение шага времени, которое нужно найти в расписании.
schedule_timesteps (torch.Tensor, необязательный) : Расписание временных шагов, в котором выполняется поиск. Если None, используется self.timesteps.
Возвращает: int
Индекс шага времени в расписании. Для самого первого шага возвращает второй индекс, если существует несколько совпадений, чтобы избежать пропуска сигмы при начале с середины расписания (например, для image-to-image).
Найдите индекс заданного шага времени в расписании шагов времени.
precondition_inputs[[diffusers.EDMEulerScheduler.precondition_inputs]]
precondition_inputs(sample: Tensor, sigma: typing.Union[float, torch.Tensor])
Параметры:
sample (torch.Tensor) : входной тензор образца для предварительной обработки.
sigma (float или torch.Tensor) : текущее значение сигмы (уровня шума).
Возвращает: torch.Tensor
Масштабированный входной образец.
Предварительно обработайте входной образец, масштабируя его в соответствии с формулировкой EDM.
precondition_noise[[diffusers.EDMEulerScheduler.precondition_noise]]
precondition_noise(sigma: typing.Union[float, torch.Tensor])
Параметры:
sigma (float или torch.Tensor) : значение сигмы (уровня шума) для предварительной обработки.
Возвращает: torch.Tensor
Значение предобусловленного шума, вычисленное как 0.25 * log(sigma).
Предварительно обработайте уровень шума, применив логарифмическое преобразование.
precondition_outputs[[diffusers.EDMEulerScheduler.precondition_outputs]]
precondition_outputs(sample: Tensor, model_output: Tensor, sigma: typing.Union[float, torch.Tensor])
Параметры:
sample (torch.Tensor) : Тензор входной выборки.
model_output (torch.Tensor) : Прямой вывод из обученной диффузионной модели.
sigma (float или torch.Tensor) : текущее значение сигмы (уровня шума).
Возвращает: torch.Tensor
Образец после шумоподавления, вычисленный путём объединения skip-соединения и масштабирования вывода.
Предварительно обрабатывайте выходные модели в соответствии с формулировкой EDM.
scale_model_input[[diffusers.EDMEulerScheduler.scale_model_input]]
scale_model_input(sample: Tensor, timestep: typing.Union[float, torch.Tensor])
Параметры:
sample (torch.Tensor) : Тензор входной выборки.
timestep (float или torch.Tensor) : Текущий шаг (timestep) в цепочке диффузии.
Возвращает: torch.Tensor
Масштабированный входной образец.
Масштабирует входную величину модели денойзинга для соответствия алгоритму Эйлера. Обеспечивает совместимость с планировщиками, которым необходимо масштабировать входную величину модели денойзинга в зависимости от текущего шага.
set_begin_index[[diffusers.EDMEulerScheduler.set_begin_index]]
set_begin_index(begin_index: int = 0)
Параметры:
begin_index (int, по умолчанию 0) : Начальный индекс для планировщика.
Устанавливает начальный индекс для планировщика. Эта функция должна выполняться из конвейера перед инференсом.
set_timesteps[[diffusers.EDMEulerScheduler.set_timesteps]]
set_timesteps(num_inference_steps: int = None, device: typing.Union[str, torch.device] = None, sigmas: typing.Union[list[float], torch.Tensor, NoneType] = None)
Параметры:
num_inference_steps (int, необязательный) : Количество шагов диффузии, используемое при генерации образцов с помощью предобученной модели.
device (str или torch.device, необязательный) : Устройство, на которое следует переместить шаги. Если None, шаги не перемещаются.
sigmas (torch.Tensor | list[float], необязательный) : Пользовательские сигмы для процесса удаления шума. Если не заданы, будет использоваться поведение по умолчанию при передаче num_inference_steps.
Устанавливает дискретные временные шаги, используемые для цепочки диффузии (выполняется перед инференсом).
шаг[[diffusers.EDMEulerScheduler.step]]
step(model_output: Tensor, timestep: typing.Union[float, torch.Tensor], sample: Tensor, s_churn: float = 0.0, s_tmin: float = 0.0, s_tmax: float = inf, s_noise: float = 1.0, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True, pred_original_sample: typing.Optional[torch.Tensor] = None)
Параметры:
model_output (torch.Tensor) : Прямой вывод из обученной диффузионной модели.
timestep (float или torch.Tensor) : текущий дискретный шаг времени в цепочке диффузии.
sample (torch.Tensor) : Текущая инстанция сэмпла, созданная процессом диффузии.
s_churn (float, необязательный, по умолчанию 0.0) : Количество стохастичности, добавляемой на каждом шаге. Большие значения добавляют больше шума.
s_tmin (float, необязательный, по умолчанию 0.0) : Минимальный порог сигмы, ниже которого шум не добавляется.
s_tmax (float, необязательный, по умолчанию float("inf")) : Максимальный порог сигмы, выше которого шум не добавляется.
s_noise (float, необязательный, по умолчанию 1.0) : Коэффициент масштабирования шума, добавляемого к образцу.
generator (torch.Generator, необязательный) : Генератор случайных чисел для воспроизводимости.
return_dict (bool, необязательный, по умолчанию True) : Возвращать ли EDMEulerSchedulerOutput или кортеж.
pred_original_sample (torch.Tensor, необязательный) : Предсказанный денойзированный образец из предыдущего шага. Если указан, пересчёт пропускается.
Возвращает: EDMEulerSchedulerOutput или tuple
Если return_dict равно True, возвращается EDMEulerSchedulerOutput, иначе возвращается кортеж, где первый элемент — это тензор предыдущей выборки, а второй — тензор предсказанной исходной выборки.
Предскажите образец из предыдущего шага времени, обращая SDE. Эта функция распространяет процесс диффузии от выходов обученной модели (чаще всего — предсказанного шума).
EDMEulerSchedulerOutput[[diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput]]
diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput[[diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput]]
diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput(prev_sample: Tensor, pred_original_sample: typing.Optional[torch.Tensor] = None)
Параметры:
prev_sample (torch.Tensor формы (batch_size, num_channels, height, width) для изображений) : Вычисленная выборка (x_{t-1}) для предыдущего шага. prev_sample следует использовать как следующий вход модели в цикле шумоподавления.
pred_original_sample (torch.Tensor формы (batch_size, num_channels, height, width) для изображений) : Предсказанный денойзированный образец (x_{0}) на основе вывода модели из текущего шага. pred_original_sample можно использовать для предпросмотра прогресса или для guidance.
Класс результата для вывода функции step планировщика.
Xet Storage Details
- Size:
- 17.6 kB
- Xet hash:
- 03e72536a0e0be499a7871a4aa5329e03418950fc57acaf181e85780a559e35a
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.