模型:
FredZhang7/anime-anything-promptgen-v2
该模型是在三个时期的训练数据集上训练的,其中包含80,000个安全的动漫提示。我从 Safebooru API endpoint 获取了这些提示,但只接受up_score≥8且没有任何被列入黑名单的标签的唯一提示。我没有发布V1模型,因为它经常生成无意义的提示。在尝试了所有方法来纠正这种行为之后,我最终发现导致无意义提示的原因并不是来自于管道参数、模型结构或训练持续时间,而是来自训练数据中的随机用户名。以下是完整的提示预处理算法。
前缀1girl | 生成的1girl提示 | 模型Anything V4
前缀1boy | 生成的1boy提示 | 模型Anything V4
pip install --upgrade transformers
import torch from transformers import GPT2Tokenizer, GPT2LMHeadModel, pipeline tokenizer = GPT2Tokenizer.from_pretrained('distilgpt2') tokenizer.add_special_tokens({'pad_token': '[PAD]'}) model = GPT2LMHeadModel.from_pretrained('FredZhang7/anime-anything-promptgen-v2') prompt = r'1girl, genshin' # generate text using fine-tuned model nlp = pipeline('text-generation', model=model, tokenizer=tokenizer) # generate 10 samples using contrastive search outs = nlp(prompt, max_length=76, num_return_sequences=10, do_sample=True, repetition_penalty=1.2, temperature=0.7, top_k=4, early_stopping=True) print('\nInput:\n' + 100 * '-') print('\033[96m' + prompt + '\033[0m') print('\nOutput:\n' + 100 * '-') for i in range(len(outs)): # remove trailing commas and double spaces outs[i] = str(outs[i]['generated_text']).replace(' ', '').rstrip(',') print('\033[92m' + '\n\n'.join(outs) + '\033[0m\n')
输出示例:
有关管道参数的更多信息,请参阅 Fast GPT PromptGen 。
如果你觉得生成的动漫角色没有表达情感,尝试在提示中加入表情符号,如;o,:o,;p,:d,:p和;d。我也使用happy smirk、happy smile、laughing closed eyes等来使角色更有生气和富有表现力。
将absurdres添加到提示中,而不是highres和masterpiece,可以显著提高生成图像的清晰度和分辨率。