Projects and storage
Project library
When run from source, the Development profile uses the repository’s App_Data/Projects library. Installed editions default to Lumibelle/Projects under the current user’s local application-data directory. App_Data is ignored by Git. No data is moved automatically.
Set Projects:RootDirectory in appsettings.json, or override it for one run:
dotnet run --project src/Lumibelle.Web --launch-profile http -- --Projects:RootDirectory="D:\Films\Lumibelle"The equivalent environment variable is Projects__RootDirectory. Relative locations resolve against the application content root; absolute locations are used directly. Changing the root selects a different library and does not move existing projects.
Only one Lumibelle process can use a data directory and project library at a time; a second process fails clearly. Multiple browser tabs in one process continue to work.
Project folders
Each project has a GUID-named folder containing project.json:
{ "schemaVersion": 1, "id": "8d23818b-d03d-48a4-b7f1-f83b2ed56ea2", "name": "The garden at the end of the world", "description": "A small story about finding a way home.", "createdUtc": "2026-09-03T12:00:00+00:00"}Names may contain Unicode and may repeat. Folder names use stable IDs, so project names never become filesystem paths.
Each project folder additionally contains:
script.json # typed blocks, revision, historical source pointerscript-assistant.json # discussion, proposals, request metadata and statusscript-history/<id>.json # recoverable draft snapshotsscript-sources/<id>.json # immutable saved-source capturesscript-approved/<id>.json # historical snapshots, compatibility reader onlyassets.json # ordered assets, image metadata, tags, and revisionassets/<asset-id>/images/* # validated project-owned reference imagescut.json # the project's saved sequenceFiles are versioned, readable JSON published through atomic replacement. Existing projects without writing files open as empty workspaces. Corrupt or unsupported documents produce errors and are not replaced.
Edit project details
Choose Edit project on the project overview to change its name or description. Saving keeps the same project ID, creation date, script and assets. The description can be cleared; a name is required. Cancel discards the draft, and save failures keep your edits available for retry. If another tab changed the details first, copy your draft and reopen the refreshed project before saving again.
Back up and move projects
Back up or move a project by copying its complete folder, retaining its ID and manifest. To reopen a copied project, place that folder in the configured library and refresh the hub. Choose a new library root before copying if that ID already exists there.
Keep complete project folders in backups. Chat and proposals may contain copies of source text supplied to a model.
Invalid, unreadable or unsupported manifests produce warnings while healthy projects remain available. Fix those manifests externally and refresh; Lumibelle does not silently overwrite them. Interrupted project creation is ignored.
Compact a project
Project settings → Storage → Compact project… makes a project smaller in place, for example before publishing its folder. It lists what it found with the space each part frees, and removes only what you select after one confirmation:
- Empty this project’s Trash: the same as Empty Trash filtered to this project.
- Lossless take archives and Lossless reel archives: takes and reels keep their MP4. Every reel keyframe already chosen from lossless frames is saved as a picture first, so reference images, RefMod inputs and prompts are unchanged. Paused frames and new keyframes are then decoded from the MP4.
- Migration backups: copies of
production.jsonsaved before an automatic upgrade, which Lumibelle does not read. - Package manifest: an unzipped project package keeps
manifest.jsonbeside itsprojectfolder; once the project is edited it no longer matches. The unzipped folder still opens without it.
Removed data cannot be recovered, and the original lossless pixels cannot be rebuilt from the MP4. Close the project in other windows and let queued AI requests finish first. Images are never re-encoded in place; to share smaller images, use Compress images for sharing when exporting a package.
History and recovery
The Script studio’s History contains snapshots saved before AI application, scene deletion and restoring an older version. Preview and restore a version there; restoring first snapshots the current writing. Autosave is not a snapshot of every keystroke. Closing or reloading before a successful save can lose unsaved text; the editor warns when navigating away with unsaved text. Interrupted generation is marked after an application restart and is not automatically resumed.
Deleted images and reels go to Trash for 30 days; see Assets studio.
Settings and API keys
Global settings are stored in App_Data/ai-settings.json beneath the application content root, separately from the project library. API keys are encrypted with ASP.NET Core Data Protection for the account running Lumibelle. The UI shows only whether a saved key is configured and supports replacing or removing it. Moving settings to another account or losing the key ring may require re-entering the key; project writing remains portable. Never commit the settings file or key ring.
Example footage in this manual comes from SparkleRiley E01, which was created under Riot Games' "Legal Jibber Jabber" policy using assets owned by Riot Games. Riot Games does not endorse or sponsor this project.