Skip to main content
The Upload tab is the primary way to add images to your library directly from your device. Click the Upload tab in the navigation bar to open it.

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)
Accepted formats: SVG, PNG, JPG, GIF (max 10 MB per file). Non-image files are silently skipped. Once files are selected, each one appears as an edit card below the upload zone. Color extraction runs automatically in the background and populates the color swatches on each card.

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.
FieldPurpose
TitleShort display name. Leave blank and the AI generates one.
DescriptionLonger 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 NameGroups images into project rows in the gallery (e.g. “Kitty Bite Back”).
Moodboard NameNames the specific mood reference within a project (e.g. “pink girl smoking”).
Unique IDA stable identifier. Auto-generated if left blank.
SrefMidjourney style reference number. Stored and filterable.
Source URLLink to the original source or reference page.
TagsPress Enter after each tag to add it. Displayed as color-coded badges.
If you fill in both Project Name and Moodboard Name but leave Title blank, the title is auto-set to <Project Name> - <Moodboard Name>.

Submitting the upload

Click Upload N Image(s) to submit. Each file is uploaded to Convex storage and a database record is created with status draft. 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:
1

Draft

The image is in Convex storage. AI analysis is running. The image is not yet visible in the gallery.
2

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.
3

Review & Finalize

Once analysis completes, the image appears in the Review & Finalize section. You can edit any AI-generated fields before publishing.
4

Active

Click Finalize All (or finalize individually) to move images to active status. They appear immediately in the gallery.

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. The nextcloudPersistStatus field tracks this:
  • pending — awaiting background upload
  • succeeded — 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

Discord queue

Switch to the Discord sub-tab to see images queued from your Discord bot. Discord-imported images require manual approval before AI analysis runs on them. See the Discord bot integration docs for setup details.
For bulk imports from a file system, use the Local Upload tab. For channel-based ingest from Discord, use the Discord tab.

Build docs developers (and LLMs) love