Vielen Darktable User ist garnicht bekannt, dass man Darktable seit Version 1.4 mit Lua Skripten erweitern kann. Lua ist eine plattformunabhänginge Skriptsprache, bei der das Skript vor der Ausführung in Bytecode übersetzt wird. Mit dem in Darktable integrierten Lua Skriptinterpeter kann man nicht nur einfache Batchskripte über Tastaturkürzel ausführen lassen, sondern auch eigene Dialoge / Module mit Schaltknöpfen, Schiebern usw. erstellen.

Da man zu den Darktable Lua Skripten wenig im Netzt findet, habe ich mich entschlossen hier mal einige Vorzustellen und die Installationen zu erklären.

 

Installationen von Darktable Lua Skripten

Damit die Lua Skripte laufen können, muss natürlich erst mal die Skriptsprache Lua 5.2 (darktable 2.2.X) bzw. Lua 5.3 (darktable 2.4.X) installiert werden.

Für die Installation von Lua auf Ubuntu führen Sie folgendes aus:

sudo apt-get update
sudo apt-get install liblua5.2-0 liblua5.2-dev lua5.2 lua5.2-doc

bzw.

sudo apt-get update sudo apt-get install liblua5.3-0 liblua5.3-dev lua5.3 lua5.3-doc

 

Jetzt laden wir die für Darktable bereitgestellten Skripte herunter. Das Zip-Archiv können Sie über die Schaltfläche "Clone or Download" bei https://github.com/darktable-org/lua-scripts herunterladen. Speichern Sie das Zip-Archiv unter ~/.config/darktable/ ab.

Mit den folgenden Befehlen entpacken wir das Zip-Archiv, benennen das Verzeichnis um und löschen das Zip Archiv wieder.

unzip lua-scripts-master.zip
mv lua-scripts-master lua
rm lua-scripts-master.zip

 

Die Verzeichnisstruktur sollte jetzt wie folgt aussehen:

Alle Darktable Lua Skripte werden abgespeichert im Skriptverzeichnis ~/.config/darktable/lua
In diesen Verzeichnis befinden sich die folgenden Unterverzeichnisse:

Skript Verzeichnis Beschreibung / Verwendung
official In den Verzeichnis "official" werden die Skripte abgespeichert, die vom darktable Team erstellt wurden.
example In den Verzeichnis "example" befinden sich Beispielskipte für Entwickler. Die Skripte zeigen nur Möglichkeiten auf und haben keine weitere Verwendung
contrib In das Verzeichnis "contrib" werden alle dt lua Skripte abgespeichert, die von Anwendern oder externen Entwickler die nicht im dt Team sind abgespeichert.

 

Damit die Skripte beim Start eingebunden werden, müssen wir im Verzeichnis ~/.config/darktable die Textdatei luarc anlegen. Öffnen Sie einen ASCII Texteditor und fügen z.B. folgendes ein und speichern die Datei unter ~/.config/darktable/luarc ab:

Beispiel Inhalt der luarc Datei für datktable 2.0.X (bei 2.2.X entfällt require "official/yield"):

require "official/yield"
require "official/image_path_in_ui"
require "contrib/hugin"
require "contrib/clear_GPS"
require "contrib/copy_attach_detach_tags"
require "contrib/database_statistics"
require "examples/moduleExample"
require "examples/preferenceExamples"

Das Skript yield wird benötigt, damit externe Programme gestarten werden können. Fügen Sie die Skriptzeile daher immer als erstes ein, sonst funktionieren einige Programme nicht!

 

Die anderen Skripte können analog hinzugefügt werden.

ACHTUNG:
Nicht alle Skripte laufen fehlerfrei, wenn ein Skipt einen Error erzeugt, dann kann es sein, dass die anderen Skripte auch nicht funktionieren!

Zum Testen, ob die Lua Skripte fehlerfrei laufen, sollen Sie darktable über die Konsole/Terminal mit dem folgenden Befehl starten:

darktable -d lua

Wenn keine Fehlermeldungen auftreten, dann sollen die Skripte laufen. Das Skript image_path_in_ui zeigt im Leuchttisch auf der linken Seite unterhalb der Sammlung den Pfad vom ausgewählten Foto an.

 

Übersicht Lua Plugin für Darktable

Hier eine Übersicht der aktuellen Lua Skripte von https://github.com/darktable-org/lua-scripts (Stand 10.09.2016). Den Link zum Download meiner Lua Skripte finden Sie in der Tabelle.

 

Skript Verzeichnis  Abhänigkeiten  Funktion
 check_for_updates.lua official
  • luase
    (sudo apt-get install lua-sec)
  • cjson
    (sudo apt-get install lua-cjson)
