InstantCharacter: инструмент с открытым исходным кодом для генерации последовательных персонажей из одного изображения

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

InstantCharacter - это проект с открытым исходным кодом, разработанный Tencent Hunyuan и командой InstantX и размещенный на GitHub. Он использует эталонное изображение и текстовое описание для создания единообразных образов персонажей для различных сцен и стилей. Проект основан на технологии Diffusion Transformer, которая преодолевает ограничения традиционной архитектуры U-Net и обеспечивает более высокое качество изображений и гибкость. Пользователи могут генерировать изображения персонажей, соответствующие их описаниям, без сложной параметризации и с помощью простых операций, что широко используется в анимации, играх и цифровом искусстве. Поддержка проекта Флюс.1 и обеспечивает адаптацию стиля LoRA для удобной стилизованной генерации.

InstantCharacter:从单张图片生成一致性角色的开源工具

 

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

  • Последовательное создание персонажей на основе одного изображения: генерируйте изображения персонажей для разных сцен, действий и точек зрения, используя только одно эталонное изображение.
  • Генерация на основе текста: настраивайте движения персонажей, сцены и стили с помощью текстовых подсказок, например, "девушка играет на гитаре на улице".
  • Поддержка миграции стилей: совместимость со многими стилями LoRA, такими как стиль Ghibli или стиль Makoto Shinkai, для создания художественных изображений.
  • Высококачественный вывод изображений: генерируйте детальные изображения персонажей с высоким разрешением на основе моделей Flux.1.
  • Поддержка моделей с открытым исходным кодом: поддержка Flux и других моделей преобразования текста в изображение с открытым исходным кодом, разработчики могут свободно расширять функции.
  • Легкие адаптеры: используйте масштабируемые модули адаптеров для снижения потребления вычислительных ресурсов и повышения эффективности генерации.
  • Оптимизация крупномасштабного набора данных: обучение на основе десяти миллионов выборочных наборов данных для обеспечения согласованности ролей и управляемости текстом.

 

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

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

InstantCharacter требует среды с поддержкой GPU, рекомендуется графический процессор NVIDIA (минимум 48 ГБ VRAM, оптимизированный для 24 ГБ). Ниже приведены подробные шаги по установке:

  1. Подготовка к защите окружающей среды::
    • Установите Python 3.8 или более позднюю версию.
    • Рекомендуется установить PyTorch (с поддержкой CUDA). pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118.
    • Чтобы установить библиотеку зависимостей, выполните следующую команду:
      pip install transformers accelerate diffusers huggingface_cli
      
    • Убедитесь, что в вашей системе установлены Git и Git LFS для загрузки больших файлов.
  2. склад клонов::
    • Откройте терминал и выполните следующую команду, чтобы клонировать репозиторий InstantCharacter:
      git clone https://github.com/Tencent/InstantCharacter.git
      cd InstantCharacter
      
  3. Загрузите контрольные точки модели::
    • Загрузите модель с сайта Hugging Face:
      huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
      
    • Если вы не можете получить доступ к Hugging Face, вы можете использовать зеркальный адрес:
      export HF_ENDPOINT=https://hf-mirror.com
      huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
      
    • После завершения загрузки проверьте, что структура папок содержит checkpoints, иassets, иmodels и т.д. каталог.
  4. Настройка среды выполнения::
    • Убедитесь, что драйвер GPU и версия CUDA совместимы с PyTorch.
    • Перенесите модель и код на устройство с поддержкой CUDA, запустите программу pipe.to("cuda").

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

Основная функция InstantCharacter - генерировать изображения персонажей на основе эталонных изображений и текстовых подсказок. Ниже приведена подробная процедура:

1. Загрузка моделей и адаптеров

  • Используйте предоставленный pipeline.py Скрипт загружает базовую модель и адаптеры. Пример кода выглядит следующим образом:
    import torch
    from PIL import Image
    from pipeline import InstantCharacterFluxPipeline
    # 设置种子以确保可重复性
    seed = 123456
    # 加载基础模型
    base_model = 'black-forest-labs/FLUX.1-dev'
    ip_adapter_path = 'checkpoints/instantcharacter_ip-adapter.bin'
    image_encoder_path = 'google/siglip-so400m-patch14-384'
    image_encoder_2_path = 'facebook/dinov2-giant'
    # 初始化管道
    pipe = InstantCharacterFluxPipeline.from_pretrained(base_model, torch_dtype=torch.bfloat16)
    pipe.to("cuda")
    pipe.init_adapter(
    image_encoder_path=image_encoder_path,
    image_encoder_2_path=image_encoder_2_path,
    subject_ipadapter_cfg=dict(subject_ip_adapter_path=ip_adapter_path, nb_token=1024)
    )
    
  • Приведенный выше код загружает модель Flux.1 и IP-адаптер InstantCharacter, обеспечивая запуск модели на GPU.

