diff --git a/README.md b/README.md index c9bb726..cdde797 100644 --- a/README.md +++ b/README.md @@ -432,9 +432,11 @@ git clone https://github.com/havvk/ComfyUI_AIIA.git - **当前状态**: ✅ 可用(已通过测试) - **支持语言**: **英文 (en) 和 中文 (zh)**(官方仅在这两种语言数据集上训练) - **可选模型**: - - `microsoft/VibeVoice-1.5B`: 轻量版,64K 上下文(~3GB 显存)。注:可能对某些标点(如连字符、引号)处理不佳。 + - `microsoft/VibeVoice-Realtime-0.5B`: **最新实时版**,极致速度,支持多种语言(如日、韩、英、中等),上下文 8K。推荐用于低延迟对话场景。 + - `microsoft/VibeVoice-1.5B`: 轻量版,64K 上下文(~3GB 显存)。 - `vibevoice/VibeVoice-7B`: 高质量版,32K 上下文(~14GB 显存)。推荐用于生产环境。 - **特点**: + - **多语言支持**: 0.5B 版本支持比 1.5B/7B 更多的语言种类。 - **即时启动**: 无需预热或编译,首次运行即可使用(CosyVoice 首次需 ~1 分钟编译)。 - **语言自动识别**: 模型会自动识别中英文文本。 - **零样本音色克隆**: 输入 `reference_audio` 即可克隆声音。参考音频会自动重采样到 24000Hz。 diff --git a/aiia_vibevoice_nodes.py b/aiia_vibevoice_nodes.py index c912766..f72d6cb 100644 --- a/aiia_vibevoice_nodes.py +++ b/aiia_vibevoice_nodes.py @@ -291,27 +291,27 @@ class AIIA_VibeVoice_Loader: model.generation_config = final_gen_config else: # Fallback to internal presets - is_7b = False + preset_name = "generation_config.json" # Default if hasattr(config, "decoder_config") and hasattr(config.decoder_config, "hidden_size"): - is_7b = config.decoder_config.hidden_size > 2048 + h_size = config.decoder_config.hidden_size + if h_size > 2048: + preset_name = "generation_config_7B.json" + elif h_size < 1000: + preset_name = "generation_config_0.5B.json" + else: + preset_name = "generation_config_1.5B.json" - preset_name = "generation_config_7B.json" if is_7b else "generation_config_1.5B.json" preset_path = os.path.join(core_path, preset_name) if os.path.exists(preset_path): print(f"[AIIA] Model-specific config not found. Using internal preset: {preset_name}") - # We need to load it manually or use from_pretrained on the file path if possible import json with open(preset_path, "r") as f: gen_dict = json.load(f) model.generation_config = GenerationConfig.from_dict(gen_dict) else: - bundled_gen_config_path = os.path.join(core_path, "generation_config.json") - if os.path.exists(bundled_gen_config_path): - print(f"[AIIA] Using generic bundled fallback: generation_config.json") - model.generation_config = GenerationConfig.from_pretrained(core_path) - else: - print("[AIIA WARNING] No generation_config.json found (local or bundled).") + print(f"[AIIA WARNING] Preset {preset_name} not found, using generic fallback.") + model.generation_config = GenerationConfig.from_pretrained(core_path) except Exception as ge: print(f"[AIIA WARNING] Failed to load generation config: {ge}") diff --git a/vibevoice_core/generation_config_0.5B.json b/vibevoice_core/generation_config_0.5B.json new file mode 100644 index 0000000..dac88a3 --- /dev/null +++ b/vibevoice_core/generation_config_0.5B.json @@ -0,0 +1,21 @@ +{ + "cfg_scale": 1.3, + "eos_token_id": 151643, + "max_new_tokens": 8192, + "max_length": 8192, + "n_diffusion_steps": 20, + "do_sample": false, + "temperature": 1.0, + "top_p": 1.0, + "noise_scheduler_class": "DPMSolverMultistepScheduler", + "noise_scheduler_config": { + "beta_schedule": "squaredcos_cap_v2", + "num_train_timesteps": 1000, + "prediction_type": "v_prediction" + }, + "pad_token_id": 151643, + "speech_diffusion_id": 151654, + "speech_end_id": 151653, + "speech_start_id": 151652, + "transformers_version": "4.57.0.dev0" +} \ No newline at end of file