[Feature]: Allow Imported CSV to provide URLs for images vs. a second pass to associate photos #6

Open
opened 2026-08-20 18:36:13 +00:00 by tcurtiss · 2 comments
Collaborator

What problem would this solve?

Make it easier to get images into Ditto.
When I import a CSV of items, I'd like to be able to have a field in my CSV for the image location of each item, and for Ditto to ingest those links directly as the source of images which match the items listed.

I realize there is santization needed of remote objects which we'd download from random sources.

What would you like to see?

IMPORT -> feed a CSV file with a field called "IMAGE URL" (or perhaps some other normalized variant)
Ditto fetches individual item images and associates them with item records.

This could obviate the need to take photos/scan, if we allow the user to seed with existing image URLs.

Perhaps we could add a function to do our own image search for a match on this item which is described by the fields of the CSV used for uploading? (i.e. auto schema/category detection and mapping to item photo).

Anything you have tried or considered?

I'm just going to try to upload a CSV of items and realized that I don't have pictures of those items and would have to go through a lot of scanning to get them. Then I thought about the case where someone has already painstakingly photographed their stuff, but it'd be a pain to correlate each photo to a single item for future uploading. If we can offer a hint in the CSV for where the image is located, we should be able to ingest it and associate it with the item -- maybe also providing a new signal for image detection/recognition?

Which part of Ditto?

Scanning and capture

### What problem would this solve? Make it easier to get images into Ditto. When I import a CSV of items, I'd like to be able to have a field in my CSV for the image location of each item, and for Ditto to ingest those links directly as the source of images which match the items listed. I realize there is santization needed of remote objects which we'd download from random sources. ### What would you like to see? IMPORT -> feed a CSV file with a field called "IMAGE URL" (or perhaps some other normalized variant) Ditto fetches individual item images and associates them with item records. This could obviate the need to take photos/scan, if we allow the user to seed with existing image URLs. Perhaps we could add a function to do our own image search for a match on this item which is described by the fields of the CSV used for uploading? (i.e. auto schema/category detection and mapping to item photo). ### Anything you have tried or considered? I'm just going to try to upload a CSV of items and realized that I don't have pictures of those items and would have to go through a lot of scanning to get them. Then I thought about the case where someone has already painstakingly photographed their stuff, but it'd be a pain to correlate each photo to a single item for future uploading. If we can offer a hint in the CSV for where the image is located, we should be able to ingest it and associate it with the item -- maybe also providing a new signal for image detection/recognition? ### Which part of Ditto? Scanning and capture
tcurtiss added the enhancement label 2026-08-20 18:36:13 +00:00
Owner

Built a first version; it goes live with the next deploy, and I will assign this back to you to try once it is.

How it works: add a column of image links to your sheet (call it image_url, or Image URL, Photo, Picture and similar are recognised) and import as usual. After the import, Ditto fetches each photo in the background and files it exactly as if you had uploaded it, then identification runs on it. Only items without a photo get one, so nothing you already shot is replaced. A row with just an id and an image_url adds a photo to an item you already have, which covers the "I have the photos, I just need to attach them" case.

When a link fails, the item says why next to its capture button, for example "the site refused to share the image", "nothing was found at that link", or "the link opens a web page, not an image". That last one is the common trap: Google Drive, Dropbox and most photo-site share links open a page, not the file, so use the direct or download link.

Safety: Ditto will not fetch from private network addresses, caps each image at 32 MB, and only keeps files that decode as real images (PNG, JPG, WEBP, AVIF, HEIC).

Not included for now: searching the web for a photo of an item. A found photo would not be a photo of your item, which matters for anything you list, so we left it out.

Built a first version; it goes live with the next deploy, and I will assign this back to you to try once it is. **How it works:** add a column of image links to your sheet (call it `image_url`, or `Image URL`, `Photo`, `Picture` and similar are recognised) and import as usual. After the import, Ditto fetches each photo in the background and files it exactly as if you had uploaded it, then identification runs on it. Only items without a photo get one, so nothing you already shot is replaced. A row with just an `id` and an `image_url` adds a photo to an item you already have, which covers the "I have the photos, I just need to attach them" case. **When a link fails**, the item says why next to its capture button, for example "the site refused to share the image", "nothing was found at that link", or "the link opens a web page, not an image". That last one is the common trap: Google Drive, Dropbox and most photo-site share links open a page, not the file, so use the direct or download link. **Safety:** Ditto will not fetch from private network addresses, caps each image at 32 MB, and only keeps files that decode as real images (PNG, JPG, WEBP, AVIF, HEIC). **Not included for now:** searching the web for a photo of an item. A found photo would not be a photo of *your* item, which matters for anything you list, so we left it out.
Owner

@tcurtiss this is now live in Ditto v0.13.40. Could you give it a try and close the issue if it works for you (or tell us what is still off)?

@tcurtiss this is now live in Ditto v0.13.40. Could you give it a try and close the issue if it works for you (or tell us what is still off)?
drwily added the resolved label 2026-10-10 19:32:22 +00:00
tcurtiss was assigned by drwily 2026-10-10 19:32:22 +00:00
Sign in to join this conversation.