Отказ от ответственности
Это исследовательский проект, а НЕ коммерческий продукт. Пользователям предоставляется свобода создавать изображения с помощью этого инструмента, но они должны соблюдать местные законы и использовать его ответственным образом. Разработчики не несут никакой ответственности за возможное неправильное использование пользователями.
Новости и обновления
- [29 января] Обновление для поддержки диффузоров ==0.24.0!
- [23 октября] Опубликован код и данные DragBench! Пожалуйста, проверьте README в разделе «drag_bench_evaluation» для получения подробной информации.
- [16 октября] Интегрируйте FreeU при перетаскивании сгенерированного изображения.
- [3 октября] Ускорение обучения LoRA при редактировании реальных изображений. ( Сейчас на А100 всего около 20 секунд! )
- [3 сентября] Выпуск v0.1.0.
- Включите перетаскивание изображений, созданных с помощью Diffusion.
- Представляем новый механизм наведения, который значительно улучшает качество результатов перетаскивания. (Вдохновлено MasaCtrl)
- Включить перетаскивание изображений с произвольным соотношением сторон
- Добавление поддержки DPM++ Solver (сгенерированные изображения)
- [18 июля] Выпуск v0.0.1.
- Интегрируйте обучение LoRA в пользовательский интерфейс. Нет необходимости использовать обучающий скрипт, все можно удобно сделать в пользовательском интерфейсе!
- Оптимизируйте макет пользовательского интерфейса.
- Включить использование лучшего VAE для глаз и лиц (см. это)
- [8 июля] Выпуск v0.0.0.
- Реализация базовой функции DragDiffusion
Установка
Рекомендуется запускать наш код на графическом процессоре Nvidia с системой Linux. На других конфигурациях мы еще не тестировали. В настоящее время для запуска нашего метода требуется около 14 ГБ памяти графического процессора. Мы продолжим оптимизировать эффективность памяти
Чтобы установить необходимые библиотеки, просто выполните следующую команду:
conda env create -f environment.yaml
conda activate dragdiff
Запустите DragDiffusion
Для начала в командной строке выполните следующую команду, чтобы запустить пользовательский интерфейс Gradio:
Вы можете просмотреть нашу гифку выше, в которой пошагово демонстрируется использование пользовательского интерфейса.
По сути, он состоит из следующих шагов:
Случай 1. Перетаскивание входных реальных изображений
1) тренировать LoRA
- Поместите наше входное изображение в крайний левый блок.
- Введите подсказку с описанием изображения в поле «подсказка».
- Нажмите кнопку «Обучить LoRA», чтобы обучить LoRA с учетом входного изображения.
2) делать "перетаскивание" редактирования
- Нарисуйте маску в крайнем левом поле, чтобы указать редактируемые области.
- Щелкните маркер и целевые точки в среднем поле. Также вы можете сбросить все точки, нажав «Отменить точку».
- Нажмите кнопку «Запустить», чтобы запустить наш алгоритм. Отредактированные результаты будут отображаться в крайнем правом поле.
Случай 2: перетаскивание изображений, созданных диффузией
1) создать изображение
- Заполните параметры генерации (например, положительную/отрицательную подсказку, параметры в разделе «Конфигурация генерации» и «Параметры FreeU»).
- Нажмите «Создать изображение».
2) «перетащите» сгенерированное изображение
- Нарисуйте маску в крайнем левом поле, чтобы указать редактируемые области.
- Щелкните точки обработки и целевые точки в среднем поле.
- Нажмите кнопку «Запустить», чтобы запустить наш алгоритм. Отредактированные результаты будут отображаться в крайнем правом поле.
Лицензия
Код, связанный с алгоритмом DragDiffusion, находится под лицензией Apache 2.0.
БибТекс
Если наш репозиторий окажется для вас полезным, поставьте звездочку или процитируйте нашу статью :)
@article { shi2023dragdiffusion ,
title = { DragDiffusion: Harnessing Diffusion Models for Interactive Point-based Image Editing } ,
author = { Shi, Yujun and Xue, Chuhui and Pan, Jiachun and Zhang, Wenqing and Tan, Vincent YF and Bai, Song } ,
journal = { arXiv preprint arXiv:2306.14435 } ,
year = { 2023 }
}
Контакт
По любым вопросам по этому проекту обращайтесь к Юджун ([email protected]).
Благодарность
Эта работа вдохновлена удивительным DragGAN. Код обучения lora модифицирован на примере диффузоров. Образцы изображений собраны с unsplash, pexels, pixabay. Наконец, огромное спасибо всем замечательным моделям распространения и библиотекам с открытым исходным кодом.
Ссылки по теме
- Перетащите свой GAN: интерактивное точечное манипулирование генеративным многообразием изображений
- MasaCtrl: управление взаимным вниманием без настройки для согласованного синтеза и редактирования изображений
- Экстренная переписка в результате распространения изображений
- DragonDiffusion: включение манипуляций в стиле перетаскивания на моделях диффузии
- FreeDrag: отслеживание точек не требуется для интерактивного редактирования изображений на основе точек
Распространенные проблемы и решения
- Для пользователей, которым сложно загрузить модели из HuggingFace из-за ограничений Интернета, пожалуйста: 1) перейдите по этим ссылкам и загрузите модель в каталог «local_pretrained_models»; 2) Запустите «drag_ui.py» и выберите каталог для вашей предварительно обученной модели в «Параметры алгоритма -> Конфигурация базовой модели -> Путь к модели диффузии».