Skip to content

Feat/custom nodes config#28

Closed
eliteprox wants to merge 48 commits intomainfrom
feat/custom-nodes-config
Closed

Feat/custom nodes config#28
eliteprox wants to merge 48 commits intomainfrom
feat/custom-nodes-config

Conversation

@eliteprox
Copy link
Owner

@eliteprox eliteprox commented Dec 5, 2025

Note

Adds configurable nodes/models builds and a stateful pipeline (bootstrap/warmup/streaming) with BYOC and UI WebRTC preview improvements, plus new OpenCV CUDA artifact workflow and Docker/CI updates.

  • Core/Server:
    • Introduces PipelineState/PipelineStateManager, apply_prompts(), start_streaming(), ingest toggles, and bootstrap/warmup flows.
    • Refactors client runner, adds passthrough fallback and queue cleanup; adds timeout-based exceptions/filters.
    • Updates server/app.py and BYOC server: offer now applies prompts + starts streaming; overlay/withheld frames; metrics retention; removes legacy HTTP streaming.
    • Node loaders (LoadTensor, LoadAudioTensor) gain timeouts; API serves static UI and settings endpoints.
  • Scripts/Configs:
    • setup_nodes.py/setup_models.py accept --config; support HuggingFace directory downloads.
    • Adds configs/nodes-streamdiffusion.yaml, configs/models-ipadapter.yaml, and quick reference docs.
    • Bumps constraints (Torch/xformers) and requirements.
  • Docker/CI:
    • Dockerfile.base adds NODES_CONFIG arg; entrypoint builds TRT engines; new Dockerfile.opencv.
    • New opencv-cuda-artifact workflow; updates actions to v6; release/test workflow tweaks.
  • UI:
    • Adds WebRTC preview page and StreamControl (popup); auto-opens transcription on first text; recording/settings UX tweaks.
  • Docs/Meta:
    • README and Docker docs updated; .editorconfig adjustments.

Written by Cursor Bugbot for commit 6b37414. This will update automatically on new commits. Configure here.

eliteprox and others added 30 commits September 23, 2025 11:42
… (#423)

* nodes(video): add input timeout to LoadTensor and SaveTensor nodes
* refactor(exceptions): improve timeout error logging for ComfyStreamAudioBufferError, ComfyStreamInputTimeoutError
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
…438)

Co-authored-by: Jason Stone <ganesh_friend2010@yahoo.com>
* feat: GitHub workflow for automated OpenCV CUDA builds
* chore: update opencv-cuda for Python 3.12, add FasterLivePortrait
add JoyVASA models, add ComfyUI-FasterLivePortrait, add engine build script
fix(constraints): add cuda-python dependency to constraints file
docker(opencv-cuda): pin move apt pkg installs from entrypoint to dockerfile.base
dockerfile: add opencv-cuda installation, update to build v2.1
---------

Co-authored-by: John | Elite Encoder <john@eliteencoder.net>
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…443)

Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](juliangruber/brace-expansion@1.1.11...v1.1.12)
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* refactor: remove unused HTTP streaming modules and clean up related code
…dia-ml-py (#453)

* chore(deps): bump pytrickle==v0.1.4
* requirements: replace pynvml with nvidia-ml-py due to deprecation warning
* Update OpenCV CUDA workflow to manual
* add publish-comfyui-node workflow
* byoc: fix capability registration, update launch configs
…t output (#428)

* Fix text output panel visibility - hide by default, show on first text output
Co-authored-by: John | Elite Encoder <john@eliteencoder.net>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…om node blacklist (#464)

* byoc(server): change route_prefix from `/api` to `/`
* dockerfile: add entrypoint and cmd for byoc
* fix blacklist_custom_nodes parameter name, fix logging setting for comfyui
* byoc: improve ORCH_SECRET handling
eliteprox and others added 18 commits November 7, 2025 17:27
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@v1...v2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '2'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 6.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@v4...v6)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix linter config
* Refactor code formatting and imports across multiple files
- Add Ruff check and format to lint-staged config
- Create .husky/pre-commit hook to run lint-staged
- Python files will now be auto-formatted on commit
- Hook runs ruff check --fix and ruff format on staged .py files
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…xec control (#499)

* feat(app,pipeline,client): implement pause and resume functionality for prompt execution

- Implemented pause and resume methods in `ComfyStreamClient` and `Pipeline` classes.
- Added support for processing prompt payloads and managing warmup states more effectively.
- Enhanced `VideoStreamTrack` and `AudioStreamTrack` to support stopping and resuming prompts.

* refactor(app): organize control message handling logic to use dedicated async functions for each control action (get_nodes, update_prompts, update_resolution, pause_prompts, resume_prompts, stop_prompts)
- Added success response handling for prompt updates and resolution changes

* chore(deps): bump pytrickle for frame overlay
* refactor(byoc): add `frame_count_to_disable` parameter in the loading configuration for better control.
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump version to 0.1.7
* bump torch 2.8.0, enforce constraints
* fix(docker): enforce numpy version constraint to prevent automatic upgrade to 2.0.0
* nodes.yaml: remove unnecessary dependency
* fix(docker): update cuDNN version to 9.8 to match system version
* fix(docker): Remove duplicate OpenCV CUDA installation
@eliteprox eliteprox closed this Dec 5, 2025
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

try:
processed_av_frame = await asyncio.wait_for(
self.pipeline.get_processed_video_frame(),
timeout=self._stream_processor.overlay_config.auto_timeout_seconds,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: NoneType access when stream processor not set

The process_video_async method accesses self._stream_processor.overlay_config.auto_timeout_seconds without checking if _stream_processor is None. In byoc.py, set_stream_processor() is called after the StreamProcessor constructor receives the process_video_async method reference. If video processing begins before set_stream_processor() completes, this will cause an AttributeError when trying to access overlay_config on None.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants