Skip to content

webui: expose the quality-critical options existing groups were missing - #419

Closed
CryptVenture wants to merge 1 commit into
0xShug0:mainfrom
CryptVenture:pr/params-missing-controls
Closed

webui: expose the quality-critical options existing groups were missing#419
CryptVenture wants to merge 1 commit into
0xShug0:mainfrom
CryptVenture:pr/params-missing-controls

Conversation

@CryptVenture

Copy link
Copy Markdown
Contributor

Split out of #374 as requested: options missing from groups that already exist. The new analysis groups, the new TTS groups, the dead controls, the default overrides and the range fixes are separate PRs.

The problem

Twenty groups existed but left out options their families read — including the ones that decide output quality. They were reachable only by hand-writing JSON into the fallback box.

What is added

Group Options Read at
omnivoice t_shift, class_temperature, position_temperature, layer_penalty_factor, denoise, preprocess_prompt, postprocess_output, audio/text chunking session.cpp:100-116, loader.cpp:34
irodori_tts seven guidance knobs, duration bounds, no_ref, trim_tail, instruction session.cpp:451-454 and the guidance block
index_tts2 the whole sampling block — do_sample, temperature, top_p, top_k, repetition_penalty, num_beams, length_penalty index_tts2/request.cpp
chatterbox min_p (its actual truncation filter), top_p, s3gen_cfg_rate chatterbox/session.cpp
qwen3_tts the sub-talker block, x_vector_only_mode qwen3_tts/session.cpp:58
minimax_music3 ensemble takes, flow uncond/hop controls minimax_music3/session.cpp, pipeline.cpp
seed_vc f0_condition, auto_f0_adjust, semitone_shift seed_vc/session.cpp — without these the SVC entry cannot do what SVC is for
voxcpm1, voxcpm2, heartmula, neutts, vibevoice, stable_audio, ace_step, minimax_h3, the four firered-audio groups retry/chunking/sampling/negative-prompt options each family reads their own sources

What is deliberately left out

The original change also added reference_max_seconds and reference_pad_ms to omnivoice. Nothing in the tree reads either name — src/models/omnivoice reads denoise, duration, guidance_scale, num_inference_steps, preprocess_prompt, postprocess_output, seed, speed, t_shift and the prefixed session options — so they are not here.

Validation

python3 -m json.tool webui/configs/model_params.json   # parses
python3 tools/check_loader_catalog_sync.py
# ok: runtime loaders, model_specs, and model_manager_v2 are in sync

Every added control name was checked against its family's sources, or against the shared chunking helpers in src/framework/text/chunking.cpp and src/framework/audio/chunking.cpp.

Scope

One data file, 65 controls added. The 20 deletions in the diff are the previous last line of each group gaining a trailing comma. No code change. The generated bundle is deliberately excluded — it is not byte-reproducible, so regenerating it in each PR of this split would make the PRs conflict; happy to send one bundle-regeneration PR once the series lands.

Twenty groups already existed but left out options their families read, so the
controls that decide output quality were reachable only through the JSON
fallback box.

  - omnivoice: t_shift, class_temperature, position_temperature,
    layer_penalty_factor, denoise, preprocess_prompt, postprocess_output and
    the audio/text chunking knobs (session.cpp:100-116, loader.cpp:34).
  - irodori_tts: its seven guidance knobs plus duration bounds, no_ref,
    trim_tail and the instruction field (session.cpp:451-454 and the guidance
    block).
  - index_tts2: the whole sampling block -- do_sample, temperature, top_p,
    top_k, repetition_penalty, num_beams, length_penalty.
  - chatterbox: min_p, its actual truncation filter, alongside top_p, whose
    default is a documented no-op, and s3gen_cfg_rate.
  - qwen3_tts: the sub-talker block and x_vector_only_mode.
  - minimax_music3: ensemble takes and the flow uncond/hop controls.
  - seed_vc: f0_condition, auto_f0_adjust and semitone_shift, without which
    the SVC entry cannot do what SVC is for.
  - voxcpm1/voxcpm2: retry_badcase controls; heartmula: chunking; neutts,
    vibevoice, stable_audio, ace_step, minimax_h3 and the four firered-audio
    groups: the sampling or negative-prompt options each reads.

Every name was checked against the family's sources. Two controls that the
original change had for omnivoice -- reference_max_seconds and
reference_pad_ms -- are left out: nothing in the tree reads them.

Validation:
  python3 -m json.tool webui/configs/model_params.json
  python3 tools/check_loader_catalog_sync.py     # in sync
@CryptVenture
CryptVenture force-pushed the pr/params-missing-controls branch from 23a84d2 to 1ca1cc8 Compare September 3, 2026 01:42
@CryptVenture

Copy link
Copy Markdown
Contributor Author

Closing for now to stay inside the 3-concurrent-PR policy (see the discussion on #422). Nothing is wrong with the change and CI is green on it; I will reopen it as review slots free.

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