UNO: поддержка инструментов для создания односубъектных и многосубъектных изображений (подходит для графики электронной коммерции)

Общее введение

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

UNO:支持单主体和多主体定制化图像生成工具(适合电商配图)

 

Список функций

  • Создание изображения с одним объектом: генерирует изображение, соответствующее описанию, на основе одного эталонного изображения, сохраняя характеристики объекта.
  • Генерация многосубъектных изображений: создание нескольких конкретных объектов в одной сцене, сохраняя их соответствующие характеристики, чтобы не перепутать.
  • Создание контекста: использование возможностей диффузионного трансформатора по изучению контекста для создания высококонсистентных изображений.
  • Оптимизация с низким объемом памяти: поддержка режима fp8 с пиковым объемом памяти ~16 ГБ для потребительских GPU.
  • Тонкая настройка модели: обеспечивает предварительное обучение и многоступенчатые стратегии обучения для поддержки итеративной оптимизации от моделей текста к моделям изображений.
  • Поддержка с открытым исходным кодом: код обучения, код вывода и весовые коэффициенты модели предоставляются для того, чтобы исследователи могли расширять приложение.

 

Использование помощи

Процесс установки

Чтобы использовать UNO, необходимо установить и настроить зависимости в локальном окружении. Ниже приведены подробные шаги по установке для сред Python 3.10 - 3.12.

  1. Создание виртуальной среды
    Сначала создайте отдельную виртуальную среду 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
    
  2. Установка PyTorch
    Если вы используете графический процессор AMD, NVIDIA RTX 50 series или macOS MPS, вам нужно вручную установить соответствующую версию PyTorch. Обратитесь к веб-сайту PyTorch (https://pytorch.org/) Выберите правильную версию. Например:

    pip install torch torchvision torchaudio
    
  3. Установка зависимостей 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 Установка.

  4. Загрузите контрольные точки модели
    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).

  5. Проверка установки
    После завершения установки выполните следующую команду, чтобы проверить, правильно ли настроена среда:

    python -c "import torch; print(torch.cuda.is_available())"
    

    Если возврат TrueНиже приведен пример успешной настройки среды GPU.

Использование

UNO предоставляет интерфейс Gradio (app.py) для интерактивной генерации изображений, или вы можете запускать скрипты вывода из командной строки (inference.py). Ниже перечислены основные рабочие процедуры.

