[2024.04.18] - ???Выпущен обучающий код и набор данных ( AnyWord-3M )!
[2024.04.18] — Теперь вы можете объединять веса самообучаемых или общественных моделей в AnyText, включая все базовые модели и модели LoRA, основанные на SD1.5. Веселиться!
[2024.02.21] — Выпущены оценочный код и набор данных ( AnyText-benchmark ).
[2024.02.06] - Всех с лунным Новым годом! Мы запустили забавное приложение (表情包大师/MeMeMaster) на ModelScope и HuggingFace для создания милых стикеров-мемов. Приходите и получайте удовольствие!
[2024.01.17] - ?AnyText принят ICLR 2024( Spotlight )!
[2024.01.04] - Доступен вывод FP16, в 3 раза быстрее! Теперь демо-версию можно развернуть на графическом процессоре с памятью >8 ГБ. Наслаждаться!
[2024.01.04] - Демо-версия HuggingFace Online доступна здесь!
[2023.12.28] - Демо-версия ModelScope Online доступна здесь!
[2023.12.27] - ?Мы выпустили последнюю контрольную точку (v1.1) и код вывода, проверьте ModelScope на китайском языке.
[2023.12.05] - Статья доступна здесь.
Чтобы узнать больше о работах нашей группы, связанных с AIGC, посетите здесь, и мы ищем сотрудников и стажеров-исследователей (напишите нам).
AnyText состоит из конвейера распространения с двумя основными элементами: вспомогательным скрытым модулем и модулем встраивания текста. Первый использует такие входные данные, как текстовый глиф, положение и замаскированное изображение, для создания скрытых функций для генерации или редактирования текста. Последний использует модель OCR для кодирования данных штрихов в качестве вложений, которые смешиваются с встраиваниями подписей изображений из токенизатора для создания текста, который легко интегрируется с фоном. Мы использовали диффузионную потерю контроля над текстом и потерю восприятия текста для обучения, чтобы еще больше повысить точность письма.
# Install git (skip if already done)
conda install -c anaconda git
# Clone anytext code
git clone https://github.com/tyxsspa/AnyText.git
cd AnyText
# Prepare a font file; Arial Unicode MS is recommended, **you need to download it on your own**
mv your/path/to/arialuni.ttf ./font/Arial_Unicode.ttf
# Create a new environment and install packages as follows:
conda env create -f environment.yaml
conda activate anytext
[Рекомендуем] : Мы выпускаем демо-версию на ModelScope и HuggingFace! Вы также можете попробовать AnyText через наш сервис API.
AnyText включает два режима: создание текста и редактирование текста. Запуск простого кода ниже для выполнения вывода в обоих режимах и проверки правильности установки среды.
python inference.py
Если у вас продвинутый графический процессор (с памятью не менее 8 ГБ), рекомендуется развернуть нашу демонстрационную версию, как показано ниже, которая включает инструкции по использованию, пользовательский интерфейс и множество примеров.
export CUDA_VISIBLE_DEVICES=0 && python demo.py
По умолчанию используется вывод FP16, а для прямого ввода китайской подсказки загружается модель перевода с китайского на английский (занимает ~4 ГБ памяти графического процессора). Поведение по умолчанию можно изменить, поскольку следующая команда включает вывод FP32 и отключает модель перевода:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --use_fp32 --no_translator
Если используется FP16 и не используется модель трансляции (или загрузить ее в процессор, см. здесь), генерация одного изображения размером 512x512 будет занимать ~7,5 ГБ памяти графического процессора.
Кроме того, можно использовать другой файл шрифта (хотя результат может быть не оптимальным):
export CUDA_VISIBLE_DEVICES=0 && python demo.py --font_path your/path/to/font/file.ttf
Вы также можете загрузить указанную контрольную точку AnyText:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --model_path your/path/to/your/own/anytext.ckpt
Обратите внимание , что при первом выполнении вывода файлы модели будут загружены в: ~/.cache/modelscope/hub
. Если вам нужно изменить каталог загрузки, вы можете вручную указать переменную среды: MODELSCOPE_CACHE
.
В этой демонстрации вы можете изменить стиль во время вывода, изменив базовую модель или загрузив модели LoRA (должны быть основаны на SD1.5):
/path/of/lora1.pth 0.3 /path/of/lora2.safetensors 0.6
. Загрузите набор данных бенчмарка AnyText из ModelScope или GoogleDrive и разархивируйте файлы. В папке тестов laion_word и wukong_word представляют собой наборы данных для оценки на английском и китайском языках соответственно. Откройте каждый файл test1k.json и измените data_root
, указав свой собственный путь к папке imgs . Каталог FID содержит изображения, которые используются для расчета оценки FID (начальное расстояние по Фреше).
Перед оценкой нам необходимо сгенерировать соответствующие изображения для каждого метода на основе набора оценок. Мы также предоставили предварительно сгенерированные изображения для всех методов. Следуйте инструкциям ниже, чтобы создавать изображения самостоятельно. Обратите внимание, что вам необходимо соответствующим образом изменить пути и другие параметры в сценарии bash.
bash ./eval/gen_imgs_anytext.sh
(Если вы столкнулись с ошибкой, вызванной блокировкой HuggingFace, раскомментируйте строку 98 из ./models_yaml/anytext_sd15.yaml и замените путь к папке clip-vit-large-patch14 на локальный)
bash eval/gen_glyph.sh
Затем клонируйте официальные репозитории ControlNet , Textdiffuser и GlyphControl и следуйте их документации, чтобы настроить среду, загрузить соответствующие контрольные точки и убедиться, что вывод может выполняться нормально. Затем скопируйте три файла
,
и gen_imgs_
из папки ./eval в корневой каталог соответствующих баз кода и запустите:
bash gen_imgs_ < method > .sh
Мы используем точность предложения (Sen. ACC) и нормализованное расстояние редактирования (NED) для оценки точности сгенерированного текста. Пожалуйста, запустите:
bash eval/eval_ocr.sh
Мы используем метрику FID для оценки качества создаваемых изображений. Пожалуйста, запустите:
bash eval/eval_fid.sh
По сравнению с существующими методами AnyText имеет значительное преимущество при генерации текста как на английском, так и на китайском языке.
Обратите внимание, что мы реорганизовали код и дополнительно согласовали конфигурацию для каждого оцениваемого метода. В результате могут быть незначительные численные различия по сравнению с теми, которые указаны в исходной статье.
anytext
из предыдущих инструкций, где проверяются версии библиотек. В противном случае, если вы столкнулись с зависимостью от среды или проблемой обучения, проверьте, соответствует ли она версиям, указанным в environment.yaml
.data_root
, указав свой собственный путь к папке imgs для каждого поднабора данных.python tool_add_anytext.py
чтобы получить предварительно обученную модель произвольного текста.python train.py
.Configs
train.py, проверьте внимательно. @article{tuo2023anytext,
title={AnyText: Multilingual Visual Text Generation And Editing},
author={Yuxiang Tuo and Wangmeng Xiang and Jun-Yan He and Yifeng Geng and Xuansong Xie},
year={2023},
eprint={2311.03054},
archivePrefix={arXiv},
primaryClass={cs.CV}
}