a simple script that will automatically look for newer releases on github and inform when there is something. it will only check on startup and only once a week.
 copy_paste_metadata.lua official
  •   keine
 ADD SUPPORT FOR COPYING METADATA+RATING+COLOR LABELS+TAGS BETWEEN IMAGES
This script adds keyboard shortcuts and buttons to copy/paste metadata between images.
 debug-helpers.lua official  
  • keine
 A collection of helper functions to help debugging lua scripts.
 delete_long_tags.lua official  
  • keine
 DELETE LONG TAGS
A simple script that will automatically delete all tag longer than a set length
 enfuse.lua official
  •  yield.lua
  • enfuse

 RUN ENFUSE ON THE SELECTED IMAGES
This script uses enfuse to merge the selected images into one HDR and imports the result.
It only works on ldr images (like, JPEG).

Skript funktioniert bei mir nicht.

 generate_image_txt.lua official
  •  Keine

A script to run a command on images to generate text metadata. The medata will be displayed as an overlay on the image in lighttable mode

 image_path_in_ui.lua official
  •  Keine
 IMAGE_PATH_IN_UI
Add a widget with the path of the selected images for easy copy/past
Simple shortcuts to have multiple selection bufers
 import_filter_manager.lua official
  • import_filters.lua 

IMPORT FILTER MANAGER
This script adds a dropdown list with import filters to the import dialog.
Scripts can add new filters by registering them with
  darktable.register_import_filter(name, callback)
The callback has type function(event, images), i.e., it is the same as when
directly registering the pre-import event.

Skript funktioniert bei mir nicht.

 import_filters.lua official  
  • Keine

 EXAMPLE IMPORT FILTERS
This script goes along with the import filter manager. It adds two filters:
* ignore jpegs: this one does the same as the existing option in the import dialog
                and just skips all JPEGs during import.
* prefer raw over jpeg: this one is a bit more elaborate, it ignores JPEGs when there
                        is also another file with the same basename, otherwise it
                        allows JPEGs, too.

Skript funktioniert bei mir nicht.

 save_selection.lua official   SAVE SELECTION
Simple shortcuts to have multiple selection bufers
 selection_to_pdf.lua official
  • yield.lua
  • PDF Viewer
  • pdflatex
SELECTION_TO_PDF
Generates a PDF file (via Latex) containing all selected images
 yield.lua official
  •  Keine
Diese Skript wird von darktable benötigt, um mit anderen Skripten externe Programme starten zu können. Fügen Sie das Skript in die erste Zeile von der luarc ein.
 autostyle.lua contrib  
  • Keine
Autostyle
Automatically apply a given style when an exif tag is present in the file. This tagged is checked with exiftool, in order to be able to match very exotic tags.
I wrote this initially to be able to apply a style to compensate for Auto-DR from my Fujifilm camera
 calcDistance.lua contrib  
  • Keine

darktable calc distance script
This script calcs the distance between two images using the GPS data in the metadata.

Benutzung: Über Tastaturkürzel starten.

 clear_GPS.lua contrib
  •  Keine

clear_GPS - clear GPS data from selected image(s)
This shortcut removes the GPS coordinate data from the selected images.

Benutzung: Foto selektieren und Skript über Tastaturkürzel starten.

 copy_attach_detach_tags.lua contrib
  • Keine 

 (MULTI-)COPY ATTACH DETACH REPLACE TAGS
 This script that will create four shortcuts and add a modul in lighttable mode to copy, paste, replace and remove tags from images.

Benutzung: Tastaturkürzel für copy, attatch und delete vergeben und anwenden.

 cr2hdr.lua contrib

cr2hdr Magic Lantern Dual ISO processing for some Canon DSLR.
This script automates the steps involved to process an image created
with the Magic Lantern Dual ISO module. Upon invoking the script with a
shortcut "cr2hdr" provided by Magic Lantern is run on the selected
images. The processed files are imported. They are also made group
leaders to hide the original files.

 geoJSON_export.lua contrib  
  • yield.lua
  • mkdir
  • convert (ImageMagick)
  • xdg-open
  • xdg-user-dir
 darktable geoJSON export script
 geo_uri.lua contrib
  •  gnome-maps >= 3.20
 darktable script to open a geo uri in gnome-maps
 gimp.lua contrib
  • yield.lua 
  • Gimp
 

gimp - export an image and open with GIMP for editing

    This script provides another storage (export target) for darktable.  Selected
    images are exported in the specified format to temporary storage.  GIMP is launched
    and opens the files.  After editing, the exported images are overwritten to save the
    changes.  When GIMP exits, the exported files are moved into the current collection
    and imported into the database.  The imported files then show up grouped with the
    originally selected images.

 gps_select.lua contrib
  •  Keine

 darktable select images with or without GPS informations

