Skip to content

Releases: erroralex/Latent-Model-Organizer

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 17 Aug 18:27

Release 1.3.0

Date: 2026-08-16
Tag: v1.3.0 (backend/pom.xml)
Previous release: v1.2.0


Highlights

Migrated to the Latent Design System

The UI has been reworked onto the shared Latent Design System token layer
(frontend/src/assets/css/latent/), replacing the old hand-rolled "Deep Neon" theme:

  • Colors, spacing, and typography now come from DS tokens instead of the five
    themes/*.css files, which have been deleted along with the now-fully-superseded
    layout.css and buttons.css global stylesheets (100% dead — no class token from
    either was ever present in the live DOM).
  • Status colors (--status-success, --status-warning, --status-danger) now resolve
    to design-system tokens instead of off-palette Tailwind hexes.
  • Icons standardized on lucide-vue-next, matching the sister apps.
  • Splash screen, titlebar window-control hover colors, and Ctrl+Scroll UI zoom now match
    Latent Tools; dev-credit logo sizing matches Latent Library.
  • npm run lint:ds was added and now runs as part of the release build
    (.github/workflows/build.yml), catching undefined CSS variables and flagging raw hex
    colors outside the token layer before a release ships.

New ds/ component layer

LMO previously had no shared design-system component primitives at all. This release adds:

  • StatusPill — shows live backend connection state in the titlebar, backed by a new
    useBackendStatus polling composable.
  • LBadge — replaces hand-rolled badge markup.
  • LSwitch — replaces hand-rolled toggle markup, fixing keyboard reachability that the
    old markup didn't have.

Each ships with a Vitest spec. LButton and LCard are not yet ported — tracked as open
work in handover.md.

Classification fix: Illustrious / NoobAI / Pony LoRAs

Fixed a misclassification bug where SDXL fine-tune LoRAs (Illustrious, NoobAI, Pony) sorted
into the generic SDXL 1.0 bucket instead of their specific architecture. Root cause:
kohya_ss writes ss_base_model_version: "sdxl_base_v1-0" into the safetensors header
regardless of which specific checkpoint was fine-tuned from — it records the base family,
not the fine-tune. A narrow override (isGenericSdxlBucket() / isSpecificSdxlVariant())
now lets the filename win only in that specific case, without weakening the header's
priority everywhere else. Only affects files that were never fetched from Civitai (a
.civitai.info sidecar still short-circuits to ground truth).

/api/version fixed — no more "vdev" in Settings

Two independent bugs combined to make the Settings dialog always show vdev and the
StatusPill report Offline against a healthy backend:

  • VersionHandler didn't answer the CORS OPTIONS preflight, so the endpoint returned 405
    and was unreachable from the renderer entirely — while working fine over curl, which sends
    no preflight. Fixed by answering preflight like every other handler.
  • The version lookup read META-INF/maven/<groupId>/<artifactId>/pom.properties, which had
    the wrong coordinates (mixed the Java package with the jar's finalName), so it always
    fell through to a "dev" fallback. Replaced with a filtered version.properties resource
    that has no coordinates to get wrong.

Undo manifest no longer sorts itself

When source and target directories coincide (organizing in place), a prior run's
undo-manifest.json sat inside the directory being scanned and got classified and moved
like any other file — silently corrupting the undo trail on every in-place sort after the
first. The candidate-file filter now excludes the undo manifest explicitly.


Other changes

  • Packaging metadata and docs aligned with Latent Library conventions.
  • Latent mark logo added to the README; interface screenshots updated to match the
    redesigned UI, plus a Fetch-before-Sort disclaimer.
  • handover.md rewritten as a current-state document rather than a change narrative.

Known open issues (unchanged by this release)

Carried forward from handover.md, none introduced or worsened by 1.3.0:

  • LButton and LCard are not yet in the ds/ layer.
  • Input borders fail WCAG 1.4.11 non-text contrast (1.31:1 measured vs. 3:1 required) —
    inherent to the current DS border tokens; needs an LMO-local override or an upstream
    token change.
  • 7 raw hex colors remain outside the token layer, flagged as lint:ds warnings (one is
    the Ko-fi brand color and is a legitimate exemption).
  • lint:ds only runs at release (tag-triggered) time, not on every push/PR, so a
    regression stays invisible until the next release.
  • The backend port is handed to the renderer once at startup; if the backend restarts on a
    new ephemeral port, the StatusPill correctly shows Offline until the app itself is
    restarted.

Verification

  • Backend: 92/92 JUnit tests pass (mvn test).
  • Frontend: npm run lint:ds passes with 0 errors (7 pre-existing hex warnings, unchanged).

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 17:03
46c287d
Latent Model Organizer 1.2.0

Forge user metadata support:
- Trigger words and Civitai descriptions are written into the <basename>.json
  file that A1111, Forge, and Forge Neo actually read, so they appear in each
  LoRA's Activation text and Description fields.
- New offline backfill (POST /api/backfill-metadata and a Fetcher action) to
  retrofit an existing library from sidecars already on disk, with no hashing
  and no network calls.
- Existing metadata is merged, never replaced.

Fixes:
- Preview files keep the extension the URL serves, so Civitai's animated .mp4
  previews are no longer saved as undecodable .png.

Tooling:
- Shared IntelliJ run configurations under .run/.

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 15:04
9a97a31

🧩 Latent Model Organizer v1.1.0 - New Architecture Support

This release expands LMO's architecture detection engine to cover the latest wave of open and commercial models, so your library stays correctly sorted as the ecosystem grows.

🆕 Newly Supported Architectures

LMO can now identify and sort the following, via safetensors header inspection, filename heuristics, and CivitAI metadata mapping:

  • Krea 2
  • Wan Video 2.7 and Wan Image 2.7
  • LTXV 2.3
  • Qwen 2
  • HiDream-O1
  • Ideogram 4.0
  • Grok

These join the already-supported lineup (Flux, SDXL, SD 1.x/2.x/3.5, Pony, Illustrious, NoobAI, Wan Video, LTXV, Mochi, CogVideoX, Hunyuan, HiDream, PixArt, Aura Flow, Lumina, Kolors, Chroma, Sana, and more), all reflected in the app's architecture filter list.

🛠️ Other Improvements

  • Fixed version display and documentation links in the Settings modal.
  • README updates clarifying secure local execution details.

📦 Installation & Downloads

Same as before — LMO remains a fully portable, zero-install application:

  • 🪟 Windows (.exe): Download and run from anywhere — no installer.
  • 🐧 Linux (.AppImage): Download, chmod +x, and run.
  • 🍎 macOS (.dmg): Download, open, and drag to Applications.

⚠️ First-Time Run Notes

  • Windows SmartScreen: The app is unsigned, so Windows may show "Windows protected → Run anyway.
  • macOS Gatekeeper: If macOS blocks the app, right-click (Control-click) the app ic

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 20 Mar 08:13

🎉 Latent Model Organizer v1.0.0 - Initial Release

Welcome to the very first official release of the Latent Model Organizer (LMO)!

LMO is a high-performance desktop application designed to effortlessly manage, categorize, and retrieve metadata for massive machine learning model libraries. Built with a lightning-fast Java 21 backend and a sleek Vue 3 interface, organizing your AI workspace has never been easier.

🤔 What does LMO actually do?

If you have a massive, messy folder full of Stable Diffusion models, LMO is your automated janitor. It performs two primary functions:

  1. Architecture Sorting: LMO mathematically analyzes your LoRA/Checkpoints/Embeddings model files (e.g., .safetensors) to determine their true underlying architecture (SD 1.5, SDXL, Flux, Pony, etc.). It then automatically moves them into neatly organized sub-folders based on that exact architecture.
  2. CivitAI Metadata Fetching: Missing preview images? LMO calculates the secure hash of your models and queries the CivitAI API to automatically download the official preview images and .json metadata files. It drops them right next to your models so they look perfect in WebUIs (like ComfyUI, Automatic1111 or Forge Neo).

🚀 Key Features

  • Smart Organization: Fast, deterministic sorting based on deep tensor heuristics rather than just file names.
  • Dry-Run Mode: Safely preview exactly what file operations will happen without actually moving any files on your hard drive.
  • Undo Support: Made a mistake? Instantly reverse your most recent organizational run using our persistent manifest tracking.
  • Real-Time Console: Watch the engine work with a real-time, streaming log drawer.
  • Sleek UI: Dark-mode native interface with a custom glassmorphic title bar and an instant-load splash screen.

🛠️ Under the Hood

We've engineered LMO to be as frictionless as possible:

  • Zero-Dependency Engine: LMO comes fully bundled with its own highly optimized, stripped-down Java 21 Runtime (powered by Virtual Threads). You do not need to install Java to run this app.
  • Secure Local Bridge: The backend utilizes ephemeral port allocation and secure Bearer token authentication, strictly bound to IPv4 localhost to prevent external network exposure and completely bypass annoying firewall popups.

📦 Installation & Downloads

LMO is a truly portable application. Choose the download for your operating system below:

  • 🪟 Windows (.exe): Download the .exe and run it from anywhere. It is a completely portable, self-extracting executable. No installation wizard required.
  • 🐧 Linux (.AppImage): Download the .AppImage, mark it as executable (chmod +x), and run it.
  • 🍎 macOS (.dmg): Download the .dmg, open it, and drag the app to your Applications folder.

⚠️ Important Notes for First-Time Users

Windows SmartScreen Warning
Because this is a free, open-source tool, the Windows .exe is not digitally signed with an expensive corporate certificate. When you run it for the first time, Windows Defender SmartScreen will likely say "Windows protected your PC." * To proceed: Click "More info", and then click the "Run anyway" button. Windows will remember your choice for future launches.

macOS Gatekeeper
Similarly, on macOS, you may need to bypass Gatekeeper since the app is unsigned. If macOS says the app cannot be opened, right-click (or Control-click) the application icon and select Open from the context menu.