opendream привносит в ваши рабочие процессы Stable Diffusion столь необходимые и знакомые функции, такие как наложение слоев, неразрушающее редактирование, переносимость и простые в написании расширения. Посмотрите наше демонстрационное видео.
sh ./run_ opendream .sh
. Примерно через 30 секунд интерфейс и сервер системы opendream должны быть запущены и работать. Модели диффузии стали мощными инструментами в мире создания изображений и манипулирования ими. Хотя эти модели предлагают значительные преимущества, их часто называют «черными ящиками» из-за присущей им сложности. Текущая экосистема генерации диффузных изображений определяется инструментами, которые позволяют выполнять одноразовые задачи манипулирования изображениями для управления этими моделями — text2img, in-painting, pix2pix и другие.
Например, популярные интерфейсы, такие как Automatic1111, Midjourney и DreamStudio Stability.AI, поддерживают только деструктивное редактирование: каждое редактирование «съедает» предыдущее изображение. Это означает, что пользователи не могут легко использовать предыдущие изображения или проводить несколько экспериментов с одним и тем же изображением, что ограничивает их возможности для творческих исследований.
Неразрушающее редактирование — это метод манипулирования изображениями, который сохраняет исходные данные изображения, позволяя пользователям вносить коррективы и изменения, не перезаписывая предыдущую работу. Такой подход облегчает экспериментирование и обеспечивает больший контроль над процессом редактирования за счет использования слоев и масок. Когда вы удаляете слой, все слои после него также удаляются. Это гарантирует, что все слои, находящиеся в данный момент на холсте, являются продуктом других существующих слоев. Это также позволяет детерминированно «воспроизвести» рабочий процесс.
Как и Photoshop, opendream поддерживает неразрушающее редактирование «из коробки». Узнайте больше о принципах неразрушающего редактирования в Photoshop здесь.
Пользователи также могут сохранять свои текущие рабочие процессы в переносимый формат файла, который можно открыть позже или поделиться с коллегами. В этом контексте «состояние» — это просто файл JSON, описывающий все текущие слои и способ их создания.
Поскольку вокруг этих моделей и инструментов процветает экосистема с открытым исходным кодом, расширяемость также стала серьезной проблемой. Хотя Automatic1111 предлагает расширения, их часто сложно программировать, использовать и устанавливать. Оно далеко не так полнофункционально, как такое приложение, как Adobe Photoshop.
По мере выпуска новых функций Stable Diffusion, таких как ControlNet, пользователи смогут легко интегрировать их в свои творческие рабочие процессы с минимальной перегрузкой и временем.
opendream делает написание и использование новых функций распространения таким же простым, как написание функции Python. Продолжайте читать, чтобы узнать, как это сделать.
С самого начала opendream поддерживает две ключевые примитивные операции, встроенные в ядро системы: dream
и mask_and_inpaint
. В этом репозитории предоставлены расширения для instruct_pix2pix
, controlnet_canny
, controlnet_openpose
и sam
(Segment Anything).
Любую логику манипулирования изображениями можно легко записать как расширение. С помощью расширений вы также можете решать, как будут работать определенные операции. Например, вы можете переопределить операцию dream
и вместо этого использовать DALL-E OpenAI или вызвать бессерверную конечную точку в таком сервисе, как AWS или Replication. Вот пример использования Baseten.
Есть два способа загрузки расширений.
opendream /extensions
. Инструкции по написанию собственного расширения приведены ниже.Ниже приведена выборка поддерживаемых в настоящее время расширений. Вы можете использовать ссылки для установки любого расширения через веб-интерфейс.
Расширение | Связь |
---|---|
DALL-E от OpenAI | Файл |
Бессерверное стабильное распространение | Файл |
Поручить Pix2Pix | Файл |
ControlNet Канни | Файл |
ControlNet Openpose | Файл |
Сегментируйте что угодно | Файл |
PhotoshopGPT | Суть |
Обратите внимание, что расширения могут иметь свои собственные требования, которые вам необходимо включить в файл requirements.txt
. Например, вам нужно будет добавить openai
, если вы хотите использовать расширение DALL-E.
Смело делайте пиар, если создадите полезное расширение!
Пользователи могут писать свои собственные расширения следующим образом:
opendream /extensions
.@ opendream .define_op
. Этот декоратор регистрирует этот метод в бэкэнде opendream .К методу предъявляется ряд требований:
str
, int
, float
, Layer
, MaskLayer
или ImageLayer
.Layer
или список объектов Layer
. opendream был создан Варуном Шеноем, Эриком Лу, Шашанк Раммурти и Рахулом Шивом как часть Стэнфордского CS 348K.
Не стесняйтесь вносить любые материалы, которые вы считаете необходимыми или полезными. Этот проект лицензируется по лицензии MIT.