Benutzung: Über Tastaturkürzel

 hugin.lua contrib
  • yield.lua 
  • Hugin
HUGIN
Add a new storage option to send images to hugin.
Images are exported to darktable tmp dir first.
 kml_export.lua contrib
  • yield.lua 
  • mkdir
  • zip (only if you create KMZ files)
  • convert (ImageMagick)
  • xdg-open
  • xdg-user-dir
 darktable KML export script
 rate_group.lua contrib
  •  Keine

Rate Group:
Script to provide shortcuts for rating or rejecting all images within a group;
particularly useful for RAW+JPEG shooters employing a star rating workflow
like the below:

Benutzung: Tastatur kürzel vergeben und benutzen.
Reject group: Ctrl+R
Rate group 1: Ctrl+1
Rate group 2: Ctrl+2
Rate group 3: Ctrl+3
Rate group 4: Ctrl+4
Rate group 5: Ctrl+5
Rate group 0: Ctrl+0

 slideshowMusic.lua contrib
  •  rhythmbox-client
 darktable Script to play music during a Slideshow
 video_mencoder.lua contrib
  • yield.lua 
  • mencoder (MEncoder is from the MPlayer Team)
  • xdg-open
  • xdg-user-dir
 darktable video export script
 api_version.lua examples
  •  Keine
 darktable script to show the Lua API version in the preferences
 gettextExample.lua examples
  • xgettext
  •  msgfmt
 

darktable script to show how translations works

To create the .po file run:
xgettext -l lua gettextExample.lua

xgettext is not a lua tool, it knows (almost) nothing about Lua, and not
enough to do a proper parsing. It takes a text file (In our case a Lua
file) and recognises a few (language dependant) keyword in there.
It matches those keywords with internal description on how functions are
called and creates the .po file accordingly. (For example, it knows that
the first argument of gettext() is the translated string, but that it's
the second argument for dgettext)
This is important because it means that if you use some neat Lua tricks
(like renaming functions) xgettext won't recognize those calls and won't
extract the string to the .po file.
So, this is why we create a local variagle gettext = dt.gettext, so
xgettext recognises gettext.gettext as a function but not dt.gettext.gettext

To create a .mo file run:
msgfmt -v gettextExample.po -o gettextExample.mo

 hello_world.lua examples
  •  Keine
HELLO WORLD
prints "hello world when DT starts
 moduleExample.lua examples
  •  Keine
 Modul Example Demo
 preferenceExamples.lua examples
  •  Keine

 darktable script to show the different preference types that are possible with Lua

database_statistics.lua
(Skript von Multimedia4Linux)

Download für darktable
2.0.X (Linux)

database_statistisc-0.4.tar

 

Download für darktable
2.2.X (Linux)
2.4.X (Linux)
2.6.X (Linux)

database_statistisc-2.1.2.tar

bitte skript abspeichern im Verzeichnis contrib
  • sqlite3
  • rm
  • grep
  • wc
  • du

Mit dem Skript kann man eine Statistik von der Darktable Datenbank erstellen.

Handbuch

steghideexport.lua
(Skript von Multimedia4Linux)

Download für darktable
2.0.X (Linux)

steghide_export-0.2.tar

 

Download für darktable
2.2.X (Linux)
2.4.X (Linux)
2.6.X (Linux)

steghide_export-2.2.1.tar

bitte skript abspeichern im Verzeichnis contrib
  • steghide
  • mv
  • exiftool

Mit den Skript kann man eine ASCII Text Datei unsichtbar und passwortgeschützt in ein JPEG einbetten.

Handbuch

gpsbabel.lua

(Skript von Multimedia4Linux)

Download für darktable
2.2.X (Linux)
2.4.X (Linux)
2.6.X (Linux)

gpsbabel-2.2.3.tar

bitte skript abspeichern im Verzeichnis contrib   
  • gpsbabel 1.5.4 oder neuer

Mit dem Skript kann man die Logdaten von einem GPS Gerät herunterladen bzw. Logdaten konvertieren.

Handbuch

contact_print.lua

(Skript von Multimedia4Linux)

Download für darktable
2.2.X (Linux)
2.4.X (Linux)
2.6.X (Linux)

contact_print-2.1.3.tar

bitte skript abspeichern im Verzeichnis contrib 
  • ImageMagick
  • exiftool 

Mit dem Skript kann man digitale Kontaktabzüge erstellen.

Handbuch

enfuse_pro.lua

(Skript von Multimedia4Linux)

Download für darktable

2.2.X (Linux)
2.4.X (Linux)
2.6.X (Linux und Windows)

enfuse_pro-2.1.6.tar

 

