vork by Voyager
An agent writes a scene as code, renders it on the GPU, looks at the result and revises the code. Source-available and free during the research preview.
翻訳待ち
RAW-Entwickler und Bildverwaltung in Rust
翻訳待ち
Loading the full README.
Read the full README ↗RAW-Entwickler und Bildverwaltung in Rust. Lizenz: MIT.
Silberkorn für Windows herunterladen (Windows 10 und 11, 64 Bit)
Webseite: https://mschneider85.github.io/silberkorn/ · Alle Versionen: Releases
cargo run --release -p sk-app -- /pfad/zu/raws
Der erste Build dauert einige Minuten (u. a. wegen der ONNX-Inferenz-Bibliothek tract).
Ohne Pfad wird der zuletzt geöffnete Ordner verwendet. Falls wgpu (Vulkan) nicht startet,
fällt die App automatisch auf OpenGL zurück; erzwingen mit SILBERKORN_RENDERER=glow.
Die Releases baut GitHub Actions unter Windows mit der MSVC-Toolchain (.github/workflows/release.yml).
Lokal geht dasselbe Ziel aus WSL/Linux mit cargo-xwin, das
die Windows-SDK- und CRT-Dateien von Microsoft beim ersten Bauen lädt. Einmalig einrichten:
rustup target add x86_64-pc-windows-msvc
cargo install --locked cargo-xwin
sudo apt install clang lld
# Die Werkzeuge unter den Namen, die cargo-xwin erwartet. lld-link ruft Rusts eigenes lld auf:
# das lld 10 von Ubuntu 20.04 ist für die aktuelle CRT zu alt.
mkdir -p ~/.local/xwin-bin
ln -sf "$(command -v clang)" ~/.local/xwin-bin/clang-cl
ln -sf /usr/lib/llvm-10/bin/llvm-lib /usr/lib/llvm-10/bin/llvm-rc ~/.local/xwin-bin/
lld="$(rustc --print sysroot)/lib/rustlib/x86_64-unknown-linux-gnu/bin/rust-lld"
printf '#!/bin/sh\ncase "$1" in -flavor) exec "%s" "$@";; *) exec "%s" -flavor link "$@";; esac\n' "$lld" "$lld" > ~/.local/xwin-bin/lld-link
chmod +x ~/.local/xwin-bin/lld-link
Bauen (CL braucht clang-cl für die SSE4.1-/AVX2-Teile von libwebp; solche lokalen Builds laufen
deshalb nur auf Prozessoren mit AVX2, die Releases überall):
PATH=~/.local/xwin-bin:$PATH CL="-msse4.1 -mavx2" cargo xwin build --release -p sk-app --target x86_64-pc-windows-msvc
Ergebnis: target/x86_64-pc-windows-msvc/release/silberkorn.exe, eine einzelne Datei: die C-Laufzeit ist
eingebunden (crt-static in .cargo/config.toml, auch für die Releases), sonst bräuchte sie
VCRUNTIME140.dll, die einem frischen Windows fehlt. Deren exp2f/log2f sind langsam; in Pixel-Schleifen
deshalb color::exp2/color::log2 nehmen. Unter Windows nativ geht cargo build --release -p sk-app.
Zum Messen von Geschwindigkeit immer diesen Weg nehmen: mingw-Builds (x86_64-pc-windows-gnu) nutzen die
alte msvcrt, deren Mathe-Funktionen 4–8× langsamer sind als in den Releases.
Einstellungen und Stile liegen unter Windows in %APPDATA%\silberkorn, Katalog, Modelle, Lensfun-Profile und
Thumbnails in %LOCALAPPDATA%\silberkorn.
Kleinere Datei (z. B. zum Weitergeben): --profile dist statt --release baut mit LTO, Ergebnis unter
dist/ statt release/. Die .exe schrumpft so um etwa ein Viertel (von rund 110 auf rund 80 MB), ein
Build dauert aber etwa eine Viertelstunde statt gut einer Minute. Zusätzlich strip = true im Profil
entfernt die Funktionsnamen und spart weitere 10–25 MB; dann fehlen die Namen aber in den Backtraces
des Absturzprotokolls.
Die Versionsnummer steht nur in Cargo.toml unter [workspace.package]. Ein neues Release:
# Version in Cargo.toml erhöhen, z. B. auf 0.2.0, dann:
cargo check -p sk-app # übernimmt die Nummer in Cargo.lock
git commit -am "Version 0.2.0"
git tag v0.2.0
git push origin main v0.2.0
Der Tag startet .github/workflows/release.yml: GitHub Actions baut auf Windows mit --profile dist,
erzeugt mit Inno Setup den Installer (installer/silberkorn.iss) und veröffentlicht
silberkorn-setup-x64.exe und die einzelne silberkorn-windows-x64.exe, jeweils mit SHA-256-Datei, als
Release. Die Notizen entstehen aus den Commits seit dem letzten Tag (auf der Release-Seite nachträglich
bearbeitbar). Passt der Tag nicht zur Version in Cargo.toml, bricht der Workflow ab.
Der Installer installiert nur für den angemeldeten Benutzer nach %LOCALAPPDATA%\Programs\Silberkorn
(Startmenü-Eintrag, Deinstallation über die Windows-Einstellungen) und braucht deshalb nie
Administratorrechte. Beim Deinstallieren fragt er, ob auch Einstellungen, Stile, Katalog, KI-Modelle
und Vorschauen gelöscht werden sollen (Standard: behalten). Fotos und Sidecars bleiben immer erhalten.
Die App fragt beim Start und danach stündlich api.github.com nach dem neuesten Release
(nicht in Debug-Builds; abschaltbar unter Hilfe → „Nach Updates suchen …“ und in den Einstellungen, Seite „Allgemein“).
Ohne Internetverbindung steht das nur im Protokoll. Ist ein Release neuer, erscheint einmalig ein
Hinweis unten rechts und danach in der Statusleiste „Update x.y.z“. Unter Windows lädt „Jetzt aktualisieren“ den Installer und prüft die
Prüfsumme; „Jetzt neu starten“ schließt die App, der Installer läuft still durch (nur ein
Fortschrittsfenster) und startet die neue Version. Wer nicht neu startet, bekommt das Update beim
Beenden. Auch eine einzeln gestartete .exe wird so zur installierten Version. Zum Testen:
SILBERKORN_UPDATE_REPO=<owner/repo> fragt ein anderes Repository, SILBERKORN_DIALOG=update
öffnet den Dialog beim Start.
Die Dateien sind nicht signiert: Beim ersten Ausführen des heruntergeladenen Installers warnt Windows SmartScreen („Unbekannter Herausgeber“ → „Weitere Informationen“ → „Trotzdem ausführen“). Updates aus der App heraus sind davon nicht betroffen.
Kommandozeilen-Entwicklung (ohne GUI):
SK_ADJ='{"exposure":0.5,"shadows":40}' cargo run --release -p sk-core --example develop -- bild.ARW ausgabe/
| Crate | Inhalt |
|---|---|
sk-core | RAW-Dekodierung (rawler), Farbmathematik, Entwicklungs-Pipeline, Sidecars, Export |
sk-ai | Neuronale Netze (tract/ONNX Runtime): Masken aus Bildinhalt, Tiefenkarte, Entrauschen, Entfernen, Gesichter, Inhaltssuche |
sk-app | egui/wgpu-Oberfläche, Hintergrund-Worker |
This is the beginning of the README. Read the rest at the original. Read the full README ↗