Skip to content

Ship the 8 + 3 tables with setup; fix the cache preflight and quality slider (0.2.0) - #62

Merged
KBRASK merged 7 commits into
mainfrom
fix/quality-levels-followup
Oct 5, 2026
Merged

KBRASK merged 7 commits into
mainfrom
fix/quality-levels-followup

Conversation

@KBRASK

@KBRASK KBRASK commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Follow-up to #60 after review and testing on Windows. Builds on #61 (the first-generation fix and the launcher wordmark), so merge #61 first.

Default 8 + 3 works out of the box

  • Setup always installs the four three-step refinement tables (332 MiB), so the default 8 + 3 also works offline.
  • New installations prepare every quality level by default (5.5 GiB more). Existing installations keep their choice in the launcher, the CLI and the ComfyUI setup panel. --no-sampling-caches opts out.
  • Tables are added only when a reused cache's weights match the published ones. Source conversions compute their own tables.
  • With every level requested, the launcher used to treat the installation as unfinished, so each update or launch reopened the setup review for a 0 GiB plan. It now checks the files and sets up again only while a level is missing.
  • Setup downloads the 900 small table files six at a time with verified resumable transfers. Before, each file went through a large-model transfer process two at a time, about half an hour on a fast connection.

Installed files are actually used

  • Engine processes receive FREEVIDEO_HOME only, so paths.model_root() meant models/, while setup and the request preflight write to the recorded model folder (models/vdn). The engine therefore never used installed or preflighted sampling tables. It downloaded each one again during the timed run, so "Prepare all quality levels" saved nothing. New installations also downloaded the 690 MB latent upscaler a second time on their first two-pass generation.
  • Both now resolve the recorded folder. A copy an earlier version downloaded under models/ stays in use.
  • The launcher keeps its DLL directory when parallel source probes start several curl processes at once (follow-up to Repair missing Windows curl automatically and improve diagnostics #53).

Cache preflight before a request

  • Reference audio, image + audio, and video-with-soundtrack requests fetch the tables the encoder actually selects. Before, they fetched unused image-to-video tables and then downloaded the right ones during the timed run.
  • Downloads run in parallel using the sources ranked at setup. The fixed cost before every request (a speed test of up to 32 MiB per source) is gone. Measured on the t2va three-step table (58 MB): 13.8–15.5 s before, 1.8–2.1 s after.
  • A cancel stops every transfer at once.
  • A damaged or superseded shared copy is set aside and downloaded again instead of blocking every request.
  • Free space is checked first. The ComfyUI console stays quiet.
  • The engine reads each table file from whichever folder holds it, so a table split between the cache and the shared folder is never downloaded again.

Quality slider

  • Each level is a complete plan: Light is two-pass 8 + 3, and Medium, High and Max are single-pass 12, 16 and 20.
  • Editing first-pass steps turns two-pass off only for a committed, valid value, and turns it back on at 8. Ctrl+Enter commits a field being edited before queuing.
  • Opening the studio never rewrites a workflow. A saved workflow that already uses another plan shows as Custom.
  • Workflows saved with the earlier 8 + 2 default move to 8 + 3 once. A later explicit 8 + 2 is kept.
  • Chinese level names (轻量 / 标准 / 精细 / 极致) and 即将推出.
  • Estimates now also work on Macs, matched by chip and unified memory.

Other

  • Tuned placement profiles also apply to the default version-3 plan.
  • Diagnostics keep the optional table counters.
  • Version 0.2.0 with bilingual release notes.

Checked

KBRASK added 7 commits October 5, 2026 23:22
…che preflight

Setup always installs the four three-step refinement tables (332 MiB), so the
default 8 + 3 works offline, and new installations prepare every quality level
by default. Existing installations keep their choice.

Cache preflight: fetch the tables the encoder will select for reference audio
(not image-to-video tables), download files in parallel with the sources
ranked at setup instead of a new speed test per request, set aside a damaged
shared copy instead of blocking every request, check free space, and keep the
ComfyUI console quiet. The engine reads each table file from whichever folder
holds it, so a table split between folders is never downloaded again.

Quality slider: each level is a complete plan. Editing first-pass steps turns
two-pass off only for committed values and restores it at 8; opening the
studio no longer rewrites a workflow; saved 8 + 2 workflows move to 8 + 3
once; Chinese level names; estimates also work on Macs. Diagnostics keep the
optional table counters. Release 0.2.0.
…fer on cancel

- Ctrl+Enter leaves focus in a field: commit its edit before queuing, so the
  queued plan matches the editor. One first-pass step is accepted once the
  two-pass rule has turned two-pass off.
- A cancel reaches one download worker; stop the others at once instead of
  waiting for earlier transfers in order.
- Add tables only for reused caches whose weights match the published ones.
- The CLI and the ComfyUI setup panel prepare every level for new
  installations and keep an existing installation's choice, like the launcher.
Every quality level is nine hundred small files. Setup sent each through a
large-model transfer process, two at a time, so the tables took about half an
hour on a fast connection. Fetch them six at a time with the request
preflight's verified resumable transfers; receipts, the ledger and progress
are unchanged, and large model files keep their two-slot pipeline.
The frozen launcher clears PyInstaller's DLL directory while it starts an
external process. Parallel source probes overlapped those windows and could
restore an empty directory, breaking later DLL loads in the launcher. Clear it
for the first caller and restore it after the last.
Engine processes receive FREEVIDEO_HOME only, so paths.model_root() meant
models/ while setup and the request preflight write to the recorded model
folder (models/vdn). The engine therefore never used installed or preflighted
sampling tables and downloaded each one again during the timed run, and new
installations downloaded the 690 MB latent upscaler a second time on their
first two-pass generation. Resolve the recorded folder for both; a copy an
earlier version downloaded under models/ stays in use.
The two-pass rule runs on committed values, before validation; a single
custom step reads 1 step, not 1 steps.
With "Prepare all quality levels" on, the launcher treated the installation as
unfinished and sent every update or launch back to the setup review, asking to
accept a 0 GiB plan again. New installations now have the option on by
default, so check the files instead: set up again only while a requested level
is missing (or no published table applies to these weights).
@KBRASK
KBRASK force-pushed the fix/quality-levels-followup branch from 1fbd9ca to edee0c2 Compare October 5, 2026 23:23
@KBRASK
KBRASK merged commit 20d55e8 into main Oct 5, 2026
4 checks passed
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.

1 participant