[2024.04.18] - ???Kode pelatihan dan kumpulan data ( AnyWord-3M ) dirilis!
[2024.04.18] - Anda dapat menggabungkan bobot dari model yang dilatih sendiri atau model komunitas ke dalam AnyText sekarang, termasuk semua model dasar dan model LoRA berdasarkan SD1.5. Selamat bersenang-senang!
[21.02.2024] - Kode evaluasi dan kumpulan data ( AnyText-benchmark ) dirilis.
[2024.02.06] - Selamat Tahun Baru Imlek semuanya! Kami telah meluncurkan aplikasi menyenangkan (表情包大师/MeMeMaster) di ModelScope dan HuggingFace untuk membuat stiker meme lucu. Datang dan bersenang-senanglah dengannya!
[2024.01.17] - ?AnyText telah diterima oleh ICLR 2024( Spotlight )!
[2024.01.04] - Inferensi FP16 tersedia, 3x lebih cepat! Sekarang demo dapat diterapkan pada GPU dengan memori >8GB. Menikmati!
[2024.01.04] - Demo HuggingFace Online tersedia di sini!
[28.12.2023] - Demo ModelScope Online tersedia di sini!
[27.12.2023] - ?Kami merilis pos pemeriksaan terbaru (v1.1) dan kode inferensi, periksa ModelScope dalam bahasa Mandarin.
[2023.12.05] - Makalahnya tersedia di sini.
Untuk mengetahui lebih banyak karya terkait AIGC di grup kami, silakan kunjungi di sini, dan kami sedang mencari kolaborator dan peneliti magang (Email kepada kami).
AnyText terdiri dari saluran difusi dengan dua elemen utama: modul laten tambahan dan modul penyematan teks. Yang pertama menggunakan input seperti mesin terbang teks, posisi, dan gambar bertopeng untuk menghasilkan fitur laten untuk pembuatan atau pengeditan teks. Yang terakhir menggunakan model OCR untuk menyandikan data guratan sebagai penyematan, yang menyatu dengan penyematan keterangan gambar dari tokenizer untuk menghasilkan teks yang terintegrasi secara mulus dengan latar belakang. Kami menggunakan kehilangan difusi kontrol teks dan kehilangan persepsi teks untuk pelatihan guna lebih meningkatkan akurasi penulisan.
# 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
[Rekomendasikan] : Kami merilis demo di ModelScope dan HuggingFace! Anda juga dapat mencoba AnyText melalui layanan API kami.
AnyText menyertakan dua mode: Pembuatan Teks dan Pengeditan Teks. Menjalankan kode sederhana di bawah ini untuk melakukan inferensi di kedua mode dan memverifikasi apakah lingkungan telah diinstal dengan benar.
python inference.py
Jika Anda memiliki GPU tingkat lanjut (dengan setidaknya memori 8G), disarankan untuk menerapkan demo kami seperti di bawah ini, yang mencakup instruksi penggunaan, antarmuka pengguna, dan banyak contoh.
export CUDA_VISIBLE_DEVICES=0 && python demo.py
Inferensi FP16 digunakan sebagai default, dan model terjemahan Bahasa Mandarin ke Bahasa Inggris dimuat untuk input langsung perintah Bahasa Mandarin (menggunakan ~4 GB memori GPU). Perilaku default dapat diubah, karena perintah berikut mengaktifkan inferensi FP32 dan menonaktifkan model terjemahan:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --use_fp32 --no_translator
Jika FP16 digunakan dan model terjemahan tidak digunakan (atau memuatnya pada CPU, lihat di sini), pembuatan satu gambar berukuran 512x512 akan menempati ~7,5 GB memori GPU.
Selain itu, file font lain dapat digunakan (meskipun hasilnya mungkin tidak maksimal):
export CUDA_VISIBLE_DEVICES=0 && python demo.py --font_path your/path/to/font/file.ttf
Anda juga dapat memuat pos pemeriksaan AnyText tertentu:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --model_path your/path/to/your/own/anytext.ckpt
Harap dicatat bahwa saat menjalankan inferensi untuk pertama kalinya, file model akan diunduh ke: ~/.cache/modelscope/hub
. Jika Anda perlu mengubah direktori unduhan, Anda dapat menentukan variabel lingkungan secara manual: MODELSCOPE_CACHE
.
Dalam demo ini, Anda dapat mengubah gaya selama inferensi dengan mengubah model dasar atau memuat model LoRA (harus berdasarkan SD1.5):
/path/of/lora1.pth 0.3 /path/of/lora2.safetensors 0.6
. Unduh kumpulan data benchmark AnyText dari ModelScope atau GoogleDrive dan ekstrak filenya. Dalam folder benchmark , laion_word dan wukong_word masing-masing adalah kumpulan data untuk evaluasi bahasa Inggris dan Mandarin. Buka setiap test1k.json dan ubah data_root
dengan jalur folder imgs Anda sendiri. Direktori FID berisi gambar yang digunakan untuk menghitung skor FID (Fréchet Inception Distance).
Sebelum evaluasi, kita perlu membuat gambar yang sesuai untuk setiap metode berdasarkan kumpulan evaluasi. Kami juga telah menyediakan gambar yang dibuat sebelumnya untuk semua metode. Ikuti petunjuk di bawah ini untuk menghasilkan gambar sendiri. Perhatikan bahwa Anda perlu mengubah jalur dan parameter lain di skrip bash.
bash ./eval/gen_imgs_anytext.sh
(Jika Anda mengalami kesalahan yang disebabkan oleh pemblokiran wajah pelukan, harap batalkan komentar pada baris 98 dari ./models_yaml/anytext_sd15.yaml, dan ganti jalur folder clip-vit-large-patch14 dengan yang lokal)
bash eval/gen_glyph.sh
Selanjutnya, harap kloning repositori resmi ControlNet , Textdiffuser , dan GlyphControl , dan ikuti dokumentasinya untuk menyiapkan lingkungan, mengunduh pos pemeriksaan masing-masing, dan memastikan bahwa inferensi dapat dijalankan secara normal. Kemudian, salin ketiga file
,
, dan gen_imgs_
dari folder ./eval ke direktori akar basis kode yang sesuai, dan jalankan:
bash gen_imgs_ < method > .sh
Kami menggunakan Akurasi Kalimat (Sen. ACC) dan Normalized Edit Distance (NED) untuk mengevaluasi keakuratan teks yang dihasilkan. Silakan jalankan:
bash eval/eval_ocr.sh
Kami menggunakan metrik FID untuk menilai kualitas gambar yang dihasilkan. Silakan jalankan:
bash eval/eval_fid.sh
Dibandingkan dengan metode yang ada, AnyText memiliki keunggulan signifikan dalam pembuatan teks berbahasa Inggris dan Mandarin.
Harap dicatat bahwa kami telah mengatur ulang kode dan menyelaraskan konfigurasi untuk setiap metode yang sedang dievaluasi. Akibatnya, mungkin terdapat sedikit perbedaan angka dibandingkan dengan yang dilaporkan dalam makalah asli.
anytext
dari instruksi sebelumnya, tempat versi perpustakaan diverifikasi. Jika tidak, jika Anda mengalami ketergantungan lingkungan atau masalah pelatihan, harap periksa apakah versi tersebut cocok dengan versi yang tercantum di environment.yaml
.data_root
dengan jalur folder imgs Anda sendiri untuk setiap subkumpulan data.python tool_add_anytext.py
untuk mendapatkan model anytext yang telah dilatih sebelumnya.python train.py
.Configs
dalam train.py, harap periksa dengan cermat. @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}
}