? Диффузоры-это библиотека для современных предварительных диффузионных моделей для генерации изображений, аудио и даже трехмерных структур молекул. Ищете ли вы простое решение о выводе или обучаете свои собственные диффузионные модели? Diffusers - это модульный набор инструментов, который поддерживает оба. Наша библиотека спроектирована с акцентом на удобство использования, а не на производительности, простой и настраиваемости над абстракциями.
? Диффузеры предлагают три основных компонента:
Мы рекомендуем установить? Диффузоры в виртуальной среде от PYPI или Conda. Для получения более подробной информации об установке Pytorch и льна, пожалуйста, обратитесь к их официальной документации.
С pip
(официальный пакет):
pip install --upgrade diffusers[torch]
С conda
(поддерживается сообществом):
conda install -c conda-forge diffusers
С pip
(официальный пакет):
pip install --upgrade diffusers[flax]
Пожалуйста, обратитесь к тому, как использовать стабильную диффузию в руководстве Apple Silicon.
Генерация выходов очень легко? Диффузоры. Чтобы сгенерировать изображение из текста, используйте метод from_pretrained
для загрузки любой предварительно предварительно диффузионной модели (просмотрите концентратор на более чем 30 000 контрольных точек):
from diffusers import DiffusionPipeline
import torch
pipeline = DiffusionPipeline . from_pretrained ( "stable-diffusion-v1-5/stable-diffusion-v1-5" , torch_dtype = torch . float16 )
pipeline . to ( "cuda" )
pipeline ( "An image of a squirrel in Picasso style" ). images [ 0 ]
Вы также можете покопаться в моделях и наборе инструментов планировщиков, чтобы создать собственную диффузионную систему:
from diffusers import DDPMScheduler , UNet2DModel
from PIL import Image
import torch
scheduler = DDPMScheduler . from_pretrained ( "google/ddpm-cat-256" )
model = UNet2DModel . from_pretrained ( "google/ddpm-cat-256" ). to ( "cuda" )
scheduler . set_timesteps ( 50 )
sample_size = model . config . sample_size
noise = torch . randn (( 1 , 3 , sample_size , sample_size ), device = "cuda" )
input = noise
for t in scheduler . timesteps :
with torch . no_grad ():
noisy_residual = model ( input , t ). sample
prev_noisy_sample = scheduler . step ( noisy_residual , t , input ). prev_sample
input = prev_noisy_sample
image = ( input / 2 + 0.5 ). clamp ( 0 , 1 )
image = image . cpu (). permute ( 0 , 2 , 3 , 1 ). numpy ()[ 0 ]
image = Image . fromarray (( image * 255 ). round (). astype ( "uint8" ))
image
Проверьте QuickStart, чтобы запустить ваше диффузионное путешествие сегодня!
Документация | Чему я могу научиться? |
---|---|
Учебник | Основной аварийный курс для изучения того, как использовать наиболее важные функции библиотеки, такие как использование моделей и планировщиков для создания собственной диффузионной системы и обучения вашей собственной диффузионной модели. |
Загрузка | Руководства по загрузке и настройке всех компонентов (трубопроводы, модели и планировщиков) библиотеки, а также как использовать разные планировщики. |
Трубопроводы для вывода | Руководства для использования трубопроводов для различных задач вывода, пакетной генерации, управления генерируемыми выходами и случайностью, а также как внести вклад в библиотеку. |
Оптимизация | Руководства для оптимизации вашей диффузионной модели для работы быстрее и потребления меньше памяти. |
Обучение | Руководства для обучения диффузионной модели для различных задач с различными методами обучения. |
Мы вклад сообщества с открытым исходным кодом! Если вы хотите внести свой вклад в эту библиотеку, пожалуйста, ознакомьтесь с нашим руководством по взносу. Вы можете искать проблемы, которые вы хотели бы решить, чтобы внести свой вклад в библиотеку.
Также, скажем, в нашем государственном канале разногласий. Мы обсуждаем самые горячие тенденции о диффузионных моделях, помогаем друг другу вкладыми, личными проектами или просто тусоваться ☕.
Задача | Трубопровод | ? Центр |
---|---|---|
Безусловное генерация изображений | DDPM | Google/DDPM-EMA-Church-256 |
Текст к изображению | Стабильная диффузия текста к изображению | Стабильная диффузия V1-5/стабильная-диффузия V1-5 |
Текст к изображению | расколотый | Kakaobrain/Karlo-V1-Alpha |
Текст к изображению | DeepFloyd if | DeepFloyd/if-i-xl-V1.0 |
Текст к изображению | Кандинский | Кандинский общитник/Кандинский-2-2-2-декодер |
Текстовое изображение-изображение | ControlNet | Lllyasviel/SD-Controlnet-Canny |
Текстовое изображение-изображение | INSTRUCTPIX2PIX | Timbrooks/instruct-pix2pix |
Текстовое изображение-изображение | Стабильное диффузионное изображение к изображению | Стабильная диффузия V1-5/стабильная-диффузия V1-5 |
Текстовое изображение внедорожено | Стабильная диффузия внедорожника | Runwayml/Stable-Diffusion-Inpainting |
Вариация изображения | Изменение стабильного диффузионного изображения | Lambdalabs/SD-Image-Variations-Diffusers |
Супер разрешение | Стабильная диффузия | Stabilityai/Stable-Diffusion-X4-Upscaler |
Супер разрешение | Стабильная диффузионная латентная высококлассная | Стабильность/SD-X2-Latent-UpScaler |
Спасибо, что использовали нас ❤.
Эта библиотека конкретизирует предыдущую работу многих разных авторов и не была бы возможна без их отличных исследований и реализаций. Мы хотели бы поблагодарить, в частности, следующие реализации, которые помогли нам в нашем разработке и без которых API не мог быть так отточен сегодня:
Мы также хотим поблагодарить @Heejkoo за очень полезный обзор документов, кода и ресурсов на моделях диффузии, доступные здесь, а также @CrowSonkB и @Rromb за полезные обсуждения и идеи.
@misc { von-platen-etal-2022-diffusers ,
author = { Patrick von Platen and Suraj Patil and Anton Lozhkov and Pedro Cuenca and Nathan Lambert and Kashif Rasul and Mishig Davaadorj and Dhruv Nair and Sayak Paul and William Berman and Yiyi Xu and Steven Liu and Thomas Wolf } ,
title = { Diffusers: State-of-the-art diffusion models } ,
year = { 2022 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/huggingface/diffusers} }
}