RSSAmplifier

Blog

Ansel

Recent content on Ansel

ansel.photosRSS feed ↗408 posts

Latest posts

AI raw denoise

Removes sensor noise from the raw mosaic with a neural network, before white balance, chromatic-aberration correction and demosaicing — so every later stage of the pipeline inherits clean data, and demosaicing interpolates real detail instead of weaving noise into maze and zipper artifacts. Unlike general-purpose AI denoisers, these models are trained specifically on non-demosaiced RAW sensor…

Code of conduct

This code protects two groups from two dangers. It protects users — including the non-technical, the non-English-speaking, the beginner who wandered in — from being treated as failed programmers. And it protects the people who do the work from the pressure of a crowd that outnumbers them a thousand to one. Most codes of conduct only look in one direction; this one refuses to choose, because the…

Donate

Liberapay Recurring donations (you can stop the recurrence right after the first payment). Liberapay uses Stripe and PayPal internally, and can act as an anonymization layer if you want. Donate to the maintainer Ansel is not a hobby project. It is a working tool designed to get job done, and the pact commits it to responsibilities a hobby never carries. Funding is your side of that pact: the…

The pact

Free software runs on two one-way transactions. Users take the product without giving anything back, because three centuries of market taught us that a thing endlessly downloadable has no price. Developers decide without answering to anyone, because the license says they owe nothing — not even an explanation. One side takes without paying, the other rules without accounting. These are not two…

Scope

Knowing the audience is the first step of design, and declaring the scope is the first step of governance: every request, bug report and contribution is measured against this page. There are two honest ways to criticize the project. Holding it to what this page promises — that critique is always receivable, and the project cannot dismiss it without contradicting itself. Measuring it against a goal…

A culture of problem solving

Everything in open source is public: the code, the bugs, the requests, the discussion. Everyone can chime in — which is a strength only if the conversation is disciplined, and a slow-motion disaster otherwise. This page is the discipline. It is not etiquette: every rule here exists because its violation has a measurable cost in wasted work, and the bug-reporting protocol and design protocol both…

Reporting bugs

A bug report is testimony: what you did, what happened, what you expected. That is all the project asks of you — the translation into causes, diagnoses and fixes is our work, not yours. You will never be blamed for not knowing computers, for imperfect English, or for a report that turns out to be a documentation problem: a user who cannot follow a technical instruction has found a design or…

Contribute images to the AI denoiser

Ansel ships a neural raw denoiser (the rawdenoiseai module) that is unlike general-purpose AI denoisers: it is trained on non-demosaiced sensor data, as close to the actual sensor reading as a raw file allows , and it runs at the exact same point of the pipeline — before white balance, chromatic-aberration correction and demosaicing — so every downstream stage inherits clean data. One set of…

The mathematics of guided laplacians and harmonic transposition

This article presents the mathematics of Ansel’s highlight reconstruction : the original 2021 guided laplacians design, whose general ideas had only ever been sketched on the pixls.us forum, 1 and harmonic transposition , the method that replaced it after a ground-truth study exposed a magnitude-recovery bug. 2 It is organized so each reader finds their section : the results and each…

Color management for Linux users

Linux is still vastly lagging behind MacOS and even Windows when it comes to ensuring the consistency of colors displayed on the monitor. The widely forced adoption of Wayland graphic server in most Linux distributions has damaged this state even more, since color management has been long refused by Wayland developers. The specification for a CMS in Wayland was finally drafted in 2020 and the code…

Data privacy

Ansel is a desktop application that runs entirely on your computer. It needs no account , and by default it sends nothing anywhere. The only data that ever leaves your machine is the optional , anonymous information described on this page — and only after you have explicitly agreed to it. This page documents, from your point of view, exactly what can be collected, how , where it goes, who…

Global menu

The global menu bar sits at the top-left of the header and is available in every view. It gathers the application-wide commands, image operations, history and style management, maintenance tasks, display settings, view switching and help. It is the central reference point of the interface: most commands that are not a per-module setting live here. Note Coming from Darktable: many commands that…

Copy and paste history

Transfer the editing recipe from one image to one or many others. The result is a merge of the source history into each destination image — not a blind overwrite — which means you have fine-grained control over how conflicts between the two histories are resolved. Copy-paste is available from the Edit menu in any view, and the keyboard shortcuts work in both the lighttable and the darkroom.…

