From f40b77e0e32bd05df8b7ac5fbb1af2a5c01d48ad Mon Sep 17 00:00:00 2001 From: dazedanon Date: Mon, 16 Mar 2026 10:56:15 -0500 Subject: [PATCH] diff --- .gitignore | 10 +-- gui/config_tab.py | 23 ------ log/diff_requests.py | 35 --------- vocab.txt.example | 165 ------------------------------------------- vocab_base.txt | 87 +++++++++++++++++++++++ 5 files changed, 92 insertions(+), 228 deletions(-) delete mode 100644 log/diff_requests.py delete mode 100644 vocab.txt.example create mode 100644 vocab_base.txt diff --git a/.gitignore b/.gitignore index 75bcaa0..ed861bf 100644 --- a/.gitignore +++ b/.gitignore @@ -6,16 +6,16 @@ *.yml *.txt *.log -!prompt.txt *.rpy -!vocab.txt -!requirements.txt *.csv *.ks *.cid *.png *.script -!screens/*.png __pycache__ + +!screens/*.png !.pre-commit-config.yaml -vocab.txt +!prompt.txt +!vocab_base.txt +!requirements.txt diff --git a/gui/config_tab.py b/gui/config_tab.py index f535326..7c925d6 100644 --- a/gui/config_tab.py +++ b/gui/config_tab.py @@ -536,24 +536,6 @@ class ConfigTab(QWidget): self.output_cost_spin.setFixedWidth(200) # Medium price_form.addRow(output_label, self.output_cost_spin) - cache_rate_label = QLabel("Est. Cache Rate:") - cache_rate_label.setFixedWidth(150) - cache_rate_label.setAlignment(Qt.AlignRight | Qt.AlignVCenter) - cache_rate_label.setToolTip( - "Assumed prompt-cache hit rate used when estimating costs for Claude models.\n" - "0.9 = 90 % of input tokens billed at 10 % (cache read rate).\n" - "Set to 0 to disable the discount and use the full input rate." - ) - self.estimate_cache_rate_spin = QDoubleSpinBox() - self.estimate_cache_rate_spin.setButtonSymbols(QDoubleSpinBox.NoButtons) - self.estimate_cache_rate_spin.setRange(0.0, 1.0) - self.estimate_cache_rate_spin.setDecimals(2) - self.estimate_cache_rate_spin.setSingleStep(0.05) - self.estimate_cache_rate_spin.setValue(0.9) - self.estimate_cache_rate_spin.setSuffix(" (Claude estimate only)") - self.estimate_cache_rate_spin.setFixedWidth(200) - price_form.addRow(cache_rate_label, self.estimate_cache_rate_spin) - right_column.addLayout(price_form) right_column.addStretch() @@ -687,7 +669,6 @@ class ConfigTab(QWidget): # Custom API pricing self.input_cost_spin.setValue(float(_get("input_cost", "2.0"))) self.output_cost_spin.setValue(float(_get("output_cost", "8.0"))) - self.estimate_cache_rate_spin.setValue(float(_get("ESTIMATE_CACHE_RATE", "0.9"))) def connect_auto_save(self): """Connect all widgets to auto-save on change.""" @@ -712,7 +693,6 @@ class ConfigTab(QWidget): self.note_width_spin.editingFinished.connect(self.auto_save) self.input_cost_spin.editingFinished.connect(self.auto_save) self.output_cost_spin.editingFinished.connect(self.auto_save) - self.estimate_cache_rate_spin.editingFinished.connect(self.auto_save) def disconnect_auto_save(self): """Disconnect all widgets from auto-save.""" @@ -732,7 +712,6 @@ class ConfigTab(QWidget): self.note_width_spin.editingFinished.disconnect(self.auto_save) self.input_cost_spin.editingFinished.disconnect(self.auto_save) self.output_cost_spin.editingFinished.disconnect(self.auto_save) - self.estimate_cache_rate_spin.editingFinished.disconnect(self.auto_save) except (TypeError, RuntimeError): pass @@ -770,7 +749,6 @@ class ConfigTab(QWidget): "noteWidth": str(self.note_width_spin.value()), "input_cost": str(self.input_cost_spin.value()), "output_cost": str(self.output_cost_spin.value()), - "ESTIMATE_CACHE_RATE": str(self.estimate_cache_rate_spin.value()), } # Save to .env file and update os.environ so subprocesses inherit new values @@ -838,7 +816,6 @@ class ConfigTab(QWidget): # Custom API settings self.input_cost_spin.setValue(2.0) self.output_cost_spin.setValue(8.0) - self.estimate_cache_rate_spin.setValue(0.9) # Reset engine tabs self.mvmz_tab.reset_to_defaults() diff --git a/log/diff_requests.py b/log/diff_requests.py deleted file mode 100644 index 0a93a1a..0000000 --- a/log/diff_requests.py +++ /dev/null @@ -1,35 +0,0 @@ -import json - -a = json.load(open('log/ant_request_1.json', 'r', encoding='utf-8')) -b = json.load(open('log/ant_request_2.json', 'r', encoding='utf-8')) -c = json.load(open('log/ant_request_3.json', 'r', encoding='utf-8')) - -print("=== Request 1 vs 2 ===") -print(f"system identical: {a['system'] == b['system']}") -print(f"messages identical: {a['messages'] == b['messages']}") -print(f"output_config identical: {a.get('output_config') == b.get('output_config')}") -print(f"model identical: {a['model'] == b['model']}") -print(f"max_tokens identical: {a['max_tokens'] == b['max_tokens']}") -print(f"temperature identical: {a['temperature'] == b['temperature']}") - -# Check all top-level keys -all_keys = set(a.keys()) | set(b.keys()) -for k in sorted(all_keys): - if a.get(k) != b.get(k): - print(f" DIFFERS: {k}") - if k == 'messages': - print(f" req1: {json.dumps(a[k], ensure_ascii=False)[:200]}") - print(f" req2: {json.dumps(b[k], ensure_ascii=False)[:200]}") - -print("\n=== Request 1 vs 3 ===") -print(f"system identical: {a['system'] == c['system']}") -print(f"messages identical: {a['messages'] == c['messages']}") -print(f"output_config identical: {a.get('output_config') == c.get('output_config')}") - -all_keys = set(a.keys()) | set(c.keys()) -for k in sorted(all_keys): - if a.get(k) != c.get(k): - print(f" DIFFERS: {k}") - if k == 'output_config': - print(f" req1: {json.dumps(a.get(k), ensure_ascii=False)[:300]}") - print(f" req3: {json.dumps(c.get(k), ensure_ascii=False)[:300]}") diff --git a/vocab.txt.example b/vocab.txt.example deleted file mode 100644 index 8e32bbe..0000000 --- a/vocab.txt.example +++ /dev/null @@ -1,165 +0,0 @@ -Here are some vocabulary and terms so that you know the proper spelling and translation. - -# Game Characters -シルシェ (Silshe) - Female -リノ (Rino) - Female -ボロゲス (Boroges) - Male - -# Lewd Terms -マンコ (pussy) -おまんこ (vagina) -尻 (ass) -お尻 (butt) -お股 (crotch) -秘部 (genitals) -チンポ (dick) -チンコ (cock) -ショーツ (panties) -イラマチオ (irrumatio) -理性 (Sanity) -性欲 (Libido) -子宮の状態 (Womb St.) -最後の相手 (Last Partner) -陰茎の長さ (Penis Length) -射精量 (Cum Amount) -絶頂回数 (Orgasms) -搾精回数 (Ejaculations) -経験人数 (Partners) -膣内射精 (Creampie) -膣外射精 (Non-Creampie) -アナル (Anal) -パイズリ (Titjob) -フェラ (Blowjob) -手コキ (Handjob) -太もも (Thighs) -素股 (Thighjob) -尻コキ (Assjob) -ぶっかけ (Cumshot) -受精 (Fertilized) -出産 (Childbirth) -子宮 (Womb) -乳揉まれ (Fondled) -尻揉まれ (Ass Groped) -乳首 (Nipples) -キス (Kiss) -衣装ごとの性行為回数 (Sex Acts per Outfit) -回 (x) -人 (x) - -# Honorifics -さん (san) -様, さま (sama) -君, くん (kun) -ちゃん (chan) -たん (tan) -先輩 (senpai) -せんぱい (senpai) -先生 (sensei) -せんせい (sensei) -にいさん (nii-san) -兄さん (nii-san) -兄者 (elder brother) -お兄ちゃん (onii-san) -姉さん (nee-san) -お姉ちゃん (onee-chan) -お姉ちゃん (onee-chan) -ねえさん (nee-san) -おじさん (old man) - -# Terms -初めから (Start) -逃げる (Escape) -大事なもの (Key Items) -最強装備 (Optimize) -攻撃力 (Attack) -回避率 (Evasion) -敏捷性 (Agility) -命中率 (Accuracy) -最大HP (Max HP) -経験値 (EXP) -購入する (Buy) -魔力攻撃 (M. Attack) -魔力防御 (M. Defense) -魔法力 (M. Power) -%1 の%2を獲得! (Gained %1 %2) -持っている数 (Owned) -ME 音量 (ME Volume) -回想する (Recollection) -信仰心 (Faith) -会話 (Conversation) -収集 (Collect) -討伐 (Extermination) -破滅 (Destruction) -魂 (Soul) -魄 (Spirit) -巫女 (Shrine Maiden) -刀 (Blade) -剣 (Sword) -龍神神社 (Dragon God Shrine) -忍び (Shinobi) -大魔導士 (Archmage) -始原竜 (Primordial Dragon) -猿王 (Monkey King) -天地開闢 (Genesis) -紅蓮 (Vermilion) -12月 (December) -12日 (12th) -邪気 (Miasma) - -# Demons/Angels/Monsters -聖女 (Saintess) -悪魔 (Demon) -上級悪魔 (Arch Demon) -歪魔 (Distorted Demon) -魔神 (Devil) -魔人 (Demon) -睡魔 (Mare) -淫魔 (Succubus) -夢魔 (Succubus) -天使 (Angel) -大天使 (Archangel) -権天使 (Principality) -能天使 (Power) -力天使 (Virtue) -主天使 (Dominion) -智天使 (Cherub) -飛天魔 (Nephilim) -堕天使 (Fallen Angel) -鬼 (Oni) -魔 (Demon) -妖怪 (Yokai) -式神 (Shikigami) -幽霊 (Ghost) -幽鬼 (Revenant) -デーモン (Daemon) -ローパー (Roper) -人間 (Human) -人型 (Humanoid) -獣型 (Beast) -触手型 (Tentacle) -軟体型 (Slime) -虫型 (Insect) -エルフ (Elf) -竜 (Dragon) -吸血鬼 (Vampire) -ドワーフ (Dwarf) - -# Elements -物理 (Physical) -吸収 (Absorption) -火 (Fire) -氷 (Ice) -雷 (Thunder) -水 (Water) -地 (Earth) -風 (Wind) -神聖 (Holy) -暗黒 (Dark) -木 (Wood) -人間 (Human) - -# Other -w (lol) -2万 (20,000) -『 (『) -』 (』) diff --git a/vocab_base.txt b/vocab_base.txt new file mode 100644 index 0000000..d8023d0 --- /dev/null +++ b/vocab_base.txt @@ -0,0 +1,87 @@ +# Honorifics +さん (san) +様, さま (sama) +君, くん (kun) +ちゃん (chan) +たん (tan) +先輩 (senpai) +せんぱい (senpai) +先生 (sensei) +せんせい (sensei) +にいさん (nii-san) +兄さん (nii-san) +兄者 (elder brother) +お兄ちゃん (onii-san) +姉さん (nee-san) +お姉ちゃん (onee-chan) +ねえさん (nee-san) +おじさん (old man) + +# Terms +初めから (Start) +逃げる (Escape) +大事なもの (Key Items) +最強装備 (Optimize) +攻撃力 (Attack) +回避率 (Evasion) +敏捷性 (Agility) +命中率 (Accuracy) +最大HP (Max HP) +経験値 (EXP) +購入する (Buy) +魔力攻撃 (M. Attack) +魔力防御 (M. Defense) +魔法力 (M. Power) +%1 の%2を獲得! (Gained %1 %2) +持っている数 (Owned) +ME 音量 (ME Volume) + +# Demons/Angels/Monsters +聖女 (Saintess) +悪魔 (Demon) +上級悪魔 (Arch Demon) +歪魔 (Distorted Demon) +魔神 (Devil) +魔人 (Demon) +睡魔 (Mare) +淫魔 (Succubus) +夢魔 (Succubus) +天使 (Angel) +大天使 (Archangel) +権天使 (Principality) +能天使 (Power) +力天使 (Virtue) +主天使 (Dominion) +智天使 (Cherub) +飛天魔 (Nephilim) +堕天使 (Fallen Angel) +鬼 (Oni) +妖怪 (Yokai) +式神 (Shikigami) +幽霊 (Ghost) +幽鬼 (Revenant) +デーモン (Daemon) +ローパー (Roper) +人間 (Human) +人型 (Humanoid) +獣型 (Beast) +触手型 (Tentacle) +軟体型 (Slime) +虫型 (Insect) +エルフ (Elf) +竜 (Dragon) +吸血鬼 (Vampire) +ドワーフ (Dwarf) + +# Elements +物理 (Physical) +吸収 (Absorption) +火 (Fire) +氷 (Ice) +雷 (Thunder) +水 (Water) +地 (Earth) +風 (Wind) +神聖 (Holy) +暗黒 (Dark) +木 (Wood)