Создание изображений через интерфейс Gradio

  1. Запуск приложения Gradio
    Убедитесь, что Gradio установлен (входит в состав requirements.txt (в). Выполните следующую команду, чтобы запустить интерфейс:

    python app.py
    

    При запуске браузер открывает локальную страницу (обычно это http://127.0.0.1:7860).

  2. входной параметр
    В интерфейсе Gradio:

    • Введите текстовую подсказку (prompt), опишите сцену изображения, которую вы хотите сгенерировать, например "кошка и собака играют в парке".
    • Загрузите 1-4 опорных изображения (image_ref1 до image_ref4), эти изображения определяют внешний вид объекта.
    • Установите начальное значение (seed) для управления случайностью генерируемых результатов, значение по умолчанию - 3407.
    • Выберите тип модели (flux-dev, иflux-dev-fp8 возможно flux-schnell), рекомендуется flux-dev-fp8 чтобы снизить требования к графической памяти.
  3. Создание изображений
    Нажмите на кнопку Generate, и UNO сгенерирует результаты на основе подсказок и эталонного изображения. Время генерации зависит от производительности оборудования и обычно занимает от нескольких секунд до нескольких минут на потребительских графических процессорах, таких как RTX 3090.

Запуск рассуждений из командной строки

  1. Приготовьтесь к поступлению
    Создайте конфигурационный файл, содержащий пути к изображениям подсказок и ссылок, или укажите параметры непосредственно в командной строке. Пример:

    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"
    
  2. Описание общих параметров
    • --prompt: Текстовое описание, определяющее содержание сгенерированного изображения.
    • --image_paths: Путь к эталонному изображению с поддержкой нескольких изображений.
    • --model_type: Тип модели, рекомендуемый flux-dev-fp8.
    • --offload: Включите разгрузку видеопамяти, чтобы уменьшить ее использование.
    • --num_steps: Количество шагов диффузии, по умолчанию 25, влияет на качество генерации.
    • --guidance: Коэффициент наведения, по умолчанию 4, контролирует, насколько хорошо текст соответствует изображению.
  3. Посмотреть результаты
    Созданное изображение сохраняется в --save_path Указанный каталог (например. output/inference).

Функциональное управление

Односубъектная генерация

  • процедура::
    1. Загрузите изображение объекта (например, фотографию человека).
    2. Введите текстовую подсказку, описывающую целевую сцену (например, "Этот человек идет по пляжу").
    3. Установите разрешение опорного изображения на 512 (по умолчанию).
    4. Для создания изображения UNO сохраняет внешний вид объектов (например, лица, одежды).
  • предостережение: Убедитесь, что эталонное изображение четкое и объект хорошо описан, избегая размытых или низкокачественных изображений.

Многопредметная генерация

  • процедура::
    1. Загрузите несколько эталонных изображений (например, фотографию кошки и фотографию собаки).
    2. Введите текстовые подсказки для описания многопредметных сцен (например, "Кошка и собака играют в траве").
    3. Установите разрешение опорного изображения на 320 (многосубъектное по умолчанию).
    4. Для создания изображения 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) для улучшения качества изображения.

 

сценарий применения

  1. Создание персонализированных изображений
    Пользователи могут загружать собственные фотографии и комбинировать их с текстовыми описаниями для создания изображений конкретных сценариев. Например, при загрузке селфи создается изображение "себя, гуляющего по городу будущего", которое подходит для создания контента в социальных сетях.
  2. Дизайн виртуальных персонажей
    Разработчики игр или аниматоры могут загружать эскизы персонажей, чтобы генерировать образы для различных сценариев и поддерживать единый внешний вид персонажей, подходящий для манги, анимации или разработки игр.
  3. Реклама и маркетинг
    Маркетинговые команды могут загружать изображения талисманов продуктов или брендов, чтобы создавать различные рекламные сценарии (например, продукты, демонстрируемые в разные сезоны) и увеличивать разнообразие визуального контента.
  4. научные исследования
    Исследователи могут использовать открытый исходный код UNO и обучающий поток для изучения применения диффузионных моделей к многосубъектным генерациям, проверки новых алгоритмов или оптимизации существующих моделей.

 

QA

  1. Какое оборудование поддерживает UNO?
    UNO рекомендует графические процессоры NVIDIA (например, RTX 3090 или 4090) с минимум 16 ГБ видеопамяти. Графические процессоры AMD и macOS MPS поддерживаются, но PyTorch необходимо настраивать вручную.
  2. Как улучшить качество создаваемых изображений?
    Добавление диффузионного шага (--num_steps установлено на 50) или настроить коэффициент бутстрапа (--guidance (установите значение 5-6). Убедитесь, что опорное изображение четкое, а текстовые подсказки конкретные.
  3. Поддерживается ли UNO на коммерческой основе?
    Модельные веса лицензированы под CC BY-NC 4.0 только для некоммерческого использования. Коммерческое использование регулируется условиями оригинальной лицензии FLUX.1-dev.
  4. Как справиться с путаницей признаков при генерации многопредметных изображений?
    UNO Уменьшите путаницу с помощью техники UnoPE. Убедитесь в том, что на каждом эталонном изображении четко видны характерные черты объекта, а разрешение соответствующим образом уменьшено (например, 320), чтобы оптимизировать эффект.
© заявление об авторских правах

Похожие статьи

Kolors:生成高质量图像的文本到图像模型,支持生成中文海报

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...