{"id":13546389,"url":"https://github.com/darktable-org/darktable","last_synced_at":"2026-04-15T02:05:59.756Z","repository":{"id":2791778,"uuid":"3791835","full_name":"darktable-org/darktable","owner":"darktable-org","description":"darktable is an open source photography workflow application and raw developer","archived":false,"fork":false,"pushed_at":"2026-02-02T07:33:46.000Z","size":1338758,"stargazers_count":11947,"open_issues_count":580,"forks_count":1268,"subscribers_count":174,"default_branch":"master","last_synced_at":"2026-02-02T10:44:04.626Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.darktable.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darktable-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2012-03-21T21:53:04.000Z","updated_at":"2026-02-02T07:57:43.000Z","dependencies_parsed_at":"2026-01-02T11:00:43.828Z","dependency_job_id":null,"html_url":"https://github.com/darktable-org/darktable","commit_stats":{"total_commits":37847,"total_committers":650,"mean_commits":58.22615384615385,"dds":0.8341215948423917,"last_synced_commit":"d9e1adf584a070bf65af7298c6f43812497b5270"},"previous_names":[],"tags_count":143,"template":false,"template_full_name":null,"purl":"pkg:github/darktable-org/darktable","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darktable-org%2Fdarktable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darktable-org%2Fdarktable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darktable-org%2Fdarktable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darktable-org%2Fdarktable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darktable-org","download_url":"https://codeload.github.com/darktable-org/darktable/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darktable-org%2Fdarktable/sbom","scorecard":{"id":322917,"data":{"date":"2025-08-11","repo":{"name":"github.com/darktable-org/darktable","commit":"431fc9710220794b9f40a91da4ea68e71cb23a27"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.6,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 19 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":6,"reason":"Found 12/20 approved changesets -- score normalized to 6","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/nightly.yml:362","Info: topLevel 'contents' permission set to 'read': .github/workflows/check-po.yml:19","Info: topLevel 'contents' permission set to 'read': .github/workflows/ci.yml:46","Warn: no topLevel permission defined: .github/workflows/irc.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/nightly.yml:9","Warn: topLevel 'actions' permission set to 'write': .github/workflows/nightly.yml:10","Info: topLevel 'contents' permission set to 'read': .github/workflows/stale.yml:9"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":6,"reason":"4 out of the last 5 releases have a total of 4 signed artifacts.","details":["Warn: release artifact nightly not signed: https://api.github.com/repos/darktable-org/darktable/releases/181381527","Info: signed release artifact: darktable-5.2.1.tar.xz.asc: https://github.com/darktable-org/darktable/releases/tag/release-5.2.1","Info: signed release artifact: darktable-5.2.0.tar.xz.asc: https://github.com/darktable-org/darktable/releases/tag/release-5.2.0","Info: signed release artifact: darktable-5.0.1.tar.xz.asc: https://github.com/darktable-org/darktable/releases/tag/release-5.0.1","Info: signed release artifact: darktable-5.0.0.tar.xz.asc: https://github.com/darktable-org/darktable/releases/tag/release-5.0.0","Warn: release artifact nightly does not have provenance: https://api.github.com/repos/darktable-org/darktable/releases/181381527","Warn: release artifact release-5.2.1 does not have provenance: https://api.github.com/repos/darktable-org/darktable/releases/236801341","Warn: release artifact release-5.2.0 does not have provenance: https://api.github.com/repos/darktable-org/darktable/releases/225412208","Warn: release artifact release-5.0.1 does not have provenance: https://api.github.com/repos/darktable-org/darktable/releases/199206730","Warn: release artifact release-5.0.0 does not have provenance: https://api.github.com/repos/darktable-org/darktable/releases/190841607"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check-po.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/check-po.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:336: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:162: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:221: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:273: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/irc.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/irc.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/irc.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/irc.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/irc.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/irc.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/irc.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/irc.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly.yml:335: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/nightly.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/nightly.yml:353: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/nightly.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/nightly.yml:367: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/nightly.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly.yml:369: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/nightly.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly.yml:128: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/nightly.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/nightly.yml:147: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/nightly.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly.yml:181: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/nightly.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly.yml:246: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/nightly.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/nightly.yml:277: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/nightly.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/darktable-org/darktable/stale.yml/master?enable=pin","Warn: containerImage not pinned by hash: .ci/Dockerfile:27: pin your Docker image by updating debian:testing to debian:testing@sha256:ecdb9d167b4a8a8e41ff8450bc8b337aeb9ef0b87f71b63b194bd6cb62697a03","Warn: containerImage not pinned by hash: .gitpod.Dockerfile:1: pin your Docker image by updating gitpod/workspace-full-vnc to gitpod/workspace-full-vnc@sha256:f81841b8299823e97e00a1f39dec6dc57d3b0cb6bcc79161a5d155b29ad34b8b","Info:   0 out of  11 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   8 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T01:48:38.111Z","repository_id":2791778,"created_at":"2025-08-18T01:48:38.111Z","updated_at":"2025-08-18T01:48:38.111Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29130088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T18:55:47.139Z","status":"ssl_error","status_checked_at":"2026-02-05T18:55:04.010Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T12:00:36.309Z","updated_at":"2026-04-12T02:09:36.168Z","avatar_url":"https://github.com/darktable-org.png","language":"C","readme":"[![icon](/data/pixmaps/idbutton.png?raw=true)](https://www.darktable.org/) darktable [![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/darktable-org/darktable/ci.yml?branch=master)](https://github.com/darktable-org/darktable/actions/workflows/ci.yml?query=branch%3Amaster+is%3Acompleted+event%3Apush) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/470/badge)](https://bestpractices.coreinfrastructure.org/projects/470)\n=========\n\ndarktable is an open source photography workflow application and non-destructive raw developer - a virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images, enhance them and export them to local or remote storage.\n\n![screenshot_lighttable](https://user-images.githubusercontent.com/45535283/148689197-e53dd75f-32f1-4297-9a0f-a9547fd4e7c7.jpg)\n\ndarktable is **not** a free Adobe® Lightroom® replacement.\n\n[https://www.darktable.org/](https://www.darktable.org/ \"darktable homepage\")\n\n## Table of Contents\n\n1. [Documentation](#documentation)\n2. [Website](#website)\n3. [Requirements](#requirements)\n   - [Supported platforms](#supported-platforms)\n   - [Hardware](#hardware)\n   - [AI features (optional)](#ai-features-optional )\n4. [Installing](#installing)\n   - [Latest release](#latest-release)\n   - [Development snapshot](#development-snapshot)\n5. [Updating from older versions](#updating-from-older-versions)\n6. [Obtaining extensions](#obtaining-extensions)\n7. [Building](#building)\n   - [Dependencies](#dependencies)\n   - [Get the source](#get-the-source)\n   - [Get submodules](#get-submodules)\n   - [Compile](#compile)\n   - [Further reading](#further-reading)\n8. [Using](#using)\n   - [Test/unstable version](#testunstable-version)\n   - [Regular/stable version](#regularstable-version)\n9. [Contributing](#contributing)\n10. [FAQ](#faq)\n   - [Why is my camera not detected when plugged-in ?](#why-is-my-camera-not-detected-when-plugged-in-)\n   - [Why is my lens not detected/corrected in darkroom ?](#why-is-my-lens-not-detectedcorrected-in-darkroom-)\n   - [Why do the thumbnails in the lighttable view look different to the preview in the darkroom view ?](#why-do-the-thumbnails-in-the-lighttable-view-look-different-to-the-preview-in-the-darkroom-view-)\n11. [Wiki](#wiki)\n12. [Community](#community)\n\nDocumentation\n-------------\n\nThe darktable user manual is maintained in the [dtdocs](https://github.com/darktable-org/dtdocs) repository.\n\nLua API documentation is maintained in the [luadocs](https://github.com/darktable-org/luadocs) repository.\n\nWebsite\n-------\n\nThe website ([https://www.darktable.org/](https://www.darktable.org/)) is maintained in the [dtorg](https://github.com/darktable-org/dtorg) repository.\n\nRequirements\n------------\n\n### Supported platforms\n\n* Linux\n* FreeBSD\n* NetBSD\n* OpenBSD\n* Windows 10 and later\n* Apple Silicon Macs running macOS 14 and later\n* Intel Macs running macOS 15 and later\n\n*Big-endian platforms are not supported.*\n\n*32-bit platforms are not officially supported - they might or might not work.*\n\n*Both darktable and the libraries it uses are developed on the Linux platform.\nTherefore, other platforms MAY have additional bugs that are not present in the Linux version.\nIn addition, for example, on the Windows platform, printing support is not currently implemented.\nSo we recommend, if you have a choice of platform, to use darktable on Linux.*\n\n### Hardware\n\n(workable minimum / **recommended minimum**):\n* RAM: 4 GB / **8 GB**\n* CPU: Intel Pentium 4 (Core 2 for Windows) / **Intel Core i5 4×2.4 GHz**\n* GPU: none / **Nvidia with 1024 CUDA cores, 4 GB, OpenCL 1.2 compatible**\n* free disk space: 250 MB / **1 GB**\n\n*darktable can run on lightweight configurations (even on a Raspberry Pi), but expect modules like denoise, local contrast,\ncontrast equalizer, retouch or liquify to be slow beyond usable.*\n\n*A GPU is not mandatory but is strongly recommended for a smoother experience.\nNvidia GPUs are recommended for safety because some AMD drivers behave unreliably with some modules (e.g. local contrast).*\n\n### AI features (optional)\n\nDarktable includes optional AI-powered features such as object masks, denoise and upscale.\nThese require building with `-DUSE_AI=ON` (off by default), or `--enable-ai` when building\nwith the build helper script `build.sh`. AI features are disabled by default in preferences\nand must be enabled by the user. Models are downloaded from the AI tab in preferences.\n\n**CPU inference** is bundled and works out of the box - no additional software is needed.\nOn macOS (Apple Silicon), CoreML acceleration and on Windows, DirectML GPU acceleration\nare also bundled by default. Processing on CPU is slower than GPU but requires no\nspecial hardware.\n\n**GPU acceleration** significantly speeds up AI inference but requires installing a\nGPU-enabled build of [ONNX Runtime](https://onnxruntime.ai/) separately:\n\n* **NVIDIA (CUDA):** Linux and Windows.\n  * Supported NVIDIA GPU with up-to-date drivers (Maxwell or newer)\n  * [CUDA Toolkit 12](https://developer.nvidia.com/cuda-12-0-0-download-archive) or [CUDA Toolkit 13](https://developer.nvidia.com/cuda-13-0-0-download-archive)\n  * [cuDNN 9.x](https://developer.nvidia.com/cudnn-downloads)\n* **AMD (ROCm):** Linux only.\n  * Supported AMD GPU with up-to-date drivers (RDNA2/CDNA or newer), see [compatibility matrix](https://rocm.docs.amd.com/en/latest/compatibility/compatibility-matrix.html)\n  * [ROCm 6](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-6.4.0/index.html) or [ROCm 7](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.2.1/) \n  * [MIGraphX](https://rocm.docs.amd.com/projects/AMDMIGraphX/en/latest/install/install-migraphx.html) (may require separate install, e.g. `apt install migraphx migraphx-dev` on Ubuntu)\n* **Intel (OpenVINO):** Linux and Windows.\n  * Supported Intel GPU with up-to-date drivers (integrated Gen9+, discrete Arc, or NPU Meteor Lake+)\n  * [Intel OpenCL](https://www.intel.com/content/www/us/en/developer/articles/tool/opencl-drivers.html) or/and [Level Zero runtime](https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2025-2/intel-oneapi-level-zero.html) (included with drivers on Windows; on Linux may need `intel-opencl-icd` or `level-zero`)\n  * On Windows, requires [OpenVINO Toolkit](https://docs.openvino.ai/2026/get-started/install-openvino/install-openvino-windows.html) installation\n* **Windows (DirectML):** bundled, works with any DirectX 12 compatible GPU (NVIDIA, AMD, Intel).\n  No extra install needed.\n  * Windows 10 1903+ (DirectML is a system component)\n* **macOS (CoreML):** bundled, uses Apple Neural Engine automatically.\n  No extra install needed.\n  * macOS 11+ (Big Sur)\n  * Apple Silicon (M1+)\n\n**GPU memory:** 4 GB VRAM minimum, 8 GB+ recommended. With less memory\ndarktable will use smaller tiles, which is slower but still works.\n\nTo enable GPU acceleration, set the path to the GPU-enabled ONNX Runtime library in\npreferences → processing → AI. darktable will auto-detect available execution providers.\nYou can verify which provider is active by running darktable with `-d ai` for debug output.\n\nInstalling\n----------\n\nIf the latest release is still not available as a pre-built package for your distribution,\nyou can build the software yourself following the instructions [below](#building).\n\n### Latest release\n\n5.4.1 (stable)\n\n* [Download package for Windows](https://github.com/darktable-org/darktable/releases/download/release-5.4.1/darktable-5.4.1-win64.exe)\n* [Download disk image for macOS on Apple Silicon](https://github.com/darktable-org/darktable/releases/download/release-5.4.1/darktable-5.4.1-arm64.dmg)\n* [Download disk image for macOS on Intel](https://github.com/darktable-org/darktable/releases/download/release-5.4.1/darktable-5.4.1-x86_64.dmg)\n* [Download AppImage for Linux](https://github.com/darktable-org/darktable/releases/download/release-5.4.1/Darktable-5.4.1-x86_64.AppImage)\n* [Install native packages or add a third-party repository for Linux distros](https://software.opensuse.org/download.html?project=graphics:darktable:stable\u0026package=darktable)\n* [Install Flatpak package for Linux](https://flathub.org/apps/details/org.darktable.Darktable)\n* [More information about installing darktable on any system](https://www.darktable.org/install/)\n\n*When using a pre-built package, ensure that it has been built with Lua, OpenCL, OpenMP and Colord support.\nThese are optional and will not prevent darktable from running if missing,\nbut their absence will degrade the user experience.\nYou can check for them by running darktable with the `--version` command line option.*\n\n### Development snapshot\n\nThe development snapshot reflects the current state of the master branch. It is intended for testing and is generally not safe. See the notes [below](#get-the-source) for warnings and precautions about using the master branch.\n\n* [Install native packages directly or add third party repository for some Linux distros](https://software.opensuse.org/download.html?project=graphics:darktable:master\u0026package=darktable) (one snapshot per day)\n* [Binary packages are provided for Linux (AppImage), macOS and Windows on a nightly basis](https://github.com/darktable-org/darktable/releases/tag/nightly)\n\nUpdating from older versions\n----------------------------\n\nWhen updating darktable from an older release, you only need to install\nthe newest version. Existing files will be preserved.\n\nHowever, newer releases occasionally need to change the structure of the library database\n(containing the whole list of images known to darktable, with their editing history). If this happens\nyou will be prompted with a request to either upgrade the database or close the software.\n\n**Migration to a newer database structure/newer release means that your edits (both new and old)\nwill no longer be compatible with older versions of darktable.** Upgrades are definitive.\nNewer versions are always compatible with older edits, but newer edits are generally\nnot compatible with older versions.\n\ndarktable automatically backs up the library database when a new version causes it to be upgraded\n(in `~/.config/darktable/library.db-pre-3.0.0` for example), so\nyou can revert to the previous release by restoring this backup if needed\n(simply rename it to `library.db`).\n\nYou will not be able to open the newer version of the database with a version of darktable\nthat only supports the older version of the database. This is impossible because the older\napplication does not know how the database schema has changed, so its code will not be able\nto work with it.\n\nYou will be able to import images with an XMP sidecar file that contains newer versions of processing\nmodules or new modules, but those image editing parts will be discarded and you will lose them.\n\nIf you plan to move regularly between two versions (new/unstable and old/stable) see [below](#testunstable-version)\nfor details of how to do it safely.\n\nObtaining extensions\n--------------------\n\nExtensions and plugins use the Lua scripting language and can be downloaded [here](https://github.com/darktable-org/lua-scripts). Lua support is optional in darktable, so make sure you have the `lua` interpreter and its development files (package\n`lua-dev` or `lua-devel`, depending on distributions) installed on your system\nwhile building or ensure the package you are using has been built with this library.\n\nExtensions allow exporting for various media and websites, merge/stack/blend HDR, panoramas or focus bracketing,\napply AI-based facial recognition, manage tags and GPS data, etc.\n\nBuilding\n--------\n\n### Dependencies\n\nCompatible compilers/toolchains:\n* Clang: 15 and later\n* GCC: 12 and later\n* MinGW-w64: 10 and later\n* XCode: 15.2 and later\n\nRequired dependencies (minimum version):\n* CMake 3.18\n* GTK 3.24.15\n* GLib 2.56\n* SQLite 3.26\n* libcurl 7.56\n* libpng 1.5.0 *(for PNG import \u0026 export, also for reading LUT files in PNG format)*\n* Exiv2 0.27.2 *(but at least 0.27.4 built with ISO BMFF support needed for Canon CR3 raw import)*\n* potrace 1.16\n* pugixml 1.8\n\nRequired dependencies (no version requirement):\n* Lensfun *(for automatic lens correction)* (Note: alpha 0.3.95 and git master branch are not supported)\n* libjpeg *(both the original IJG library and API-compatible ones, such as libjpeg-turbo, will work)*\n* LibTIFF *(for TIFF import \u0026 export)*\n* Little CMS 2\n\nOptional dependencies (minimum version):\n* OpenMP 4.5 *(for CPU multi-threading and SIMD vectorization)*\n* LLVM 7 *(for OpenCL checks at compilation time)*\n* OpenCL 1.2 *(for GPU-accelerated computing)*\n* Lua 5.4 *(for plugins and extension scripting)*\n* G'MIC 2.7.0 *(for .gmz compressed LUT files support)*\n* libgphoto2 2.5 *(for camera tethering)*\n* Imath 3.1.0 *(for 16-bit \"half\" float TIFF export and faster import)*\n* libavif 0.9.3 *(for AVIF import \u0026 export)*\n* ONNX Runtime 1.16 *(for AI inference)*\n* libarchive 3.8.5 *(for AI models download)*\n* libheif 1.13.0 *(for HEIF/HEIC/HIF import; also for AVIF import if no libavif)*\n* libjxl 0.7.0 *(for JPEG XL import \u0026 export)*\n* WebP 0.3.0 *(for WebP import \u0026 export)*\n\nOptional dependencies (no version requirement):\n* colord, Xatom *(for fetching the system display color profile)*\n* PortMidi *(for MIDI input support)*\n* SDL2 *(for gamepad input support)*\n* CUPS *(for print mode support)*\n* OpenEXR *(for EXR import \u0026 export)*\n* OpenJPEG *(for JPEG 2000 import \u0026 export)*\n* GraphicsMagick or ImageMagick *(for misc image format import)*\n\nTo install all the dependencies on Linux systems, you may use the source repository of your distribution.\nThis will install the same packages that were used to build the official darktable package on your system.\nMost likely, you will want to build a newer version than the one packaged in the distribution. So please\nnote that although this does not happen very often, it is possible that a new version of darktable will\nhave a new (required or optional) dependency. So the commands below only simplify the creation of your\nbuild environment, but will not replace your attention to the build process and possibly finding and\ninstalling certain additional dependency packages.\n\n#### Fedora and RHEL/CentOS\n\n```bash\nsudo dnf builddep darktable\n```\n\n#### OpenSuse\n\n```bash\nsudo zypper si -d darktable\n```\n\n#### Ubuntu\n\nRecent Ubuntu releases do not include the deb-src sources out of the box, even in commented form.\nTo add them, you need to run \"Software \u0026 Updates\" and on the first tab that opens, \"Ubuntu Software\",\ncheck the \"Source code\" checkbox. Only after that you can use the following command:\n\n```bash\nsudo apt-get build-dep darktable\n```\n\n#### Debian\n\n```bash\nsudo apt-get build-dep darktable\n```\n\n### Get the source\n\n#### Master branch (unstable)\n\nThe master branch contains the latest version of the source code and is intended:\n* as a working base for developers,\n* for beta-testers to chase bugs,\n* for users willing to sacrifice stability for new features without waiting for the next release.\n\nThe master branch comes with no guarantee of stability and might corrupt your database and XMP files,\nresult in loss of data and edit history or temporarily break compatibility with previous versions and commits.\n\nHow dangerous is it? Most of the time, it is fairly stable. As with any rolling-release kind of deployment, bugs appear more often\nbut are fixed faster too. Sometimes, though, these bugs can result in losses or inconsistencies in the editing history of your pictures.\nThis is fine if you don't need to open your edits again in the future, but maybe not if you manage an estate.\n\nAfter backing up your `~/.config/darktable` directory and the sidecar .XMP files of any pictures you intend to open\nwith the master branch, you may obtain the source as follows:\n\n```bash\ngit clone --recurse-submodules --depth 1 https://github.com/darktable-org/darktable.git\ncd darktable\n```\n\nSee below (in \"Using\") how to start a test install of the unstable version without damaging your regular stable install and files.\n\n#### Latest stable release\n\n5.4.1\n\nThe darktable project releases two major versions every year, on Summer and Winter Solstices, tagged with even numbers (e.g. 4.2, 4.4, 4.6, 4.8).\nMinor revisions are tagged with a third digit (e.g. 4.4.1, 4.4.2) and mostly provide bug fixes and camera support.\nYou may want to compile these stable releases yourself to get better performance for your particular computer:\n\n```bash\ngit clone --recurse-submodules --depth 1 https://github.com/darktable-org/darktable.git\ncd darktable\ngit fetch --tags\ngit checkout tags/release-5.4.1\n```\n\n### Get submodules\n\nNote that [libxcf](https://github.com/houz/libxcf.git), [OpenCL](https://github.com/KhronosGroup/OpenCL-Headers.git), [RawSpeed](https://github.com/darktable-org/rawspeed), [whereami](https://github.com/gpakosz/whereami) and [LibRaw](https://github.com/LibRaw/LibRaw) are tracked via git submodules, so after checking-out darktable, you need to update/checkout the submodules too:\n\n```bash\ngit submodule update --init\n```\n\n### Compile\n\n#### Easy way\n\nWARNING: If you have previously built darktable, don't forget to first completely remove (`rm -R`) the `build`\nand `/opt/darktable` directories to avoid conflicting files from different versions. Many weird behaviors and transient\nbugs have been reported that can be traced to the build cache not properly invalidating the changed dependencies, so\nthe safest way is to completely remove previously built binaries and start again from scratch.\n\ndarktable provides a shell script that automatically takes care of building on Linux and macOS for classic cases in a single command.\n\n```bash\n./build.sh --prefix /opt/darktable --build-type Release --install --sudo\n```\n\nIf you want to install a test version alongside your regular/stable version, change the install prefix:\n\n```bash\n./build.sh --prefix /opt/darktable-test --build-type Release --install --sudo\n```\n\nThis builds the software for your architecture only, with:\n\n* `-O3` optimization level,\n* SSE/AVX support if detected,\n* OpenMP support (multi-threading and vectorization) if detected,\n* OpenCL support (GPU offloading) if detected,\n* Lua scripting support if detected.\n\nIf you want to have dartkable displayed along your other applications, you only need to add a symbolic link:\n\n```bash\nln -s /opt/darktable/share/applications/org.darktable.darktable.desktop /usr/share/applications/org.darktable.darktable.desktop\n```\n\nNow, your custom-built darktable is ready to be used just like any pre-packaged software.\n\n#### Manual way\n\nAlternatively, you can use a manual build to pass custom arguments.\n\n##### Linux\n\n```bash\nmkdir build\ncd build\ncmake -DCMAKE_INSTALL_PREFIX=/opt/darktable/ ..\ncmake --build .\nsudo cmake --install .\n```\n\n##### macOS\n\nSee [Homebrew](packaging/macosx/BUILD_hb.txt) or [MacPorts](packaging/macosx/BUILD.txt) instructions.\n\n##### Windows\n\nSee [these instructions](packaging/windows/README.md).\n\n### Using\n\n#### Test/unstable version\n\nTo use a test version of darktable without damaging your regular/stable version's files and database, start darktable in a terminal with:\n\n```bash\n/opt/darktable-test/bin/darktable --configdir \"~/.config/darktable-test\"\n```\n\nand ensure that you set the option \"create XMP files\" to \"never\" in preferences -\u003e storage -\u003e XMP sidecar files. This way,\nyour regular/stable version will save its configuration files in `~/.config/darktable`, as usual,\nthe test/unstable one will save in `~/.config/darktable-test`, and the two versions will not produce database conflicts.\n\n#### Regular/stable version\n\nSimply launch it from your desktop application menu or, from a terminal, run `darktable` or `/opt/darktable/bin/darktable`. If the installation did not create a launcher in your applications menu, run:\n\n```bash\nsudo ln -s /opt/darktable/share/applications/org.darktable.darktable.desktop /usr/share/applications/org.darktable.darktable.desktop\n```\n\nYou may find darktable configuration files in `~/.config/darktable`.\nIf you experience crashes at startup, try launching darktable from a terminal with OpenCL disabled using `darktable --disable-opencl`.\n\n### Further reading\n\nThere is a comprehensive list of build instructions for [Ubuntu/Debian related distributions](https://github.com/darktable-org/darktable/wiki/Build-instructions-for-Ubuntu) or for [Fedora and related distributions](https://github.com/darktable-org/darktable/wiki/Build-Instructions-for-Fedora). These build instructions can be easily adapted to many other Linux distributions.\n\n\nContributing\n------------\n\nThere are many ways you can contribute to the darktable project:\n\n* Write a blog about darktable\n* Create a tutorial for darktable\n* Help expand the [user wiki](https://github.com/darktable-org/darktable/wiki) or [user manual](https://github.com/darktable-org/dtdocs)\n* Answer questions on the [user Matrix room](https://matrix.to/#/#darktable-user:matrix.org) or the [pixls.us forum](https://discuss.pixls.us/c/software/darktable/19)\n* Share your ideas on the [developer Matrix room](https://matrix.to/#/#darktable-dev:matrix.org)\n* Test [releases](https://www.darktable.org/install/)\n* Review [pull requests](https://github.com/darktable-org/darktable/pulls)\n* Start [hacking on darktable](https://www.darktable.org/development/) and see [developer's guide](https://github.com/darktable-org/darktable/wiki/Developer's-guide)\n\n\nFAQ\n---\n\n### Why is my camera not detected when plugged-in ?\n\nCheck that you have the latest [gphoto2 library](http://www.gphoto.org/ \"gphoto2 homepage\") installed in order to support the newest cameras.\n\n### Why is my lens not detected/corrected in darkroom ?\n\nLens correction profiles are provided by Lensfun, which has 2 parts: a program and a database.\nMost Linux distributions provide a recent enough version of the program,\nbut provide an outdated version of the database. If\n[Lensfun](https://lensfun.github.io/) is correctly installed, then update its database in a terminal by running:\n\n```bash\nlensfun-update-data\n```\n\nor alternatively\n\n```bash\n/usr/bin/g-lensfun-update-data\n```\n\n### Why do the thumbnails in the lighttable view look different to the preview in the darkroom view ?\n\nFor RAW files that have never been edited in darktable (when you have just imported them), the lighttable view, by default, shows\nthe JPEG preview placed into the RAW file by your camera. Loading this JPEG file is faster and makes the\nlighttable view more responsive when importing large collections of images.\n\nHowever, this JPEG thumbnail is processed by the firmware of the camera, with proprietary algorithms,\nand colors, sharpness and contrast that might not look the same as\ndarktable processing (which is what you see when opening the image in the darkroom view).\nCamera manufacturers don't publish details of the pixel processing they perform in their firmware\nso their look is not exactly or easily reproducible by other software.\n\nHowever, once RAW images have been edited in darktable,\nthe lighttable thumbnail should exactly match the darkroom preview, as they are processed in the same way.\n\nIf you never want to see the embedded JPEG thumbnail in the lighttable view, for RAW files, you should set the\noption \"use raw file instead of embedded JPEG from size\" to \"never\" in preferences -\u003e lighttable.\n\nWiki\n----\n\n* [GitHub wiki](https://github.com/darktable-org/darktable/wiki \"github wiki\")\n* [Developer wiki](https://github.com/darktable-org/darktable/wiki/Developer's-guide \"darktable developer wiki\")\n\n\nCommunity\n---------\n\n* [Darktable forum on pixls.us](https://discuss.pixls.us/c/software/darktable/19)\n","funding_links":[],"categories":["C","Multimedia","Applications","Image processing","others","其他_机器视觉","Building","Design and Product","Creative","Table of Contents"],"sub_categories":["Image and pictures","Graphics","网络服务_其他","Workflows","Design Tools","Other","Image Editing"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarktable-org%2Fdarktable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarktable-org%2Fdarktable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarktable-org%2Fdarktable/lists"}