bitte skript abspeichern im Verzeichnis contrib
  • align_image_stack
  • enfuse 4.2
  • exiftool
  • darktable lua lib

Mit dem Skript kann man aus einer Belichtungsreihe ein DRI Foto erzeugen bzw. Focus Stacking (DFF) durchführen. Das Skript benutzt enfuse 4.2 zum Verschmelzen der Bilder.

Handbuch

Darktable Tutorial - Enfuse Professional Plugin

pano_pro.lua

(Skript von Multimedia4Linux)

Download für darktable
2.2.X (Linux)
2.4.X (Linux und Windows)
2.6.X (Linux und Windows)
3.0.X (Linux)

pano_pro-2.2.0.tar
bitte skript abspeichern im Verzeichnis contrib
  • hugin
  • enblend 4.2
  • exiftool
  • darktable lua lib

Mit dem Skript kann man aus zwei oder mehr Bildern in wenigen Schritten ein Panoramabild erstellen. Das Skript benutzt dafür die Utilities von Hugin und enblend.

Handbuch

slideshowexport.lua

(Skript von Multimedia4Linux)

Download für darktable
2.2.X (Linux)
2.4.X (Linux)
2.6.X (Linux)

slideshowexport-1.1.0.tar

bitte skript abspeichern im Verzeichnis contrib
  • melt
  • imagemagick
  • libavcodec-extra

Mit dem Skript kann man sehr einfach und schnell eine Diashow Video mit Titelszene und Abspann erstellen.

Handbuch

 

 

Darktable LUA Plugin in deutsch

Einige Skripte kann man sich auch in deutsch übersetzen lassen. Wechsen Sie dazu in das Verzeichnis mit den po Dateien z.B. ~/.config/darktable/lua/contrib/de_DE/LC_MESSAGES.
Mit dem folgenden Befehl  können Sie z.B. die Übersetzung für das database_statistics.lua Skript erstellen:

msgfmt -v database_statistics.po -o database_statistics.mo 


Kopieren Sie jetzt noch die erstellten mo Datei nach:

 ~/.config/darktable/lua//de_DE/LC_MESSAGES

Falls das Verzeichnis noch nicht existiert, dann legen Sie es vorher an. Nach einem Neustart von darktable sollten die eingebundenen und übersetzten Skripte in deutsch erscheinen.

database statistics 01

 

Skripte selber erstellen

Im Moment gibt es noch nicht viele Skripte für Darktable und einige die es gibt funktionieren nicht. Ich hoffe, dass sich das mit diesem Artikel bessern wird. Lua soll leicht zu erlernen sein und sehr flexiebel. Mit Lua kann man sogar Funktionen aus C-Bibliotheken nutzen. 

Für alle die sich mit der Skripterstellung beschäftigen wollen hier noch einige nüzuliche Links:

Ich würde mich freuen, wenn Sie mich informieren, wenn Sie ein Darktable Lua Skript erstellt haben. Gerne werde ich dann in meinem Blog erwähnen.

 

 

 

In diesem Tutorial möchte ich Ihnen zeigen, wie ich einen Sonnenuntergang mit möglichst vielen Detail fotografiere und mit Darktable entwickel. Ich zeige Ihnen, wie Sie die ausgebrannte Stellen der Sonne retten können, Rauschen im dunkeln Bereich reduzieren und die dunklen Bereiche aufhellen.

 

Übersicht zum Sonnenuntergang Post-Processing Workflow mit Darktable

  1. Ausgebrannte Stelle (Sonne) über die Farbrekonstruktion retten
  2. Dunkle Stelle über Tonemapping aufhellen
  3. Farbsaum-Entfernen
  4. Chromatische Aberration entfernen
  5. Leichtes Raw Entrauschen
  6. Dunkle Bereich über den Equalizer entrauschen
  7. Helligkeitsanpassung über die Farbkurve
  8. Darktable Modul Schatten und Spitzlichter einschalten
  9. Objektivverzerrung, Randabdunklung
  10. Optional Flecken und/oder Totpixel entfernen (Modul Fleckentfernung, Modul Tote Pixel)
  11. Horizont begradigen, Foto zuschneiden, Perspektive korrigieren (Modul Zuschneiden und drehen)

 

Wie belichte ich ein perfektes Sonnenuntergangs- bzw. Sonnenaufgangsfoto?

