Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/IAHispano/Applio/llms.txt

Use this file to discover all available pages before exploring further.

Applio stores all user preferences in a single JSON file — assets/config.json — that is created automatically from assets/config_template.json the first time the application starts. Every option exposed in the Settings tab of the Gradio UI writes back to this file in real time, so your preferences persist across restarts without any manual editing. You can also edit the file directly with any text editor while Applio is not running, which is useful for scripted deployments or headless environments.

Configuration File

Location: assets/config.json (relative to the Applio working directory) On first launch, app.py checks for the file and copies the template if it is missing:
if not os.path.exists(CONFIG_PATH):
    print("Config file not found. Creating fresh from template.")
    shutil.copy(CONFIG_TEMPLATE_PATH, CONFIG_PATH)
The default config_template.json ships with these values:
{
  "theme": {
    "file": "Applio.py",
    "class": "Applio"
  },
  "plugins": [],
  "discord_presence": true,
  "lang": {
    "override": false,
    "selected_lang": "en_US"
  },
  "version": "3.6.3",
  "model_author": "None",
  "precision": "fp16",
  "realtime": {
    "input_device": "",
    "output_device": "",
    "monitor_device": "",
    "model_file": "",
    "index_file": "",
    "client_input_device": "",
    "client_output_device": "",
    "client_monitor_device": ""
  }
}
Changes made through the Settings tab are written to assets/config.json immediately. If you edit the file directly, restart Applio for the changes to take effect in the running UI.

Settings Tab

All settings below are accessible from the Settings tab in the Gradio UI. Each section corresponds to a dedicated panel within that tab.

Language

Config key: lang Applio supports 60 locales. By default the UI language is detected automatically from your operating system. You can override this to a specific locale using the Language dropdown:
"lang": {
  "override": true,
  "selected_lang": "es_ES"
}
When override is false, the system locale is used and selected_lang is ignored. Set override to true to lock the language to any of the available locale codes. Available locales include: af_AF, am_AM, ar_AR, az_AZ, ba_BA, be_BE, bn_BN, bs_BS, ca_CA, ceb_CEB, cs_CS, de_DE, el_EL, en_US, es_ES, eu_EU, fa_FA, fr_FR, hi_IN, hr_HR, hu_HU, id_ID, it_IT, ja_JA, ko_KO, nl_NL, pl_PL, pt_BR, pt_PT, ro_RO, ru_RU, tr_TR, uk_UK, vi_VI, zh_CN, and more.
A language change requires restarting Applio to take effect. The Settings tab will show an info banner reminding you after you select a new locale.

Precision

Config key: precision Controls the floating-point precision used during both training and inference. Applio supports three modes:
ValueDescription
fp16Half precision — faster on most modern GPUs, lower VRAM usage (default)
fp32Full precision — more numerically stable, higher VRAM usage
bf16Brain float 16 — efficient on Ampere and newer NVIDIA GPUs, Google TPUs
"precision": "fp16"
fp16 is the recommended default for NVIDIA RTX series GPUs. Use fp32 if you encounter NaN losses or instability during training. bf16 is well-suited for A100 and H100 hardware.

Theme

Config key: theme Applio’s Gradio UI theme is fully customizable. The theme object stores both the local Python file (file) and the class name or Hugging Face theme ID (class):
"theme": {
  "file": "Applio.py",
  "class": "Applio"
}
When you select a theme from the dropdown, Applio checks whether a matching .py file exists in assets/themes/. If it does, the local theme class is loaded. If not, the value is treated as a Hugging Face Hub theme ID and loaded directly by Gradio. Built-in theme: Applio (defined in assets/themes/Applio.py) Example community themes from theme_list.json:
Theme IDStyle
ParityError/InterstellarDark space (Applio fallback default)
gradio/dracula_revampedDracula dark
gradio/softLight soft
gradio/monochromeMinimalist monochrome
gradio/seafoamTeal/seafoam
gradio/glassGlassmorphism
Taithrah/MinimalClean minimal
ParityError/AnimeAnime-inspired
rawrsor1/EverforestNature green
step-3-profit/Midnight-DeepDeep midnight dark
Theme changes require restarting Applio. After selecting a new theme from the dropdown, use the Restart Applio button in the Settings tab or restart the process manually.

