UNO: поддержка инструментов для создания односубъектных и многосубъектных изображений (подходит для графики электронной коммерции)
Общее введение
UNO - это фреймворк для создания изображений с открытым исходным кодом, разработанный командой разработчиков интеллектуальных приложений ByteDance. Он основан на FLUXUNO решает проблемы расширения данных и согласованности субъектов в многосубъектных сценариях, используя возможности контекстной генерации Diffusion Transformer (DiT) в сочетании с высококонсистентным процессом синтеза данных. Он позволяет пользователям генерировать высококачественные изображения на основе текстовых описаний и эталонных изображений, что широко применимо для создания персонализированных изображений, проектирования виртуальных персонажей и других сценариев. Код проекта лицензирован под Apache 2.0, а весовые коэффициенты модели - под CC BY-NC 4.0, подходит для академических исследований и некоммерческого использования.

Список функций
- Создание изображения с одним объектом: генерирует изображение, соответствующее описанию, на основе одного эталонного изображения, сохраняя характеристики объекта.
- Генерация многосубъектных изображений: создание нескольких конкретных объектов в одной сцене, сохраняя их соответствующие характеристики, чтобы не перепутать.
- Создание контекста: использование возможностей диффузионного трансформатора по изучению контекста для создания высококонсистентных изображений.
- Оптимизация с низким объемом памяти: поддержка режима fp8 с пиковым объемом памяти ~16 ГБ для потребительских GPU.
- Тонкая настройка модели: обеспечивает предварительное обучение и многоступенчатые стратегии обучения для поддержки итеративной оптимизации от моделей текста к моделям изображений.
- Поддержка с открытым исходным кодом: код обучения, код вывода и весовые коэффициенты модели предоставляются для того, чтобы исследователи могли расширять приложение.
Использование помощи
Процесс установки
Чтобы использовать UNO, необходимо установить и настроить зависимости в локальном окружении. Ниже приведены подробные шаги по установке для сред Python 3.10 - 3.12.
- Создание виртуальной среды
Сначала создайте отдельную виртуальную среду Python, чтобы избежать конфликтов зависимостей. Для этого можно использовать следующую команду:python -m venv uno_env source uno_env/bin/activate # Linux/MacOS uno_env\Scripts\activate # Windows
Или используйте Conda для создания среды:
conda create -n uno_env python=3.10 -y conda activate uno_env
- Установка PyTorch
Если вы используете графический процессор AMD, NVIDIA RTX 50 series или macOS MPS, вам нужно вручную установить соответствующую версию PyTorch. Обратитесь к веб-сайту PyTorch (https://pytorch.org/) Выберите правильную версию. Например:pip install torch torchvision torchaudio
- Установка зависимостей UNO
Клонируйте репозиторий UNO и установите зависимости:git clone https://github.com/bytedance/UNO.git cd UNO pip install -e . # 仅用于推理 pip install -e .[train] # 用于推理和训练
Примечание: Убедитесь, что
requirements.txt
зависимости установлены правильно. Если у вас возникли проблемы, проверьте наличие отсутствующих системных библиотек (таких какffmpeg
) и черезconda install -c conda-forge ffmpeg
Установка. - Загрузите контрольные точки модели
UNO опирается на модель FLUX.1-dev и связанные с ней контрольные точки. Его можно загрузить следующими способами:- автоматическая загрузка: При выполнении сценариев вывода контрольные точки автоматически передаются через
hf_hub_download
Загрузите по пути по умолчанию (~/.cache/huggingface
). - загрузка руководства: Используйте Hugging Face CLI для загрузки моделей:
huggingface-cli download black-forest-labs/FLUX.1-dev huggingface-cli download xlabs-ai/xflux_text_encoders huggingface-cli download openai/clip-vit-large-patch14 huggingface-cli download bytedance-research/UNO
После загрузки поместите модель в указанную директорию (например.
models/unet
ответить пениемmodels/loras
). - автоматическая загрузка: При выполнении сценариев вывода контрольные точки автоматически передаются через
- Проверка установки
После завершения установки выполните следующую команду, чтобы проверить, правильно ли настроена среда:python -c "import torch; print(torch.cuda.is_available())"
Если возврат
True
Ниже приведен пример успешной настройки среды GPU.
Использование
UNO предоставляет интерфейс Gradio (app.py
) для интерактивной генерации изображений, или вы можете запускать скрипты вывода из командной строки (inference.py
). Ниже перечислены основные рабочие процедуры.
Создание изображений через интерфейс Gradio
- Запуск приложения Gradio
Убедитесь, что Gradio установлен (входит в составrequirements.txt
(в). Выполните следующую команду, чтобы запустить интерфейс:python app.py
При запуске браузер открывает локальную страницу (обычно это
http://127.0.0.1:7860
). - входной параметр
В интерфейсе Gradio:- Введите текстовую подсказку (
prompt
), опишите сцену изображения, которую вы хотите сгенерировать, например "кошка и собака играют в парке". - Загрузите 1-4 опорных изображения (
image_ref1
доimage_ref4
), эти изображения определяют внешний вид объекта. - Установите начальное значение (
seed
) для управления случайностью генерируемых результатов, значение по умолчанию - 3407. - Выберите тип модели (
flux-dev
, иflux-dev-fp8
возможноflux-schnell
), рекомендуетсяflux-dev-fp8
чтобы снизить требования к графической памяти.
- Введите текстовую подсказку (
- Создание изображений
Нажмите на кнопку Generate, и UNO сгенерирует результаты на основе подсказок и эталонного изображения. Время генерации зависит от производительности оборудования и обычно занимает от нескольких секунд до нескольких минут на потребительских графических процессорах, таких как RTX 3090.
Запуск рассуждений из командной строки
- Приготовьтесь к поступлению
Создайте конфигурационный файл, содержащий пути к изображениям подсказок и ссылок, или укажите параметры непосредственно в командной строке. Пример:python inference.py --prompt "A man in a suit, standing in a city" --image_paths "./assets/examples/man.jpg" --model_type "flux-dev-fp8" --save_path "./output"
- Описание общих параметров
--prompt
: Текстовое описание, определяющее содержание сгенерированного изображения.--image_paths
: Путь к эталонному изображению с поддержкой нескольких изображений.--model_type
: Тип модели, рекомендуемыйflux-dev-fp8
.--offload
: Включите разгрузку видеопамяти, чтобы уменьшить ее использование.--num_steps
: Количество шагов диффузии, по умолчанию 25, влияет на качество генерации.--guidance
: Коэффициент наведения, по умолчанию 4, контролирует, насколько хорошо текст соответствует изображению.
- Посмотреть результаты
Созданное изображение сохраняется в--save_path
Указанный каталог (например.output/inference
).
Функциональное управление
Односубъектная генерация
- процедура::
- Загрузите изображение объекта (например, фотографию человека).
- Введите текстовую подсказку, описывающую целевую сцену (например, "Этот человек идет по пляжу").
- Установите разрешение опорного изображения на 512 (по умолчанию).
- Для создания изображения UNO сохраняет внешний вид объектов (например, лица, одежды).
- предостережение: Убедитесь, что эталонное изображение четкое и объект хорошо описан, избегая размытых или низкокачественных изображений.
Многопредметная генерация
- процедура::
- Загрузите несколько эталонных изображений (например, фотографию кошки и фотографию собаки).
- Введите текстовые подсказки для описания многопредметных сцен (например, "Кошка и собака играют в траве").
- Установите разрешение опорного изображения на 320 (многосубъектное по умолчанию).
- Для создания изображения UNO избегает смешения признаков объекта с помощью техники UnoPE (Universal Rotational Position Embedding).
- предостережение: Количество опорных изображений не должно превышать 4, и каждый предмет должен быть четко выделен на изображении.
Оптимизация памяти
- пользоваться
flux-dev-fp8
В этой модели объем памяти уменьшился до 16 ГБ. - начать использовать
--offload
параметр, перекладывая часть вычислений на центральный процессор, что еще больше снижает требования к графической памяти. - Для пользователей потребительских графических процессоров, таких как RTX 3090 или RTX 4090.
Часто задаваемые вопросы
- Недостаточно видеопамяти: Попытка уменьшить разрешение (
--width
ответить пением--height
) до 512x512, или используйтеflux-dev-fp8
Модели. - нарушение монтажа: Проверьте, совместима ли версия PyTorch с GPU, и при необходимости установите определенную версию вручную.
- Неудовлетворительные результаты: Корректировки
--guidance
(увеличивается до 5 или 6) или--num_steps
(увеличено до 50) для улучшения качества изображения.
сценарий применения
- Создание персонализированных изображений
Пользователи могут загружать собственные фотографии и комбинировать их с текстовыми описаниями для создания изображений конкретных сценариев. Например, при загрузке селфи создается изображение "себя, гуляющего по городу будущего", которое подходит для создания контента в социальных сетях. - Дизайн виртуальных персонажей
Разработчики игр или аниматоры могут загружать эскизы персонажей, чтобы генерировать образы для различных сценариев и поддерживать единый внешний вид персонажей, подходящий для манги, анимации или разработки игр. - Реклама и маркетинг
Маркетинговые команды могут загружать изображения талисманов продуктов или брендов, чтобы создавать различные рекламные сценарии (например, продукты, демонстрируемые в разные сезоны) и увеличивать разнообразие визуального контента. - научные исследования
Исследователи могут использовать открытый исходный код UNO и обучающий поток для изучения применения диффузионных моделей к многосубъектным генерациям, проверки новых алгоритмов или оптимизации существующих моделей.
QA
- Какое оборудование поддерживает UNO?
UNO рекомендует графические процессоры NVIDIA (например, RTX 3090 или 4090) с минимум 16 ГБ видеопамяти. Графические процессоры AMD и macOS MPS поддерживаются, но PyTorch необходимо настраивать вручную. - Как улучшить качество создаваемых изображений?
Добавление диффузионного шага (--num_steps
установлено на 50) или настроить коэффициент бутстрапа (--guidance
(установите значение 5-6). Убедитесь, что опорное изображение четкое, а текстовые подсказки конкретные. - Поддерживается ли UNO на коммерческой основе?
Модельные веса лицензированы под CC BY-NC 4.0 только для некоммерческого использования. Коммерческое использование регулируется условиями оригинальной лицензии FLUX.1-dev. - Как справиться с путаницей признаков при генерации многопредметных изображений?
UNO Уменьшите путаницу с помощью техники UnoPE. Убедитесь в том, что на каждом эталонном изображении четко видны характерные черты объекта, а разрешение соответствующим образом уменьшено (например, 320), чтобы оптимизировать эффект.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...