Spaces:
Sleeping
Sleeping
Add mechanism visualization page (static/index.html)
Browse files- static/index.html +1 -68
static/index.html
CHANGED
|
@@ -835,7 +835,7 @@
|
|
| 835 |
<div class="brand-sub">machine learning powered color rebuild</div>
|
| 836 |
</div>
|
| 837 |
<div class="head-right">
|
| 838 |
-
<a class="head-link" id="howOpen"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5" y="5" width="14" height="14" rx="2.5"/><path d="M9 2v3M15 2v3M9 19v3M15 19v3M2 9h3M2 15h3M19 9h3M19 15h3"/><circle cx="12" cy="12" r="2.4"/></svg><span>How the ML algorithm works here</span></a>
|
| 839 |
<a class="head-link" id="privacyOpen"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2.2" stroke-linecap="round" aria-hidden="true"><rect x="4" y="10.5" width="16" height="10" rx="2.5"/><path d="M8 10.5V7a4 4 0 0 1 8 0v3.5"/></svg><span>Your privacy is strictly guaranteed</span></a>
|
| 840 |
</div>
|
| 841 |
</header>
|
|
@@ -1030,67 +1030,6 @@
|
|
| 1030 |
</div>
|
| 1031 |
|
| 1032 |
<!-- ======================= HOW IT WORKS MODAL ======================= -->
|
| 1033 |
-
<div id="howModal" class="modal-bg">
|
| 1034 |
-
<div class="modal-card wide">
|
| 1035 |
-
<h2>How Deep Analog works</h2>
|
| 1036 |
-
<div class="sub">From a single reference image to a reusable film look β in seconds</div>
|
| 1037 |
-
|
| 1038 |
-
<p style="margin-top:14px"><a href="static/visualization.html" target="_blank" rel="noopener"
|
| 1039 |
-
style="display:inline-flex;align-items:center;gap:8px;color:var(--accent);font-weight:600;text-decoration:none;border:1px solid var(--accent);border-radius:10px;padding:9px 16px;">
|
| 1040 |
-
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="3"/><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z"/></svg>
|
| 1041 |
-
Visualization of mechanisms β</a></p>
|
| 1042 |
-
|
| 1043 |
-
<p>In plain English: Deep Analog <b>reverse-engineers film through data</b>. During
|
| 1044 |
-
training, the model studied thousands of photograph pairs β the same picture with and
|
| 1045 |
-
without a look applied β over and over, hundreds of thousands of exposures in total,
|
| 1046 |
-
until it learned the hidden mapping between <i>how an image looks</i> and <i>the recipe
|
| 1047 |
-
that makes it look that way</i>. It's like an apprentice darkroom printer who has studied
|
| 1048 |
-
so many of the master's prints that, shown any new frame just once, they can write down
|
| 1049 |
-
the complete formula β color, tone, grain, glow β to recreate it. That written-down
|
| 1050 |
-
formula is exactly what this site hands you.</p>
|
| 1051 |
-
|
| 1052 |
-
<img class="figure" src="static/how/teaser.jpg" alt="Deep Analog teaser: reference film scan to predicted LUT to rendered photo">
|
| 1053 |
-
|
| 1054 |
-
<h4><span class="step-n">1</span>Two networks read your reference</h4>
|
| 1055 |
-
<p>When you upload a reference β a film scan, a movie still, anything with a look you love β
|
| 1056 |
-
two small neural networks study it. <b>StyleLUTNet</b> encodes its color character and predicts
|
| 1057 |
-
a complete <b>3D LUT</b>: a 33Γ33Γ33 lattice that says, for every color a photo can contain,
|
| 1058 |
-
what color the film would turn it into. <b>FilmAnalyzerNet</b> estimates the physical
|
| 1059 |
-
parameters of the film itself: grain density and size, and the threshold, radius and tint
|
| 1060 |
-
of its halation.</p>
|
| 1061 |
-
<img class="figure" src="static/how/architecture.jpg" alt="Deep Analog architecture: StyleLUTNet predicts a 3D LUT, FilmAnalyzerNet extracts physical parameters">
|
| 1062 |
-
<p class="figcap">The Deep Analog architecture (from the paper).</p>
|
| 1063 |
-
|
| 1064 |
-
<h4><span class="step-n">2</span>A six-stage digital darkroom</h4>
|
| 1065 |
-
<p>Your photo is then developed through a deterministic pipeline, mirroring how film actually
|
| 1066 |
-
forms an image: the predicted <b>3D LUT</b> grades the color β <b>tone-curve matching</b> aligns
|
| 1067 |
-
the brightness distribution with the reference β <b>film tone</b> lifts the blacks, rolls off
|
| 1068 |
-
the highlights and applies the stock's shadow/highlight tints β <b>multi-scale grain</b> is
|
| 1069 |
-
synthesized β <b>per-channel halation</b> scatters a red glow around bright lights.</p>
|
| 1070 |
-
<img class="figure" src="static/how/stages.jpg" alt="Reference-conditioned processing workflow: input, LUT grading, tone matching, film tone, grain, halation">
|
| 1071 |
-
<p class="figcap">The reference-conditioned processing workflow (from the paper).</p>
|
| 1072 |
-
|
| 1073 |
-
<h4><span class="step-n">3</span>Everything is yours to keep</h4>
|
| 1074 |
-
<p>The extracted look leaves with you: the exact <b>.cube LUT</b> for Photoshop, Resolve,
|
| 1075 |
-
Premiere or Final Cut; <b>.xmp</b> and <b>.costyle</b> presets for Lightroom and Capture One;
|
| 1076 |
-
and the full parameter set as <b>JSON</b>. Your images are processed in memory and never
|
| 1077 |
-
stored β see the privacy statement for details.</p>
|
| 1078 |
-
|
| 1079 |
-
<h4><span class="step-n">4</span>Under the hood</h4>
|
| 1080 |
-
<p>StyleLUTNet is an <b>82.6-million-parameter</b> model built on a ResNet-18 encoder and an
|
| 1081 |
-
MLP decoder that predicts a 17Β³ residual LUT, upsampled trilinearly to 33Β³. It was trained
|
| 1082 |
-
for <b>100 epochs</b> on style-transfer pairs built from the
|
| 1083 |
-
<b>MIT-Adobe FiveK</b> dataset (5,000 professionally retouched photographs), with smoothness,
|
| 1084 |
-
monotonicity and histogram-matching losses to keep the predicted LUTs physically plausible,
|
| 1085 |
-
and evaluated on a held-out 350-image test set. Because the reference is read at 224Γ224
|
| 1086 |
-
and the LUT is applied by interpolation, the whole pipeline runs in seconds on a CPU β
|
| 1087 |
-
no GPU needed, which is exactly what this demo is running on.</p>
|
| 1088 |
-
|
| 1089 |
-
<p class="patent-note">Deep Analog Β· MSCS capstone research by Eton Mu Β· Patent pending.</p>
|
| 1090 |
-
<button class="close-btn" id="howClose">Close</button>
|
| 1091 |
-
</div>
|
| 1092 |
-
</div>
|
| 1093 |
-
|
| 1094 |
<!-- ======================= PRIVACY MODAL ======================= -->
|
| 1095 |
<div id="privacyModal">
|
| 1096 |
<div class="modal-card">
|
|
@@ -2349,12 +2288,6 @@
|
|
| 2349 |
if (e.target === $('privacyModal')) $('privacyModal').classList.remove('open');
|
| 2350 |
});
|
| 2351 |
|
| 2352 |
-
// ------------------------------------------------ how-it-works modal
|
| 2353 |
-
$('howOpen').addEventListener('click', () => $('howModal').classList.add('open'));
|
| 2354 |
-
$('howClose').addEventListener('click', () => $('howModal').classList.remove('open'));
|
| 2355 |
-
$('howModal').addEventListener('click', e => {
|
| 2356 |
-
if (e.target === $('howModal')) $('howModal').classList.remove('open');
|
| 2357 |
-
});
|
| 2358 |
})();
|
| 2359 |
</script>
|
| 2360 |
</body>
|
|
|
|
| 835 |
<div class="brand-sub">machine learning powered color rebuild</div>
|
| 836 |
</div>
|
| 837 |
<div class="head-right">
|
| 838 |
+
<a class="head-link" id="howOpen" href="static/visualization.html" target="_blank" rel="noopener"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5" y="5" width="14" height="14" rx="2.5"/><path d="M9 2v3M15 2v3M9 19v3M15 19v3M2 9h3M2 15h3M19 9h3M19 15h3"/><circle cx="12" cy="12" r="2.4"/></svg><span>How the ML algorithm works here</span></a>
|
| 839 |
<a class="head-link" id="privacyOpen"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2.2" stroke-linecap="round" aria-hidden="true"><rect x="4" y="10.5" width="16" height="10" rx="2.5"/><path d="M8 10.5V7a4 4 0 0 1 8 0v3.5"/></svg><span>Your privacy is strictly guaranteed</span></a>
|
| 840 |
</div>
|
| 841 |
</header>
|
|
|
|
| 1030 |
</div>
|
| 1031 |
|
| 1032 |
<!-- ======================= HOW IT WORKS MODAL ======================= -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1033 |
<!-- ======================= PRIVACY MODAL ======================= -->
|
| 1034 |
<div id="privacyModal">
|
| 1035 |
<div class="modal-card">
|
|
|
|
| 2288 |
if (e.target === $('privacyModal')) $('privacyModal').classList.remove('open');
|
| 2289 |
});
|
| 2290 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2291 |
})();
|
| 2292 |
</script>
|
| 2293 |
</body>
|