Skip to content

For AI beginners, deploying AI software from source code can be challenging. With a pre-made bundle, users only need to download, extract, and double-click to use it, significantly lowering the barrier to entry. However, sometimes a ready-made bundle may not be available or may not be updated in time. In such cases, you can try creating your own bundle and share it with others.

Since AI project models are typically large and may include GPU support, even when compressed into 7z format, the file size can easily exceed 5GB, making it difficult to upload to cloud storage or manage. Therefore, I will no longer be creating bundles. If you are interested, you can follow this tutorial to create your own bundle and share it.

This tutorial uses F5-TTS as an example to create a bundle on Windows 10 using Python 3.10. The main steps are:

  1. Download Python 3.10 embed version (not the exe installer, but a zip package).
  2. Install pip and set up dependency search paths for the project.
  3. Download F5-TTS source code.
  4. Install F5-TTS dependency modules.
  5. Create a one-click launch script and set the model directory to the project folder.
  6. Configure a proxy to download models.
  7. Run one cloning task to complete downloads like Whisper model.
  8. Compress into a bundle.
  9. Create bundles for other AI projects.

Preparation Before Starting:

First, create an empty folder. To avoid errors, it is recommended to create an English-named folder on a non-system drive, such as D:\f5win.
This article uses D:\f5win as an example. Then, create another empty folder runtime inside it to store the Python 3.10 embed version files you will download later.

Before starting, be sure to click "View" in the folder navigation bar and check "File name extensions." Otherwise, subsequent steps may go wrong, especially for those unfamiliar with file extensions.

Show file extensions


1. Download Python 3.10 Embed Version

Important: Download the embed version here, not the exe installer. This version does not rely on your local Python environment; even if you already have Python installed, you still need to download this version.

  • Download link: https://www.python.org/downloads/release/python-31011/

  • Open the webpage, scroll to the bottom, and click Windows embeddable package (64-bit) to download. You will get a zip file.

    Download Python embed version

    Make sure to download this version, do not get it wrong!

  • After downloading, extract the zip file and copy all its contents into the runtime folder you created earlier. It should look like this:

    Python embed files copied to runtime folder


2. Install pip and Modify Package Search Path

The embed version of Python does not include the pip module, so it needs to be installed manually.

  • Install pip:

    • Open this address: https://bootstrap.pypa.io/get-pip.py

    • Right-click and save the file to the runtime directory. After saving, there should be a file named get-pip.py in the runtime folder.

      Download get-pip.pyget-pip.py fileget-pip.py in runtime directory

    • Type cmd in the address bar of the runtime folder and press Enter to open a terminal window (black window).

      Open cmd and confirm the path is inside runtime

    • In the terminal window, enter the command .\python get-pip.py and press Enter. Be sure the current folder address in the command line is inside the runtime folder, otherwise it will fail.

      Wait for the installation to complete...

      Installing pip

      Pip module installed successfully!

      Pip module installed successfully

  • Modify the python310._pth file:

    • In the runtime folder, find the file named python310._pth, right-click and open it with Notepad.

      Default content in python310._pth file

    • Below the dot . on the second line, add the following three lines:

      ./Lib/site-packages
      ../src
      ../src/f5_tts
    • Save the file. The modified file content should look like this; double-check to ensure it's correct:

      Modified python310._pth file content should look like this


3. Download F5-TTS Source Code

  • Open the F5-TTS project GitHub repository: https://github.com/SWivid/F5-TTS

  • Download the source code zip file.

    Download F5-TTS source code

  • Extract the downloaded zip file and copy all files from the F5-TTS-main folder into the D:\f5win folder. Note: Copy the files inside, not the entire F5-TTS-main folder.

    Copy files from F5-TTS-main

    After extraction, the contents of the D:\f5win folder should look like this:

    Correct directory structure of D:5win after copying


Return to the previous CMD window

In the same terminal window, execute the cd ../ command to ensure the address in the command line no longer includes runtime, changing to the following. All subsequent operations should be performed in the D:/f5win directory.

4. Install Dependency Modules

  • Return to the cmd terminal window and confirm the current path displayed is D:\f5win (without runtime).

  • Execute the following command to install dependencies (pay attention to spaces and the dot):

    .\runtime\python -m pip install -e .

    Installing dependencies

    Wait for the installation to complete...

