127 lines
3.5 KiB
TOML
127 lines
3.5 KiB
TOML
# Evanescere configuration file.
|
|
#
|
|
# Copy this file to config.toml for local Compose runs:
|
|
#
|
|
# cp config.example.toml config.toml
|
|
#
|
|
# In containers, mount your config to:
|
|
#
|
|
# /etc/evanescere/config.toml
|
|
#
|
|
# Secrets such as DeepSeek and WebDAV credentials belong in your private config.toml.
|
|
|
|
[app]
|
|
# Free-form environment label included in logs.
|
|
env = "dev"
|
|
|
|
# Python logging level: DEBUG, INFO, WARNING, ERROR.
|
|
log_level = "DEBUG"
|
|
|
|
# Enable SQLAlchemy SQL logging. Very noisy; keep false unless debugging DB behavior.
|
|
log_sql = false
|
|
|
|
# Frontend origins allowed to call FastAPI. Include the Vite dev server while developing.
|
|
cors_origins = ["http://localhost:3000", "http://localhost:5173"]
|
|
|
|
[database]
|
|
# PostgreSQL connection string used by SQLAlchemy.
|
|
# For Compose local-db profile: postgresql+psycopg://evanescere:evanescere@postgres:5432/evanescere
|
|
# For an existing DB: postgresql+psycopg://USER:PASSWORD@HOST:5432/DBNAME
|
|
url = "postgresql+psycopg://evanescere:evanescere@postgres:5432/evanescere"
|
|
|
|
[redis]
|
|
# Redis URL used by Dramatiq workers.
|
|
url = "redis://redis:6379/0"
|
|
|
|
[storage]
|
|
# Container path for working media. Mount a Framework SSD directory here in Compose.
|
|
local_root = "/data/evanescere"
|
|
|
|
[webdav]
|
|
# IIS WebDAV directory containing recording files. Point at the collection, not one file.
|
|
base_url = "https://windows-server.example.local/webdav/recordings"
|
|
|
|
# Leave username/password empty if your WebDAV endpoint does not require basic auth.
|
|
username = ""
|
|
password = ""
|
|
|
|
# Set false only for trusted internal/self-signed testing.
|
|
verify_tls = true
|
|
|
|
# Scheduler interval. A file becomes stable after two equal positive size samples.
|
|
poll_interval_seconds = 60
|
|
|
|
[funasr]
|
|
# FunASR-compatible API base URL. Evanescere calls /audio/transcriptions.
|
|
base_url = "http://funasr:10096/v1"
|
|
|
|
# Optional bearer token for the FunASR service.
|
|
api_key = ""
|
|
|
|
# Model name sent to FunASR. Adjust this to match your deployed service.
|
|
model = "paraformer-zh"
|
|
|
|
[deepseek]
|
|
# OpenAI-compatible DeepSeek API base URL.
|
|
base_url = "https://api.deepseek.com"
|
|
|
|
# Required when clip suggestion is enabled.
|
|
api_key = ""
|
|
|
|
# Initial MVP model.
|
|
model = "deepseek-v4-pro"
|
|
|
|
# Lower values improve consistency.
|
|
temperature = 0.2
|
|
|
|
[defaults]
|
|
# Initial automatic pipeline settings. These can later be changed through the API/UI.
|
|
suggest_enabled = true
|
|
render_enabled = true
|
|
|
|
# For testing, consider false until uploads are wired and verified.
|
|
upload_enabled = true
|
|
|
|
preserve_final_artifacts = true
|
|
bake_subtitles = true
|
|
|
|
[clip]
|
|
# LLM clip duration bounds accepted by the backend.
|
|
min_seconds = 30
|
|
max_seconds = 360
|
|
|
|
# Transcript seconds per DeepSeek request. Larger chunks use more tokens.
|
|
transcript_chunk_seconds = 900
|
|
|
|
[thumbnail]
|
|
# Generate thumbnails during clip render.
|
|
enabled = true
|
|
|
|
# frame_overlay: use extracted video frame as background.
|
|
# command: run command below to call a local image generation workflow.
|
|
provider = "frame_overlay"
|
|
|
|
width = 1920
|
|
height = 1080
|
|
|
|
# Optional transparent PNG of the VTuber character.
|
|
character_overlay_path = ""
|
|
|
|
# Character height as a fraction of thumbnail height.
|
|
character_scale = 0.42
|
|
|
|
# Supported: bottom-right, bottom-left, center-right, center-left.
|
|
character_position = "bottom-right"
|
|
|
|
# Draw the clip title onto the final thumbnail.
|
|
title_enabled = true
|
|
|
|
# Used only when provider = "command". Receives JSON on stdin and must write output_path.
|
|
command = ""
|
|
|
|
[upload]
|
|
# noop: do not upload, only record what would have happened.
|
|
# command: run command below with JSON metadata on stdin.
|
|
adapter = "noop"
|
|
command = ""
|