2. Подготовка эталонных фотографий

  • Выберите изображение, содержащее символ (например. assets/girl.jpg), убедитесь, что фон простой (например, белый).
  • Загружает изображение и преобразует его в формат RGB:
    ref_image_path = 'assets/girl.jpg'
    ref_image = Image.open(ref_image_path).convert('RGB')
    

3. Генерация образов персонажей (без переноса стилей)

  • Используйте текстовые подсказки для создания изображений и установки параметров, таких как количество шагов вывода и шкала бутстрепа:
    prompt = "A girl is playing a guitar in street"
    image = pipe(
    prompt=prompt,
    num_inference_steps=28,
    guidance_scale=3.5,
    subject_image=ref_image,
    subject_scale=0.9,
    generator=torch.manual_seed(seed)
    ).images[0]
    image.save("flux_instantcharacter.png")
    
  • subject_scale Контролирует согласованность ролей, при этом меньшие значения благоприятствуют стилизации (например, 0,6 или 0,8).

4. Миграция стилей с помощью Style LoRA

  • InstantCharacter поддерживает стилизованные LoRA (например, в стиле Ghibli или Makoto Shinkai). Загружайте файлы LoRA и генерируйте стилизованные изображения:
    lora_file_path = 'checkpoints/style_lora/ghibli_style.safetensors'
    trigger = 'ghibli style'
    prompt = "A girl is playing a guitar in street"
    image = pipe.with_style_lora(
    lora_file_path=lora_file_path,
    trigger=trigger,
    prompt=prompt,
    num_inference_steps=28,
    guidance_scale=3.5,
    subject_image=ref_image,
    subject_scale=0.9,
    generator=torch.manual_seed(seed)
    ).images[0]
    image.save("flux_instantcharacter_style_ghibli.png")
    
  • взаимозаменяемость lora_file_path ответить пением trigger Возможность переключения между различными стилями (например. Makoto_Shinkai_style.safetensors).

5. Запустите интерфейс Gradio (необязательно)

  • Проект предоставляет интерфейс Gradio для удобного взаимодействия. Запустить app.py::
    python app.py
    
  • Откройте браузер для доступа к локальному адресу (например. http://127.0.0.1:7860), загрузите изображение и введите слово подсказки для создания изображения.

предостережение

  • Генерация персонажей животных может быть нестабильной, поэтому рекомендуется использовать изображения человеческих персонажей.
  • Для создания более высокого разрешения требуется больше памяти, рекомендуется использовать графические процессоры серии A100 или RTX 5000.
  • Загрузка модели может прерываться из-за проблем с сетью, поэтому рекомендуется использовать --resume-download Параметры.

 

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

  1. Анимация и кинопроизводство
    • Быстрое создание концепт-артов персонажей или раскадровок для сокращения цикла предварительной разработки. Пользователи могут загружать эскизы персонажей, вводить описания сцен (например, "персонаж бежит по лесу") и генерировать последовательные изображения для предварительного просмотра анимации или тестирования персонажей.
  2. разработка игр
    • Генерируйте многоракурсные, многодвигательные изображения для игровых персонажей. Разработчики загружают дизайн персонажей и генерируют спрайты с различными позами (например, "персонаж замахивается мечом") для использования в 2D или 3D игровых ресурсах.
  3. Создание цифрового искусства
    • Художники используют Style LoRA для создания художественных образов персонажей, например, реалистичных персонажей, преобразованных в стиле Ghibli, для использования в иллюстрациях или при создании NFT.
  4. Контент для социальных сетей
    • Пользователи загружают селфи, чтобы создать аватары в стиле аниме или анимированные сцены (например, "Танцую в одиночестве в фантастическом городе") для персонализированного контента в социальных сетях.

 

QA

  1. Какие модели поддерживает InstantCharacter?
    • В настоящее время поддерживается модель Flux.1, а в будущем она может быть расширена за счет других моделей преобразования текста в изображение с открытым исходным кодом.
  2. Какой объем видеопамяти необходим для работы?
    • Рекомендуемая память 48 Гб, оптимизированная для поддержки 24 Гб. Разрабатываются методы количественного анализа, позволяющие снизить требования к памяти.
  3. Как решить проблему с загрузкой модели?
    • Используйте зеркальный адрес "Обнимающееся лицо" или --resume-download параметры для обеспечения стабильности сети.
  4. Почему сгенерированные персонажи животных нестабильны?
    • В обучающих данных модели преобладают человеческие персонажи, а характеристики животных недостаточно оптимизированы, что позволяет использовать изображения человеческих персонажей.
  5. Есть ли он в продаже?
    • Текущая лицензия предназначена только для исследовательских целей. Для коммерческого использования требуется лицензия от Tencent.
© заявление об авторских правах

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

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

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