Clear Speaker cache upon run

This commit is contained in:
dazedanon 2026-02-28 01:51:27 -06:00
parent 245640634a
commit d9976ba8b9
3 changed files with 24 additions and 2 deletions

View file

@ -340,15 +340,21 @@ class TranslationWorker(QThread):
# Run handlers sequentially in this worker process so globals are shared
try:
if is_mvmz:
from modules.rpgmakermvmz import handleMVMZ as handler, setSpeakerParseMode, finalizeSpeakerParse, TOKENS, calculateCost, MODEL
from modules.rpgmakermvmz import handleMVMZ as handler, setSpeakerParseMode, finalizeSpeakerParse, resetSpeakerState, TOKENS, calculateCost, MODEL
elif is_ace:
from modules.rpgmakerace import handleACE as handler, setSpeakerParseMode, finalizeSpeakerParse, TOKENS, calculateCost, MODEL
from modules.rpgmakerace import handleACE as handler, setSpeakerParseMode, finalizeSpeakerParse, resetSpeakerState, TOKENS, calculateCost, MODEL
except Exception as e:
engine_name = "rpgmakermvmz" if is_mvmz else "rpgmakerace"
self.emit_log(f"❌ Could not import {engine_name} for speaker-parse: {e}")
self.finished_signal.emit(False, str(e))
return
# Reset stale speaker data from any previous run
try:
resetSpeakerState()
except Exception:
pass
# Enable speaker parse mode in this process
try:
setSpeakerParseMode(True)

View file

@ -3731,6 +3731,14 @@ def translateAI(text, history, fullPromptFlag):
mismatchList=MISMATCH
)
def resetSpeakerState():
"""Clear all speaker-related globals so a fresh run doesn't carry over stale data."""
global NAMESLIST, SPEAKER_COLLECTED
NAMESLIST = []
SPEAKER_COLLECTED = []
with _speakerCacheLock:
_speakerCache.clear()
def setSpeakerParseMode(flag: bool):
"""Enable/disable speaker-only parse mode."""
global SPEAKER_PARSE_MODE

View file

@ -4169,6 +4169,14 @@ def translateAI(text, history, fullPromptFlag):
mismatchList=MISMATCH
)
def resetSpeakerState():
"""Clear all speaker-related globals so a fresh run doesn't carry over stale data."""
global NAMESLIST, SPEAKER_COLLECTED
NAMESLIST = []
SPEAKER_COLLECTED = []
with _speakerCacheLock:
_speakerCache.clear()
def setSpeakerParseMode(flag: bool):
"""Enable/disable speaker-only parse mode."""
global SPEAKER_PARSE_MODE