Ich gehe davon aus, dass Sie Ihre Fotos im RAW Format machen, da Sie für einen schönen Sonnenuntergang das Foto im RAW Format bearbeiten müssen. Damit Sie möglichst viele Details bei einer Gegenlichtaufnahme bekommen, müssen Sie das Foto so belichten, dass es um die Sonne bzw. im Himmel richtig belichtet ist. Schalten Sie dazu das RGB Histogramm an ihrer Kamera ein und belichten die Aufnahme so, dass möglichst wenig von den Lichtern abgeschnitten wird, aber auch noch genügend Detail im Himmel erkennbar sind. Der Vordergund ist bei solchen Aufnahmen meistens viel zu dunkel, dass beheben wir dann später mit Darktable. Bei dem folgenden Beispielfoto war der Bereich im die Sonne schwierig zu fotografieren, da die Sonne sich hinter den Wolken versteckte und durch Wolken sehr hell leuchteten. Wie Sie an dem Histogramm sehen können liegt ein extremer Dynamikumfang vor. Das Histogramm ist bis auf die ober rechte Ecke fast voll ausgefüllt.

Hier mein Beispielfoto (RAW Foto ohne Bearbeitung):

 

 

 

Wie entwickel ich mit Darktable so ein Foto mit Gegenlicht und extremen Dynamikumfang?

Als erste könnern wir uns im die ausgebrannten Stellen von der Sonne. Öffnen Sie das Foto und wechseln in die Dunkelkammer von darktable. Bitte zommen Sie über das Mausrad in den Bereich der Sonne, bis die Sonne groß sichtbar ist. Über die Strg-Taste + Mausrad können Sie über 100% zoomen, damit die Bildschirmfläche gefüllt wird.

 

Sonne rekonstruieren

Schalten Sie jetzt das Darktable Modul Farbrekonstruktion ein. Der von der Sonne ausgebrannte Bereich wird jetzt mit dem Farbton um den ausgebrannten Bereich gefüllt.

 

Das Ergebnis ist aber nicht zufriedenstellen, wir erstellen daher eine gezeichnete Maske mit einer invertierten Kreisform, damit ein kleiner weißer Punkt für die Sonne übrig bleibt. Die größe vom Kreis und den Überblendbereich können Sie mit dem Mausrad und der Position vom Curser ändern.

 

Anschließend duplizieren wir die Instanz, stellen das Überblenden auf Einheitlich um und reduzieren die Deckkraft bis eine hellgelbe bis weißliche Sonne erscheint. Verkleinern Sie den Zoomfaktor und überprüfen das Ergebniss. Wenn Ihnen das Ergebniss gefällt, dann können Sie das Modul verlassen.

 

Anpassung vom Dynamikumfang

Damit wir den dunklen Bereich aufhellen können ohne, dass viel abgeschnitten wird, müssen wir den Dynamikumfang mit dem Darktable Modul Tonemapping etwas reduzieren.

Rufen sie das Darktable Modul Tonemapping auf und schalten die parametrische Maske ein, um den dunklen Bereich zu bearbeiten. Aktivieren Sie den L-Kanal (Regler für Helligkeitswert) und lassen sich die Maske anzeigen. Schieben Sie jetzt den rechten Eingabeschieber nach links bis nur noch der dunkle Bereich maskiert ist. Schalten Sie die Anzeige der Maske wieder aus und reduzieren die Deckkraft auf 20 bis 50% je nach Foto. Stellen Sie jetzt noch die Kontrast-Kompression und die räumliche Ausdehung so ein, dass ein natürliches Foto entsteht.

 

 

ACHTUNG:
Bei ungeegnetem Werten für die Kontrast-Kompression, räumliche Ausdehnung und Deckkraft kommt es schnell zu unnatürlichen Fotos mit Haloeffekt. Dies erkennt man oft erst, wenn man hinzoomt und sich die Kanten von Objekten ansieht!

 

Wie man sehen kann gibt es oft auch bei guten Werten Farbsäume, die wir im nächsten Abschnitt entfernen wollen.

 

Entfernen von Farbsäumen

Zum Entfernen von Farbsäumen aktivieren Sie das Darktable Modul Farbsaum-Entfernen. Zoomen Sie auf ein Objekt mit einer deutlichen Kante ein und kontrolieren das Ergebnis bei Bedarf können Sie an den Reglern etwas verändern.

 

Entfernen der chromatischen Aberration

Zum Enfernen der chromatischen Aberration aktivieren Sie das Darktable Modul Chromatische Aberration.

 

Lichtes Entrauschen des ganzen Fotos

Da wir später das Foto noch deutlich heller machen, kann schnell Rauschen entstehen, daher sollten Sie das Foto leicht entrauschen. Aktivieren Sie dazu das Darktable Modul Raw Entrauschen und stellen den Rausch-Schwellwert auf 0,002 ein. Das funktioniert am leichtesten, wenn Sie mit der rechten Maustaste einen klick auf den Schieber machen, den Wert 0,002 eingeben und mit Enter bestätigen.

 