Model Author

Config key: model_author A free-text name that gets embedded into the metadata of every voice model you train. This tag identifies you as the creator when models are shared publicly.
"model_author": "YourName"
Set it via the Model Author Name text field in Settings and click Set name. The value is written to config.json immediately.

Discord Presence

Config key: discord_presence When enabled, Applio connects to Discord’s Rich Presence API and displays your current Applio activity (inference, training, etc.) on your Discord profile.
"discord_presence": true
Toggle this on or off with the checkbox in Settings. The change takes effect immediately — no restart required. Disabling it calls RPCManager.stop_presence() and the Discord status clears within a few seconds.
Discord Rich Presence requires the Discord desktop app to be running on the same machine. It has no effect in headless or Docker environments unless Discord is also running inside the container.

Filter

Config key: model_index_filter Adds a keyword search filter to the model and index selection dropdowns in the Inference and TTS tabs. Useful when your logs/ directory contains many models.
"model_index_filter": true
Toggle it with the checkbox in Settings. The change takes effect immediately without a restart.

Realtime Audio

Config key: realtime Configures audio device defaults and ASIO settings for the Realtime voice conversion tab. The config_template.json ships with device fields pre-populated as empty strings:
"realtime": {
  "input_device": "",
  "output_device": "",
  "monitor_device": "",
  "model_file": "",
  "index_file": "",
  "client_input_device": "",
  "client_output_device": "",
  "client_monitor_device": ""
}
The Settings tab’s Realtime Audio section manages two additional keys that are written into the realtime object when you interact with those controls (they are not present in the default template):
"realtime": {
  "asio_enabled": false,
  "audio_sample_rate": 48000
}
KeyDescription
input_deviceDefault microphone / audio input device
output_deviceDefault audio output / playback device
monitor_deviceDefault monitoring device
model_filePre-selected voice model path for realtime
index_filePre-selected feature index path for realtime
asio_enabledEnable ASIO driver support (Windows only; requires restart)
audio_sample_rateStreaming sample rate: 44100, 48000, 88200, 96000, 176400, or 192000
ASIO support is only available on Windows. The ASIO toggle and sample rate dropdown are hidden on macOS and Linux.

Restart

The Restart Applio button in the Settings tab calls os.execl() to replace the current Python process with a fresh one, applying any pending configuration changes (language, theme, etc.) without needing to close and relaunch manually.

Version

The Version Checker panel in Settings queries the latest release and compares it to the running version stored in config.json under the version key. Click Check for updates to run the comparison and see whether an update is available.

Server Launch Options

app.py accepts command-line flags that control how the Gradio server binds to the network. These are separate from config.json and must be passed at startup:
FlagDefaultDescription
--server-name127.0.0.1Interface address the server listens on
--port6969TCP port for the Gradio UI
--share(not set)Create a public Gradio share link
--open(not set)Automatically open the UI in the default browser
--client(not set)Launch in client mode with the realtime FastAPI backend mounted at /api
Examples:
# Default local-only access
python app.py

# Listen on all interfaces (required for Docker / remote access)
python app.py --server-name 0.0.0.0

# Custom port
python app.py --server-name 0.0.0.0 --port 8080

# Create a public Gradio tunnel
python app.py --share
If the requested port is already in use, Applio automatically retries on the next lower port, up to 10 attempts (MAX_PORT_ATTEMPTS = 10). For example, if port 6969 is taken it will try 6968, 6967, and so on. A message is printed to the console for each failed attempt.

Direct config.json Editing

You can bypass the Settings UI entirely and edit assets/config.json with a text editor. This is particularly useful for:
  • Scripted or automated deployments
  • Setting options not yet exposed in the UI (e.g. pre-configuring realtime device names)
  • Applying the same configuration across multiple Applio instances
1

Stop Applio

Shut down the running Applio process to avoid race conditions on the file.
2

Edit the file

Open assets/config.json in any text editor and make your changes. The file must remain valid JSON.
3

Restart Applio

Start Applio again. The new configuration will be loaded on startup.
python app.py
If assets/config.json contains invalid JSON, Applio will fail to start. Keep a backup copy of a working configuration before making manual edits.

Build docs developers (and LLMs) love