tui: Generate screen — mode tabs (t2i / i2i / inpaint / controlnet) #22

Closed
opened 2026-04-11 13:03:01 +00:00 by charles · 0 comments
Owner

User story

As a user, I want to switch between text-to-image, image-to-image, inpaint, and ControlNet modes on the Generate screen without navigating away, so that I can reuse prompts and parameters across modes.

Acceptance criteria

Tabs

  • Mode tabs [t2i] [i2i] [inpaint] [controlnet] rendered above the parameter bar
  • Switch with 1/2/3/4 or Ctrl+Tab / Ctrl+Shift+Tab
  • Current mode persists in Generate screen state across screen navigations

Per-mode parameter set

  • t2i: no extra fields
  • i2i: init image path field, denoising strength (0.0–1.0), resize mode; o opens file picker (spawns fzf if on $PATH, otherwise falls back to a built-in directory browser overlay); drag-and-drop path paste via bracketed paste
  • inpaint: init image path + launches Inpaint Canvas overlay (separate ticket) on Enter over the canvas button; mask inpainting strength
  • controlnet: sub-panel toggled with C; supports N ControlNet units (backend-dependent), each with model selector, preprocessor selector, weight, start/end step, image input

Preview hookup

  • In i2i / inpaint / controlnet, the init image shows in the preview pane via the image renderer
  • Invalid image paths raise a notification and disable submit

Tests

  • Unit test: switching from i2i to t2i hides the init-image field but preserves the prompt
  • Unit test: controlnet unit list can add and remove entries without reordering

Out of scope

  • The Inpaint Canvas overlay itself (separate ticket)
  • Preview pane rendering (separate ticket)

References

  • Spec §4.1.2 "Mode tabs" and "ControlNet panel"
## User story As a user, I want to switch between text-to-image, image-to-image, inpaint, and ControlNet modes on the Generate screen without navigating away, so that I can reuse prompts and parameters across modes. ## Acceptance criteria ### Tabs - [ ] Mode tabs `[t2i] [i2i] [inpaint] [controlnet]` rendered above the parameter bar - [ ] Switch with `1`/`2`/`3`/`4` or `Ctrl+Tab` / `Ctrl+Shift+Tab` - [ ] Current mode persists in Generate screen state across screen navigations ### Per-mode parameter set - [ ] `t2i`: no extra fields - [ ] `i2i`: init image path field, denoising strength (0.0–1.0), resize mode; `o` opens file picker (spawns `fzf` if on `$PATH`, otherwise falls back to a built-in directory browser overlay); drag-and-drop path paste via bracketed paste - [ ] `inpaint`: init image path + launches Inpaint Canvas overlay (separate ticket) on `Enter` over the canvas button; mask inpainting strength - [ ] `controlnet`: sub-panel toggled with `C`; supports N ControlNet units (backend-dependent), each with model selector, preprocessor selector, weight, start/end step, image input ### Preview hookup - [ ] In `i2i` / `inpaint` / `controlnet`, the init image shows in the preview pane via the image renderer - [ ] Invalid image paths raise a notification and disable submit ### Tests - [ ] Unit test: switching from i2i to t2i hides the init-image field but preserves the prompt - [ ] Unit test: controlnet unit list can add and remove entries without reordering ## Out of scope - The Inpaint Canvas overlay itself (separate ticket) - Preview pane rendering (separate ticket) ## References - Spec §4.1.2 "Mode tabs" and "ControlNet panel"
charles added this to the loom-tui v0.1.0 milestone 2026-04-11 13:03:01 +00:00
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#22
No description provided.