darktable-org / darktable-org/darktable

Merge scene-referred contrast module

Open
#20,626 23 comments 6 reactions 2 assignees View on GitHub

@jandren is already working on this.

Since Mar 22, 2026.

feature: new no-issue-activity priority: low
Dominant language
C
Stars
13.1k
Forks
1.4k
Avg merge
22h 14m
Merged PRs (30d)
198

Description

I volunteered over at pixls to make a new PR from this closed PR:
https://github.com/darktable-org/darktable/pull/20447

But I would like to discuss a plan for how to do it before putting any time into coding.
First some references to what has happened.
Initial simple module with one frequency scale by @wilecoyote2015: https://discuss.pixls.us/t/experiments-with-a-scene-referred-local-contrast-module-proof-of-concept/55402
Discussion quickly turned into a lets-do-more situation which eventually led to what Christian proposed for his PR and documented in https://discuss.pixls.us/t/contrast-management-rgb-a-new-scene-referred-approach-poc/56004

TLDR
First we had a module that increased the local contrast (high pass) defined around a edge aware low pass filter (EIGF)
Then the module evolved into 5 copies of this filter, plus noise rejection, a luma dependent effect, and a chroma dependent effect.

Proposal for how to merge this

  1. Begin with a basic version of the module, one eigf filter and a noise suppression method.
  2. Add OpenCL support
  3. Add more controls such as luma and chroma dependence
  4. After more user input and testing, evaluate how to potentially include more filter instances inside the module which would add enough value to users workflow compared to just instancing the module a couple of times.

How does this sound to the maintainer team?
Adding everything at once means a large review effort and also makes it harder for me to take responsibility for the merged work.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.