Releases: ControlNet/videnoa
Release list
v0.1.7
What's new
-
Faster video jobs: the Worker reuses per-frame buffers through a per-job pool instead of allocating and freeing hundreds of megabytes for every frame. Frame interpolation feeds the GPU from a reusable CUDA-pinned buffer. On an A40 (1080p 120-frame source, 4K output, cached TensorRT engines):
Pipeline v0.1.6 v0.1.7 Change Super-resolution → frame interpolation, NVENC 23.6 s 14.5 s −38% Super-resolution → frame interpolation, libx265 25.4 s 20.1 s −21% Super-resolution only 10.5 s 9.4 s −10% Kernel time drops by about 75% (47.7 s → 11.1 s with NVENC), and page faults drop from about 20M to about 3M per job.
Fixes and reliability
- Output colours:
VideoOutputconverted RGB to YUV with the BT.601 matrix but tagged the stream as BT.709, so players showed shifted colours. For example, pure green (0,200,0) played back as (0,167,0).VideoOutput,StreamOutputand previews now convert with BT.709 in limited range and tag the range. - Untagged sources: sources without a colour matrix tag are decoded with the convention players use: BT.709 when the frame is at least 1280 wide or more than 576 high, BT.601 otherwise. Previously every untagged source was decoded as BT.601, which skewed HD sources. Tagged sources use their tag.
- Decoder timing: the decoder summary log now reports the real
avg_decode_msinstead of 0.0.
Downloads and Docker
Linux and Windows Worker bundles and standalone Controller archives are available below. Download all parts of a split Worker bundle before extracting the .7z.001 file.
- Worker:
controlnet/videnoa:0.1.7 - Controller:
controlnet/videnoa-controller:0.1.7
Both image repositories also publish latest. The Controller does not require a GPU.
Upgrade
Back up Worker configuration and Controller data before upgrading. Keep the same persistent directories when replacing containers.
- Output colours differ from v0.1.6 because they are now correct. Earlier outputs were shifted, most visibly in saturated greens and reds. Re-run jobs where accurate colour matters.
- Untagged HD sources now decode as BT.709 instead of BT.601.
- Frame interpolation jobs use about 0.3–0.5 GB more host memory, because the buffer pool keeps frames for reuse.
See the Worker and Docker instructions, Controller archive and Docker guide, and Controller reference.
Full changelog: v0.1.6...v0.1.7
v0.1.6
What's new
- Output scaling in video jobs (#5):
ResizeandRescalenow work as the last processing nodes beforeVideoOutput. FFmpeg applies them in the final encode pass, so there is no extra intermediate encode.SuperResolution (4x) → Rescale (0.75) → VideoOutputnow turns 1280×720 into 3840×2160.VideoOutputwidth/heightare now optional, and when set they resize the output. - Lanczos resampling:
ResizeandRescaleadd alanczosalgorithm and use it by default for new nodes. It is sharper than bilinear for downscaling after super-resolution. - Checks before a job is queued: unsupported graphs are rejected with a message that explains the rule, for example a processing node after
Resize/Rescale. So is an output encoder that the bundled FFmpeg does not provide (#6). The Web UI returns HTTP 400 andvidenoa runfails at validation, instead of the job failing after it starts. - Super-resolution scale check: a
SuperResolutionscalethat does not match the model's native scale now fails immediately and suggests the fix. Previously it produced wrong output or crashed. - Real previews: the single-frame preview runs the actual SuperResolution, Resize and Rescale processors on the extracted frame. Preview files live in bounded sessions and are cleaned up when released, when they expire, and at shutdown.
Fixes and reliability
- RealESRGAN brightness: FP32 RealESRGAN models received 0–255 input instead of 0–1, so the output was about half as bright as the source. They now match the source brightness.
- Clean CLI exit with CUDA:
videnoa runno longer aborts withcorrupted double-linked listafter "Workflow completed successfully". The output was complete before, but the exit code was wrong. - Windows encoders (#6): the Windows bundle now ships the BtbN FFmpeg n8.1.3 GPL build, which includes
libx264andlibx265. The previous LGPL build could not run the defaultlibx265output. - Windows path autocomplete (#4): directory browsing returns plain
G:\...paths instead of\\?\paths. The autocomplete understands\, so picking folders stays navigable, including folders with spaces. File API paths are also correct when the workspace is on a different drive. - Job correctness:
- A decoder that fails or emits a partial frame now fails the job.
- Cancelling a job stops scalar and nested workflows between steps.
- Path parameters keep their declared type.
- Deleting job history can no longer resurrect or cancel a job when the delete fails.
- Controller:
- The live event stream recovers after the machine sleeps.
- Paths are reopened after a data-root replacement.
- Publication falls back to copying when a Linux no-replace rename returns
EINVAL. - The task view reads global counts once per view instead of on every page change.
- Release checks: CI and release packaging now check that the bundled FFmpeg lists every encoder the UI offers. They also run real x264/x265 encodes through the VideoOutput filter chain, with MKV statistics tagging. Windows CI now reports every Rust test failure; before, the shell masked failures from all but the last command.
Downloads and Docker
Linux and Windows Worker bundles and standalone Controller archives are available below. Download all parts of a split Worker bundle before extracting the .7z.001 file.
- Worker:
controlnet/videnoa:0.1.6 - Controller:
controlnet/videnoa-controller:0.1.6
Both image repositories also publish latest. The Controller does not require a GPU.
Upgrade
Back up Worker configuration and Controller data before upgrading. Keep the same persistent directories when replacing containers.
VideoOutputno longer has anfpsport; the source frame rate is always preserved. Saved workflows with anfpsvalue keep working, because the value is ignored. Only a connection intofpsnow fails validation.- A
SuperResolutionnode whosescalediffers from the model's native scale now fails instead of producing wrong output. Setscaleto the native scale, for example 4 forRealESRGAN_x4plus_anime_6B. Then reach the target size withRescale/Resizeor withVideoOutputwidth/height. - Output from FP32 RealESRGAN models is brighter than in v0.1.5, because it is now correct. Re-run jobs whose results looked too dark.
- Windows v0.1.5 users who cannot upgrade yet can replace the install's
binfolder withbin_win64.zip. See #6 for the steps.
See the Worker and Docker instructions, Controller archive and Docker guide, and Controller reference.
Full changelog: v0.1.5...v0.1.6
v0.1.5
What's new
- Rebuilt Worker Web UI: redesign the Models, model detail, Performance, and Settings views with clearer controls, denser operational information, and a cleaner model graph.
- Configurable Controller storage: configure separate DATA ROOT and CACHE ROOT paths from Settings. Path changes are staged safely for restart, durable state can migrate to a new empty data root, and the default data directory retains the locator needed across restarts.
- Customizable task table: persist task filters, sorting, paging, and visible columns in the browser, and optionally show task priority. Task refreshes preserve rows instead of tearing down the table.
- Improved Settings workflow: make the Paths section easier to understand and keep the settings commit bar accessible at the viewport edge.
Fixes and reliability
- Retry uncertain submissions safely: automatically retry timed-out, disconnected, rate-limited, or server-failed Worker submissions with the same task attempt and idempotency identity, avoiding duplicate compute across Workers.
- Harden concurrent recovery: defer recovery while Worker health changes are being committed, preventing stale health updates from racing active recovery decisions.
- Make publication recovery safer: retain the destination directory during verified cross-filesystem copy publication, resume only when ownership and byte-prefix evidence still match, and remove newly created empty outputs after failed publication.
- Clean up model graphs: remove the misleading hidden-Constant caption from model detail graphs.
- Harden release downloads: retry and resume large Linux release-asset downloads instead of failing the publication on a transient connection error.
Downloads and Docker
Linux and Windows Worker bundles and standalone Controller archives are available below. Download all parts of a split Worker bundle before extracting the .7z.001 file.
- Worker:
controlnet/videnoa:0.1.5 - Controller:
controlnet/videnoa-controller:0.1.5
Both image repositories also publish latest. The Controller does not require a GPU.
The Worker image now aligns with the published release environment: CUDA 12.8, cuDNN 9.14, TensorRT 10.9, and ONNX Runtime 1.23.2. This fixes the RIFE v4.26 TensorRT cold-cache compilation mismatch seen with the previous container runtime. The image also removes avoidable build-context content, the duplicate Worker WebUI payload, and unused MKVToolNix programs. Because the aligned image includes the complete runtime libraries required by the published inference backends, it may still be larger than the earlier incomplete runtime image.
Upgrade
Back up Worker configuration and Controller data before upgrading. Keep the same persistent directories when replacing containers; Controller database migrations run on startup.
Existing Controller installations continue to use data for both roots by default. When configuring custom paths, pause scheduling, wait for every task to become terminal, save the path change, and restart Controller. Persist both DATA ROOT and CACHE ROOT, and keep the default /workspace/data mount in Docker because it stores the locator for a moved DATA ROOT.
The updated TensorRT runtime may compile compatible engines on first use. Keep model and cache storage persistent and allow the initial cold run to finish.
See the Worker and Docker instructions, Controller archive and Docker guide, and Controller reference.
Full changelog: v0.1.4...v0.1.5
v0.1.4
What's new
- Iroh Worker connections: connect Controller to a Worker using its Endpoint ID and service password, with direct connectivity where available and relay fallback. Iroh is optional; existing HTTP/HTTPS connections remain supported. Persistent identities keep Endpoint IDs stable across restarts, and Workers log their public Endpoint ID when Iroh starts.
- Jellyfin batch naming: add a Jellyfin-style version suffix option for batch output filenames.
- Locally bundled fonts: both Web UIs now include Manrope and Geist Mono fonts, removing runtime requests to Google Fonts.
- Live Controller updates: refresh Worker health, names, capacity, and scheduler status without manual reloads. Task filters show Worker names, and task detail refreshes preserve scrolling and expanded attempt history.
Fixes and reliability
- Accept updated input files: uploads use the current file instead of rejecting changes since task creation, including changes made by media-library tools. Upload no longer repeats the admission hash; current file size is persisted for transfer verification and recovery.
- Retry previous input-change failures: historical upload-stage
input_changedfailures can be retried manually from task details, even if originally marked non-retryable. No database edits are required. - Preserve unsaved settings: scheduler events and settings-version conflicts retain edited fields, refresh untouched fields, and prompt users to review remote changes before saving. Failed refreshes keep the draft and block updates until recovery.
- Fix HTTP-to-Iroh password editing: switching connection type after selecting “Clear saved password” restores the password field, allowing the saved password to be kept or replaced.
- Prevent concurrency errors: queued Worker updates no longer overwrite each other, and duplicate output finalizers cannot interfere with an active publication.
- Improve Iroh lifecycle and diagnostics: disabled Workers do not initialize discovery/relay connections, re-enabling preserves identity, and authentication failures are classified correctly. Also fix Windows dependency compatibility, reduce live-table movement, and improve MKV metadata-tool error diagnostics.
Downloads and Docker
Linux and Windows Worker bundles and standalone Controller archives are available below. Download all parts of a split Worker bundle before extracting the .7z.001 file.
- Worker:
controlnet/videnoa:0.1.4 - Controller:
controlnet/videnoa-controller:0.1.4
Both image repositories also publish latest. The Controller does not require a GPU.
Upgrade
Back up existing configuration and Controller data before upgrading. Keep the same persisted directories when replacing containers; Controller database migrations run on startup. Retain the persistent Iroh identity files to preserve Endpoint IDs.
Update Controller and Workers together to use Iroh. Configure a Worker service password before enabling it. Iroh uses public discovery/relay services by default, so connectivity still depends on network reachability. Locally bundled fonts remove the font-service dependency only.
Previously failed input_changed tasks require an explicit Retry action; upgrading does not restart them automatically.
See the Iroh setup guide, Worker and Docker instructions, and Controller documentation.
Full changelog: v0.1.3...v0.1.4
v0.1.3
What's new
- Videnoa Controller: a standalone service and Web UI for managing multiple Workers, task scheduling, live progress, batch creation, and recovery. Linux/Windows Controller archives and a dedicated Docker image are now included.
- More reliable NAS workflows: support for media symlinks, cross-mount publication, explicit retry of ambiguous publication failures, and operation-level filesystem diagnostics.
- Less redundant I/O: one full input-content hash at admission and one before upload. Upload/download transfer timeouts measure inactivity rather than the complete transfer duration.
- Authentication and visibility: optional service passwords, authenticated Worker connections, configurable Controller session lifetimes, and server version/source information in both frontends.
- Worker improvements: MKV metadata preservation, configurable NVENC output with software fallback, and inference-memory reclamation improvements.
Docker images
- Worker:
controlnet/videnoa:0.1.3 - Controller:
controlnet/videnoa-controller:0.1.3
Both repositories also publish latest. The Controller does not require a GPU.
Upgrade
Back up existing configuration and Controller data before upgrading. Keep the same persisted directories when replacing containers; Controller database migrations run on startup.
See the Worker and Controller Docker instructions and Controller documentation.
Full changelog: v0.1.2...v0.1.3
v0.1.2
v0.1.1
48.214% higher cache-hot steady-state processing FPS for the combined TensorRT FI -> SR pipeline, improving the median from 5.6 FPS in v0.1.0 to 8.3 FPS in v0.1.1.
Full Changelog: v0.1.0...v0.1.1
v0.1.0
[Misc] Misc files of release
This release includes the required large files dependencies for each platform.