Repolode
lucidrains

lucidrains/denoising-diffusion-pytorch

Реализация Denoising Diffusion Probabilistic Models на PyTorch для обучения генеративных моделей изображений и одномерных последовательностей.

Звёзды
10,710
Форки
1,283
Открытые issues
169
Последний коммит
23 дня назад

Что это?

Проект представляет собой реализацию Denoising Diffusion Probabilistic Models на PyTorch — подхода к генеративному моделированию, который учится обращать постепенный процесс зашумления. В основе лежит U-Net, а класс GaussianDiffusion отвечает за прямое зашумление, функцию потерь при обучении и генерацию с помощью обученной модели.

Помимо основного конвейера для изображений, в проект входит класс Trainer: он принимает папку с изображениями и выполняет загрузку данных, обучающие циклы, периодическое сохранение примеров, создание чекпойнтов и, по желанию, расчёт FID. Также поддерживаются Hugging Face Accelerate для обучения на нескольких GPU, смешанная точность через amp и ускоренная генерация в стиле DDIM с меньшим числом шагов. Для последовательностей предусмотрены одномерные варианты U-Net и diffusion, а XMWrapper добавляет расчёт функции потерь по нескольким кандидатам.

Библиотеку можно установить из PyPI. Она предназначена для исследователей и разработчиков, которым нужна понятная и удобная для модификации реализация для экспериментов с diffusion-моделями.

Ключевые возможности

  • 01Реализует целевую функцию обучения DDPM и процедуру генерации на PyTorch.
  • 02Предоставляет настраиваемую основу U-Net с опциональной flash attention.
  • 03Класс Trainer обрабатывает наборы изображений из папки, чекпойнты и сохранение примеров.
  • 04Поддерживает обучение на нескольких GPU через Hugging Face Accelerate и смешанную точность.
  • 05Включает генерацию в стиле DDIM с меньшим числом шагов и оценку FID во время обучения.
  • 06Предлагает одномерные варианты U-Net и diffusion для последовательностей.

Сценарии использования

  • Обучение небольшой модели генерации изображений на собственном наборе файлов.
  • Изучение или модификация основного кода обучения diffusion-моделей и генерации.
  • Создание прототипов diffusion-моделей для одномерных последовательностей.
  • Запуск экспериментов по обучению diffusion-моделей на нескольких GPU с Accelerate.

Быстрый старт

  1. 1

    Установите пакет из PyPI

    pip install denoising_diffusion_pytorch
  2. 2

    Создайте модель и объект диффузии, затем обучите модель на изображениях из папки с помощью класса Trainer

  3. 3

    Начните обучение

    trainer.train()

Что важно знать

  • Для обучения на изображениях реалистичного размера требуются GPU и много времени (в примере используется 700000 шагов).

Темы

Частые вопросы

Что такое denoising-diffusion-pytorch?
Реализация Denoising Diffusion Probabilistic Models на PyTorch для обучения генеративных моделей изображений и одномерных последовательностей. Проект представляет собой реализацию Denoising Diffusion Probabilistic Models на PyTorch — подхода к генеративному моделированию, который учится обращать постепенный процесс зашумления. В основе лежит U-Net, а класс GaussianDiffusion отвечает за прямое зашумление, функцию потерь при обучении и генерацию с помощью обученной модели.
denoising-diffusion-pytorch можно использовать бесплатно? Какая у него лицензия?
denoising-diffusion-pytorch распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
denoising-diffusion-pytorch всё ещё поддерживается?
Активно поддерживается. Последний коммит в denoising-diffusion-pytorch — 29 сент. 2026 г..
Для чего можно использовать denoising-diffusion-pytorch?
Обучение небольшой модели генерации изображений на собственном наборе файлов. Изучение или модификация основного кода обучения diffusion-моделей и генерации. Создание прототипов diffusion-моделей для одномерных последовательностей. Запуск экспериментов по обучению diffusion-моделей на нескольких GPU с Accelerate.
Как установить denoising-diffusion-pytorch?
Установите пакет из PyPI: pip install denoising_diffusion_pytorch Создайте модель и объект диффузии, затем обучите модель на изображениях из папки с помощью класса Trainer Начните обучение: trainer.train()
Где скачать denoising-diffusion-pytorch?
Исходный код и инструкции по установке — на GitHub: https://github.com/lucidrains/denoising-diffusion-pytorch

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Движок с открытым исходным кодом для генерации изображений, видео и аудио с помощью Diffusion-моделей; поддерживает инференс и обучение при небольшом объёме VRAM.

13,3 тыс.1,3 тыс.PythonApache-2.0Обновлён позавчера

Открытая диффузионная модель для генерации изображений по тексту с 5 млрд параметров, точной отрисовкой текста, управлением компоновкой через JSON и возможностью дообучения.

1,3 тыс.64PythonApache-2.0Обновлён позавчера