|
--- |
|
license: creativeml-openrail-m |
|
language: |
|
- en |
|
widget: |
|
- text: "1girl, fate" |
|
- text: "1boy, league of legends" |
|
- text: "1girl, genshin impact" |
|
- text: "1boy, national basketball association" |
|
- text: "1girl, spy x" |
|
- text: "1girl, absurdres" |
|
tags: |
|
- stable-diffusion |
|
- anime |
|
- anything-v4 |
|
- art |
|
datasets: |
|
- FredZhang7/anime-prompts-180K |
|
--- |
|
|
|
## Fast Anime PromptGen |
|
|
|
Trained on the 80K Safebooru prompts |
|
|
|
Todo: |
|
- complete data preprocessing and training description |
|
- upload Danbooru model |
|
|
|
## Text-to-image Examples |
|
|
|
Prefix *1girl* | [Generated *1girl* prompts](./anime_girl_settings.txt) | Model *Anything V4* |
|
|
|
![](./anime_girls.png) |
|
|
|
Prefix *1boy* | [Generated *1boy* prompts](./anime_boy_settings.txt) | Model *Anything V4* |
|
|
|
![](./anime_boys.png) |
|
|
|
## Greedy Search |
|
```python |
|
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') |
|
|
|
prompt = r'1girl, master piece,' |
|
|
|
# generate text using fine-tuned model |
|
nlp = pipeline('text-generation', model=model, tokenizer=tokenizer) |
|
|
|
# generate 10 samples using greedy search |
|
outs = nlp(prompt, max_length=76, num_return_sequences=10, do_sample=True, 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') |
|
``` |
|
|
|
Output Example: |
|
|
|
![](./greedy_search.png) |
|
|
|
|
|
## Tips |
|
|
|
- If you feel like a generated anime character doesn't show emotions, try emoticons like `;o`, `:o`, `;p`, `:d`, `:p`, and `;d` in the prompt. |
|
I often use `happy smirk`, `happy smile`, `laughing closed eyes`, etc. to make the characters more lively and expressive. |
|
|
|
- Adding `absurdres`, instead of `highres` and `masterpiece`, to a prompt tends to increase the sharpness of a generated image. |