When big projects like darktable get forked the fork often dies or fiddles out as it’s too expensive (time wise) to maintain them. Especially as trust is lost and needs to be re-gained. Look at Ansel, forked like 3 years ago now, and while it is doing some things better(UI speed and cleanup), it’s impossible for the single dev, Aurelien, to port all the improvements dt has had in the meantime, like in the processing pipeline. Sure, it was a hard fork and its intent was not on keeping up with changes in dt, which makes things more difficult. Keeping a fork updated with and just adding your new modules is easy, but who will use it? Distros will not distribute it, all the talk will still be around darktable, etc.
A hammer can be used to hit a nail, or it can be used to hit someone in the head. The problem is not the hammer, it’s how it is used. AI is also a tool that can be used for good or evil, it’s up to the individual. We can’t control what Google does with it, but we can control whether we work for Google. You know the administrators at Google are rowing the same boat, even if they never touch a line of code themselves? Many who are just trying to put food on the table for their family are aiding companies with evil intent.
I don’t like much to do with AI, but do have a sense of inevitability about where it’s heading, due to the amount of funding being poured into it. Money talks. But I know where it’s heading, when we are in a digital prison you cant buy or sell without, and Christ wins.
Using it for a darktable module seems very minor in comparison, though I agree the developers need to have the capacity to understand code and bug fix.
Yes, I have tested the 3.5 35B A3B and it’s pretty good.
This is just generalization. There are obviously more and less ethical companies.
If the difference between your run of the mill unethical company and the current “gang” run by billionaires with connections to the Trump admin, Peter Thiel, Elon, etc, who are causing immense harm due to propaganda(X/Twitter), mass surveillance, working on destroying EU by propping up anti EU parties, is not obvious, I don’t know what else to say.
Maybe true, but I was saying the opposite, i.e., for any innocent technology you can find evil uses. A bathtub can be used to drown sweet grandmas.
Vehicles that can enter a war zone to deliver aid unseen? Maybe military, but good.
And by the way, military is not only offence, it’s also defense. And good or bad depends on which side of history you are on. If Ukraine is still standing it’s also because they used the available technology (drones, hacking, comms) more effectively.
I think that the examples that you mention are more obvious and prominent. These folks think that they own the world, and I despise them deeply. But I don’t think that this makes the companies or their products more ethically awful. Every other (sufficiently large) corporation uses the same techniques, only not yet as effectively. The CEOs that didn’t go to kiss Trump’s boots would have gladly done it, if they had been invited.
Are there exceptions? Of course, like fior everything. But you really cannot proceed by enumerating the bad ones. And if you find a good one check again, because there are very high chances that you didn’t look close enough.
Is it not Possible to make a Meta module to load external modules like Plugins?
In the audio Editing world this seam to be popular so why not also a VST like plugin format for darktabel?
I am only a humble user, but I wonder if this idea of a repository of plugins is a feasible idea. I don’t understand the maintenance issues of such a proposal, but it might be good to have to include modules as plugins with no guarantee of future compatibility or maintenance. So user beware if that is an issue. Photoshop, GIMP and so many other programs work this way.
As for AI, I hope it can be used to help the developers and not replace them.
This is a good, practical answer.
I maybe be wrong, but from my perspective, I think that the execution order in the pipeline and the implications for the xmp are the most difficult. The other big issue what needs to be addressed: prevention of malware being injected in darktable…
Am I wrong to think that this is the real problem needing to be solved? If I understand your posts, it appears we would need to ask the same question if suddenly 50 human programmers started submitting new modules. Does that sound roughly correct?
If so, then the AI aspect is somewhat irrelevant. How can the core devs deal with such an influx of material to go through? If there are issues, will the original person still be interested enough to maintain it?
Does that sound about right?
As a humble user I am really impressed with the improvements that come with each stable build. In DT 5.4 the two biggest ones were capture sharpen and AgX. Both of these modules addressed needs and were well tested before being merged to the master where they were further refined until the stable release. I don’t feel the contribution of AI is the issue as much as making sure the module is needed, tested and can be maintained.
Two or three new features every six months is an amazing development and progress for a program like DT.
The issue with AI is that it does plausible first and accurate second. That means it’s really good at making issues which are really hard to spot. If the user understands the maths and just gets the AI to write the boiler plate, it will probably be fine, but it’s so very easy to let the AI do it all.
There is not force here, you are a willful participant willfully reading what is posted on an open forum.
Nobody is forcing you to be here, you can stop coming whenever you want. Nobody is forcing you to read these posts, you are doing it yourself, and similarly nobody is making you read my posts.
OpenAI just agreed with the US pentagon to be integrated into whatever already crazy software they have. Anthropic is sort of resisting but will ultimately agree because they’re VC funded. I guess you don’t read the news.
People still had to choose to drop the bomb and where to drop it.
Back to the original topic…
The problem with generating code with AI is that it can be produced my anyone, regardless of programming skill. So a skilled programmer, with AI experience and some darktable experience, can produce a module through iteration that might be fairly close what it should be.
But a novice could produce a module using AI that “works” as far as they tested it, which might be 1 run. I’m thinking we could probably detect this fairly easily but it would still require a module dev reading code to determine.
The worst case is a module that is somewhere in the middle. Enough of it is good that you have to search for the bad.
In the last several weeks we’ve seen multiple modules developed for darktable using AI. At least one of the developers admits they have no C programming experience, but does have some coding experience.
The real problem is that all the devs are busy. We live in a target rich environment, with 483 open issues. And the devs that can actually look at a module and determine what is wrong or bad are only a fraction of the devs, and I’m not one of them
. We can quickly get overwhelmed by the sheer amount of input.
@sqrooty has a lot of great ideas. Really it just comes down to applying some unsexy project management.
- Prioritize the GTK4 transition over new features
- Explicitly ask for disclosure of LLM use in PRs
- Set review process expectations for PRs with LLM use
– Deprioritized
– May take longer
– May request additional code quality / cleanup / testing stuff
As submitters become more trusted, give them leniency on all the above.
The choices are either do nothing and accept that over time LLMs will increase the scope and number of PRs, or create some sort of policy / workflow to manage them. Even if in the short-term the policy is “we’re figuring out how to deal with LLM code, please be patient”, that’s something.
it’s not helpful to reason if using LLM or whatever AI tools will be there in near future is beneficial or not. If it helps developers to produce better code, then there’s no objection.
It’s about the output and it’s value to keep darktable a cutting edge raw editing software.
It seems there are some demands thinking of darktable as an all purpose image editor - and so it’s more important to be clear on the scope.
they key question should be: is a new module contributing to the scope or is it something that can be done better elsewhere
As a maintainer, I have a general expectation that the person submitting a PR (a) has or intends to put at least as much effort into the change as I will (b) understands the change they are submitting better than me and can answer questions about it.
If the submitter is primarily interacting via an LLM, both of those expectations go out of the window, and (understanding how randomly wrong AI output can be) I have to assume I’m talking with a noob and that most of the effort in checking/fixing the content will lie with me. I’m not good with that.
Frankly if I’m going to have a conversation with an LLM I’d rather have that conversation myself, rather than via its meaty appendage (the submitter, whose sole role is to type stuff into the prompt).
Hello,
This is a very interesting debate, and one in which I feel directly involved.
As I already said in this post, AI is perfect, and I make no secret of the fact that I use it.
But I refuse to name them because I don’t want to promote certain companies by indirectly advertising them. Which seems logical to me in an open-source environment.
I also assume that given the high level of Darktable, the maintainers are not fooled.
AI is perfectly capable of writing code, but in my experience, you have to give it the right formulas to translate into C code and then try to understand what it’s doing, because it crashes every time during compilation. Then, for the contrast module, I renamed all the variables so that they correspond to the sliders and are easier to read for the Darktable team.
In terms of professional experience in IT, as we didn’t have an ERP system for production, cost price, revenue management, nutritional value calculation, technical data sheets, etc., I can mention Access and VBA, PHP, MariDB, HTML, etc.
At that time, I was given some books to study, and I would have liked to have had AI, as my wife would have seen me more often. I must also thank the team at https://www.developpez.com/, who helped me a lot.
I spent a lot of time on this project, so I hope it will be successful.
That said, I understand the concern, and I will add the LLM mention to my PR.
But honestly, given the time I’ve invested, I’m wondering about future contributions.
Best regards,
Christian
Translated by AI
It can go further than that: as a maintainer of several (rather technical) Julia packages, I occasionally ask contributors years after merging a PR for help, if I lack the domain-specific expertise or something in the code is not clear in retrospect. Miraculously, 99% of the time they show up and help me out. Often a comment is enough to more forward.
Now, I have no doubt that I could ask Claude to give me an explanation about a region of code. It would invent one very glibly, I have seen that happen — out of curiosity, I asked it to explain code that I wrote, with occasionally hilarious results.
Ownership of code is extremely important, both in commercial and FOSS settings. It means people taking pride in their work and supporting it if they can.
Exactly. I vividly recall the blockchain hype from a couple of years ago.
I just want to emphasize that sitting it out for a while (what doctors call “expectant management”
) is a perfectly valid option. If LLM-based coding works out in the long run, a project can always join later. There is no boat to miss here.
I think this is not apples to apples. The transformative impact of LLMs on software engineering has already materialized, and it’s hard to imagine it going away (modulo thermonuclear war or ecological collapse, that is).
Christian, this is not against you, or not against anyone. I’ve followed your journey, and read the post, where you said you went over the code. In the future, probably laymen, who know about colour and photography, but not about coding, will be able to create valuable modules. The current models are honestly frighteningly good; @Masterpiga has also said that (they can write high-quality, efficient code; this was not the case a year ago or so, probably not even half a year ago – if anyone is interested, see An AI agent coding skeptic tries AI agent coding, in excessive detail | Max Woolf's Blog what a data scientist achieved).
As I already said above, maybe I titled the topic wrong. It’s not the LLM-generated nature (quality-wise) of the modules; it’s how we can keep up with the change without a dozen custom forks popping up, each including the module from the respective author, and a few others they found useful and included in the build.