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