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