初始化项目,由ModelHub XC社区提供模型

Model: FredZhang7/anime-anything-promptgen-v2
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-08-01 08:49:17 +08:00
commit ad6442f992
13 changed files with 248 additions and 0 deletions

37
.gitattributes vendored Normal file
View File

@@ -0,0 +1,37 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.ckpt filter=lfs diff=lfs merge=lfs -text
*.ftz filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.h5 filter=lfs diff=lfs merge=lfs -text
*.joblib filter=lfs diff=lfs merge=lfs -text
*.lfs.* filter=lfs diff=lfs merge=lfs -text
*.mlmodel filter=lfs diff=lfs merge=lfs -text
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.ot filter=lfs diff=lfs merge=lfs -text
*.parquet filter=lfs diff=lfs merge=lfs -text
*.pb filter=lfs diff=lfs merge=lfs -text
*.pickle filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.safetensors filter=lfs diff=lfs merge=lfs -text
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.tar.* filter=lfs diff=lfs merge=lfs -text
*.tflite filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.wasm filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
anime_boy.png filter=lfs diff=lfs merge=lfs -text
anime_girls.png filter=lfs diff=lfs merge=lfs -text
anime_boys.png filter=lfs diff=lfs merge=lfs -text

82
README.md Normal file
View File

