76 lines
3.3 KiB
JSON
76 lines
3.3 KiB
JSON
{
|
|
// Nilor-Nodes sidecar configuration defaults (non-secret) for local development
|
|
// Precedence model (enforced by the loader): environment variables > this file
|
|
// Secrets MUST NOT be committed here; use .env to override sensitive values
|
|
|
|
allow_env_override: true,
|
|
|
|
// Log level for nilor-nodes components (DEBUG, INFO, WARNING, ERROR, CRITICAL)
|
|
NILOR_LOG_LEVEL: "INFO",
|
|
// Enable/disable SQS job consumption from Nilor brain_rnd
|
|
NILOR_SQS_ENABLED: false,
|
|
|
|
// ---- Comfy API client (consumed by worker_consumer.py) ----
|
|
// Base HTTP URL for ComfyUI REST API (worker submits to `${api_url}/prompt`)
|
|
NILOR_COMFYUI_API_URL: "http://127.0.0.1:8188",
|
|
// Base WS URL for ComfyUI websocket events (worker listens at `${ws_url}/ws`)
|
|
NILOR_COMFYUI_WS_URL: "ws://127.0.0.1:8188",
|
|
// Request timeout in seconds for ComfyUI HTTP calls
|
|
NILOR_COMFY_API_TIMEOUT_SECONDS: 30,
|
|
|
|
// HTTP idempotent retry policy (applies only to GET /system_stats and POST /free)
|
|
NILOR_COMFY_RETRY_BASE_SECONDS: 0.25,
|
|
NILOR_COMFY_RETRY_MULTIPLIER: 2.0,
|
|
NILOR_COMFY_RETRY_JITTER_SECONDS: 0.25,
|
|
NILOR_COMFY_RETRY_MAX_SLEEP_SECONDS: 4.0,
|
|
NILOR_COMFY_RETRY_MAX_ATTEMPTS: 3,
|
|
|
|
// WebSocket reconnect policy
|
|
NILOR_COMFY_WS_MAX_RECONNECT_ATTEMPTS: 5,
|
|
NILOR_COMFY_WS_MAX_TOTAL_BACKOFF_SECONDS: 30.0,
|
|
|
|
// ---- Memory Hygiene (Guardian) defaults ----
|
|
// Enable/disable hygiene between jobs
|
|
NILOR_MEMORY_HYGIENE_ENABLED: false,
|
|
// How often to check when idle (seconds)
|
|
NILOR_MEMORY_HYGIENE_IDLE_POLL_SECONDS: 5,
|
|
// Thresholds (either percent usage or absolute free MB can trigger)
|
|
NILOR_MEMORY_HYGIENE_VRAM_USAGE_PCT_MAX: 88,
|
|
NILOR_MEMORY_HYGIENE_RAM_USAGE_PCT_MAX: 90,
|
|
NILOR_MEMORY_HYGIENE_VRAM_MIN_FREE_MB: 2048,
|
|
NILOR_MEMORY_HYGIENE_RAM_MIN_FREE_MB: 4096,
|
|
// Action policy: free|unload|both|auto (auto: stage free then unload once if needed)
|
|
NILOR_MEMORY_HYGIENE_ACTION_POLICY: "auto",
|
|
// Retry/backoff/cycle caps
|
|
NILOR_MEMORY_HYGIENE_MAX_RETRIES: 2,
|
|
NILOR_MEMORY_HYGIENE_COOLDOWN_SECONDS: 60,
|
|
NILOR_MEMORY_HYGIENE_SLEEP_BETWEEN_ATTEMPTS_SECONDS: 4,
|
|
NILOR_MEMORY_HYGIENE_MAX_CYCLE_DURATION_SECONDS: 15,
|
|
|
|
// ---- Worker / Queue settings ----
|
|
// Workflow normalization (applies in worker_consumer before submission)
|
|
// When enabled, nilor-nodes will normalize OS-specific path formatting inside
|
|
// incoming workflows (e.g. Windows backslashes vs POSIX slashes).
|
|
NILOR_WORKFLOW_OS_NORMALIZATION_ENABLED: true,
|
|
|
|
// ElasticMQ/SQS endpoint URL (used by consumer and status updates)
|
|
NILOR_SQS_ENDPOINT_URL: "http://localhost:9324",
|
|
// Queue to pull new jobs from (polled by worker_consumer)
|
|
NILOR_SQS_JOBS_TO_PROCESS_QUEUE_NAME: "jobs_to_process-comfyui",
|
|
// Queue to publish job status updates to (sent by worker_consumer)
|
|
NILOR_SQS_JOB_STATUS_UPDATES_QUEUE_NAME: "job_status_updates",
|
|
// Long poll wait time (seconds); must be within [0, 20]
|
|
NILOR_SQS_POLL_WAIT_TIME: 10,
|
|
// Max number of messages to pull per poll
|
|
NILOR_SQS_MAX_MESSAGES: 1,
|
|
|
|
// Non-secret local defaults; override via .env for real deployments
|
|
NILOR_AWS_ACCESS_KEY_ID: "local",
|
|
NILOR_AWS_SECRET_ACCESS_KEY: "local", // secret must be provided via .env
|
|
NILOR_AWS_DEFAULT_REGION: "us-east-1",
|
|
|
|
// If empty or unset, a stable id will be generated by the loader
|
|
NILOR_WORKER_CLIENT_ID: ""
|
|
}
|
|
|