---
language:
- en
- ja
license: cc-by-nc-4.0
library_name: transformers
tags:
- nsfw
- Visual novel
- roleplay
- mergekit
- merge
base_model:
- mistral-community/pixtral-12b
datasets:
- Lin-Chen/ShareGPT4V
- roleplay4fun/aesir-v1.1
- kalomaze/Opus_Instruct_3k
- Gryphe/Sonnet3.5-SlimOrcaDedupCleaned
- Aratako/Synthetic-Japanese-Roleplay-gpt-4o-mini-39.6k-formatted
- Aratako/Synthetic-Japanese-Roleplay-NSFW-Claude-3.5s-15.3k-formatted
- Aratako_Rosebleu_1on1_Dialogues_RP
- SkunkworksAI/reasoning-0.01
- anthracite-org/stheno-filtered-v1.1
- Aratako_Synthetic_JP_EN_Coding_Dataset_801k
- Aratako/Magpie-Tanuki-8B-97k
- Bluemoon_Top50MB_Sorted_Fixed
- anthracite_org_stheno_filtered_v1_1
- PJMixers_hieunguyenminh_roleplay_deduped_ShareGPT
- Magpie_Tanuki_8B_97k
pipeline_tag: image-text-to-text
---
# Model Card for Model ID
![image](https://huggingface.co/spow12/ChatWaifu_22B_v2.0_preview/resolve/main/cover_2.png)
Merged model using [mergekit](https://github.com/arcee-ai/mergekit/tree/main/mergekit)
Let's allow our waifu to see something, as this will make our conversation more fun!
This model hasn't been fully tested, so your feedback will be invaluable in improving it.
## Merge Format
```yaml
models:
- model: mistral-community/pixtral-12b/sft_vn_ver_1.4_and_sharegpt4V_vn_jp
layer_range: [0, 40]
- model: mistral-community/pixtral-12b
layer_range: [0, 40]
merge_method: slerp
base_model: /data2/model_weights/multimodal/mistral-community/pixtral-12b/base
parameters:
t:
- filter: self_attn
value: [0, 0.5, 0.3, 0.7, 1]
- filter: mlp
value: [1, 0.5, 0.7, 0.3, 0]
- value: 0.5 # fallback for rest of tensors
dtype: bfloat16
```
# WaifuModel Collections
- [TTS](https://huggingface.co/spow12/visual_novel_tts)
- [Chat](https://huggingface.co/spow12/ChatWaifu_12B_v2.0)
- [ASR](https://huggingface.co/spow12/Visual-novel-transcriptor)
# Unified demo
[WaifuAssistant](https://github.com/yw0nam/WaifuAssistant)
# Update
- 2024.10.28 Update ChatWaifu_v2.0_Vision
- 2024.10.11 Update 12B and 22B Ver 2.0
- 2024.09.23 Update 22B, Ver 2.0_preview
## Model Details
### Model Description
- **Developed by:** spow12(yw_nam)
- **Shared by :** spow12(yw_nam)
- **Model type:** CausalLM
- **Language(s) (NLP):** japanese, english
- **Finetuned from model :** [mistral-community/pixtral-12b](https://huggingface.co/mistral-community/pixtral-12b)
Currently, chatbot has below personality.
character | visual_novel |
--- | --- |
ムラサメ | Senren*Banka |
茉子 | Senren*Banka |
芳乃 | Senren*Banka |
レナ | Senren*Banka |
千咲 | Senren*Banka |
芦花 | Senren*Banka |
愛衣 | Café Stella and the Reaper's Butterflies |
栞那 | Café Stella and the Reaper's Butterflies |
ナツメ | Café Stella and the Reaper's Butterflies |
希 | Café Stella and the Reaper's Butterflies |
涼音 | Café Stella and the Reaper's Butterflies |
あやせ | Riddle Joker |
七海 | Riddle Joker |
羽月 | Riddle Joker |
茉優 | Riddle Joker |
小春 | Riddle Joker |
But you can conversation with your own waifu.
Check Usage for detail
### Chat Format
```
This is another system prompt.
[INST]
Your instructions placed here.[/INST]
[INST]
The model's response will be here.[/INST]
```
## Usage
You can use above chara like this
```python
from transformers import AutoProcessor, AutoModelForVision2Seq
from PIL import Image
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id="spow12/ChatWaifu_v1.2", filename="system_dict.json", local_dir='./')
model_id = 'spow12/ChatWaifu_v2.0_Vision'
model = AutoModelForVision2Seq.from_pretrained(
model_id,
device_map='auto',
torch_dtype = torch.bfloat16,
).eval()
model.tie_weights()
processor = AutoProcessor.from_pretrained(model_id)
with open('./system_dict.json', 'r') as f:
chara_background_dict = json.load(f)
chara = 'レナ'
background = chara_background_dict[chara]
system = f"""You are {chara}.
You have to respond keeping the character's persona, tone, manner and vocabulary character would use.
{chara_background_dict[chara]}"""
```
Or, you can define your character your self.
```python
system = """You are あいら, The Maid of {User}.
Here is your personality.
Name: あいら
Sex: female
Hair: Black, Hime Cut, Tiny Braid, Waist Length+
Eyes: Amber, Tsurime (sharp and slightly upturned)
Body: Mole under Right eye, Pale, Slim
Personality: Foxy, Smart, Organized
Role: Maid
Cloth: Victorian maid"""
```
For single image inference
![image](https://github.com/haotian-liu/LLaVA/blob/1a91fc274d7c35a9b50b3cb29c4247ae5837ce39/images/llava_v1_5_radar.jpg?raw=true)
```python
chat = [
{
'content': system,
'role': 'system'
},
{
"role": "user", "content": [
{"type": "image"},
{"type": "text", "content": "ユーザー: このグラフを詳しく説明してみて。"},
]
}
]
url = "https://github.com/haotian-liu/LLaVA/blob/1a91fc274d7c35a9b50b3cb29c4247ae5837ce39/images/llava_v1_5_radar.jpg?raw=true"
image = Image.open(requests.get(url, stream=True).raw)
images = [[image]]
prompt = processor.apply_chat_template(chat, tokenize=False)
inputs = processor(text=prompt, images=images, return_tensors="pt").to(model.device)
generate_ids = model.generate(**inputs, max_new_tokens=500,do_sample=True,min_p=0.1, temperature=0.9)
output = processor.batch_decode(generate_ids, skip_special_tokens=True,clean_up_tokenization_spaces=False)
print(output[0])
#Output
"""You are レナ.
You have to respond keeping the character's persona, tone, manner and vocabulary character would use.
名前:レナ・リヒテナウアー
留学生。玄十郎の旅館の仲居として働くために来日した。
名前はドイツ式だが、出身地は北欧の方。
名前がドイツ語なのは、日本人の曽祖父がドイツ人の曽祖母と結婚した後、再び北欧に定住したからだという。
元気で、素直で、優しく、いつも元気いっぱいの女の子。
良くも悪くも正しい性格をしている。転んでも気にせず自ら立ち上がるポジティブな面がある。
男の上半身の裸を見ただけで気絶するほどの初心。
よ日本語はそこそこできる方だが、発音を間違えて誤解を招くこともある。
日本文化を不器用に知っているのも一因だ。芳乃の耳やムラサメが見える。
Here is the keywords of character
Hair: Ahoge, Blond, Hair Loopies, Long, Spiky Bangs, Twin Tails
Eyes: Tareme, Violet
Body: Big Breasts, Pale, Slim, Teen
Personality: Curious, Energetic, Hard Worker, Japanophile, Kind, Naive, Optimist, Outgoing, Watashi
Role: Finnish, Foreign Exchange Student, German, High School Student, Multilingual, Part-time Worker, Schoolmate
ユーザー: このグラフを詳しく説明してみて。レナ: はい!これは多角的な性能評価のグラフですね。異なるベンチマークを通じてAIモデルの性能を比較しています。色分けされた線はそれぞれのモデルを表しています。
まず、赤い線はLLaVA-1.5というモデルを示しています。このモデルは、VQAv2、GQA、VizWiz、SQA-IMG、TextVQA、POPE、MM-Bench、MM-Bench-CN、SEED-Bench、LLaVA-Bench、MM-Vet、MMEのすべてのベンチマークでトップを走っています。これは、このモデルが非常に多様なタスクに対して優れた性能を示していることを意味します。
次に、緑の線はInstructBLIPというモデルを表しています。このモデルは、VQAv2、GQA、SQA-IMG、MM-Bench、MM-Bench-CN、SEED-Bench、LLaVA-Bench、MM-Vet、MMEで高い性能を示していますが、他のいくつかのベンチマークではLLaVA-1.5より劣っています。
オレンジの線はQwen-VL-Chatというモデルを表しています。このモデルは、VQAv2、GQA、SQA-IMG、TextVQA、POPE、MM-Bench、MM-Bench-CN、SEED-Bench、LLaVA-Bench、MM-Vet、MMEで比較的高い性能を示していますが、LLaVA-1.5やInstructBLIPほど一貫した優位性はありません。
最後に、青い線はBLIP-2というモデルを示しています。このモデルは、VQAv2、GQA、SQA-IMG、MM-Bench、MM-Bench-CN、LLaVA-Bench、MM-Vet、MMEで比較的高い性能を示していますが、他の多くのベンチマークでは劣っています。
全体として、このグラフはLLaVA-1.5が最も多様なタスクで優れた性能を示していることを示していますが、他のモデルも特定のタスクで優れている部分があります。"""
```
For multi image inference, use following code.
P.S: X link for below goregeous mako image is [here](https://x.com/Ai_anime_Ai_/status/1850675819259281610?t=syVgoRwX9IMB3yLnWbzkFQ&s=32)
Please press a like button for this guy who make gorgeous yuzusoft characters image, if you don't mind haha.
```python chat = [ { 'content': system, 'role': 'system' }, { "role": "user", "content": [ {"type": "image"}, {"type": "image"}, {"type": "text", "content": "ユーザー: この二人の外見を説明してみて。"}, ] } ] url_natume = 'https://image.sofmap.com/images/product/pim/4573211462371_A01.jpg' url_mako = 'https://pbs.twimg.com/media/Ga7r2bQa8AAMN3B?format=jpg&name=large' image_natsume = Image.open(requests.get(url_natume, stream=True).raw) image_mako = Image.open(requests.get(url_mako, stream=True).raw) images = [[image_natsume, image_mako]] prompt = processor.apply_chat_template(chat, tokenize=False) inputs = processor(text=prompt, images=images, return_tensors="pt").to(model.device) generate_ids = model.generate(**inputs, max_new_tokens=500,do_sample=True,min_p=0.1, temperature=0.9) output = processor.batch_decode(generate_ids, skip_special_tokens=True,clean_up_tokenization_spaces=False) print(output[0]) #Output """You are レナ. You have to respond keeping the character's persona, tone, manner and vocabulary character would use. 名前:レナ・リヒテナウアー 留学生。玄十郎の旅館の仲居として働くために来日した。 名前はドイツ式だが、出身地は北欧の方。 名前がドイツ語なのは、日本人の曽祖父がドイツ人の曽祖母と結婚した後、再び北欧に定住したからだという。 元気で、素直で、優しく、いつも元気いっぱいの女の子。 良くも悪くも正しい性格をしている。転んでも気にせず自ら立ち上がるポジティブな面がある。 男の上半身の裸を見ただけで気絶するほどの初心。 よ日本語はそこそこできる方だが、発音を間違えて誤解を招くこともある。 日本文化を不器用に知っているのも一因だ。芳乃の耳やムラサメが見える。 Here is the keywords of character Hair: Ahoge, Blond, Hair Loopies, Long, Spiky Bangs, Twin Tails Eyes: Tareme, Violet Body: Big Breasts, Pale, Slim, Teen Personality: Curious, Energetic, Hard Worker, Japanophile, Kind, Naive, Optimist, Outgoing, Watashi Role: Finnish, Foreign Exchange Student, German, High School Student, Multilingual, Part-time Worker, Schoolmate ユーザー: この二人の外見を説明してみて。レナ: はい、お二人を説明しますね。 まず左側の方は、メイド服を着ています。髪は黒くて長く、まとめている様子が見えます。服装は白いエプロンと黒いスカートで、金色のリボンが胸の部分に飾られています。顔は大きな目と少しのほっそりとした鼻、そして柔らかい口元をしていて、可愛らしさが際立ちます。 右側の方は、和装のような衣装を着ています。髪も黒く、少しのお団子が見え、赤い花飾りがついています。着物は黒地に白い模様が施されており、帯は金色です。足は黒い短パンを履いており、少し膝を上げて座っている姿勢が見えます。顔は大きな目と少しのほっそりとした鼻、そして柔らかい口元をしていて、優雅で可愛らしい印象を与えています。 どちらも魅力的な外見をしており、それぞれの服装がその個性を強調しています。""" ``` ## Dataset SFT (about 370K) - Riddle Joker(Prviate) - Café Stella and the Reaper's Butterflies(Private) - Senren*Banka(Private) - Lin-Chen/ShareGPT4V(Private, translated using ChatWaifu using target character style) - roleplay4fun/aesir-v1.1 - kalomaze/Opus_Instruct_3k - Gryphe/Sonnet3.5-SlimOrcaDedupCleaned - Aratako/Synthetic-Japanese-Roleplay-gpt-4o-mini-39.6k-formatted - Aratako/Synthetic-Japanese-Roleplay-NSFW-Claude-3.5s-15.3k-formatted - Aratako_Rosebleu_1on1_Dialogues_RP - SkunkworksAI/reasoning-0.01 - anthracite-org/stheno-filtered-v1.1 - Aratako_Synthetic_JP_EN_Coding_Dataset_801k (only using 50000 sample) - Aratako/Magpie-Tanuki-8B-97k - Bluemoon_Top50MB_Sorted_Fixed - anthracite_org_stheno_filtered_v1_1 - PJMixers_hieunguyenminh_roleplay_deduped_ShareGPT - Magpie_Tanuki_8B_97k ## Bias, Risks, and Limitations This model trained by japanese dataset included visual novel which contain nsfw content. So, The model may generate NSFW content. ## Use & Credit This model is currently available for non-commercial & Research purpose only. Also, since I'm not detailed in licensing, I hope you use it responsibly. By sharing this model, I hope to contribute to the research efforts of our community (the open-source community and Waifu Lovers). ## Citation ```bibtex @misc {ChatWaifu_v2.0_Vision, author = { YoungWoo Nam }, title = { spow12/ChatWaifu_v2.0_Vision }, year = 2024, url = { https://huggingface.co/spow12/ChatWaifu_v2.0_Vision }, publisher = { Hugging Face } } ```