Loomora Puts an Entire AI Image Studio on Your Desktop, Not in a Chat Window
I Built a Local-First AI Image Workbench: Loomora v1.0.0 Officially Released
Loomora is an AI image creation, management, and editing desktop application for individual creators. Windows and macOS v1.0.0 have been released.
Feedback and inquiries: [email protected]
Over the past period, I have been working on something that seems simple but can easily spiral out of control: truly integrating AI image generation into a daily creative workflow.
Many tools can generate images, but after generation, you often face another set of problems: prompts scattered in chat logs, reference images with untraceable sources, an ever-growing collection of works that cannot be organized, needing to re-adapt to a new interface when switching models, and having to switch to other software for simple editing and text recognition.
Loomora's goal is not to create another "enter a prompt, wait for an image" page, but to put the entire process before and after creation into a quiet, long-term usable desktop workbench: from prompts, reference images, and generation queues, to a local artwork library, image editing, OCR, version history, and re-creation, all within the same application.
From a Single Generation to a Complete Creative Chain
Loomora's current core workflow is:
Configure image generation service
-> Enter prompt or add reference image
-> Enter a trackable generation queue
-> Automatically save images and creation records
-> Organize, edit, and recognize text in the artwork library
-> Reuse original prompts or reference images to continue creating
In this chain, the generation result is not a one-time "message attachment." Each creation retains the prompt, parameters, Provider, Profile, model, reference image, time, and local file location. Afterwards, whether in the history conversation or the artwork library, you can find the context of that time again.
The quick creation area supports text-to-image, reference image creation, batch generation, aspect ratio, size, quality, and output format. The interface does not display all options at once but dynamically decides which controls are available based on the capabilities of the current service and model.
For example, if a platform does not support reference images, the corresponding entry is hidden; if a model can generate a maximum of 4 images, the quantity control will not allow selecting 10; if a third-party compatible interface does not support streaming intermediate images, the application will automatically downgrade to a normal request. If an interface address or API Key is missing, it will also prompt immediately, preventing an invalid task from waiting for a long time.
Provider is a Platform Dialect, Not a Universal Standard
When integrating different image generation platforms, I became increasingly certain of one thing: OpenAI-compatible can only be considered one Provider dialect, not a common underlying protocol for all platforms.
Different platforms often have inconsistencies in the following areas:
- Interface paths and authentication methods;
- Field structures for text-to-image, reference image, and multi-reference image;
- JSON, Base64, image URL, and multipart file upload;
- Synchronous responses, streaming responses, and asynchronous task polling;
- Aspect ratio, size, quality, format, and batch quantity;
- Task cancellation, error structures, and result download methods.
Therefore, Loomora splits the generation process into a public scheduling layer and a Provider adaptation layer.
Creation Interface
-> Unified generation request
-> Provider capability declaration and validation
-> Platform adapter
-> Unified generation result
-> Queue, history, and local saving
The public layer is only responsible for queues, progress, cancellation, retries, local saving, and history. How each platform organizes requests, uploads reference images, polls tasks, and parses results is handled by its own adapter.
Currently, OpenAI-compatible and Replicate are built-in. When integrating SiliconFlow, Zhipu, Tongyi, Volcano Engine, or local ComfyUI later, there is no need to repeatedly modify the creation page and artwork library; only a relatively thin adapter layer needs to be implemented.
Service configuration adopts a multi-Profile design. Each Profile independently saves the Provider, interface address, and model. API Keys are encrypted and saved per Profile via Electron safeStorage. Regeneration, reference image creation, and failure retries default to using the user's currently selected service, while retaining the generation source in the artwork information for traceability.
Image Generation is Just the Beginning; Artwork Accumulation is the Long-Term Value
Once there are many images, folders quickly lose readability. Loomora's artwork library does not simply lay out images from a directory but provides complete management capabilities centered around long-term accumulation.
Artworks are archived by date by default and displayed from newest to oldest by date and modification time. The waterfall layout maintains original aspect ratios and supports a date timeline, search, albums, tags, and color filtering.
External images can be imported either by multi-selecting through the system file dialog or by dragging directly into the artwork library. SHA-256 is used during import to detect duplicate content, preventing the same image from being saved repeatedly.
The artwork library currently also includes:
- Favorites, recycle bin, and recovery;
- Multi-select and batch organization;
- View, edit, and copy complete prompts;
- Record model, generation service, and parameters;
- Rename, export, and open file location;
- Use existing artwork as a reference image to continue creating;
- Edit version comparison and historical version restoration.
Downloading, exporting, and "Save as New Image" will first open the system file dialog, allowing the user to decide the file name and save location. When editing and saving as a new image, it will be archived with the latest date, preventing it from sinking to the bottom of the artwork library due to inheriting old file information.
Inspiration is Not Just for Browsing, It Should Be Immediately Reusable
The Inspiration Square saves a set of directly reusable scene examples and prompts. When browsing, you can view the complete prompt, fill recommended specifications into quick creation, or directly use the example image as a reference image to start a new creation.
The focus here is not on displaying more images, but on shortening the distance between "seeing inspiration" and "starting creation" as much as possible.
Editing, Mosaic, Version History, and Offline OCR
The built-in editor is based on TOAST UI Image Editor, supporting crop, flip, rotate, draw, shapes, text, filters, colors, transparency, and canvas zoom. Tool names, buttons, and tooltips have been localized into Chinese, and the color tool has been supplemented with detailed color selection, HEX input, and hue indication.
Mosaic is not a one-off operation outside the editor; like other editing actions, it enters undo, redo, and history records. After saving an image as a new version, you can perform version comparison and restoration in the artwork details.
OCR uses the Paddle.js model saved with the application, running in an independent hidden work window. The recognition process does not upload images to an external OCR service, nor does it block the main interface; users can cancel recognition and copy results at any time.
Why Insist on Local-First
Loomora is not completely offline: calling generation Providers and checking for application updates both require a network. However, artwork management, image editing, OCR, tags, favorites, recycle bin, and history records are kept locally as much as possible.
The direct benefits of being local-first are:
- Artworks do not depend on whether a platform continues to provide history records;
- Prompts, tags, and version information can be stored long-term together with the images;
- Switching Providers does not require migrating the entire creative asset library;
- Local editing and OCR do not require uploading images;
- Users can independently choose the storage directory and perform local backups and restores.
API Keys are not written into the artwork directory or backup packages but are encrypted through system secure storage. Production installation packages also exclude development environment addresses, test keys, local artworks, and first-run guidance states.
Desktop Implementation and Release
Loomora uses Electron 31, Vue 3, and Vite 5. The main process is responsible for window lifecycle, local files, system file dialogs, Provider requests, and the OCR work window; the renderer layer accesses desktop capabilities through a preload bridge with contextIsolation enabled, without Node.js integration.
Windows uses an NSIS installer, allowing users to choose the installation directory, and asks whether to delete local data during uninstallation. macOS uses a DMG as a manual installation package, while also generating a ZIP for automatic updates.
Automatic updates adopt a dual-channel strategy:
Domestic users: Prioritize checking Gitee Release
International and backup: Check GitHub Release
Windows: latest.yml + EXE
macOS: latest-mac.yml + ZIP + DMG
Update check failures do not affect offline creation. Release credentials only exist in the local release environment and will not be committed to the repository or packaged into the installer.
Download Loomora v1.0.0
The Windows installation package has been released, approximately 100 MB.
- Domestic Download: Gitee Releases
- International and Backup Download: GitHub Releases
- Filename:
Loomora-Setup-1.0.0-win-x64.exe - SHA-256:
df158d980151c031fb33d0c29429207f363c43191340e7e0ff69f90dbb59fd5e
The macOS installation package has been released on GitHub Release:
- DMG: Loomora-1.0.0-mac-x64.dmg
- ZIP: Loomora-1.0.0-mac-x64.zip
- Update Manifest: latest-mac.yml
- SHA-256: SHA256SUMS.txt
Gitee Release currently only retains Windows attachments; the macOS package cannot be uploaded due to single attachment size limits.
After downloading, you can verify the installation package in PowerShell:
Get-FileHash ".\Loomora-Setup-1.0.0-win-x64.exe" -Algorithm SHA256
The output should exactly match the SHA-256 above.
Final Words
Loomora v1.0.0 is still just the first version. I hope it will eventually become a desktop workbench that can carry personal creative assets long-term, not just an operation interface for a specific model or platform.
Next, I will continue to improve more Provider adapters, macOS release, update experience, large artwork library performance, and creative asset management. If you encounter problems during use, or have suggestions for new image generation platform integration or workflow design, feel free to contact me.
Contact Email: [email protected]
Usage and Licensing Notes
Loomora's source code is public, adopting the PolyForm Noncommercial License 1.0.0, allowing personal learning, research, evaluation, and other non-commercial uses. This license is not an open-source license that permits free commercial use; any commercial use, paid deployment, resale, or other profit-making activities require written authorization from the author.
The Loomora name, Logo, application icon, and visual identity are personal brand assets of the author. Public source code does not imply granting brand usage rights. Third-party dependencies and resources in the project still follow their respective licenses and terms of use.