tui: Model browser — CivitAI integration #32

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

User story

As a user, I want to discover and install CivitAI models from inside loom-tui, so that I don't have to open a browser to grow my model library.

Acceptance criteria

Layout

  • Model Browser screen split per §4.3.1: left source tabs, top search, results grid, bottom detail pane
  • CivitAI tab selected by 1 or via the default tab state

Search & browse

  • Text-to-search with 300 ms debounce
  • Paginated results; n / N for next/previous page
  • Filters: model type (Checkpoint / LoRA / VAE / TI / …), base model (SD1.5, SDXL, Flux), NSFW toggle respecting global NSFW setting
  • Each result card: preview image (via ImageRenderer), name, type, rating, download count

Detail pane

  • Focused card populates the detail pane: description, preview gallery (scrollable with h/l), version selector, file size, license, tags

Install

  • Enter or i starts a download to the configured model directory
  • Supports multiple concurrent downloads; each appears in a "Downloads" sub-panel with a progress bar
  • u (one-click use) installs if needed and sets the model as active on the Generate screen

Plumbing

  • All HTTP calls go through the CivitAI Lua plugin via loom-core; no direct HTTP from loom-tui
  • Respects configured CivitAI API key from Settings

Tests

  • Unit test: debounce collapses rapid keystrokes to a single search call
  • Unit test: NSFW toggle hides NSFW results from the mocked plugin response

Out of scope

  • Hugging Face tab (separate ticket)
  • Local tab (separate ticket)
  • IP-Adapter dedicated filter (separate ticket)

References

  • Spec §4.3 "Model Browser Screen"
## User story As a user, I want to discover and install CivitAI models from inside loom-tui, so that I don't have to open a browser to grow my model library. ## Acceptance criteria ### Layout - [ ] Model Browser screen split per §4.3.1: left source tabs, top search, results grid, bottom detail pane - [ ] CivitAI tab selected by `1` or via the default tab state ### Search & browse - [ ] Text-to-search with 300 ms debounce - [ ] Paginated results; `n` / `N` for next/previous page - [ ] Filters: model type (Checkpoint / LoRA / VAE / TI / …), base model (SD1.5, SDXL, Flux), NSFW toggle respecting global NSFW setting - [ ] Each result card: preview image (via `ImageRenderer`), name, type, rating, download count ### Detail pane - [ ] Focused card populates the detail pane: description, preview gallery (scrollable with `h`/`l`), version selector, file size, license, tags ### Install - [ ] `Enter` or `i` starts a download to the configured model directory - [ ] Supports multiple concurrent downloads; each appears in a "Downloads" sub-panel with a progress bar - [ ] `u` (one-click use) installs if needed and sets the model as active on the Generate screen ### Plumbing - [ ] All HTTP calls go through the CivitAI Lua plugin via `loom-core`; no direct HTTP from loom-tui - [ ] Respects configured CivitAI API key from Settings ### Tests - [ ] Unit test: debounce collapses rapid keystrokes to a single search call - [ ] Unit test: NSFW toggle hides NSFW results from the mocked plugin response ## Out of scope - Hugging Face tab (separate ticket) - Local tab (separate ticket) - IP-Adapter dedicated filter (separate ticket) ## References - Spec §4.3 "Model Browser Screen"
charles added this to the loom-tui v0.1.0 milestone 2026-04-11 13:05:00 +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#32
No description provided.