[2024.04.18] - ???훈련코드와 데이터셋( AnyWord-3M ) 공개!
[2024.04.18] - SD1.5 기반의 모든 기본 모델과 LoRA 모델을 포함하여 자가 학습 모델이나 커뮤니티 모델의 가중치를 이제 AnyText에 병합할 수 있습니다. 재미있게 보내세요!
[2024.02.21] - 평가코드 및 데이터세트( AnyText-benchmark )가 공개되었습니다.
[2024.02.06] - 모두 설날 잘 보내세요! ModelScope와 HuggingFace에서 귀여운 밈 스티커를 만들 수 있는 재미있는 앱(表情包大师/MeMeMaster)을 출시했습니다. 와서 재미있게 즐겨보세요!
[2024.01.17] - ICLR 2024( Spotlight )에서 ?AnyText가 승인되었습니다!
[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 메모리 포함)가 있는 경우 사용 지침, 사용자 인터페이스 및 풍부한 예제가 포함된 아래와 같이 데모를 배포하는 것이 좋습니다.
export CUDA_VISIBLE_DEVICES=0 && python demo.py
FP16 추론이 기본으로 사용되며, 중국어 프롬프트 직접 입력을 위해 중국어-영어 번역 모델이 탑재됩니다(GPU 메모리 ~4GB 점유). 다음 명령을 사용하면 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을 열고 imgs 폴더의 자체 경로로 data_root
수정합니다. 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 폴더에서
,
및 gen_imgs_
세 파일을 해당 코드베이스의 루트 디렉터리로 복사하고 다음을 실행합니다.
bash gen_imgs_ < method > .sh
우리는 생성된 텍스트의 정확성을 평가하기 위해 Sentence Accuracy(Sen. ACC)와 Normalized Edit Distance(NED)를 사용합니다. 다음을 실행하세요:
bash eval/eval_ocr.sh
우리는 생성된 이미지의 품질을 평가하기 위해 FID 측정항목을 사용합니다. 다음을 실행하세요:
bash eval/eval_fid.sh
기존 방법에 비해 AnyText는 영어와 중국어 텍스트 생성 모두에서 상당한 이점을 가지고 있습니다.
코드를 재구성하고 평가 중인 각 메서드에 대한 구성을 추가로 정렬했습니다. 따라서 원 논문에 보고된 수치와 약간의 수치 차이가 있을 수 있습니다.
anytext
가상 환경을 생성하고 활성화하는 것이 좋습니다. 그렇지 않고 환경 종속성 또는 교육 문제가 발생하는 경우 environment.yaml
에 나열된 버전과 일치하는지 확인하세요.data_root
수정합니다.python tool_add_anytext.py
실행하여 사전 학습된 anytext 모델을 가져옵니다.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}
}