I don’t see why. You train a neural network for eg noise reduction or boundary detection (in masking), and the weights become part of the module version. It will be the same forever, even if newer versions bring updates, just like color science v3 is still available in filmic.
The terminology here is misleading. The current hype favors “AI”, but a lot of this question is about classical machine learning (neural networks) which have been used for image processing for decades now and are pretty innocuous. They are just a computational tool for approximating a function.
I still think the best solution is a generic image in/out module. That might kill the whole reproducible edit thing if you use it, but it means: use whatever external tools you want and gives the user a ton of flexibility and it keeps all the AI crap out of darkrable.
So simple, yes! And then a new model is out, it is better and everybody wants it… Let’s add a new model, multi-megabytes and be sure to keep it around… And then another model is out… Sorry dt is not a toy to store giga bytes of models !
I actually have a picture about such things in French on my website – because French has a different word for stuff that is spelled letter by letter and stuff that’s read like a word –, and some on specific abbreviations like ordinal numbers… It was already hard to wrap my head around that stuff in my own language, so I got kinda lazy here for my post and hoped no one would point it out. But so far I only saw this AI feature on full-caps stuff.
That’s indeed a possible issue. Not much better than using external models with a limited lifetime.
@agriggio wrapped segment anything into a executable and has implemented an external mask feature similar to DT…It would be easy to use in DT but it saves the mask as a png not pfm so there would be a further step and I’m not sure if anything would be lost detail wise…But tools could be used the way GIMP is used as an external editor and or coupled with the external mask module in DT.
I think other AI stuff could also work pretty much as you suggested by doing it using the “external editor” approach then it would be the responsibility of the user to maintain the tools used so DT just needs the conduit maybe a new module to enhance those sort of interactions or tweaks on existing ones…
Indeed. I succumbed to the use of neural network tools when I started using highlight- weighted matrix metering in my Nikon Z 6. Well- trained content-aware tools should perform better than statistics-based interpolation or convolution tools.
Not particularly interested in LLM tools. Don’t want to ‘talk’ to my software…
I don’t either. I won’t even talk to my phone! Yes, I make rare exceptions to that when I using it as a phone.
On the general topic, maybe I’m a ludite, but I do avoid “AI” as it is known and available to us ordinary folk on the street. I have even turned off the AI summary that my search engine gives me, and I’m glad that the Duck still gives that option.
But, on the other hand, I see a difficulty in drawing a line as to what is allowable or not allowable in AI inclusion in photo processing. Personally, I veer towards the harder line, ie, only masking skies, etc: but, should I deny its use by others who want a wider implementation? No: I don’t think I should.
Anyway, It will take some time. I’m happy to join the wait-and-see camp as proposed above.
I used to consider that RawTherapee’s “Selective Editing” was “cheating”, then I started using it for shadowy eyes, and now I’m relying on it for tons of things. Slippery slides.
And if you want another point of difficulty, darktable being non destructive has a pipeline running each time a new change is made. The AI denoise module even if early in the pipe must be rerun each time demosaic settings are changed or any module before like raw chromatic abberations, highlight reconstruction.
Are you really prepare to wait multiple seconds or minutes in those cases?
But if you use darktable for a while, you could end up with several versions of those models, all of which you have to keep for your old edits. So forcing:allowing the user to download just what he needs doesn’t change all that much…
We could download models on demand, so we don’t need to ship the entire history of all models ever devised… Kind of like DigiKam does it.
However, for anything generative, the models tend to be so huge that they often can’t even fit a normal consumer computer, so that’s clearly infeasible for Darktable.
And then there’s also the question of how to even source a good model. To be truly FOSS, we’d need to gather and train on our own, free data sources. Training hardware is entirely not free, however, and the expertise required is very unlike that of the rest of the software.
So, there are plenty of challenges for “AI” technologies in Darktable.
I guess I am a wierdo, but I have not come across a situation where AI masking would be a game-changing addition to dt. Of course, now that i have said that, I will probably have to eat my words next week
Honestly, denoise/sharpen/upscale or res would be tools that I use. While it would be nice to have said tools inside dt, I think @Pascal_Obry hits the nail on the head regarding the models being huge space wasters over a few years of development.
For me, then, a stand-alone application that could do round trips to dt would be the most pragmatic solution for the end-user (read: consumer)
Many FOSS projects have discussed and drawn lines in the sand regarding LLMs either in regards to the code merged into the project or in terms of features added to the project. I don’t think it’s a bad thing to know where the devs and community stand on certain issues and what will or won’t be accepted into the project. The Freedom aspect of FOSS doesn’t mean that projects can’t define their own boundaries. You can always fork if you disagree with those boundaries and those boundaries can change over time.
It seems like a huge waste of time for everyone to have someone submit a PR for something that can’t / won’t be merged if the devs and community already have a decision about such things or more importantly if there are technical considerations that would vastly impact how such features should be implemented.
Well, it’s your choice to keep bouncing from model to model, if you don’t want too keep the old ones you just have to be okay with a different output.
I’m thinking when it comes to denoise and upscaling. At the end of the day if you can upgrade your old images to have better denoise, I don’t see who wouldn’t.
For sure it is an engineering challenge, but there is only to gain from it.
Also, a lot of people here conflate LLM or DIffusion (AI) with other techniques. Nind-denoise has shown that it can be done with a user made data set, and with small models at that, iirc the final model is under 100MB, nothing much in today’s storage capacities.
I do not want AI features which can be used to create content unrelated to original photo. Something that cn be spatially similar is fine. Things that completely adjust an area to be spatially different is not. AI denoise is fine. AI add a person here is not.