fix: QwenEmotion device_map=auto 与 modelscope 不兼容导致 IndexError

- 移除 device_map='auto',改为手动 .to(device)
- 与 IndexTTS2 中其他模型(GPT/BigVGAN/CamPPlus)加载方式一致
- 修复 use_cuda_kernel=False 时的加载失败
This commit is contained in:
Hawk Lee
2026-02-19 12:39:41 +08:00
parent 64a05e4b44
commit 8b3b73c2ed
+5 -5
View File
@@ -80,7 +80,7 @@ class IndexTTS2:
self.use_accel = use_accel
self.use_torch_compile = use_torch_compile
self.qwen_emo = QwenEmotion(os.path.join(self.model_dir, self.cfg.qwen_emo_path))
self.qwen_emo = QwenEmotion(os.path.join(self.model_dir, self.cfg.qwen_emo_path), device=self.device)
self.gpt = UnifiedVoice(**self.cfg.gpt, use_accel=self.use_accel)
self.gpt_path = os.path.join(self.model_dir, self.cfg.gpt_checkpoint)
@@ -717,14 +717,14 @@ def find_most_similar_cosine(query_vector, matrix):
return most_similar_index
class QwenEmotion:
def __init__(self, model_dir):
def __init__(self, model_dir, device="cuda:0"):
self.model_dir = model_dir
self.device = device
self.tokenizer = AutoTokenizer.from_pretrained(self.model_dir)
self.model = AutoModelForCausalLM.from_pretrained(
self.model_dir,
torch_dtype="float16", # "auto"
device_map="auto"
)
torch_dtype="float16",
).to(self.device)
self.prompt = "文本情感分类"
self.cn_key_to_en = {
"高兴": "happy",