start.bat 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. @echo off
  2. chcp 65001
  3. set PYTHONPATH=%~dp0
  4. set PYTHON_CMD=%cd%\fishenv\env\python
  5. set API_FLAG_PATH=%~dp0API_FLAGS.txt
  6. :: 设置Hugging Face镜像源
  7. set no_proxy="localhost, 127.0.0.1, 0.0.0.0"
  8. set HF_ENDPOINT=https://hf-mirror.com
  9. %PYTHON_CMD% .\tools\download_models.py
  10. setlocal enabledelayedexpansion
  11. set "API_FLAGS="
  12. set "flags="
  13. :: 检查API_FLAG文件是否存在
  14. if exist "%API_FLAG_PATH%" (
  15. for /f "usebackq tokens=*" %%a in ("%API_FLAG_PATH%") do (
  16. set "line=%%a"
  17. :: 去除行尾的反斜杠和空白字符,并且跳过以#开头的行
  18. if not "!line:~0,1!"=="#" (
  19. set "line=!line: =<SPACE>!"
  20. set "line=!line:\=!"
  21. set "line=!line:<SPACE>= !"
  22. if not "!line!"=="" (
  23. set "API_FLAGS=!API_FLAGS!!line! "
  24. )
  25. )
  26. )
  27. )
  28. :: 去除API_FLAGS变量最后的空格
  29. if not "!API_FLAGS!"=="" set "API_FLAGS=!API_FLAGS:~0,-1!"
  30. :: 初始化 flags 变量
  31. set "flags="
  32. :: 检查是否包含 --api 参数
  33. echo !API_FLAGS! | findstr /C:"--api" >nul 2>&1
  34. if !errorlevel! equ 0 (
  35. echo.
  36. echo 启动HTTP API推理
  37. set "mode=api"
  38. goto process_flags
  39. )
  40. :: 检查是否包含 --infer 参数
  41. echo !API_FLAGS! | findstr /C:"--infer" >nul 2>&1
  42. if !errorlevel! equ 0 (
  43. echo.
  44. echo 启动WebUI推理
  45. set "mode=infer"
  46. goto process_flags
  47. )
  48. :process_flags
  49. for %%p in (!API_FLAGS!) do (
  50. if not "%%p"=="--!mode!" (
  51. set "flags=!flags! %%p"
  52. )
  53. )
  54. :: 去除 flags 变量开头的空格
  55. if not "!flags!"=="" set "flags=!flags:~1!"
  56. echo Debug: flags = !flags!
  57. :: 根据 mode 变量启动相应的推理
  58. if "!mode!"=="api" (
  59. %PYTHON_CMD% -m tools.api !flags!
  60. ) else if "!mode!"=="infer" (
  61. %PYTHON_CMD% -m tools.webui !flags!
  62. )
  63. echo.
  64. echo 接下来启动页面
  65. %PYTHON_CMD% fish_speech\webui\manage.py
  66. :end
  67. endlocal
  68. pause