Dunkle Bereiche entrauschen

Mit dem Darktable Equalizer Modul kann man nicht nur den Kontrast abhängig von der Objektgröße ändern, sondern auch Fotos entrauschen. Zum Entrauschen von den dunklen Bereichen in Foto aktvieren Sie das Equalizer Modul. Wie auch beim Tonemapping erstellen wir eine Parametrische Maske durch Umstellen vom Überblenden auf parametrische Maske, aktivierung vom L-Kanal (Helligkeits-Kanal), anzeigen der Maske und dann durch Schieben der rechten Eingabeschieber nach links bis der dunkle Bereich maskiert ist. Deaktivieren Sie die Anzeige der Maske und klicken mit der rechten Maustaste in das Diagramm. In den erscheinenden Menü wählen Sie entrauschen und ändern, dann die schräge Kurve auf die Darstellung wie im folgenden Bild dargestellt. Es soll nur der Bereich mit den feinen Details entrauscht werden.

 

Helligkeitsanpassung

Die Helligkeitsanpassung führen für mit dem Darktable Modul Farbkurve durch. Aktivieren Sie das Modul Farbkurve, den L-Kanal und klicken im Dialogfenster oben rechts auf die Pipette um die GUI-Farben aus dem Bild im Kurvendiagramm anzeigen zu lassen.

Auf der linken Seite finden Sie den Dialog zur Pipette. Stellen Sie Pipette auf Mitttel und Fläche um. Klicken Sie jetzt auf das Pipettensymbol und ziehen im Bild ein rechteck im dunklen Bereich auf. Der markierte Bereich wird jetzt ausgewertet und im Farbkurven Diagramm angezeigt.

Ziehen Sie jetzt im Farbkurven Dialog die Kurve direkt neben der gerade eingeblendeten Farbe nach oben, bis das Foto seine gewünschte Helligkeit erreicht hat. Achten Sie dabei auf das Histogram, damit möglchst wenig abgeschnitten wird. Schließen Sie den Farbkurvendialog.

 

Schatten und Spitzlichter

Jetzt schalten wir noch das Modul Schatten und Spitzlichter ein.

 

Optional können Sie jetzt noch die Objektiv korrekturen, Fleck-Entfernung, den Weissabgleich usw. hinzufügen. Mit dem Equalizer ist eventuell auch noch eine lokale Kontrastanhebung zum Schräfen sinnvoll.

 

Vorher- / Nacher Show

Hier nun zum direkten Vergleich das RAW Foto ohne Bearbeitung und das mit Darktable bearbeitete:

 

 Ein englisch sprachiges Video zum Thema ausgebrannte Lichter finden Sie hier.

 

Günstige Linux Workstation für die Fotoentwicklung

Vor wenigen Tagen hat sich der PC von meinem Vater verabschiedet. Nun musste für die Fotoentwicklung mit Darktable und die Katalogisierung/Archivierung mit digikam ein schneller aber auch günstiger Rechner her. Der Rechner sollte wie vorher mit Ubuntu Linux laufen.

Software Infos:

  • Darktable läuft schnell, wenn die OpenCL Beschleunigung genutzt werden kann.
  • Digikam läuft schnell bei einer CPU mit mehreren Kernen und hoher Taktfrequenz
  • Die Software wird schneller, wenn eine SSD eingesetzt wird

 

Durch Recherche und meine Erfahrung bin ich dazu gekommen, dass der neue Rechner die folgende Ausstattung haben sollte.

Das PC Lastenheft:

  • Intel CPU mit mindesten 4 Kernen, ab ca. 2,5GHz
  • Nvidia Grafikkarte mit möglichst vielen Cuda Kernen für OpenCL Support für Darktable
  • Grafikkarte mit mindestens 1GB RAM
  • Arbeitsspeicher mindestens 4GB RAM
  • Eine min. 250GB große SSD für das Betriebssystem und das Fotoarchiv
  • Eine min. 250 GB große Festplatte für das tägliche, automatische Backup per rsync
  • DVD-Brenner
  • Wenn möglich mit integriertem Kartenleser
  • Towergehäuse für eventuellen Ausbau bzw. bei einem Defekt für einfache Reperatur
  • Rechnerkosten max. 350EUR

 

Die HP Workstation für Bildbearbeitung mit Linux

Da wir auf der Arbeit HP Workstation benutzen, hatte ich damit gute Erfahrung gemacht. Die CAD Workstation benutzen oft die Nividia Quadro Grafikkarten, die auch OpenCL unterstützen.

Bei Ebay habe ich dann eine HP Z400 Workstation mit einer Nvidia Quadro FX-1800 ohne Festplatten für unter 200EUR erstanden. Schnell war noch eine 250GB SSD bestellt, eine 250GB HDD hatten wir noch vom alten Rechner.

