Put images to collection with SQL outside C1?
Hi,
has anyone tried adding images that are in the catalog to an existing collection using SQL?
At least under Windows the catalog is just bad and extremely slow. So I started some time ago to read data I need from the catalog with SQL. But now I keep getting to the point where I want to update the metadata for a large number of images.
Here is an example. C1 thinks there are 1000 images with e.g. 5 stars. But in reality there are 1600. I can read the file names of the 1000 images from the catalog. I can then find the difference of 600. Now I want to add the 600 images to a collection with SQL, so that I can go to C1 and choose to read the metadata.
I thought it would be enough to add the ImageID with CollectionID to the tables ABC. It always works with a few photos in a session. With my catalog with 240000 images it does not quite work. I end up with fewer images in the collection than I would have expected. Either my SQL statement is wrong or these are other errors with C1 under Windows.
-
I would discourage writing to the SQLite database. Open support cases for specific operations that are slow. Capture One is aware there are efficiencies to be made to the schemas, indexes, views, data model. Best to not insert yourself in the middle and risk contaminating your database with incorrect changes.
0 -
Normally, I agree with you. It is never advisable to write to the database outside of the application.
But to be honest, I'm tired of opening tickets and getting the answer "we don't have a solution for that" or "the database needs to be redesigned for that", and I've been doing this for several years. I know that something like this can't be done in a week, but you should notice something after 2-3 years at the latest.I also suggested 2-3 things in small steps here in the forum to bring about the changes. Unfortunately without any response from Capture One. In the meantime, I have accepted that the catalog functionality has absolutely no priority. There are also other useful things in the editing area that other users suggest. So I am simply looking for a solution that works for me.
I'm not worried about a corrupt database, as I always have several backups of it.So if you have an idea how I can realize it with SQL, feel free to post it here or let me know in another way. I don't have to share the solution with others. I am primarily looking for a solution to my problem.
0 -
I don't know if it is possible with your catalog having 240000 images, but did you consider using the "Select by filename list" functionality from the Select menu?
0 -
Sadly you are on Windows and scripting is not available. On macOS it would be easy to query the catalog for 5-star images and add them to a collection via AppleScript.
0 -
BeO -Unfortunately, that doesn't work. C1 only expects the file name and not the complete path. I have a lot of pictures that have the same file name because I don't rename them. They are all in different directories
Walter Rowe - That is the point. I have also asked several times for a scripting interface for Windows. Always the same answers "We don't have any resources" or "It's not possible under Windows"
I'm certainly not going to spend 5000-6000 EUR for a Mac just because C1 runs better under OSX than under Windows.
And I think we shouldn't continue this discussion, otherwise I'll just get upset :(
Maybe the rumors will come true and the software will disappear from the market. Then I'll have no choice but to go to Adobe, even if I don't like the results.I really like C1 results, but I hate cataloging under C1.
0 -
If they would fix the regression defect they have introduced probably in version 16 which destroys the drag&drop functionality from external applications in the Windows version
then an external catalog/DAM (e.g. digikam) together with C1 sessions would maybe be a better workflow than a C1 catalog with 240k images.
0 -
This discussion brings to mind some ideas that may be useful to RobiWan although not much use to me as I am using a Mac Studio and am sufficiently satisfied with the C1 Catalog performance that I'm not tempted to wxpore altetnatives.
1. It was recently mentioned that some users just have one very large session that includes their entire image collection
2.In the last years of Aperture there was a utility that would take a selected image from the Aperture catalog, and put it into a Capture One session. When finished editting in CaptureOne, the utility would copy the final result back into the the Aperture Catalog, and it would also copy the image's COS file into some free form Aperture Metadata field - these are the CaptureOne settings for the image. I can't remember how Metadata was handled.
This round trip could be repeated many times, as on the later trips the the image's COS information would be copied into the capture One session (as the original was already there) and editting could resume where it left off.
3. In a C1 session the database and other internals are not hidden by the Catalog file structure. There are OS folders named Cache, Proxies, Thumbnails and Settings. The Settings folder has one *.cos file per image, and if you open this with a text editor you can see a list of Capture One settings.
In Proxies there is one *.cof and one *.cop file per image. I think the *.cop might be the preview, not clear about the *.cof file, possibly the C1 Metadata.
0 -
Hi Eric Valk,
1. A few thousand images in the Capture folder or as Favorites and the performance slows down quite a bit. I actually do the searching in my C1 catalog and the all editing in a C1 session. I use the system folders and a very small number of session albums in a session, that is working fine.
3. And the settings also contain the .comask file for the layers/masks
btw., funny experiment: take a .cof file, change the extension to .jpg and open it with any image viewer.
0 -
Hi,
I have found my error and fixed it.
Now I can add images to a collection and delete them from there without any problems.On this occasion. Querying a large number of images in C1 itself can take several minutes. With SQL it is 2 second :D
0 -
A very interesting topic to me as well, as I have a very clear plan on creating "subsessions" to speed up work - instead of using the main session, which can take minutes to load and frequently freezes, hardlink selected files to another folder and create new session file from script. The problem is, sometimes I will need to add entries before main session will have images loaded; any idea what ZIMAGEUUID is? Everything else seems to be taken from EXIF or using some default values, this UUID seems to slip my understanding.
Anyone else looking at SQLite? 😁
0 -
Sessions and Catalogs work entirely differently.
0 -
Marcin Mrzygłocki
"The problem is, sometimes I will need to add entries before main session will have images loaded;"I never do anything like that. I'm primarily interested in getting into my workflow quickly and doing as little as possible outside of C1.
I've also seen the ZIMAGEUUID, but I don't think C1 works with it. Maybe if they do something from the application, but we won't find out anyway.Walter Rowe
They're not all that different. At least not when it comes to the underlying database.1 -
Sessions store no metadata or adjustments in the database. Catalogs store them ONLY in the database.
0 -
Sessions store no metadata or adjustments in the database.
Correction: no adjustments. EXIF is still saved. I wonder, why this duplication of COSes, especially as this would be around half of cosessiondb (the other half would be variant info), but heck this is what I see... No problem recreating this manually, only UUID seems to be risky. I will have to see anyway, what is being written right after import, when C1P only knows the list of files, but did not generate previews or sth (which takes several hours).
I never do anything like that. I'm primarily interested in getting into my workflow quickly and doing as little as possible outside of C1.
My intent is quite reverse - I want to do as much outside as possible; if I get photo orders, I don't want to start C1P, wait for everything to load, create album, search for photos chosen by client... no, I want to have only the chosen photos in session and client info as albums, pulled automatically from database with orders. This is why I tinker with SQLite.
0 -
Marcin Mrzygłocki
where are you from? Poland maybe? :D Marcin and "RZ" looks likeZIMAGEUUID exists exaclty 1 time in the database. I think it's means what the name says - UUID for eeach image, but not used. (You should eventually search for it in Cache or something else directiories. Maybe C1 used it with session.)
If you are done - you can try to generate new one (PowerShell New-Guid, but I think you know how). Or another way change one exiting UUID to a new one and see if you are someting missing.
Do you really want to enter all the metadata into the database yourself? How many images do you get once?In any case, it is an interesting approach. I'm not sure if you're allowed to share such code here - Walter Rowe - what do you think?
If it is allowed, we can exchange things if you like.0 -
where are you from? Poland maybe? :D Marcin and "RZ" looks like
Right on point!
(You should eventually search for it in Cache or something else directiories. Maybe C1 used it with session.)
I think I found its use - ZIMAGEUUID appears in cos files at the top, ZVARIANTUUID identifies variants of the same image and is added to file names for thumbnails.
0 -
This means what I wrote UUID will be generated when an image in inserted into Catalog or session.
(All this is much easier on Mac, only because Capture One refuses to provide a scripting interface on Windows)
0
Post is closed for comments.
Comments
17 comments