Styles

A style is a named, saved editing recipe — a subset of a history stack that can be applied to any number of images. Styles let you reuse looks, technical corrections, or module configurations without having to redo them from scratch. Styles are accessible from two places: The Styles menu in the menu bar, which lists all your styles and applies them in one click. The Styles toolbox module ,…

Welcome the new Ansel maintainer

Jiyoné (Guillaume Stutin) has taken over Ansel maintainance since october 2025. The current goal is to turn Ansel into a cooperative  where users can become members and democratically control the project orientations and priorities, but also guarantee a fair retribution and safe working environment for those who commit their workforce to the project. I have layed out the description of the…

Changes in Ansel packages distribution

Target clones Compiling the software natively on the computer use to improve runtimes on CPU by around 30 %, compared to pre-built packages. The reason is the compiler makes specific optimizations for the target hardware on which it is compiled, while pre-built packages have to stay generic and trigger more conservative optimization for the sake of wide support. Note that OpenCL kernels are,…

Color controls finally correct

Introduction Tools vs. Machines, Crafts vs. Industry In his book, The Technological Society   (1954), Jacques Ellul presents the difference between the pre- and post-industrial revolution as follows: The pre-industrial era is the reign of the tool and of craftsmanship. The foremost property of tools is to be generic, versatile, and adaptable. It is up to the craftsman to develop his skills…

Redesigning the lighttable and the mipmap cache

Between January 2022 and March 2026, Ansel landed 297 non-merge commits regarding the lighttable grid, its thumbnails, and their rendering pipeline and caching. I tried to make do with the scruffy Darktable lighttable code, only degreased, for as long as I could but unfortunately, it was pure technical debt and it was painfully slow. Indeed, Darktable “manages” the crappiness of its…

Split-toning

Blend two CAT16 plus RGB mixer corrections across brightness keyframes. The split-toning module applies two independent color transforms: one keyed on the dark tones, one keyed on the bright tones. Each keyframe combines: a chromatic adaptation defined by a correlated color temperature in CAT16 , a 3×3 RGB channel mixer working in the pipeline working RGB space. The two transforms are then…

Color primaries

Edit RGB/CYM primary control nodes in dt UCS and remap colors through a procedural 3D LUT. The color primaries module is a secondary color-grading tool built around the six additive and subtractive primaries: red , yellow , green , cyan , blue , magenta . Each of these control nodes is sampled inside the internal RGB gamut and converted to dt UCS HSB . The module lets you change the hue,…

Color equalizer

Remap colors through a procedural 3D LUT driven by perceptual hue-ring controls. The color equalizer module is a secondary color-grading tool. It lets you define color shifts on three hue rings expressed in dt UCS HSB space, then converts those shifts into a dense RGB 3D LUT that is applied to the image. The user interface is meant to stay perceptually even: The editable graphs work in hue ,…

Complete pipeline overhaul

Since I started using Darktable, circa 2012, I have always been surprised by how little RAM it used. People think it is a good thing that an application uses the memory sparingly, and that is surely true if we talk about your desktop environment. But talking of a production software that does heavy pixel rendering on images from 12 to 54 Mpixels, this means the same heavy computations are done…

Photographic grain

Simulate photographic grain from a stochastic stack of silver-halide crystal layers. This module implements a production version of the model presented in Stochastic photographic grain synthesis from crystallographic structure simulation  . The goal is not to add generic noise, but to discretize the scene-referred image into finite crystal footprints that capture and deplete light through…

The mathematics of diffuse or sharpen

This article documents the mathematics currently implemented in Ansel’s diffuse or sharpen module, as found in src/iop/diffuse.c , src/common/bspline.h , data/kernels/diffuse.cl , and data/kernels/bspline.cl . It is not a usage guide. It is a reconstruction of the numerical model from the source code, with the scientific claims traced back to the references cited in the code comments. 1

Drawing

Paint premultiplied RGBA layers directly in darkroom and save them as pages inside a TIFF sidecar. This module is a true painting layer system. It is not a local-adjustment mask editor and it is not a clone/heal tool like retouch . Instead, it creates and edits independent raster layers that are composited over the current image in the pixelpipe. The intended use cases are: Hand painting, Dodging…

History merge made robust and predictable

