Configuration
The config file for the edge runtime is CONFIG.yaml, located at <runtime-root>/CONFIG.yaml. It controls the published API port, which host paths are visible to jobs, chunking behaviour, per-model tuning, and scoring.
After editing CONFIG.yaml you must re-apply it for the change to take effect.
# Update the newer config with the edge runtime
./<runtime-root>/deepfaic-installer update
Checking Configuration
Run a check to get the broken/missing files in runtime-root
./<runtime-root>/deepfaic-installer check
Top-level settings
| Field | Type | Default | Description |
|---|---|---|---|
api_port | number | 9123 | The host TCP port the edge API is published on. The API always binds internally on 9000 inside Docker; this is the external port you call. |
host_mounts | string[] | [] | Extra absolute host directories to expose inside the API container so jobs can reference files outside the default uploads directory. Entries must be absolute paths and cannot be /. |
processing
Controls how media is chunked before being fanned out to the models.
| Field | Type | Default | Description |
|---|---|---|---|
max_concurrent_ffmpeg_chunkers | number | 5 | Maximum number of FFmpeg chunking processes that may run at once. |
normal_video_chunk_size | number | 4 | Video chunk length (seconds) for non-streaming jobs. |
normal_audio_chunk_size | number | 10 | Audio chunk length (seconds) for non-streaming jobs. |
stream_video_chunk_size | number | 4 | Video chunk length (seconds) for streaming jobs. |
stream_audio_chunk_size | number | 4 | Audio chunk length (seconds) for streaming jobs. |
All values must be greater than zero.
models
Per-model lane tuning. The available lanes are facia, diffusion, audio, swintf, dfaudio, and object.
| Field | Type | Description |
|---|---|---|
max_calls_per_url | number | Maximum concurrent requests the dispatcher sends to a single model URL. Must be greater than zero. |
timeout_seconds | number | Per-request timeout for calls to the model. Must be greater than zero. |
frame_percent | number | (facia and diffusion only) Fraction of frames sampled per chunk, between 0.0 and 1.0. |
weight | number | The model's contribution to the aggregated video/audio score. Can be set as 0 to discard the model usage |
frame_percent only applies to the facia and diffusion lanes. Other models process the entire files.
scoring
Aggregation and decision thresholds. All thresholds and top_k_percent/coverage_contribution must be between 0.0 and 1.0.
These values are the default scoring configuration. A job created with profile_name scores with the selected scoring profile instead — the profile's weights and thresholds override this section for that job only.
| Field | Type | Default | Description |
|---|---|---|---|
image_facia_weight | number | 0.25 | Facia weight when aggregating image jobs. |
image_diffusion_weight | number | 0.5 | Diffusion weight when aggregating image jobs. |
top_k_percent | number | 0.2 | Fraction of highest-scoring chunks used for the top-k average. |
prediction_threshold | number | 0.4 | Base prediction threshold. |
video_prediction_threshold | number | 0.4 | Score threshold above which a video is flagged as manipulated. |
audio_prediction_threshold | number | 0.4 | Score threshold above which audio is flagged as manipulated. |
image_prediction_threshold | number | 0.4 | Score threshold above which an image is flagged as manipulated. |
coverage_contribution | number | 0.2 | How much chunk coverage contributes to the final score. |