Chi fotografa in RAW si trova quasi sempre davanti alla stessa scelta, ovvero l’abbonamento Adobe, la licenza di un software commerciale, oppure il mondo open source, dove i nomi conosciuti sono essenzialmente due, darktable e RawTherapee.
Esiste però una terza strada, meno pubblicizzata ma sviluppata con regolarità. Si chiama ART, sigla di Another RawTherapee, ed è un fork di RawTherapee curato da Alberto Griggio, che del progetto originale è stato uno degli sviluppatori. L’idea alla base è doppia, cioè semplificare l’interfaccia e riordinare la catena di elaborazione senza togliere controllo, e allo stesso tempo lasciare che sia chi lo usa a estenderlo.
È questo secondo aspetto a rendere ART interessante anche fuori dalla nicchia dei fotografi. Le maschere per le correzioni locali possono essere generate da Segment Anything 2, il modello di segmentazione delle immagini rilasciato da Meta. I filtri di colore si possono scrivere da soli in CTL, un piccolo linguaggio nato nel mondo del cinema. Il menu del browser dei file si allarga aggiungendo un file di testo di cinque righe, e perfino i formati immagine supportati si installano come plugin.
Il tutto è gratuito, sotto licenza GPLv3, e funziona su Windows, macOS e Linux, comprese le macchine con processore ARM. La versione attuale è la 1.26.8, pubblicata il 23 agosto 2026, con un ritmo di rilascio di circa un aggiornamento al mese.
Cosa cambia ART rispetto a RawTherapee e a darktable
Il distacco dal codice di RawTherapee è avvenuto tra la versione 5.5 e la 5.6, e da allora le due strade si sono separate parecchio. La differenza più visibile riguarda l’organizzazione degli strumenti, raccolti in sette gruppi che seguono l’ordine di elaborazione, ovvero esposizione, dettaglio, colore, editing locale, effetti speciali, trasformazioni geometriche e parametri RAW.
Un programma di sviluppo RAW applica le regolazioni in una sequenza fissa, e ogni strumento riceve in ingresso il risultato di quello precedente. Se i pannelli rispecchiano quella sequenza, diventa più facile capire perché una modifica al contrasto ha cambiato anche la saturazione, e in quale punto conviene intervenire.
Sotto il cofano, ART ha sostituito diversi componenti. La decodifica dei file RAW passa per LibRaw, la libreria usata da buona parte del software fotografico open source, il che si traduce in supporto più rapido per le fotocamere appena uscite.
I metadati vengono letti e riscritti con exiv2 ed exiftool, quindi le informazioni di scatto sopravvivono correttamente all’esportazione. Valutazioni ed etichette di colore finiscono invece in file XMP separati, lo stesso standard usato da Lightroom e da Bridge, e restano leggibili da altri programmi.
Un altro cambiamento pratico riguarda i profili di sviluppo. ART salva le modifiche in file con estensione .arp accanto all’immagine originale, mentre RawTherapee usa i .pp3. Così i due programmi possono lavorare sulla stessa cartella di scatti senza sovrascriversi a vicenda, e questo permette di provare ART senza abbandonare RawTherapee. Dentro il profilo trovano posto anche gli snapshot, cioè versioni intermedie della lavorazione salvate con un nome. Riprendendo in mano lo scatto sei mesi dopo, le varianti sono ancora tutte lì.
Il confronto con darktable, a questo punto, si riduce a una questione di impostazione. darktable è più ambizioso, ha un catalogo interno che indicizza l’archivio, un numero di moduli molto maggiore e un approccio più rigido alla gestione del colore, ma pretende in cambio parecchio studio. ART lavora sulle cartelle così come sono, senza database da mantenere, e mette in primo piano un numero ridotto di strumenti ben congegnati. A parità di risultato finale, il percorso per arrivarci è più corto.
ART: installazione su Windows, macOS e Linux
I pacchetti ufficiali si scaricano dalla pagina delle release su GitHub, dove per ogni versione compaiono undici file diversi. Su Windows ci sono l’installer classico (ART_1.26.8_Win64.exe, circa 87 MB) e una versione portabile in archivio .7z che non tocca il registro di sistema e funziona bene anche da chiavetta USB.
Chi ha un portatile con processore ARM, come i Surface con Snapdragon, trova build native dedicate, cosa non scontata per un programma di questo tipo. Su macOS ci sono due immagini disco distinte, una per i Mac Apple Silicon e una per quelli Intel. Su Linux si può scegliere tra AppImage (x86_64 e aarch64) e archivi .tar.xz già compilati.
# AppImage: nessuna installazione, basta renderla eseguibile
chmod +x ART-1.26.8-x86_64.AppImage
./ART-1.26.8-x86_64.AppImage
# Archivio precompilato, da estrarre dove preferisci
tar -xf ART-1.26.8-linux64.tar.xz
cd ART-1.26.8-linux64 && ./ART
# Arch Linux e derivate, tramite AUR
yay -S art-rawconverter
Su openSUSE il programma è disponibile attraverso l’Open Build Service, mentre per le altre distribuzioni l’AppImage resta la via più rapida. Non esistono al momento pacchetti Flatpak o Snap ufficiali.
Se usi macOS e preferisci evitare gli avvisi di Gatekeeper, sul sito del progetto è segnalata una serie di build firmate mantenute da un collaboratore esterno, alternativa comoda ai file ufficiali che vanno invece autorizzati a mano.
Una volta avviato il programma, vale la pena individuare subito la cartella di configurazione, perché è lì che finisce tutto quello di cui parleremo più avanti, ovvero script, plugin e comandi personalizzati.
| Sistema | Cartella di configurazione |
|---|---|
| Linux | ~/.config/ART |
| Windows | %LOCALAPPDATA%\ART |
Dentro questa cartella si creano a mano tre sottocartelle che ART cerca all’avvio, cioè ctlscripts per gli script di colore, imageio per i plugin dei formati immagine e usercommands per i comandi da aggiungere al menu. Nessuna delle tre esiste in partenza, ma appena vengono create e riempite il programma le rileva senza bisogno di altro.
Le maschere sono il motore dell’editing locale
La correzione locale, cioè la possibilità di modificare solo una porzione dell’immagine invece che tutta, è il punto in cui i programmi gratuiti hanno storicamente perso il confronto con Lightroom. ART affronta la questione con un sistema unico, dato che gli strumenti del gruppo editing locale funzionano tutti allo stesso modo e accettano tutti gli stessi tipi di maschera. Impararne uno significa averli imparati tutti.
Le maschere disponibili sono quattro e si possono combinare tra loro.
- La maschera parametrica seleziona i pixel in base a luminosità, tinta o saturazione. È lo strumento giusto per intervenire su “tutte le zone scure” o su “tutto ciò che tende all’arancione“, senza disegnare nulla.
- La maschera per somiglianza di colore parte da un colore prelevato dall’immagine e include tutto quello che gli assomiglia entro una tolleranza regolabile, utile per recuperare un cielo o uniformare un incarnato.
- La maschera ad area usa forme geometriche, ovvero rettangoli, poligoni disegnati punto per punto e gradienti lineari, quest’ultimo l’equivalente digitale del filtro degradante che si avvitava davanti alla lente.
- Il pennello serve nei casi in cui basta dipingere a mano la zona da correggere.
La parte che fa la differenza, però, viene dopo la selezione. Ogni maschera ha una fase di post-elaborazione con sfumatura dei bordi, sfocatura e contrasto, cioè i controlli che trasformano una selezione riconoscibile in una transizione morbida verso il resto della foto.
È anche il motivo per cui, nella pratica, conviene lavorare al contrario rispetto all’istinto. Prima si attiva la visualizzazione della maschera, che mostra in bianco le aree incluse e in nero quelle escluse, poi si regola la selezione fino a che è pulita, e solo alla fine si sposta il cursore della correzione. Chi parte dalla correzione e aggiusta la maschera dopo finisce quasi sempre per esagerare con l’effetto.
Un ultimo suggerimento pratico, le maschere si sommano ma si possono anche sottrarre. Per esempio la combinazione più efficace per un ritratto è una maschera parametrica sulle alte luci a cui si sottrae un poligono disegnato intorno al viso, così da schiarire lo sfondo senza toccare la pelle.
L’AI resta fuori dal programma
Qui arriva la scelta più discutibile e, forse, anche la più sensata di ART. Il programma non incorpora alcun modello di intelligenza artificiale, quindi niente selezione automatica del soggetto con un clic e niente riduzione del rumore neurale integrata.
L’eseguibile resta leggero e non si porta dietro centinaia di megabyte di pesi, il rovescio della medaglia è che l’automazione va montata a mano. Il collante è il sistema dei comandi personalizzati, di cui parliamo nella prossima sezione, perché gli strumenti AI sono programmi esterni che ART richiama passando loro il file selezionato.
Per le maschere il progetto mantiene SMART, acronimo di Segmentation Model for ART, una piccola interfaccia grafica costruita attorno a SAM 2 di Meta. È lo stesso modello che sta dietro alle selezioni automatiche di molti editor commerciali, e il suo pregio è che non ha bisogno di essere addestrato sul tuo soggetto,basta che gli indichi un paio di punti e capisce dove finisce l’oggetto.
# Ambiente Python isolato, condiviso da tutti gli strumenti AI
python3 -m venv ~/.local/share/art-ai
source ~/.local/share/art-ai/bin/activate
# SMART: interfaccia grafica per generare maschere con SAM 2
git clone --depth 1 https://github.com/artpixls/SMART ~/.local/share/SMART
pip install -r ~/.local/share/SMART/requirements.txt
# Il checkpoint del modello va scaricato a parte dal repository di SAM 2
# e copiato in ~/.local/share/SMART/models/
# Genera il file di configurazione, poi va aperto e modificato
python ~/.local/share/SMART/src/main.py --init-config
Nel file di configurazione appena creato vanno indicati due valori, cioè il nome esatto del checkpoint scaricato e il parametro device, che accetta cuda per le schede NVIDIA, mps sui Mac con Apple Silicon e cpu per tutti gli altri casi.
A quel punto lo script smart_masking.sh fornito con SMART va copiato in ~/.config/ART/usercommands, dopo aver corretto al suo interno il percorso dell’interprete Python e quello della cartella di installazione. Su Windows il procedimento è ancora più diretto, perché esiste una versione portabile da estrarre in %LOCALAPPDATA%, accompagnata dallo script PowerShell equivalente.
L’uso quotidiano è semplice. Selezioni la foto nel browser di ART, lanci il comando dal menu contestuale, e nella finestra di SMART indichi il soggetto con shift + clic sinistro per i punti da includere e shift + clic destro per quelli da escludere. La maschera si aggiorna in tempo reale, la salvi, e torni in ART per caricarla come maschera esterna dentro qualsiasi strumento locale.
Sul fronte del rumore digitale l’approccio è identico. Le due opzioni sono nind-denoise, basato su una rete neurale addestrata su un archivio di rumore fotografico, e RawForge, che lavora invece direttamente sul file RAW e restituisce un DNG ripulito.
Entrambi richiedono PyTorch nello stesso ambiente virtuale e una configurazione minima, in cui si indicano il dispositivo di calcolo e il percorso dell’eseguibile a riga di comando incluso in ART.
Senza una GPU decente i tempi si allungano parecchio. Ma sui file ad alta sensibilità, sopra i 6400 ISO, il guadagno rispetto alla riduzione del rumore tradizionale è visibile senza dover ingrandire al 200%.
I comandi personalizzati: il menu contestuale lo crei tu
Il meccanismo che rende possibile tutto quanto sopra merita una sezione a parte, perché da solo vale l’installazione del programma. Un comando personalizzato è un file di testo con estensione .txt dentro usercommands, contenente una sola sezione [ART UserCommand]. Servono due sole righe obbligatorie, ovvero l’etichetta che comparirà nel menu e il comando da eseguire, a cui ART passa automaticamente i file selezionati nel browser.
Le righe facoltative sono la parte interessante, perché stabiliscono quando la voce deve comparire e quando invece deve restare nascosta. Si può filtrare per estensione, per tipo di file, per modello di fotocamera tramite un’espressione regolare, oppure imporre che i file selezionati siano stati scattati con gli stessi parametri.
| Chiave | Cosa fa |
|---|---|
Label | Il testo che compare nel menu contestuale |
Command | Il programma o lo script da eseguire |
FileType | Limita a raw, nonraw, any o directory |
Extension | Elenco delle estensioni ammesse |
Camera | Espressione regolare su marca e modello |
MinArgs / MaxArgs / NumArgs | Quanti file devono essere selezionati |
MatchCamera, MatchLens, MatchShutter, MatchISO, MatchAperture, MatchFocalLen, MatchDimensions | Pretendono che i file selezionati condividano quel dato |
Un esempio pratico è copiare lo sviluppo del primo scatto selezionato su tutti gli altri, cosa comoda se torni a casa con quaranta foto della stessa scena e le stesse impostazioni.
# ~/.config/ART/usercommands/sync-arp.txt
[ART UserCommand]
Label=Copia sviluppo sugli altri scatti
Command=~/.config/ART/usercommands/sync-arp.sh
FileType=raw
MinArgs=2
MatchCamera=true
MatchLens=true
#!/usr/bin/env bash
# ~/.config/ART/usercommands/sync-arp.sh
# Applica il profilo del primo file selezionato a tutti gli altri
set -euo pipefail
sorgente="$1"; shift
profilo="${sorgente}.arp"
if [ ! -f "$profilo" ]; then
notify-send "ART" "Nessun profilo .arp trovato per $(basename "$sorgente")"
exit 1
fi
for scatto in "$@"; do
cp -f "$profilo" "${scatto}.arp"
done
notify-send "ART" "Sviluppo copiato su $# scatti"
Lo script funziona a patto che i profili siano salvati accanto alle immagini e non nella cache interna, opzione che si controlla nelle preferenze. Ricordati di renderlo eseguibile con chmod +x prima di lanciarlo.
Con la stessa logica dei file di testo si allarga anche l’elenco dei formati supportati. Il repository ART-imageio raccoglie plugin per JPEG XL, AVIF, HEIF, OpenEXR, WebP e alcuni formati più specialistici come FITS e GPR, comprese le varianti HDR.
Ogni plugin è composto da un file format.txt e da una cartella di supporto, entrambi da copiare in ~/.config/ART/imageio, e la maggior parte richiede che sul sistema siano presenti Python ed exiftool. Chi possiede una GoPro o un telefono che salva in HEIF risolve così un problema che in altri programmi richiede conversioni preliminari.
Scriversi i propri filtri di colore con CTL
Il CTL, Color Transformation Language, nasce in ambito cinematografico come parte dell’ecosistema ACES, lo standard di gestione del colore usato nella produzione dei film. È un linguaggio minuscolo, con una sintassi che ricorda il C, pensato per descrivere che cosa succede a un pixel.
ART include un interprete CTL completo, e questo significa che un file di testo depositato nella cartella giusta diventa a tutti gli effetti un nuovo strumento del programma, cursori compresi.
Il punto di partenza migliore è la raccolta ufficiale di script, una trentina di filtri già pronti che spaziano dalla compressione del gamut secondo il metodo ACES agli equalizzatori di tinta e saturazione, fino a effetti come la posterizzazione.
# La raccolta ufficiale, clonata direttamente nella cartella che ART controlla
git clone --depth 1 https://github.com/artpixls/ART-ctlscripts ~/.config/ART/ctlscripts
Il clone porta con sé anche _artlib.ctl, la libreria di funzioni comuni da cui molti script dipendono. Al riavvio, gli script compaiono nell’elenco dello strumento che carica LUT e trasformazioni di colore, dentro il gruppo dedicato al colore.
Scriverne uno da zero è meno difficile di quanto sembri, perché ART costruisce l’interfaccia leggendo dei commenti speciali. La riga @ART-label definisce il nome visualizzato, ogni riga @ART-param genera un cursore con nome, minimo, massimo e valore predefinito, e la funzione ART_main riceve i tre canali del pixel in ingresso e ne restituisce altrettanti in uscita.
L’esempio qui sotto sposta le ombre e le alte luci verso due tinte diverse, l’effetto alla base della classica combinazione arancione e blu del cinema contemporaneo.
// ~/.config/ART/ctlscripts/viraggio.ctl
// @ART-label: "Viraggio per luminanza"
// @ART-colorspace: "rec709"
// @ART-param: ["ombre", "Ombre (blu <-> ambra)", -100, 100, 0]
// @ART-param: ["luci", "Alte luci (blu <-> ambra)", -100, 100, 0]
// @ART-param: ["soglia", "Punto di separazione", 5, 60, 18]
void ART_main(varying float r, varying float g, varying float b,
output varying float rout,
output varying float gout,
output varying float bout,
int ombre, int luci, int soglia)
{
// Luminanza percepita del pixel secondo i coefficienti Rec.709
float Y = 0.2126 * r + 0.7152 * g + 0.0722 * b;
// Peso che vale 0 nelle ombre profonde e tende a 1 nelle alte luci
float pivot = soglia / 100.0;
float w = Y / (Y + pivot);
// Miscela i due viraggi in base alla luminanza del pixel
float shift = (ombre * (1.0 - w) + luci * w) / 1000.0;
rout = r + shift;
gout = g + shift * 0.35;
bout = b - shift;
}
Salvando il file e riavviando ART, il filtro compare nell’elenco con i suoi tre cursori funzionanti, senza compilazione e senza dipendenze da installare. ART carica anche le LUT in formato CLF attraverso OpenColorIO, quindi i profili colore condivisi si possono usare senza conversioni intermedie.
Tempo ben speso per chi sviluppa i propri RAW
ART non è un programma per tutti, non ha un catalogo, dato che lavora sulle cartelle del disco, quindi chi cerca un archivio con parole chiave, ricerche salvate e collezioni virtuali deve guardare altrove.
La documentazione è curata ma solo in inglese, e dà per acquisiti alcuni concetti di base sulla gestione del colore. L’integrazione con gli strumenti di intelligenza artificiale, per quanto ben pensata, richiede di mettere le mani su Python e su un paio di file di configurazione.
In cambio la catena di elaborazione è ordinata e prevedibile, il sistema di maschere è coerente in tutti gli strumenti invece di cambiare faccia a ogni pannello, e soprattutto il programma è progettato per essere esteso da chi lo usa. Puoi aggiungere un formato immagine, una voce di menu che lancia un tuo script o un filtro di colore scritto in venti righe, senza ricompilare nulla.
Se sviluppi molti scatti l’anno e ti interessa capire cosa succede alle tue immagini, invece di affidarti a un cursore chiamato “auto”, ART merita il tempo necessario a prenderci confidenza. Convive senza conflitti con RawTherapee e darktable grazie ai file .arp, quindi la prova costa solo tempo.













