Environment Variables¶
In addition to the usual ways of setting environment variables, they can be set via a .env
file. Visionatrix uses the python-dotenv package to load variables from a .env
file.
Additionally, some variables can also be specified via command-line arguments, which take precedence over environment variables.
This document describes the available environment variables, their default values, and how they affect Visionatrix's operation.
Using a .env
File¶
To simplify configuration, you can create a .env
file in the root directory of your Visionatrix installation. In this file, you can define environment variables in the format:
VARIABLE_NAME=value
General Variables¶
BACKEND_DIR¶
- Description: Directory for the folder containing ComfyUI. The path can be absolute or relative.
-
Default:
./vix_backend
Note
The command-line argument
--backend_dir=BACKEND_DIR
takes precedence over the environment variable.
FLOWS_DIR¶
- Description: Directory for storing flows. The path can be absolute or relative.
-
Default:
./vix_flows
Note
The command-line argument
--flows_dir=FLOWS_DIR
takes precedence over the environment variable.
MODELS_DIR¶
- Description: Directory for the models. The path can be absolute or relative.
-
Default:
./vix_models
Note
The command-line argument
--models_dir=MODELS_DIR
takes precedence over the environment variable.
TASKS_FILES_DIR¶
- Description: Directory for input/output files. The path can be absolute or relative.
-
Default: Absolute path to
./vix_tasks_files
Note
The command-line argument
--tasks_files_dir=FILES_DIR
takes precedence over the environment variable.
UI_DIR¶
- Description: Path to the User Interface (JavaScript frontend). This is the directory that will be served as the root of the website.
-
Default: Empty string.
Note
- Command-line Argument:
--ui
(enables the User Interface using the default frontend), or--ui=/path/to/frontend
(specifies the path to a custom frontend).
Command-line arguments take precedence over the environment variable.
VIX_MODE¶
- Description: Determines the working mode of Visionatrix.
-
DEFAULT
: Storage and delivery of tasks (Server) + task processing (Worker).Note
Authentication is disabled in this mode.
-
SERVER
: Only storage and management of tasks.Note
Authentication is enabled. Requires a PostgreSQL database.
-
WORKER
: Only processes tasks from the Server (client consuming mode, no backend). -
Default:
DEFAULT
Note
The command-line argument
--mode=
takes precedence over the environment variable.
Please refer to the Working Modes documentation for more details.
Variables for Specific Modes¶
SERVER and DEFAULT Mode¶
VIX_HOST¶
- Description: Address to bind to in the
DEFAULT
orSERVER
mode. -
Default:
127.0.0.1
(binds to the local interface)Note
The command-line argument
--host=HOST
takes precedence over the environment variable.
VIX_PORT¶
- Description: Port to bind to in the
DEFAULT
orSERVER
mode. -
Default:
8288
Note
The command-line argument
--port=PORT
takes precedence over the environment variable.
VIX_SERVER_WORKERS¶
- Description: Number of server instances to spawn (using Uvicorn). Useful for production environments with a large number of users.
- Default:
1
VIX_SERVER_FULL_MODELS¶
- Description: Flag that determines whether full models rather than dummy models should be stored in
SERVER
mode. Useful when both the Server and Workers are on the same machine, or when theMODELS_DIR
is shared between the Server and Workers. - Default:
0
(disabled) - Set to:
1
to enable.
DATABASE_URI¶
-
Description: URI for the database used by Visionatrix. Required in
SERVER
mode.Warning
SQLite is not supported in the
SERVER
mode. -
Default:
sqlite:///./tasks_history.db
- For SQLite: If the path is relative, it is relative to the current directory.
- Note: For PostgreSQL, the format is:
postgresql+psycopg://user:password@host:port/database
WORKER Mode¶
When running in WORKER
mode, the following variables are relevant:
VIX_SERVER¶
- Description: The full URL of the Server to connect to when running in
WORKER
mode in the Worker to Server configuration. -
Default: Empty string (must be set in
WORKER
mode if not usingDATABASE_URI
)Warning
If
VIX_SERVER
is set, the Worker will communicate with the Server via the network;DATABASE_URI
will be ignored.You are required to specify either
VIX_SERVER
orDATABASE_URI
for the Worker, so it can fetch tasks to process.
DATABASE_URI¶
- Description: In
WORKER
mode, it is used only for the Worker to Database-FS configuration. - Default:
sqlite:///./tasks_history.db
- Note: For Workers connecting directly to a PostgreSQL database, use the appropriate
DATABASE_URI
.
WORKER_AUTH¶
- Description: Authentication credentials for the Worker when connecting to the Server. Format:
USER_ID:PASSWORD
-
Default:
admin:admin
Note
This is only applicable for the Worker to Server configuration.
WORKER_NET_TIMEOUT¶
- Description: Network timeout in seconds for the Worker when communicating with the Server.
-
Default:
15.0
Note
This is only applicable for the Worker to Server configuration.
Other Variables¶
FLOWS_URL¶
- Description: URLs or file paths (separated by semicolons
;
) that point to locations of archive files containing lists and definitions of Visionatrix workflows. Specifies where Visionatrix fetches the available flows. - Default:
https://visionatrix.github.io/VixFlowsDocs/
- More Information: Workflows Storage
MODELS_CATALOG_URL¶
- Description: URL or file path to fetch the models catalog for ComfyUI workflows. This catalog specifies available models.
- Default:
https://visionatrix.github.io/VixFlowsDocs/models_catalog.json
MIN_PAUSE_INTERVAL¶
- Description: Minimum interval in seconds (float) that the Worker waits between checking for new tasks when none are available. Helps reduce server load when idle.
- Default:
0.1
MAX_PAUSE_INTERVAL¶
- Description: Maximum interval in seconds (float) that the Worker waits between checking for new tasks when none are available. The pause interval increases gradually from
MIN_PAUSE_INTERVAL
toMAX_PAUSE_INTERVAL
in 10 steps. - Default:
1.0
GC_COLLECT_INTERVAL¶
- Description: Interval in seconds (float) after which the GPU memory release and garbage collection procedure is called after task execution. Not recommended to change unless you know what you're doing.
- Default:
10.0
USER_BACKENDS¶
- Description: List of user backends to enable. Each backend supports its own environment variables for configuration.
- Default:
vix_db
- Format: Semicolon-separated list of backends (e.g.,
vix_db;nextcloud
) - Example:
This will enable the
USER_BACKENDS=vix_db;nextcloud
nextcloud
user backend in addition to the defaultvix_db
.
MAX_PARALLEL_DOWNLOADS¶
- Description: Maximum number of parallel downloads allowed during workflow installation.
- Default:
2
MAX_GIT_CLONE_ATTEMPTS¶
- Description: Maximum number of attempts to perform
git clone
operations during installation or updates. - Default:
3
CORS_ORIGINS¶
- Description: A comma-separated list of origins that are allowed to make Cross-Origin Resource Sharing (CORS) requests to the server. This is necessary when the frontend and backend are hosted on different domains or ports. By specifying allowed origins, you enable frontend applications running on those origins to interact with the Visionatrix backend.
- Default: Empty string (CORS is disabled; only same-origin requests are allowed).
-
Example:
CORS_ORIGINS="http://localhost:3000,http://192.168.1.132:3000,http://192.168.1.132:8288"
In this example, requests are permitted from:
http://localhost:3000
http://192.168.1.132:3000
http://192.168.1.132:8288
Note
This setting is important when developing or deploying the frontend separately from the backend, especially during development when the frontend might be served by a development server on a different port.
Examples¶
Using a .env
File¶
Create a file named .env
in the root directory of Visionatrix with the following content:
# Set the working mode to SERVER
VIX_MODE=SERVER
# Set the database URI to use PostgreSQL
DATABASE_URI=postgresql+psycopg://vix_user:vix_password@localhost:5432/vix_db
# Set the number of server workers
VIX_SERVER_WORKERS=4
# Enable full models on the server
VIX_SERVER_FULL_MODELS=1
# Specify the host and port to bind to
VIX_HOST=0.0.0.0
VIX_PORT=8000
Setting Variables in the Environment¶
On Linux or macOS:
export VIX_MODE=WORKER
export VIX_SERVER=http://server_address:8000
export WORKER_AUTH=worker_user:worker_password
On Windows Command Prompt:
set VIX_MODE=WORKER
set VIX_SERVER=http://server_address:8000
set WORKER_AUTH=worker_user:worker_password
Starting Visionatrix with Command-Line Arguments¶
python3 -m visionatrix run --backend_dir=/path/to/backend --flows_dir=/path/to/flows --models_dir=/path/to/models --tasks_files_dir=/path/to/tasks_files --ui
In this example, the directories are specified via command-line arguments, which will override any environment variables or settings in the .env
file.