# app.py import os, sys import gradio as gr import torch os.environ.setdefault("HF_HUB_ENABLE_HF_TRANSFER", "1") MODEL_REPO = "vibevoice/VibeVoice-1.5B" demo_app = None model_ready = False def load_real_demo(): global demo_app, model_ready if not model_ready: from demo import gradio_demo # 假设 gradio_demo.py 里有 main(return_app=True) 可以返回一个 Blocks demo_app = gradio_demo.main(model_path=MODEL_REPO, return_app=True) model_ready = True return demo_app def launch_wrapper(): load_real_demo() return demo_app with gr.Blocks() as app: gr.Markdown("## 🎙️ VibeVoice Demo (lazy-load)") btn = gr.Button("🚀 Load full demo") out = gr.HTML() btn.click(fn=lambda: "Reload page to see full demo", outputs=out) if __name__ == "__main__": app.queue().launch(server_name="0.0.0.0", server_port=7860)