Memoirs of a guy who spent too much time cleaning other people’s shit and paying for their bad decisions, episode #too many. Copy/paste history and styles are core features in Ansel, and the one that makes it deserve (or not) its “workflow app” title. But it is also among the hardest to get right internally. Users see a list of edits, but under the hood those edits depend on the…

Notes

Write per-image notes that live next to your files and render as Markdown. Such notes can be to-do lists, memos, contacts of the persons in the image, tips or instructions for collaborators, etc. The module opens in preview by default; switch to edit to change the source text. The Markdown parsing needs Ansel to be build with CMark  , which is optional. If Ansel was not built with this…

Documenting Ansel

Introduction There are different ways to access information : (chrono)logical , like reading page by page, line by line, until you reach the end of the publication, thematic , like getting to the table of contents and jumping straight to the part you are interested at, provided the content is divided into meaningful units of content , transversal , like following a “related posts”…

Democracy

Ansel should be run democratically and fairly to everyone involved. Defining a cooperative organization beyond open-source code Developers and users landing here are assumed to share a common interest : they want freedom in how they edit their pictures, now and in the future. Meaning : having a sufficient technical control over their image content and properties, being free from capitalists who…

Rewriting keyboard shortcuts (accelerators) from scratch

In my defining post, Darktable: crashing into the wall in slow-motion , I presented the trainwreck that the new “Great MIDI turducken” was. The purpose of this turducken 1 was to rewrite the keyboard shortcuts system to extend it for MIDI devices. To this day, I’m still mad about this enterprise of mass-destruction, here is a recap of he the reasons: it replaced in 2021 a…

AppImage and Wayland

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

Ansel start

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

Optimization

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

darktable Blender Agx

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

import Sidecar .xmp autres logiciels

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

Utilisation des alertes "zones tronquées"

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

Editing images

Understanding non-destructive editing Before diving deeper into how to use the software, we should stop here to explain its general paradigm : non-destructive editing. Once you imported images to Ansel, what you really did is only to create an entry for them into the library database. The modifications you make on these images are never written to the original images, which are actually never…

Library and collections

Ansel keeps a database of all images it knows, that is all images that were imported , until you actively remove them from the library (global menu : File 🡒 Remove from library ). The library stores the filesystem path of the images, their metadata and their editing history. Warning Ansel does not listen to the content of filesystem folders, meaning it will not be notified if imported images are…

Image selection

Ansel allows batch-applying editing histories (through copy-pasting, or through styles) or metadata. The target images for those batch-operations are selected images. But even single-image operations (like opening in darkroom to edit, or editing metadata, copy/pasting, etc.) use selections. Selections are particular objects in Ansel, because : They are remembered between reboots and across…

Installation file for Ansel infected with filerepmalware

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

Gestion préréglages

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

Segmentation fault

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

Shortcuts and keyboard interaction

Ansel interface is designed to support two mutually-exclusive modes of interaction and navigation: through pointing devices (mouse or graphic tablet) and through the keyboard. Compared to Darktable, many interactions that required combinations of both have been removed, which makes the workflows more efficient. Shortcuts and available actions Ansel exposes app-wise actions and GUI controls to…

Panoramic

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

ratings and rotations

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

Print Module

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…

Welcome Ansel GPT !

After I finally wired the whole website and docs to a water-tight translation workflow (using po4a on top of Hugo), which happens to use the exact same toolset and logic as the Ansel application, I got the idea of automating empty translations , first from the software translation files, then through ChatGPT API, which does a very fair job at translating Markdown syntax. Working alone, you…

Automated workflows

Because Ansel is mostly a one-person operation, everything that could be automated was automated. This page keeps track of everything that should be maintained in the future, and where. Software Nightly builds Nightly builds prepare a compiled and packaged version of the software, every night at 6am UTC, for: Linux  , Windows  , MacOS is currently disabled. The newest binary files…

Websites

Ansel website is built using Hugo 0.146  . This is a static website generator that allows to build very fast website from Markdown files. A custom template and a lot of custom shortcodes have been built for Ansel. You will need to install Hugo extended version  on your computer first, although minor changes can be made directly to the Markdown files without building the whole…

New here and already annoyed

Note Archived discussion. This page is a verbatim copy of a thread from community.ansel.photos , the Ansel community forum, which ran from March 2023 until it was taken offline in June 2025 after the site was compromised — a counterfeit site had been planted inside the forum software, so the whole thing had to come down. The original address was…