跪拜 Guibai
← All articles
Frontend · JavaScript · Vue.js

Loomora Puts an Entire AI Image Studio on Your Desktop, Not in a Chat Window

By 伟大的兔神 ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

Most AI image tools treat each generation as a stateless transaction inside a chat interface. Loomora shifts the unit of work from the prompt to the artwork itself, giving creators a persistent, local-first asset library that survives provider changes and platform shutdowns. For anyone building a serious visual workflow, that persistence and portability is the difference between accumulating noise and building a reusable body of work.

Summary

Loomora v1.0.0 bundles prompt management, multi-provider AI image generation, a local artwork library with duplicate detection, an image editor with version history, and offline OCR into one desktop application for Windows and macOS. The app splits generation into a public scheduling layer and swappable Provider adapters, treating OpenAI-compatible as just one dialect among many. Each generated image retains its full context — prompt, model, parameters, reference images, and timestamp — so the creation chain stays intact across sessions.

API keys are encrypted per Profile via Electron's safeStorage and never written into artwork directories or backups. The built-in editor, based on TOAST UI Image Editor, treats operations like mosaic as undoable edits rather than one-off actions, and OCR runs entirely offline using a bundled Paddle.js model in a hidden worker window. An Inspiration Square shortens the gap between seeing a reference and starting a new generation by letting users copy prompts or reuse images directly.

The app is built with Electron 31, Vue 3, and Vite 5, with contextIsolation enabled and no Node.js integration in the renderer. Updates use a dual-channel strategy checking Gitee for domestic users and GitHub as a fallback, and the source is public under a PolyForm Noncommercial license.

Takeaways
Each generated image saves its full context — prompt, parameters, model, Provider, reference images, and timestamp — so the creation chain is traceable and reusable later.
Provider integration is split into a public scheduling layer and swappable adapters; OpenAI-compatible is treated as one dialect, not a universal protocol.
API keys are encrypted per Profile via Electron safeStorage and excluded from artwork directories and backup packages.
Duplicate image detection uses SHA-256 hashing on import to prevent redundant local storage.
The built-in editor treats mosaic and other adjustments as undoable edit steps with full version history and comparison, not one-off destructive operations.
OCR runs entirely offline using a bundled Paddle.js model in a hidden worker window, with no image upload to external services.
Automatic updates use a dual-channel strategy: Gitee Releases for domestic users, GitHub Releases as the international fallback.
The source code is public under a PolyForm Noncommercial License 1.0.0; commercial use requires written authorization.
Conclusions

Treating OpenAI-compatible as a Provider dialect rather than a universal standard is a pragmatic architectural decision that more tools should adopt, given how widely platforms diverge on field structures, authentication, and response formats.

Bundling offline OCR via Paddle.js inside an Electron hidden worker window sidesteps both privacy concerns and API costs, a pattern applicable to any desktop tool that handles user-generated images.

Persisting the full generation context — prompt, model, parameters, reference images — inside the artwork record turns a throwaway AI output into a versioned creative asset, which is the missing layer in most chat-based image tools.

Concepts & terms
Provider Adapter Layer
An architectural pattern where a public scheduling layer handles queues, progress, and local saving, while platform-specific adapters translate unified generation requests into each Provider's unique API structure, authentication, and response format.
PolyForm Noncommercial License 1.0.0
A source-available license that permits personal, research, and evaluation use but prohibits commercial deployment, resale, or profit-making activities without explicit written authorization from the copyright holder.
Electron safeStorage
An Electron API that encrypts sensitive strings using the operating system's native secure storage mechanisms before persisting them to disk, preventing API keys from appearing in plaintext in application data or backups.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