@@ -0,0 +1,82 @@
---
license: creativeml-openrail-m
language:
- en
widget:
- text: 1girl, fate
- text: 1boy, league of
- text: 1girl, genshin
- text: 1boy, national basketball association
- text: 1girl, spy x
- text: 1girl, absurdres
tags:
- stable-diffusion
- anime
- anything-v4
- art
- arxiv:2210.14140
datasets:
- FredZhang7/anime-prompts-180K
---
## Fast Anime PromptGen
This model was trained on a dataset of **80,000** safe anime prompts for 3 epochs. I fetched the prompts from the [Safebooru API endpoint](https://safebooru.donmai.us/posts/random.json), but only accepted unique prompts with **up_score ≥ 8** and without any [blacklisted tags](./blacklist.txt).
I didn't release the V1 model because it often generated gibberish prompts. After trying all means to correct that behavior, I eventually figured that the cause of the gibberish prompts is not from the pipeline params, model structure or training duration, but rather from the random usernames in the training data.
Here's the complete [prompt preprocessing algorithm](./preprocess.py).
## 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)
## Contrastive Search
```
pip install --upgrade transformers
```
```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-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')
```
Output Example:
![](./contrastive_search.png)
Please see [Fast GPT PromptGen](https://huggingface.co/FredZhang7/distilgpt2-stable-diffusion-v2) for more info on the pipeline parameters.
## Awesome 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 also 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 can drastically increase the sharpness and resolution of a generated image.
## Danbooru
[Link to the Danbooru version](https://huggingface.co/FredZhang7/danbooru-tag-generator)

13
anime_boy_settings.txt Normal file
View File

@@ -0,0 +1,13 @@
From left to right:
1boy, league of legends, absurdres, bangs, black gloves, black jacket, black pants, blue eyes, blue hair, blunt bangs, laughing, collared shirt, commentary request, earrings, gloves, hair ornament, highres, holding, holding sword, holding weapon, jacket, jewelry, long sleeves, looking at viewer, male focus
1boy, absurdres, fate/grand order, fate series, from side, holding, holding sword, holding weapon, jeanne d'arc alter avenger fate, jeanne d'arc alter fate, male focus, red eyes, solo, sword, weapon, white hair, yamamoto souichirou fate, yamamoto souichirou third ascension fate
1boy, absurdres, spy x family, spy x family cosplay, eden academy school uniform, happy smile, green eyes, green hair, green jacket, jacket, looking at viewer, male child, makima kenji, mamimu ko cha, mamimu ko cha cosplay, school uniform, short hair, solo
Global negative prompt:
ugly, morbid, (extra too many fingers), (missing finger), (extra digits), (fewer digits), (bad poorly drawn eyes), (error), (extra many limbs), (missing limbs), (bad anatomy), ((bad proportions)), fingerless, lowres

3
anime_boys.png Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2f9ec75966d59c78788f1fa9d87eac14efa3760d8b7826b6194d9dac6f2a475c
size 2619406

15
anime_girl_settings.txt Normal file
View File

@@ -0,0 +1,15 @@
Left to right:
1girl, animal ears, genshin impact, black jacket, smile, blush, brown hair, cat ears, cat girl, cat tail, closed mouth, commentary request, cropped torso, grey background, hair between eyes, halo, highres, jacket, looking at viewer, medium hair, naga u, red eyes, short sleeves, masterpiece, absurdres
1girl, absurdres, ahoge, symbol-shaped pupils, black gloves, black hair, black pants, black shirt, blue eyes, blue hair, blush, :d, collared shirt, commentary request, crossed bangs, gloves, hair between eyes, hair ornament, holding, holding umbrella, karakai jouzu no takagi-san
1girl, absurdres, blonde hair, blue eyes, blush, bow, bowtie, brown headwear, brown jacket, happy laughing, commentary request, cowboy shot, cropped legs, dress, hair ribbon, hand on hip, hat, highres, jacket, kantai collection, long hair, long sleeves, looking at viewer, military uniform, red bow, masterpiece
Negative prompts:
ugly, morbid, (extra too many fingers), (missing finger), (extra digits), (fewer digits), (bad poorly drawn eyes), (error), (extra many limbs), (missing limbs), (bad anatomy), ((bad proportions)), fingerless, lowres
ugly, morbid, ((extra many fused fingers)), ((fewer finger)), ((extra digits)), ((fewer digits)), (bad poorly drawn eyes), ((error)), (extra many limbs), (missing limbs), (bad anatomy), ((bad proportions)), artifact, fingerless, lowres, (white background)

3
anime_girls.png Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cb2a05f20d9733870aeae00bd80eb3578bf33ce5a067520e3cf2051f5b5f6848
size 2847167

4
blacklist.txt Normal file
View File

@@ -0,0 +1,4 @@
greyscale
girls
boys
others

51
config.json Normal file
View File

@@ -0,0 +1,51 @@
{
"_name_or_path": "./config.json",
"_num_labels": 1,
"activation_function": "gelu_new",
"architectures": [
"GPT2LMHeadModel"
],
"attn_pdrop": 0.1,
"bos_token_id": 50256,
"embd_pdrop": 0.1,
"eos_token_id": 50256,
"id2label": {
"0": "LABEL_0"
},
"initializer_range": 0.02,
"label2id": {
"LABEL_0": 0
},
"layer_norm_epsilon": 1e-05,
"model_type": "gpt2",
"n_ctx": 1024,
"n_embd": 768,
"n_head": 12,
"n_inner": null,
"n_layer": 6,
"n_positions": 1024,
"pad_token_id": 50256,
"reorder_and_upcast_attn": false,
"resid_pdrop": 0.1,
"scale_attn_by_inverse_layer_idx": false,
"scale_attn_weights": true,
"summary_activation": null,
"summary_first_dropout": 0.1,
"summary_proj_to_labels": true,
"summary_type": "cls_index",
"summary_use_proj": true,
"task_specific_params": {
"text-generation": {
"do_sample": true,
"max_length": 76,
"temperature": 0.9,
"top_k": 4,
"repetition_penalty": 1.2,
"early_stopping": true
}
},
"torch_dtype": "float32",
"transformers_version": "4.25.1",
"use_cache": true,
"vocab_size": 50257
}

BIN
contrastive_search.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

3
model.safetensors Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:18a5e421b52645ad0ce9a9e262a58eaff4d746d8f582f12f81efe2a21ffe98b2
size 333950622

33
preprocess.py Normal file
View File

@@ -0,0 +1,33 @@
import re
def clean_tags(tags):
# Make tags more human readable
tags = tags.replace(' ', ', ').replace('_', ' ')
# Remove "!", "?", ".", "(", ")" from the tags
tags = re.sub(r"[!.?()]", "", tags)
# Replace " , " with an empty space
tags = re.sub(r" , ", " ", tags)
# Remove any trailing commas
tags = re.sub(r"^,|,$", "", tags)
# Strip spaces
tags = tags.strip()
# Remove any usernames
words = tags.split(", ")
result = []
for word in words:
word = word.strip()
if word == 'v':
result.append(word)
continue
if len(word) < 2:
continue
if any(char.isdigit() for char in word) and word not in ["1girl", "1boy", "1koma", "1other"]:
continue
result.append(word)
return ", ".join(result)

3
pytorch_model.bin Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:061e5bd556a86320d4364b00da9da3e16eab22983880164e16d167d1ab818c75
size 333969117

1
tokenizer.json Normal file

File diff suppressed because one or more lines are too long