Die HP Z400 hat uns auf der ganzen Linie überzeugt. Zusammen mit der Nividia rennt das Ding. Auch digikam 5.0.0 läuft deutlich schneller mit dem Mehrkernprozessor.

 

Meine HP Workstation Z400 für Darktable mit Ubuntu 16.04

Wegen der sehr positven Erfahrung mit der HP Z400 für meinen Vater, habe ich mich entschlossen mir auch eine Z400 zu zulegen.
Meine HP Z400 Workstation (bei ebay für 220 EUR ohne SSD, HDD) für darktable hat die folgende Konfiguration:

  • CPU: Intel Xeon W3350 mit 3,07 GHz bei 8 Kernen
  • RAM: 16Gib
  • Grafikkarte: Nvidia Quadro 2000 mit 1024MB RAM
  • SSD: Crucial MX 200 mit 250GB (nur für die Betriebssysteme)
  • HDD: 2x WD 20EADS mit 2TB für Fotos und Backup

Ich habe das System dem Phoronix Benchmark mit Darktable unterzogen. Nach den Benmarkergebnissen kann die schon ältere Quadro 2000 bei OpenCl mit aktuellen Spritzgrafikkarten mithalten. Lediglich bei sehr großen Daten (Boat Test) ist die Grafikkarte durch den deutlich kleineren Arbeitsspeicher langsamer. Ein genauer Vergleich ist allerdings nicht möglich, da ich Darktable 2.0.7 und nicht 2.2 RC1 eingesetzt habe. Auch die CPU usw. ist bei dem Phoronix Test eine andere.

Bei dem Benchmark Test "Masskrug" und "Server Room" liegt die Nvidia Quadro 2000 auf Augenhöhe mit  der wesentlich neueren AMD Radeon RX 480 oder Nvidia GeForce GTX 980 Ti. Den vollständigen Report könnt ihr als PDF hier herunterladen.

Software vom Benchmark:

  • Betriebssystem: Ubuntu 16.04, 64 Bit
  • Grafikkarten Treiber: Nividia 340.98
  • Darktable 2.0.7
  • Phoronix Benchmark

 

Boat Accleration OpenCl

  • Nvidia Quadro 2000 -> 36,91 Sekunden
  • Nvidia GeForce GTX 980 Ti -> 3,90 Sekunden
  • AMD Radeon RX 480 -> 4,56 Sekunden

Masskrug Accleration OpenCl

  • Nvidia Quadro 2000 -> 1,09 Sekunden
  • Nvidia GeForce GTX 980 Ti -> 5,86 Sekunden
  • AMD Radeon RX 480 -> 6,05 Sekunden

Server Room Accleration OpenCl

  • Nvidia Quadro 2000 -> 1,09 Sekunden
  • Nvidia GeForce GTX 980 Ti -> 1,09 Sekunden
  • AMD Radeon RX 480 -> 1,08 Sekunden

 

Meine Empfehlung ist daher eine HP Z400 oder HP Z420 mit Nvidia Quadro Grafikkarte und möglichst vielen Cuda Kernen.

Übersicht

Dieses Modul fügt eine Korrekturkurve in die Bilddaten ein, die erforderlich ist, wenn Sie ein bestimmtes Farbprofil im Modul Eingabefarbprofil ausgewählt haben.

Dialog Eingabeprofil korrigieren 

 

Benutzung

Wenn Sie im Modul Eingabefarbprofil ein ICC Farbrofil des Kameraherstellers ausgewählt haben, muss häufig eine Korrekturkurve auf die Bilddaten im Voraus angewendet werden, da die endgültige Ausgabe sonst viel zu dunkel ausgegeben werden kann. Diese zusätzliche Verarbeitung ist nicht erforderlich, wenn Sie in darktable die Standard- oder erweiterten Farbtabellen verwenden. Die Korrekturkurve wird durch einen linearen Teil der Schatten bis zu einer gewissen Obergrenze und einer Gammakurve die den Verlauf der mittleren und hohen Töne definiert. Weitere Informationen finden Sie dazu auch beim Darktable Nachbar Projekt UFRaw.

 

linear

Definiert den oberen Grenzwert für den Bereich der Schatten in dem keine Gammakorrektur durchgeführt wird. Typische Werte zwischen 0,0 bis 1,0 sind je nach ausgewähltem Profil erforderlich.

 

Gamma

Gleichen Sie den Gammawert Ihres Eingabeprofils aus. Der voreingestellte Wert ist der Kehrwert des Gammawertes, der durch ein Kamera Herstellerprofil definiert wird (Ist der Gammawert des Kamera Herstellerprofils 2,2 ergibt sich ein Kehrwert von 0,45).

 


