Using PicsTag

A short reference for the two things people get stuck on — the shape of the CSV going in, and the shape of the file coming out. If you have never tagged a library before, theguides cover the judgement calls; this page covers the mechanics.

Adding images

There are two ways in, and they behave differently.

The CSV format

Two columns matter. Every other column in your file is ignored, so you can export straight from your CMS without cleaning it up first.

ColumnRequiredWhat it is
image_urlYesA publicly reachable http(s) URL. If it needs a login or a signed token, it will fail.
asset_idYesYour own identifier. It is passed through untouched to the export, so you can join the results back onto your database.

Header names are matched loosely — underscores, spaces and capitalisation are stripped before matching, so Image URL,image_url andimageurl all work.

asset_id,image_url
SKU-1041,https://cdn.example.com/products/1041.jpg
SKU-1042,https://cdn.example.com/products/1042.jpg

Running the analysis

Nothing runs until you press Start analysis, andStop takes effect between images rather than at the end of the batch. The first run downloads about 250 MB of model files, which your browser then caches — the first image is slow, everything after it is fast, and your next visit skips the download entirely.

Two providers are available in Settings:

Reviewing

Every suggested tag carries a confidence score and starts as pending. Nothing reaches your export until you accept it — the model never puts a keyword in your catalogue behind your back. You can work through the queue, or open the focus review to take one image at a time on its own page.

For a large batch, the fast path is to auto-accept everything above a confidence threshold and then read only what is left. That is the whole efficiency argument for AI tagging: it is not that the model is right about everything, it is that it is confidently right about the boring 80% —how accurate AI image tagging actually is goes into what it gets wrong.

The export format

CSV or JSON, same fields either way. Only accepted predicted tags and your own custom tags are written — pending and rejected tags are dropped.

FieldContents
asset_idYour CSV identifier, or the filename for local files.
filenameThe original file name.
file_sizeBytes.
width,heightPixel dimensions.
descriptionThe caption, as you left it after editing. This is your alt text draft.
validated_tagsAccepted tags plus your custom ones, comma-separated.
source_urlThe original URL for CSV rows; empty for local files.

PicsTag does not write metadata back into your image files. It produces a sidecar you import — seeIPTC and XMP metadata explained for how those fields map onto the embedded standards.

When something goes wrong

Still stuck? Tell us what happened — a real person reads it.