Diffusers documentation
DDPM
DDPM
Denoising Diffusion Probabilistic Models (DDPM) авторов Джонатана Хо, Аджая Джейна и Питера Аббеля предлагает модель на основе диффузии с тем же названием. В библиотеке 🤗 Diffusers DDPM обозначает дискретный планировщик денойзинга из статьи, а также соответствующий пайплайн.
Аннотация из статьи:
Мы представляем результаты синтеза изображений высокого качества с использованием диффузионных вероятностных моделей — класса латентных переменных, вдохновлённого соображениями из неравновесной термодинамики. Наши лучшие результаты получены путём обучения на взвешенной вариационной границе, спроектированной на основе новой связи между диффузионными вероятностными моделями и сопоставлением скоростей сглаживания шума с динамикой Ланжевена. Наши модели естественным образом допускают схему прогрессивного сжимающего декодирования с потерями, которую можно интерпретировать как обобщение авторегрессионного декодирования. На безусловном наборе данных CIFAR10 мы получаем Inception score 9,46 и FID score 3,17, являющийся лучшим на данный момент. На LSUN 256x256 мы получаем качество образцов, сопоставимое с ProgressiveGAN.
Исходный код можно найти в репозитории hohonathanho/diffusion.
Обязательно ознакомьтесь с руководством по планировщикам, чтобы узнать, как исследовать баланс между скоростью и качеством планировщика, а также с разделом повторное использование компонентов в разных конвейерах, чтобы узнать, как эффективно загружать одни и те же компоненты в несколько конвейеров.
DDPMPipeline
класс diffusers.DDPMPipeline
< source >( unet: UNet2DModelscheduler: DDPMScheduler )
Параметры
- unet (UNet2DModel) —
UNet2DModelдля удаления шума из закодированных латентов изображения. - scheduler (SchedulerMixin) —
планировщик, используемый в сочетании с
unetдля удаления шума из закодированного изображения. Может быть одним из DDPMScheduler или DDIMScheduler.
Пайплайн для генерации изображений.
Эта модель наследуется от DiffusionPipeline. Общую документацию по методам, реализованным для всех пайплайнов (загрузка, сохранение, запуск на конкретном устройстве и т. д.), см. в документации родительского класса.
__call__
< source >( batch_size: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonenum_inference_steps: int = 1000output_type: str | None = 'pil'return_dict: bool = True ) → ImagePipelineOutput or tuple
Параметры
- batch_size (
int, необязательный, по умолчанию 1) — Количество изображений для генерации. - generator (
torch.Generator, необязательный) —torch.Generatorдля обеспечения детерминированности генерации. - num_inference_steps (
int, необязательный, по умолчанию 1000) — Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода. - output_type (
str, необязательный, по умолчанию"pil") — Формат вывода сгенерированного изображения. Выберите один из вариантов:"pil"(PIL.Image),"np"(np.array) или"pt"(torch.Tensor). - return_dict (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли возвращать ImagePipelineOutput вместо обычного кортежа.
Возвращает
ImagePipelineOutput или tuple
Если return_dict равно True, возвращается ImagePipelineOutput, иначе возвращается tuple, где первый элемент — это список с сгенерированными изображениями
Функция вызова конвейера для генерации.
ImagePipelineOutput
класс diffusers.ImagePipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Класс вывода для пайплайнов обработки изображений.