Buckets:
| # RePaintScheduler | |
| `RePaintScheduler` — это планировщик инпейнтинга на основе DDPM для инпейнтинга без обучения с экстремальными масками. Он предназначен для использования с `RePaintPipeline` и основан на статье [RePaint: Inpainting using Denoising Diffusion Probabilistic Models](https://huggingface.co/papers/2201.09865) Андреаса Лугмайра и соавторов. | |
| Аннотация из статьи: | |
| *Свободное инпейнтинг (восстановление изображений) — это задача добавления нового содержимого на изображение в областях, заданных произвольной бинарной маской. Большинство существующих подходов обучаются на определённом распределении масок, что ограничивает их способность к обобщению на невиденные типы масок. Кроме того, обучение с использованием поэлементных и перцептивных потерь часто приводит к простому текстуальному расширению в сторону отсутствующих областей, а не к семантически осмысленной генерации. В данной работе мы предлагаем RePaint: подход к инпейнтингу на основе вероятностной модели диффузионного шумоподавления (DDPM), применимый даже к экстремальным маскам. Мы используем предобученную безусловную DDPM в качестве генеративного априорного распределения. Для обусловливания процесса генерации мы изменяем только итерации обратной диффузии, сэмплируя немаскированные области с использованием информации из данного изображения. Поскольку эта техника не модифицирует и не обусловливает саму исходную сеть DDPM, модель генерирует изображения высокого качества и разнообразия для любой формы инпейнтинга. Мы проверяем наш метод как для лиц, так и для общего инпейнтинга изображений, используя стандартные и экстремальные маски. RePaint превосходит передовые авто регрессионные и GAN-подходы как минимум для пяти из шести распределений масок. Репозиторий на GitHub: [этот http URL](http://git.io/RePaint).* | |
| Оригинальная реализация доступна по адресу [andreas128/RePaint](https://github.com/andreas128/). | |
| ## RePaintScheduler[[diffusers.RePaintScheduler]] | |
| #### diffusers.RePaintScheduler[[diffusers.RePaintScheduler]] | |
| ```python | |
| diffusers.RePaintScheduler(num_train_timesteps: int = 1000, beta_start: float = 0.0001, beta_end: float = 0.02, beta_schedule: str = 'linear', eta: float = 0.0, trained_betas: numpy.ndarray | None = None, clip_sample: bool = True) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_repaint.py#L99) | |
| **Параметры:** | |
| num_train_timesteps (`int`, по умолчанию `1000`) : Количество шагов диффузии для обучения модели. | |
| beta_start (`float`, по умолчанию `0.0001`) : начальное значение `beta` для инференса. | |
| beta_end (`float`, по умолчанию `0.02`) : Итоговое значение `beta`. | |
| beta_schedule (`str`, по умолчанию `"linear"`) : Расписание бета, отображающее диапазон значений бета в последовательность бета для шагов модели. Выберите одно из значений: `linear`, `scaled_linear`, `squaredcos_cap_v2` или `sigmoid`. | |
| eta (`float`, по умолчанию `0.0`) : Вес шума, добавляемого на шаге диффузии. Значение `0.0` соответствует DDIM, а значение `1.0` — DDPM. | |
| trained_betas (`np.ndarray`, *необязательный*) : Передайте массив бета непосредственно в конструктор, чтобы обойти `beta_start` и `beta_end`. | |
| clip_sample (`bool`, по умолчанию `True`) : Ограничивает предсказанную выборку значениями от -1 до 1 для численной стабильности. | |
| `RePaintScheduler` — это планировщик для inpainting DDPM внутри заданной маски. | |
| Эта модель наследуется от [SchedulerMixin](/docs/diffusers/main/ru/api/schedulers/overview#diffusers.SchedulerMixin) и [ConfigMixin](/docs/diffusers/main/ru/api/configuration#diffusers.ConfigMixin). Общие методы, которые библиотека реализует для всех планировщиков, такие как загрузка и сохранение, описаны в документации суперкласса. | |
| #### add_noise[[diffusers.RePaintScheduler.add_noise]] | |
| ```python | |
| add_noise(original_samples: Tensor, noise: Tensor, timesteps: IntTensor) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_repaint.py#L395) | |
| **Параметры:** | |
| original_samples (`torch.Tensor`) : исходные образцы, к которым будет добавлен шум. | |
| noise (`torch.Tensor`) : Шум, который будет добавлен к выборкам. | |
| timesteps (`torch.IntTensor`) : Шаги, определяющие уровень шума для каждого примера. | |
| **Исключения:** ``NotImplementedError`` | |
| - ``NotImplementedError`` -- Обучение RePaint следует использовать [DDPMScheduler.add_noise()](/docs/diffusers/main/ru/api/schedulers/ddpm#diffusers.DDPMScheduler.add_noise) вместо этого. | |
| Укажите, что добавление шума для обучения RePaint не поддерживается этим планировщиком. | |
| #### scale_model_input[[diffusers.RePaintScheduler.scale_model_input]] | |
| ```python | |
| scale_model_input(sample: Tensor, timestep: int | None = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_repaint.py#L171) | |
| **Параметры:** | |
| sample (`torch.Tensor`) : Входной образец. | |
| timestep (`int`, *необязательный*) : Текущий шаг в цепочке диффузии. | |
| **Возвращает:** `torch.Tensor` | |
| Масштабированный входной образец. | |
| Обеспечивает совместимость с планировщиками, которым необходимо масштабировать входную модель денуазинга в зависимости от текущего шага. | |
| #### set_timesteps[[diffusers.RePaintScheduler.set_timesteps]] | |
| ```python | |
| set_timesteps(num_inference_steps: int, jump_length: int = 10, jump_n_sample: int = 10, device: typing.Union[str, torch.device, NoneType] = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_repaint.py#L188) | |
| **Параметры:** | |
| num_inference_steps (`int`) : Количество шагов диффузии, используемое при генерации образцов с помощью предобученной модели. | |
| jump_length (`int`, по умолчанию `10`) : Количество шагов, выполняемых вперёд во времени перед откатом назад для одного прыжка («j» в статье RePaint). См. рисунки 9 и 10 в статье. | |
| jump_n_sample (`int`, по умолчанию `10`) : Количество раз, когда выполняется скачок во времени вперёд для выбранного временного сэмпла. См. рисунки 9 и 10 в статье. | |
| device (`str` или `torch.device`, *необязательный*) : Устройство, на которое следует переместить шаги. Если `None`, шаги не перемещаются. | |
| Устанавливает дискретные временные шаги, используемые для цепочки диффузии (выполняется перед инференсом). | |
| #### шаг[[diffusers.RePaintScheduler.step]] | |
| ```python | |
| step(model_output: Tensor, timestep: int, sample: Tensor, original_image: Tensor, mask: Tensor, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_repaint.py#L264) | |
| **Параметры:** | |
| model_output (`torch.Tensor`) : Прямой вывод из обученной диффузионной модели. | |
| timestep (`int`) : Текущий дискретный шаг времени в цепочке диффузии. | |
| sample (`torch.Tensor`) : Текущая инстанция сэмпла, созданная процессом диффузии. | |
| original_image (`torch.Tensor`) : Исходное изображение, на котором выполняется инпейнт. | |
| mask (`torch.Tensor`) : маска, в которой значение 0.0 указывает, какую часть исходного изображения необходимо восстановить. | |
| generator (`torch.Generator`, *необязательный*) : генератор случайных чисел. | |
| return_dict (`bool`, по умолчанию `True`) : Возвращать ли [RePaintSchedulerOutput](/docs/diffusers/main/ru/api/schedulers/repaint#diffusers.schedulers.scheduling_repaint.RePaintSchedulerOutput) вместо кортежа. | |
| **Возвращает:** [RePaintSchedulerOutput](/docs/diffusers/main/ru/api/schedulers/repaint#diffusers.schedulers.scheduling_repaint.RePaintSchedulerOutput) или `tuple[torch.Tensor, torch.Tensor]` | |
| If return_dict is `True`, [RePaintSchedulerOutput](/docs/diffusers/main/ru/api/schedulers/repaint#diffusers.schedulers.scheduling_repaint.RePaintSchedulerOutput) is returned, otherwise a tuple is returned where the first element is the previous sample and the second is the predicted original sample. | |
| Предскажите образец из предыдущего шага времени, обращая SDE. Эта функция распространяет процесс диффузии от выходов обученной модели (чаще всего — предсказанного шума). | |
| #### undo_step[[diffusers.RePaintScheduler.undo_step]] | |
| ```python | |
| undo_step(sample: Tensor, timestep: int, generator: typing.Optional[torch.Generator] = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_repaint.py#L358) | |
| **Параметры:** | |
| sample (`torch.Tensor`) : Образец, к которому добавляется шум. | |
| timestep (`int`) : Текущий дискретный шаг времени в цепочке диффузии. | |
| generator (`torch.Generator`, *необязательный*) : генератор случайных чисел. | |
| **Возвращает:** `torch.Tensor` | |
| Образец на следующем шаге времени в цепочке диффузии. | |
| Добавьте шум к образцу, чтобы сдвинуть его на один шаг диффузии вперёд. | |
| ## RePaintSchedulerOutput[[diffusers.schedulers.scheduling_repaint.RePaintSchedulerOutput]] | |
| #### diffusers.schedulers.scheduling_repaint.RePaintSchedulerOutput[[diffusers.schedulers.scheduling_repaint.RePaintSchedulerOutput]] | |
| ```python | |
| diffusers.schedulers.scheduling_repaint.RePaintSchedulerOutput(prev_sample: Tensor, pred_original_sample: Tensor) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_repaint.py#L29) | |
| **Параметры:** | |
| 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` можно использовать для предпросмотра прогресса или для направленного генерирования. | |
| Класс для вывода функции шага планировщика. | |
Xet Storage Details
- Size:
- 13.8 kB
- Xet hash:
- 6337b7254246bcf3ac9b3f97eac1824b52430bd0be4dad91a28f157548b8e929
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.