Новости | Методология | Возможности | Быстрый старт | Точная настройка | Лицензия | Цитирование
03.11.2024: Добавлена демонстрация репликации и API:
2024-10-28: Мы выпускаем новую версию кода вывода, оптимизируя использование памяти и затраты времени. Вы можете обратиться к docs/inference.md для получения подробной информации.
22.10.2024: ? Мы публикуем код для OmniGen. Вывод: docs/inference.md Поезд: docs/fine-tuning.md
22.10.2024: ? Мы выпускаем первую версию OmniGen. Вес модели: Shitao/OmniGen-v1 Демо-версия HF: ?
OmniGen — это унифицированная модель создания изображений, которая может генерировать широкий спектр изображений из мультимодальных подсказок. Он разработан, чтобы быть простым, гибким и легким в использовании. Мы предоставляем код вывода, чтобы каждый мог изучить дополнительные функциональные возможности OmniGen.
Существующие модели генерации изображений часто требуют загрузки нескольких дополнительных сетевых модулей (таких как ControlNet, IP-адаптер, Reference-Net и т. д.) и выполнения дополнительных шагов предварительной обработки (например, обнаружения лица, оценки позы, обрезки и т. д.) для создания удовлетворительного изображения. изображение. Однако мы считаем, что будущая парадигма генерации изображений должна быть более простой и гибкой, то есть генерировать различные изображения напрямую с помощью произвольных мультимодальных инструкций без необходимости использования дополнительных плагинов и операций, аналогично тому, как GPT работает при генерации языка.
Из-за ограниченности ресурсов OmniGen еще есть куда совершенствоваться. Мы продолжим его оптимизировать и надеемся, что он вдохновит на создание более универсальных моделей генерации изображений. Вы также можете легко настроить OmniGen, не беспокоясь о проектировании сетей для конкретных задач; вам просто нужно подготовить соответствующие данные, а затем запустить скрипт. Воображение больше не ограничено; каждый может построить любую задачу по созданию изображений, и, возможно, мы сможем добиться очень интересных, замечательных и творческих вещей.
Если у вас есть какие-либо вопросы, идеи или интересные задачи, которые вы хотите, чтобы OmniGen выполнил, не стесняйтесь обсудить с нами: [email protected], [email protected], [email protected]. Мы приветствуем любые отзывы, которые помогут нам улучшить модель.
Подробности вы можете увидеть в нашей статье.
OmniGen — это унифицированная модель создания изображений, которую можно использовать для выполнения различных задач, включая, помимо прочего, генерацию текста в изображение, генерацию на основе субъектов, генерацию с сохранением идентичности, редактирование изображений и генерацию с учетом изображений. OmniGen не требует дополнительных плагинов или операций, он может автоматически идентифицировать объекты (например, требуемый объект, позу человека, отображение глубины) во входных изображениях в соответствии с текстовой подсказкой. Мы демонстрируем несколько примеров в inference.ipynb. А в inference_demo.ipynb мы показываем интересный конвейер для создания и изменения изображения.
Вот иллюстрации возможностей OmniGen:
Вы можете гибко управлять генерацией изображений через OmniGen.
Ссылка на генерацию выражений: вы можете ввести несколько изображений и использовать простой общий язык для обозначения объектов внутри этих изображений. OmniGen умеет автоматически распознавать необходимые объекты на каждом изображении и генерировать на их основе новые изображения. Никаких дополнительных операций, таких как обрезка изображения или распознавание лиц, не требуется.
Если вас не полностью устраивают определенные функции или вы хотите добавить новые возможности, вы можете попробовать выполнить тонкую настройку OmniGen.
Установить через Github:
git-клон https://github.com/staoxiao/OmniGen.gitcd OmniGen пип установить -e .
Вот несколько примеров:
from OmniGen import OmniGenPipelinepipe = OmniGenPipeline.from_pretrained("Shitao/OmniGen-v1") # Примечание. Также допускается путь к вашей локальной модели, например 'pipe = OmniGenPipeline.from_pretrained(your_local_model_path)', где все файлы в your_local_model_path должны быть организованы как https://huggingface.co/Shitao/OmniGen-v1/tree/main # Примечание. Если исходная ссылка https://huggingface.co/Shitao/OmniGen-v1/tree/main нестабильна при загрузке, рекомендуется использовать зеркальную ссылку https://hf-mirror.com/Shitao/OmniGen. -v1/tree/main или другими способами на https://hf-mirror.com/ ## Text to Imageimages = Pipe(prompt="Кудрявый мужчина в красной рубашке пьет чай.", height=1024, ширина = 1024, Guide_scale = 2,5, начальное значение = 0, )images[0].save("example_t2i.png") # сохранить выходные данные PIL Image## Мультимодальный для Image# В приглашении мы используем заполнитель для представления изображения. Заполнитель изображения должен иметь формат <|image_*|># Вы можете добавить несколько изображений в input_images. Убедитесь, что у каждого изображения есть заполнитель. Например, для списка input_images [img1_path, img2_path] в приглашении должно быть два заполнителя: <|image_1|>, <|image_2|>.images = Pipe (prompt="Мужчина в черной рубашке читает книгу. Этот мужчина - тот самый мужчина в <|image_1|>.",input_images=["./imgs/test_cases/two_man.jpg "],height=1024, width=1024,guidance_scale=2.5, img_guidance_scale=1.6,seed=0)images[0].save("example_ti2i.png") # сохраняем выходное изображение PIL
Если недостаточно памяти, вы можете установить offload_model=True
. Если время вывода при вводе нескольких изображений слишком велико, вы можете уменьшить max_input_image_size
. Необходимые ресурсы и метод эффективного запуска OmniGen см. в docs/inference.md#requiremented-resources.
Дополнительные примеры создания изображений можно найти в inference.ipynb и inference_demo.ipynb.
Более подробную информацию об аргументе в выводе см. в docs/inference.md.
Вскоре.
Мы создаем онлайн-демо в Huggingface.
Для локальной демонстрации градиента вам необходимо установить pip install gradio spaces
, а затем запустить:
pip install Gradio Spacespython app.py
Мы предоставляем обучающий скрипт train.py
для точной настройки OmniGen. Вот игрушечный пример тонкой настройки LoRA:
ускорить запуск --num_processes=1 train.py --model_name_or_path Шитао/OmniGen-v1 --batch_size_per_device 2 --condition_dropout_prob 0,01 --lr 1e-3 --use_lora --lora_rank 8 --json_file ./toy_data/toy_subject_data.jsonl --image_path ./toy_data/images --max_input_length_limit 18000 --keep_raw_solve --max_image_size 1024 --gradient_accumulation_steps 1 --ckpt_каждые 10 --эпохи 200 --log_every 1 --results_dir ./results/toy_finetune_lora
Пожалуйста, обратитесь к docs/fine-tuning.md для получения более подробной информации (например, полная настройка).
Благодарим всех наших участников за их усилия и тепло приветствуем новых участников!
Это репо лицензируется по лицензии MIT.
Если вы найдете этот репозиторий полезным, поставьте звездочку ⭐ и процитируйте его.
@article{xiao2024omnigen, title={Omnigen: Unified image generation}, author={Xiao, Shitao and Wang, Yueze and Zhou, Junjie and Yuan, Huaying and Xing, Xingrun and Yan, Ruiran and Wang, Shuting and Huang, Tiejun and Liu, Zheng}, journal={arXiv preprint arXiv:2409.11340}, year={2024} }