Commit Graph
8 Commits
Author SHA1 Message Date
Sly cfd8e2cfde feat: implement storage endpoints migration for ComfyUI nodes (#8)
feat: migrate ComfyUI nodes from presigned URLs to Brain API storage endpoints

## Core Architecture Changes
- Add new BrainApiClient for direct Brain API communication
- Replace presigned URL workflow with storage_id/filename pattern
- Update MediaStreamInput to use storage_id + filename instead of presigned_download_url
- Update MediaStreamOutput to use storage_id + filename instead of presigned_upload_url

## Brain API Client Implementation
- Add comprehensive BrainApiClient with authentication and error handling
- Implement get_presigned_upload_url() and get_presigned_download_url() methods
- Add proper Bearer token authentication for Brain API requests
- Include environment variable configuration for Brain API endpoint and credentials

## Media Stream Node Updates
- Refactor MediaStreamInput to request presigned URLs from Brain API using storage_id
- Update MediaStreamOutput to upload directly to MinIO using Brain API presigned URLs
- Simplify node interface by removing presigned URL inputs from workflow templates
- Update JavaScript frontend to hide system inputs and manage node UI state

## Infrastructure Improvements
- Add .idea/ to .gitignore for IDE file exclusions
- Update user_input.py to use new storage_id pattern
- Streamline web interface JavaScript for cleaner node management
2025-10-06 13:07:37 -07:00
Sebastian Monroy ea13b61f21 fix MediaStreamOutput node's "fps" input being visible only when "format" input is changed to "video" 2025-10-01 15:37:08 +01:00
Sebastian Monroy 51777e3462 feat(workers): include required fields in status updates; honor optional status_policy
- copy content_id, venue, canvas, scene from job payload into status updates
- use running_status for first progress; fail_status on execution errors (fallbacks preserved)
- manage per-content context lifecycles
2025-09-26 16:06:33 +01:00
Sebastian Monroy a42221565d refactor(nilor-nodes): adopt content_id in worker_consumer and MediaStreamOutput
- read `content_id` from job payloads in `worker_consumer.py` (replace `client_id`)
- rename internal mappings (e.g., `prompt_id_to_content_id_map`)
- MediaStreamOutput: require `content_id` input (replace `job_id`)
- completion messages: `{ "content_id": <uuid>, "status": "completed", "outputs": { ... } }`
- web widget: hide `content_id` instead of `job_id`
- BREAKING CHANGE: older payloads with `job_id`/`client_id` are no longer accepted
2025-09-25 16:10:06 +01:00
Sebastian Monroy 19c693168b new NilorGroup controller node, updated _hook names to be more indicative of the fact that groups and presets are both types of controllers which accept the same hooks from the same UserInput nodes 2025-09-04 15:49:11 +01:00
Sebastian Monroy a94814e632 dynamically growing/shrinking _preset_hook pins on the preset controller node 2025-09-04 12:17:23 +01:00
Sebastian Monroy c2edf563f9 preset controller: initial code for nodes (WIP) 2025-09-04 11:53:12 +01:00
Sebastian Monroy 5f723ae82d MediaStream: hide inputs conditionally using js scripts 2025-09-01 18:11:09 +01:00