Files
nilor-corp-nilor-nodes/config/config.json5

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: ""
}