Zurück zur Darktable Modul Übersicht

Übersetzt durch J. Lang

Verbesserungsvorschläge oder Korrektur der Übersetzung vom Handbuch bitte an dartkable(at]multimedia4linux.de schicken.

Darktable mit "Warp-Antrieb"

Darktable ist schon gut auf Performance optimiert und läuft auch auf recht schnell auf alter Hardware. Die meisten Entwicklungsarbeitsschritte sind selbst auf meinen alten AMD Athlon 64 X2 4600+ mit zwei Kernen schnell genug, aber der Jpeg Export von meinen 20 Megapixel Fotos ist quälend langsam. Für den Export von nur einem Jpeg in voller Auflösung brauchte mein Rechner durchschittlich ca. 5 Minuten. Für den Export der schönsten Urlaubsfotos musste der Rechner stundenlang rechnen, da die alte Mittelklassen-Grafikkarte kein OpenCL unterstützte.

 

Darktable Performance-Steigerung durch OpenCL

OpenCL ist eine standartisierte Schnittstelle mit der man Rechenaufgaben auf z.B. auf einer Grafikkarte ausführen kann. Diese Berechungen können paralleliert werden und mit vielen Rechenkernen gleichzeitig abgearbeitet werden. Darktable unterstützt OpenCL und kann damit einige Berechungen deutlich beschleunigen.

Nach meiner Recherche ist die Verwendung von OpenCL unter Linux nur mit den proprietären Grafikkartentreiber von AMD oder Nvidia möglich. Bei AMD Grafikkarten muss man zusätzlich zum Treiber auch noch das SDK installieren. Bei Nvidia ist OpenCL schon direkt im Treiber enthalten. Ich habe mich daher für eine Nvidia Grafikkarte entschieden. Bei der Auswahl der Grafikkarte ist darauf zu achten, dass Sie mindestens 1GB RAM hat, sonst kann darktable die Berechungen nicht ausführen. Jede Nvidia Grafikkarte, die CUDA unterstützt kann auch theoretisch OpenCL. Die folgenden Grafikkarten sind daher von der Hardwareseite OpenCL tauglich:

Welcher Nvidia Treiber bei welcher Grafikkarte mit CUDA Support auch OpenCL unterstützt konnte ich nicht herausfinden. Ich denke alle Nvidia Grafikkarten mit CUDA die der Linux Nvidia Treiber unterstützt können auch OpenCL.

Für die höchste Performance ist bei OpenCL nicht nur die Tatfrequenz der Kerne verantwortlich, sondern auch die Anzahl der Kerne, da ja die Berechungen auf die Kerne verteilt werden. Ich habe mich daher für eine Grafikkarte mit möglichst vielen CUDA Kernen entschieden. Für die Entscheidung habe ich die Nvidia Quadro Liste bei Wikipedia benutzt und mich über die Kernanzahl informiert. Die Entscheidung viel auf die Nvidia Quadro FX-3800. Die CAD Grafikkarte bietet 192 CUDA Kerne und ist bei Ebay gebraucht ab ca. 30 EUR zu bekommen.

 

Installation vom Nvidia Treiber und einrichten von OpenCL für darktable

Nach der Installation der Grafikkarte im Rechner hat mir Ubuntu sofort die Installation der Nvidia Treiber vorgeschlagen. Bei keinem der von Ubuntu vorgeschlagenen Treiber konnte ich die Bildschirmauflösung richtig einstellen. Erst nach der Installation des aktuellsten Linux Treibers von der Nvidia Homepage hat alles reibungslos funktioniert, bis auf OpenCL mit darktable. Für die Benutzung von OpenCL musste noch ein Link von hand angelegt werden. Weitere Infos dazu finden Sie auf der Darktable Seite How to activate OpenCL in darktable und Setting up OpenCL on your system.

Damit darktable die OpenCL Unterstützung nutzt, müssen Sie jetzt noch in den Voreinstellung von darktable den Haken in den zentralen Optionen bei "OpenCL-Unterstützung aktivieren" setzen.

 

Performancevergleich:

  • JPEG Export von einem 20 Megapixel Foto ohne OpenCL durchschnittlich ca. 5 Minuten/Foto
  • JPEG Export von einem 20 Megapixel Foto mit OpenCL auf einer Nvidia FX-3800 durchschnittlich ca. 10 Sekunden/Foto

 

Eine Grafikkarte mit OpenCL Support kann also bei einem alten Rechner den JPEG Export unter darktable 2.0.4 um ca. das 30-fache beschleunigen!

Viel Spass mit dem neuen Warp-Antrieb...

Joomla templates by a4joomla