Architecture
AutoShade — the architecture, drawn from its own source
This picture is generated, not drawn: scripts/architecture_diagram.py reads docs/architecture/autoshade.architecture.json, the checked-in model of the program's own parts, and emits the SVG spliced into this page. The shared canvas in scripts/diagram_check.py records the box of every label and every connector as it draws and refuses to write the file when two of them overlap, so this layout is a measurement rather than a judgement.
AutoShade architecture: three front ends over one Rust library holding RAW decode, the AI advisor, the recipe, the render engine, the style index, reverse-fit, the local producers and the local-field analyzer; five local Python sidecars below it; two opt-in external AI services above it AutoShade — the architecture, drawn from its own source 20 components (2 external, 3 frontend, 12 backend, 3 database) · 19 connections · 3 boundaries, all read from docs/architecture/autoshade.architecture.json Responses API OpenAI-compatible vision claude CLI subprocess · OAuth · data only no API key Desktop GUI autoshade-gui · eframe 0.29 CLI autoshade · clap 4.6 Local web UI serve · tiny_http · loopback per-run token RAW decode decode.rs · rawler 0.7.2 24 formats · 725 bodies AI advisor propose · verify · judge EditRecipe recipe.rs · bounded JSON rationale + confidence Render engine render.rs · measured LR parity byte-identical Style index 14-d + 12 settings + SigLIP 2 k = 4 retrieval Develop store store.rs · versions + variants XMP sidecar xmp.rs · hand-rolled crs: merge byte-preserving Reverse-fit CDF inverse rendering · D gate Full / Atmosphere Local producers zones · bands · quadtree tiles free-form masks: designed Local-field analyzer 12x8x8 bilateral grid · CG ceiling, read-only Embedding sidecar embed.py · SigLIP 2 base/16 768-d, pinned Correspondence sidecar correspond.py · DIFT on SD 2.1 48x48 field Segmentation sidecar BiRefNet · OneFormer · SAM 2.1 guided refine Description sidecar describe.py · Qwen3-VL-2B one grade sentence Denoise sidecar denoise.py · SCUNet × 5 opt-in, before tone External AI services — opt-in, only on user request One process, one binary — the AI returns a recipe, not pixels Local sidecars — subprocess, weights pinned to the byte, never in the repo preview·EXIF·histogram HTTPS · strict json_schema bounded slider set verify (data, never pixels) accepted recipe .xmp + rendered image saved per photo path 4 nearest edits as soft reference 768-d image embedding global fit · mode ceiling · cap · band proposals recovered recipe + masks where content moved sky/land · subject · object one sentence per photo denoised pixels Every box is a directory or a module in this repository; every arrow is a call that exists. Generated by scripts/architecture_diagram.py — no position in this picture was chosen by hand.
+
−
Reset
100%
Full screen
Click the diagram, then scroll to zoom
← Back to the site
docs/ARCHITECTURE.md
the JSON source