Drag-and-drop upload
The upload zone accepts multiple image files at once. You can:- Drag files from your desktop and drop them onto the zone
- Click the zone to open a file picker (multi-select supported)
Filling in image metadata
Every uploaded image has an edit card with the following fields. All fields are optional — AI analysis fills in anything you leave blank.| Field | Purpose |
|---|---|
| Title | Short display name. Leave blank and the AI generates one. |
| Description | Longer summary. Leave blank for AI. |
| Category (Genre) | Classifies the image (e.g. Film, Commercial, Cinematic). Defaults to the first available category. |
| Type (Group) | Broad production type: Commercial, Film, Music Video, TV Series, etc. |
| Project Name | Groups images into project rows in the gallery (e.g. “Kitty Bite Back”). |
| Moodboard Name | Names the specific mood reference within a project (e.g. “pink girl smoking”). |
| Unique ID | A stable identifier. Auto-generated if left blank. |
| Sref | Midjourney style reference number. Stored and filterable. |
| Source URL | Link to the original source or reference page. |
| Tags | Press Enter after each tag to add it. Displayed as color-coded badges. |
Submitting the upload
Click Upload N Image(s) to submit. Each file is uploaded to Convex storage and a database record is created with statusdraft. AI analysis starts immediately.
After the upload completes, a Generate Variations dialog appears so you can optionally queue AI variations for all uploaded images at once before reviewing them.
Image lifecycle
Images move through the following states after a direct upload:Draft
The image is in Convex storage. AI analysis is running. The image is not yet visible in the gallery.
AI analysis (processing)
The VLM model extracts title, description, tags, colors, category, group, and more. The Upload tab shows a AI Analysis in Progress section with a spinner for each processing image.
Review & Finalize
Once analysis completes, the image appears in the Review & Finalize section. You can edit any AI-generated fields before publishing.
NextCloud persistence
Images are first stored in Convex storage (a temporary URL is used immediately). In the background, Pindeck finalizes each image to NextCloud via WebDAV. ThenextcloudPersistStatus field tracks this:
pending— awaiting background uploadsucceeded— image is stored in NextCloud and URLs are updated
NextCloud persistence is optional. If NextCloud is not configured, images remain accessible via Convex storage URLs.
AI Suggestions (pending variations)
If you generated variations from the post-upload dialog, they appear in an AI Suggestions section while they render. Each suggestion card has two hover actions:- Keep — approves the variation and moves it to the Review & Finalize queue
- Discard — deletes the variation permanently