All dependencies installed

  • If you want the bundle to support NVIDIA GPUs (optional): Continue by executing the following command to install CUDA versions of PyTorch and torchaudio (pay attention to spaces and the dot; the command should not be split):
    .\runtime\python -m pip install torch==2.4.0+cu124 torchaudio==2.4.0+cu124 --extra-index-url https://download.pytorch.org/whl/cu124

5. Create a One-Click Launch Script

By default, models are saved to the user directory on the C drive. For easier bundling, we need to download models into the bundle directory.

  • In the D:\f5win folder, right-click -> New -> Text Document to create a run.txt file. Open it with Notepad and enter the following code:

bat
    @echo off

    chcp 65001 > nul

    set "HF_HOME=%~dp0models"
    set "MODELSCOPE_CACHE=%~dp0models"

    echo HF_HOME: %HF_HOME%
    echo MODELSCOPE_CACHE: %MODELSCOPE_CACHE%

    "%~dp0runtime\python" -m f5_tts.infer.infer_gradio  --inbrowser

    pause

The above script means: save models to the models folder in the current directory, then launch the web interface and automatically open it in the browser.

  • After saving the file, rename run.txt to run.bat. A warning will pop up; select "Yes." If no warning appears, you may have made an error; check if file extensions are visible.

    Warning popup when renaming to run.bat


6. Configure Proxy for Internet Access

Due to network restrictions in some regions, you cannot directly access Hugging Face (huggingface.co) where F5-TTS models are hosted. Therefore, you need to configure a proxy and set it as the system proxy.

For example, if using a tool like v2ray, you can set it up like this:

Set as system proxy in v2ray

After configuration, double-click the run.bat file you created earlier.

  • If double-clicking opens the file in Notepad, you failed to change the extension. Go back to the preparation section at the top and follow the instructions to show file extensions.

  • If double-clicking opens a black window, it will start downloading models to the D:\f5win\models folder.

    Downloading models

  • If you see an error similar to the one below, it means your proxy is not configured correctly or not set as the system proxy, preventing connection to Hugging Face to download models.

    Model download error: Unable to connect to huggingface.co

    Sometimes the download fails halfway. The most common reason is an unstable proxy node; try switching to a more stable proxy or node.

  • After the models are downloaded, a browser window will open automatically. Models downloaded, browser opens automatically


7. Run One Cloning Task to Download Whisper Model

During voice cloning, if no reference audio text is provided, F5-TTS will automatically download the Whisper model from Hugging Face. To make the bundle complete, we need to download it in advance.

  • In the automatically opened web window, select a clean 5-10 second reference audio, enter the text you want to synthesize (e.g., "Hello friend"), and click "Synthesize."

    Web interface

  • This will start downloading the Whisper model.

    Downloading Whisper model

  • When synthesis is successful and no errors occur, you can start packaging the project into a bundle.


8. Compress into a Bundle

  • Before compressing, you can rename run.bat to Click to Start.bat to make it easier for novice users to understand.
  • Compress the entire D:\f5win folder into a zip file, or into a smaller 7z file.
  • Share the compressed file with others. They can extract it and double-click run.bat (or Click to Start.bat) to use it.


9. How to Create Bundles for Other AI Projects

Most open-source Python projects on GitHub can be bundled using a similar method. The main differences lie in the following three points:

  1. Python version: Python 3.10 is the most versatile and suitable for most projects. If a project has specific requirements (e.g., 3.11 or 3.12), you can find the corresponding Windows embeddable package (64-bit) on this page: https://www.python.org/downloads/windows/. Be careful not to download the exe installer.

  2. Content of the python310._pth file:

    • ./Lib/site-packages is still necessary to add.
    • Other paths should be added based on the project's actual structure.
    • If the project has a code directory named cfg, add a line ../cfg.
    • If the project has a src directory with subfolders, continue adding ../src/subdirectory_name.
  3. Launch command in the run.bat script:

    • Only this line needs to be modified:
      "%~dp0runtime\python" -m f5_tts.infer.infer_gradio  --inbrowser
    • The part "%~dp0runtime\python" remains unchanged; the rest should be replaced with the project's corresponding launch command (excluding python).
    • If in doubt, provide the content of run.bat and the project's launch command to an AI and ask it to generate a new launch script following the run.bat format. Remember to tell the AI to use the Python interpreter from run.bat.