tui: Entity screen — face detection & AI description #37

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

User story

As a user building a character library, I want AI-assisted description generation and face detection on entity reference images, so that I can spend less time typing and more time iterating.

Acceptance criteria

Description generation (Ctrl+D)

  • From the entity editor, invokes loom-core::AiJobWorker::describe_entity(path) via Ollama or Claude Code
  • Spinner in the status bar while the job runs
  • On completion the returned description fills the description field (replacing previous content after a confirmation prompt if non-empty)
  • Errors surface via the notification bar; description field is preserved on failure

Face detection (Ctrl+F)

  • Requires an entity with a thumbnail image
  • Calls loom-core::AiJobWorker::detect_face(path)
  • Detected face region highlighted on the thumbnail preview (draw a rect overlay using ratatui)
  • Face rect stored on the entity record for reuse (e.g., face swap workflows)

Tests

  • Unit test: successful description job updates the field; empty-field case skips confirmation
  • Unit test: face rect is persisted and restored from loom-core storage

Out of scope

  • Entity CRUD itself (separate ticket)

References

  • Spec §4.4.2 "Face detection", "AI-generated description"
  • Spec §6 "AI-Assisted Workflow"
## User story As a user building a character library, I want AI-assisted description generation and face detection on entity reference images, so that I can spend less time typing and more time iterating. ## Acceptance criteria ### Description generation (`Ctrl+D`) - [ ] From the entity editor, invokes `loom-core::AiJobWorker::describe_entity(path)` via Ollama or Claude Code - [ ] Spinner in the status bar while the job runs - [ ] On completion the returned description fills the `description` field (replacing previous content after a confirmation prompt if non-empty) - [ ] Errors surface via the notification bar; description field is preserved on failure ### Face detection (`Ctrl+F`) - [ ] Requires an entity with a thumbnail image - [ ] Calls `loom-core::AiJobWorker::detect_face(path)` - [ ] Detected face region highlighted on the thumbnail preview (draw a rect overlay using ratatui) - [ ] Face rect stored on the entity record for reuse (e.g., face swap workflows) ### Tests - [ ] Unit test: successful description job updates the field; empty-field case skips confirmation - [ ] Unit test: face rect is persisted and restored from `loom-core` storage ## Out of scope - Entity CRUD itself (separate ticket) ## References - Spec §4.4.2 "Face detection", "AI-generated description" - Spec §6 "AI-Assisted Workflow"
charles added this to the loom-tui v0.1.0 milestone 2026-04-11 13:05:45 +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#37
No description provided.