[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 عبر الإنترنت متاح هنا!
[2023.12.28] - العرض التجريبي لـ ModelScope عبر الإنترنت متاح هنا!
[2023.12.27] - لقد أصدرنا أحدث نقطة تفتيش (الإصدار 1.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
إذا كان لديك وحدة معالجة رسومات متقدمة (مع ذاكرة 8G على الأقل)، فمن المستحسن نشر العرض التوضيحي الخاص بنا على النحو التالي، والذي يتضمن تعليمات الاستخدام وواجهة المستخدم وأمثلة وفيرة.
export CUDA_VISIBLE_DEVICES=0 && python demo.py
يتم استخدام استنتاج FP16 كإعداد افتراضي، ويتم تحميل نموذج ترجمة من الصينية إلى الإنجليزية للإدخال المباشر للموجه الصيني (يشغل حوالي 4 جيجابايت من ذاكرة وحدة معالجة الرسومات). يمكن تعديل السلوك الافتراضي، حيث يعمل الأمر التالي على تمكين استنتاج FP32 وتعطيل نموذج الترجمة:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --use_fp32 --no_translator
إذا تم استخدام FP16 ولم يتم استخدام نموذج الترجمة (أو تحميله على وحدة المعالجة المركزية، انظر هنا)، فإن إنشاء صورة واحدة مقاس 512 × 512 سيشغل حوالي 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-benchmark من ModelScope أو GoogleDrive وقم بفك ضغط الملفات. في المجلد المعياري ، تعد laion_word و wukong_word مجموعتي بيانات للتقييم باللغة الإنجليزية والصينية، على التوالي. افتح كل test1k.json وقم بتعديل data_root
باستخدام المسار الخاص بك لمجلد imgs . يحتوي دليل FID على الصور المستخدمة لحساب درجة FID (Fréchet Inception Distance).
قبل التقييم، نحتاج إلى إنشاء صور مقابلة لكل طريقة بناءً على مجموعة التقييم. لقد قدمنا أيضًا صورًا تم إنشاؤها مسبقًا لجميع الطرق. اتبع الإرشادات أدناه لإنشاء الصور بنفسك. لاحظ أنك تحتاج إلى تعديل المسارات والمعلمات الأخرى في البرنامج النصي 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 ، واتباع وثائقها لإعداد البيئة، وتنزيل نقاط التفتيش المعنية، والتأكد من إمكانية تنفيذ الاستدلال بشكل طبيعي. بعد ذلك، انسخ الملفات الثلاثة <method>_singleGPU.py
و <method>_multiGPUs.py
و gen_imgs_<method>.sh
من المجلد ./eval إلى الدليل الجذر لقواعد التعليمات البرمجية المقابلة، وقم بتشغيل:
bash gen_imgs_ < method > .sh
نحن نستخدم دقة الجملة (Sen. ACC) ومسافة التحرير الطبيعية (NED) لتقييم دقة النص الذي تم إنشاؤه. يرجى تشغيل:
bash eval/eval_ocr.sh
نحن نستخدم مقياس FID لتقييم جودة الصور التي تم إنشاؤها. يرجى تشغيل:
bash eval/eval_fid.sh
بالمقارنة مع الأساليب الحالية، يتمتع AnyText بميزة كبيرة في إنشاء النصوص باللغتين الإنجليزية والصينية. يرجى ملاحظة أننا قمنا بإعادة تنظيم الكود وقمنا بمواءمة التكوين لكل طريقة قيد التقييم. ونتيجة لذلك، قد تكون هناك اختلافات عددية طفيفة مقارنة بتلك المذكورة في الورقة الأصلية.
anytext
من التعليمات السابقة، حيث يتم التحقق من إصدارات المكتبات. بخلاف ذلك، إذا واجهت مشكلة تتعلق بالتبعية البيئية أو التدريب، فيرجى التحقق مما إذا كانت تتوافق مع الإصدارات المدرجة في environment.yaml
.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}
}