토크나이징이 올바르게 되지 않습니다.
#1
by
noowad
- opened
좋은 모델 공유해주셔서 감사합니다.
README.md와 동일하게 실행을 해보려고 하니 제대로된 이미지가 생성되지 않아 확인을 해본 결과, 토크나이저에 문제가 있는것 같아요.
repo = "Bingsu/my-korean-stable-diffusion-v1-5"
euler_ancestral_scheduler = EulerAncestralDiscreteScheduler.from_config(repo, subfolder="scheduler")
pipeline = StableDiffusionPipeline.from_pretrained(
repo, scheduler=euler_ancestral_scheduler, torch_dtype=torch.float16, safety_checker=None
).to("cuda")
pipeline.tokenizer.tokenize("고양이")
>>
['áĦ',
'Ģ',
'á',
'ħ',
'©',
'áĦ',
'ĭ',
'á',
'ħ',
'£',
'áĨ',
'¼',
'áĦ',
'ĭ',
'á',
'ħ',
'µ</w>']
와 같이 토크나이징이 되는데, 올려주신 또다른 CLIP 모델의 토크나이저를 사용하면 올바르게 토크나이징이 되고 알맞은 이미지가 생성됩니다.
import requests
import torch
from PIL import Image
from transformers import AutoModel, AutoProcessor
repo = "Bingsu/clip-vit-large-patch14-ko"
model = AutoModel.from_pretrained(repo)
processor = AutoProcessor.from_pretrained(repo)
pipeline.tokenizer=processor.tokenizer
pipeline.tokenizer.tokenize("고양이")
>>
['ê³łìĸijìĿ´</w>']
제 예상으로는 원 CLIP 모델의 PretrainedTokenizerFast를 PretrainedTokenizer로 변환하는 과정에서 문제가 생긴 것 같아요.
감사합니다.
try:
import ftfy
self.fix_text = ftfy.fix_text
except ImportError:
logger.warning("ftfy or spacy is not installed using BERT BasicTokenizer instead of ftfy.")
self.nlp = BasicTokenizer(do_lower_case=True)
self.fix_text = None
ftfy
를 설치해주세요. 여기서 동작에 차이가 생기네요.
pipe.tokenizer.tokenize("고양이")
['áĦ',
'Ģ',
'á',
'ħ',
'©',
'áĦ',
'ĭ',
'á',
'ħ',
'£',
'áĨ',
'¼',
'áĦ',
'ĭ',
'á',
'ħ',
'µ</w>']
!pip install ftfy
pipe.tokenizer.tokenize("고양이")
['ê³łìĸijìĿ´</w>']
아 그렇군요 ftfy를 설치안한 환경에서 실행해서 저런 결과가 나왔나보네요 감사합니다!
noowad
changed discussion status to
closed
CLIPTokenzierFast
를 기본값으로 바꿨으니, 이제 ftfy
는 설치 안해도 될거에요.