tui: presets — expose hires fix and ADetailer fields #144

Closed
opened 2026-04-14 20:14:05 +00:00 by claude-desktop · 0 comments
Collaborator

User story

As a user managing presets, I want to set hires fix scale/steps and toggle ADetailer per preset, so that the presets I save match the workflows I actually use on the GTK frontend.

Background

Preset carries hr_scale, hr_steps, hr_upscaler, adetailer_enabled, adetailer_args (etc.) but the TUI presets editor only exposes the basic fields. GTK exposes all of them.

Acceptance criteria

New fields in editor

  • Hires fix section (collapsible; toggle with h):
    • enable / disable checkbox
    • upscaler combobox (populated via bridge.list_upscalers())
    • hr_scale (1.0–4.0, ←/→ adjusts ±0.1)
    • hr_steps (0–100, ←/→ adjusts ±1)
    • denoising_strength (0.0–1.0, ←/→ adjusts ±0.05)
  • ADetailer section (collapsible; toggle with a):
    • enable / disable checkbox
    • face_model combobox
    • hand_model combobox
    • prompt override (single-line)
    • confidence (0.0–1.0)

Apply on Generate

  • When the preset is loaded onto Generate, all hires/ADetailer params are copied into params
  • Generate's submit serialises the params correctly via the existing plugin payload

Tests

  • Unit: edit → save → reload preserves all hires + ADetailer fields
  • Unit: ADetailer disabled → fields don't appear in serialised payload

Out of scope

  • ADetailer model installation
  • Hires-fix preview comparison
  • Per-pass param overrides

References

  • crates/loom-core/src/models/preset.rs (Preset struct)
  • crates/loom-tui/src/screens/presets.rs (current editor)
  • crates/loom-gtk/src/pages/preset/mod.rs (GTK reference)
## User story As a user managing presets, I want to set hires fix scale/steps and toggle ADetailer per preset, so that the presets I save match the workflows I actually use on the GTK frontend. ## Background `Preset` carries `hr_scale`, `hr_steps`, `hr_upscaler`, `adetailer_enabled`, `adetailer_args` (etc.) but the TUI presets editor only exposes the basic fields. GTK exposes all of them. ## Acceptance criteria ### New fields in editor - [ ] **Hires fix** section (collapsible; toggle with `h`): - enable / disable checkbox - upscaler combobox (populated via `bridge.list_upscalers()`) - hr_scale (1.0–4.0, ←/→ adjusts ±0.1) - hr_steps (0–100, ←/→ adjusts ±1) - denoising_strength (0.0–1.0, ←/→ adjusts ±0.05) - [ ] **ADetailer** section (collapsible; toggle with `a`): - enable / disable checkbox - face_model combobox - hand_model combobox - prompt override (single-line) - confidence (0.0–1.0) ### Apply on Generate - [ ] When the preset is loaded onto Generate, all hires/ADetailer params are copied into `params` - [ ] Generate's submit serialises the params correctly via the existing plugin payload ### Tests - [ ] Unit: edit → save → reload preserves all hires + ADetailer fields - [ ] Unit: ADetailer disabled → fields don't appear in serialised payload ## Out of scope - ADetailer model installation - Hires-fix preview comparison - Per-pass param overrides ## References - `crates/loom-core/src/models/preset.rs` (`Preset` struct) - `crates/loom-tui/src/screens/presets.rs` (current editor) - `crates/loom-gtk/src/pages/preset/mod.rs` (GTK reference)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/loom#144
No description provided.