[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 폴더에서 <method>_singleGPU.py
, <method>_multiGPUs.py
및 gen_imgs_<method>.sh
세 파일을 해당 코드베이스의 루트 디렉터리로 복사하고 다음을 실행합니다.
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}
}