[2024.04.18] - ???訓練程式碼和資料集( AnyWord-3M )發布!
[2024.04.18] - 您現在可以將自訓練或社群模型的權重合併到 AnyText 中,包括所有基礎模型和基於 SD1.5 的 LoRA 模型。玩得開心!
[2024.02.21] - 發布評估代碼和資料集( AnyText-benchmark )。
[2024.02.06] - 祝大家新年快樂!我們在 ModelScope 和 HuggingFace 上推出了一個有趣的應用程式(表情包大師/MeMeMaster),用於創建可愛的 Meme 貼紙。快來享受它的樂趣吧!
[2024.01.17] - ?AnyText已被ICLR 2024( Spotlight )接收!
[2024.01.04] - FP16 推理可用,速度提高 3 倍!現在該演示可以部署在記憶體大於 8GB 的 GPU 上。享受!
[2024.01.04] - HuggingFace 線上展示現已推出!
[2023.12.28] - ModelScope 線上演示可在此處進行!
[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 的演示!您也可以透過我們的 API 服務嘗試 AnyText。
AnyText 包含兩種模式:文字產生和文字編輯。運行下面的簡單程式碼,在兩種模式下進行推理,驗證環境是否安裝正確。
python inference.py
如果您有高級GPU(至少8G記憶體),建議部署我們的demo,如下所示,其中包括使用說明、使用者介面和豐富的範例。
export CUDA_VISIBLE_DEVICES=0 && python demo.py
預設使用FP16推理,載入漢英翻譯模型,直接輸入中文提示(佔用~4GB GPU記憶體)。可以修改預設行為,因為以下命令啟用 FP32 推理並停用轉換模型:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --use_fp32 --no_translator
如果使用 FP16 且不使用翻譯模型(或將其載入到 CPU 上,請參閱此處),產生 512x512 映像將佔用約 7.5GB 的 GPU 記憶體。
此外,還可以使用其他字體檔案(儘管結果可能不是最佳的):
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
。 從 ModelScope 或 GoogleDrive 下載 AnyText 基準資料集並解壓縮檔案。 benchmark資料夾中, laion_word和wukong_word分別是英文和中文評估的資料集。開啟每個test1k.json並將data_root
修改為您自己的imgs資料夾路徑。 FID目錄包含用於計算 FID(Fréchet Inception Distance)分數的圖片。
在評估之前,我們需要根據評估集產生每種方法對應的影像。我們還為所有方法提供了預先生成的圖像。請按照以下說明自行產生圖像。請注意,您需要相應地修改 bash 腳本中的路徑和其他參數。
bash ./eval/gen_imgs_anytext.sh
(如果遇到huggingface被封鎖導致的錯誤,請取消./models_yaml/anytext_sd15.yaml第98行註釋,並將clip-vit-large-patch14資料夾路徑替換為本機路徑)
bash eval/gen_glyph.sh
接下來,請複製ControlNet 、 Textdiffuser和GlyphControl的官方儲存庫,並按照其文件設定環境,下載各自的檢查點,並確保推理能夠正常執行。然後,將./eval資料夾中的<method>_singleGPU.py
、 <method>_multiGPUs.py
、 gen_imgs_<method>.sh
三個檔案複製到對應程式碼庫的根目錄下,然後執行:
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
。python tool_add_anytext.py
以獲得任意文字預訓練模型。python train.py
。Configs
中找到,請仔細查看。 @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}
}