Spaces:
Sleeping
Sleeping
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Colorize — Results</title> | |
| <link rel="preconnect" href="https://fonts.googleapis.com"> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | |
| <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Outfit:wght@300;400;500;600&display=swap" rel="stylesheet"> | |
| <style> | |
| :root { | |
| --black: #ffffff; | |
| --dark: #f8f8f8; | |
| --surface: #f2f2f2; | |
| --border: #e0e0e0; | |
| --muted: #888888; | |
| --silver: #666666; | |
| --light: #1a1a1a; | |
| --amber: #ff6b35; | |
| --amber-dim: #ff8c5a; | |
| --amber-glow: rgba(255, 107, 53, 0.1); | |
| } | |
| * { | |
| margin: 0; padding: 0; box-sizing: border-box; | |
| } | |
| body { | |
| font-family: 'Outfit', sans-serif; | |
| background: linear-gradient(135deg, #ffffff 0%, #f9f5f0 100%); | |
| color: var(--light); | |
| min-height: 100vh; | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: center; | |
| padding: 40px 24px; | |
| overflow-x: hidden; | |
| } | |
| body::before { | |
| content: ''; | |
| position: fixed; | |
| inset: 0; | |
| background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.01'/%3E%3C/svg%3E"); | |
| pointer-events: none; | |
| z-index: 0; | |
| opacity: 0.3; | |
| } | |
| body::after { | |
| content: ''; | |
| position: fixed; | |
| width: 900px; height: 900px; | |
| background: radial-gradient(ellipse, rgba(255,107,53,0.08) 0%, transparent 70%); | |
| top: 20%; left: 50%; | |
| transform: translate(-50%, -50%); | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| .page-wrapper { | |
| position: relative; | |
| z-index: 1; | |
| width: 100%; | |
| max-width: 1200px; | |
| animation: fadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) both; | |
| } | |
| @keyframes fadeUp { | |
| from { opacity: 0; transform: translateY(32px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| .nav { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 48px; | |
| } | |
| .nav-brand { | |
| font-family: 'Cormorant Garamond', serif; | |
| font-size: 1.5rem; | |
| font-weight: 300; | |
| color: var(--light); | |
| text-decoration: none; | |
| letter-spacing: 0.02em; | |
| } | |
| .nav-brand em { | |
| font-style: italic; | |
| color: var(--amber); | |
| } | |
| .back-btn { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: 0.78rem; | |
| font-weight: 500; | |
| letter-spacing: 0.12em; | |
| text-transform: uppercase; | |
| color: var(--silver); | |
| text-decoration: none; | |
| padding: 9px 18px; | |
| border: 1px solid var(--border); | |
| border-radius: 3px; | |
| background: var(--surface); | |
| transition: all 0.2s; | |
| } | |
| .back-btn:hover { | |
| border-color: var(--amber); | |
| color: var(--amber); | |
| background: rgba(255, 107, 53, 0.08); | |
| } | |
| .result-header { | |
| margin-bottom: 36px; | |
| } | |
| .result-eyebrow { | |
| font-size: 0.7rem; | |
| font-weight: 500; | |
| letter-spacing: 0.22em; | |
| text-transform: uppercase; | |
| color: var(--amber); | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| margin-bottom: 12px; | |
| } | |
| .result-eyebrow::before { | |
| content: ''; | |
| display: inline-block; | |
| width: 24px; height: 1px; | |
| background: var(--amber); | |
| } | |
| .result-title { | |
| font-family: 'Cormorant Garamond', serif; | |
| font-size: 2.8rem; | |
| font-weight: 300; | |
| line-height: 1.1; | |
| color: var(--light); | |
| } | |
| .result-title em { | |
| font-style: italic; | |
| color: var(--amber); | |
| } | |
| .gallery { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); | |
| gap: 20px; | |
| margin-bottom: 40px; | |
| } | |
| @media (max-width: 768px) { | |
| .gallery { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |
| .gallery-item { | |
| background: var(--dark); | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.22,1,0.36,1); | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); | |
| } | |
| .gallery-item:hover { | |
| border-color: var(--amber); | |
| box-shadow: 0 8px 32px rgba(255, 107, 53, 0.15); | |
| transform: translateY(-4px); | |
| } | |
| .comparison-split { | |
| display: flex; | |
| width: 100%; | |
| height: 240px; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .comparison-side { | |
| flex: 1; | |
| overflow: hidden; | |
| position: relative; | |
| } | |
| .comparison-side img { | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| display: block; | |
| transition: transform 0.3s ease; | |
| } | |
| .gallery-item:hover .comparison-side img { | |
| transform: scale(1.05); | |
| } | |
| .gallery-side-label { | |
| position: absolute; | |
| top: 12px; | |
| left: 12px; | |
| font-size: 0.65rem; | |
| font-weight: 600; | |
| letter-spacing: 0.16em; | |
| text-transform: uppercase; | |
| padding: 4px 10px; | |
| background: rgba(255, 255, 255, 0.95); | |
| color: var(--silver); | |
| border-radius: 2px; | |
| backdrop-filter: blur(8px); | |
| } | |
| .gallery-side-label.colorized { | |
| background: rgba(255, 107, 53, 0.15); | |
| color: var(--amber); | |
| border: 1px solid rgba(255, 107, 53, 0.3); | |
| left: auto; | |
| right: 12px; | |
| } | |
| .gallery-info { | |
| padding: 18px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 12px; | |
| border-top: 1px solid var(--border); | |
| } | |
| .gallery-filename { | |
| font-size: 0.8rem; | |
| color: var(--muted); | |
| flex: 1; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .download-link { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 6px; | |
| padding: 7px 14px; | |
| font-size: 0.75rem; | |
| font-weight: 600; | |
| letter-spacing: 0.12em; | |
| text-transform: uppercase; | |
| color: white; | |
| background: var(--amber); | |
| border-radius: 2px; | |
| text-decoration: none; | |
| transition: background 0.2s, box-shadow 0.2s; | |
| white-space: nowrap; | |
| flex-shrink: 0; | |
| } | |
| .download-link:hover { | |
| background: #ff5522; | |
| box-shadow: 0 4px 16px rgba(255, 107, 53, 0.3); | |
| } | |
| .download-link svg { | |
| width: 12px; height: 12px; | |
| } | |
| .summary { | |
| text-align: center; | |
| padding: 28px; | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| margin-bottom: 32px; | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); | |
| } | |
| .summary-value { | |
| font-family: 'Cormorant Garamond', serif; | |
| font-size: 3rem; | |
| font-weight: 400; | |
| color: var(--amber); | |
| line-height: 1; | |
| margin-bottom: 8px; | |
| } | |
| .summary-label { | |
| font-size: 0.78rem; | |
| letter-spacing: 0.12em; | |
| text-transform: uppercase; | |
| color: var(--muted); | |
| } | |
| .footer-tag { | |
| text-align: center; | |
| margin-top: 32px; | |
| font-size: 0.72rem; | |
| color: var(--muted); | |
| letter-spacing: 0.06em; | |
| } | |
| .footer-tag span { | |
| color: var(--amber); | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="page-wrapper"> | |
| <nav class="nav"> | |
| <a href="/" class="nav-brand">Colo<em>rize</em></a> | |
| <a href="/" class="back-btn"> | |
| <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" style="width: 14px; height: 14px;"> | |
| <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18" /> | |
| </svg> | |
| New Photos | |
| </a> | |
| </nav> | |
| <div class="result-header"> | |
| <div class="result-eyebrow">Colorization Complete</div> | |
| <h1 class="result-title">All photos are <em>alive</em></h1> | |
| </div> | |
| <div class="summary"> | |
| <div class="summary-value">{{ total_count }}</div> | |
| <div class="summary-label">Images Colorized Successfully</div> | |
| </div> | |
| <div class="gallery"> | |
| {% for item in images %} | |
| <div class="gallery-item"> | |
| <div class="comparison-split"> | |
| <div class="comparison-side"> | |
| <img src="{{ item.orig_img }}" alt="Original"> | |
| <span class="gallery-side-label">Original</span> | |
| </div> | |
| <div class="comparison-side"> | |
| <img src="{{ item.eccv16_img }}" alt="ECCV16"> | |
| <span class="gallery-side-label colorized">ECCV16</span> | |
| </div> | |
| <div class="comparison-side"> | |
| <img src="{{ item.siggraph17_img }}" alt="SIGGRAPH17"> | |
| <span class="gallery-side-label colorized">✦ SIGGRAPH17</span> | |
| </div> | |
| </div> | |
| <div class="gallery-info"> | |
| <span class="gallery-filename">{{ item.filename }}</span> | |
| <div style="display: flex; gap: 6px;"> | |
| <a href="{{ item.eccv16_img }}" download class="download-link"> | |
| <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.2"> | |
| <path stroke-linecap="round" stroke-linejoin="round" d="M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12M12 16.5V3" /> | |
| </svg> | |
| ECCV16 | |
| </a> | |
| <a href="{{ item.siggraph17_img }}" download class="download-link"> | |
| <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.2"> | |
| <path stroke-linecap="round" stroke-linejoin="round" d="M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12M12 16.5V3" /> | |
| </svg> | |
| SG17 | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| {% endfor %} | |
| </div> | |
| <p class="footer-tag">Powered by <span>AI colorization</span> · Results in seconds</p> | |
| </div> | |
| </body> | |
| </html> |