Skip to content

Releases: invisiblelevel/Albedolizer

Albedolizer v1.7.6-beta

Choose a tag to compare

@invisiblelevel invisiblelevel released this 28 Sep 16:14
7cba2c7

Chinese localization + critical batch fix + memory optimization.


🇨🇳 Chinese Localization

  • Full Simplified Chinese UI (中文) — every button, tab, header, dialog, and log message translated
  • Segmented language switcher in header — RU | EN | 中文 chips, active one highlighted with accent
  • Auto-detect system language on first launch — ru / zh / en picked from Windows UI locale
  • Fallback to English if the saved language is unknown or invalid
  • Chinese manual — manual.html now has three languages with segmented switcher
  • NotoSansSC font bundled for correct CJK rendering, with system fallback

🔴 Critical Batch Fix

Double-click on Batch / PBR Batch / Compress Batch was spawning parallel runs and corrupting output files. If you clicked "Run" twice before the first batch finished — two processes wrote to the same _corrected / _compressed / _pbr_output folder, overwriting each other.

Fixed with batch_running, compress_batch_running, pbr_batch_running flags. Second click is now ignored until the current batch finishes.


⚡ Memory Optimization

Batch processing was leaking memory on large folders:

  • asyncio.gather → worker pool — only N coroutines alive at once, not len(files). On a 500-file folder this used to create 500 idle coroutines waiting for the semaphore.
  • LUTwithBGridModel singleton — was recreated and re-loaded on every file (~500 MB per instance). Now loaded once per session.
  • Explicit del + gc.collect() after each file in a finally block — big 8K arrays are freed before the next file starts.
  • Log panel — no longer rebuilds the whole ListView on every line. Only appends/removes one ft.Text.
  • Thread pool capped at 4 + cv2.setNumThreads(1) — keeps CPU and RAM stable on big batches.

Result: stable memory usage during batch processing, no more growing RAM.


🛠 Other Changes

  • config.py cleaned up — dead "emoji" field removed from all 50 presets and 7 categories
  • All 50 presets + 7 categories now have Chinese translations
  • System requirements updated — 16 GB RAM minimum, 32 GB recommended. 8 GB noted as not recommended.

📦 Download

Albedolizer_Setup_v1.7.6-beta.exe — installer, Windows 10/11 64-bit.

System Requirements:

  • Windows 10/11 (64-bit)
  • RAM: 16 GB minimum, 32 GB recommended
  • 4+ CPU cores
  • 2 GB free disk space

See README for details.


🔗 Links


Full changelog: CHANGELOG.md

MIT License — free to use, including in commercial projects.

Albedolizer v1.7.5-beta

Choose a tag to compare

@invisiblelevel invisiblelevel released this 26 Sep 13:46
cc01859

Albedolizer v1.7.5-beta

New interface

All system emoji on buttons, tabs, rail, header, and dialogs replaced with thin-line Lucide SVG icons. Presets are text-only. Unified make_toggle helper fixes the "blue on blue" bug where active chips lost their content.

Internal refactoring

main.py (was ~5000 lines) split into core/ and ui/ packages:

  • core/ — state, IO, image processing (no UI)
  • ui/ — theme, icons, header, rail, log panel, dialogs, one module per tab

Better architecture, cleaner separation, same functionality.

Fixed

  • LUTwithBGrid on 8K textures — max_pixels raised 16M → 32M
  • Unity URP pack — AO is now correctly placed in G channel (R=Metallic, G=AO, B=0, A=Smoothness)
  • CLI: seamless flags — --seamless, --seamless-hipass, --seamless-no-hipass
  • CLI: OSError handling — clear hint on long paths / permissions / disk issues
  • Preview no longer lost on rebuild — survives theme switch, language switch, category change, auto-detect

Downloads

  • Albedolizer_Setup_v1.7.5-beta.exe — Windows installer (recommended)

Links

Full changelog: CHANGELOG.md

Albedolizer v1.7.4-beta

Choose a tag to compare

@invisiblelevel invisiblelevel released this 23 Sep 19:32
6bc374c

Note: This is a rapid follow-up to v1.7.3 with major improvements to Metallic and Roughness. If you're on v1.7.3, updating is highly recommended — the roughness algorithm is significantly better.

What's new in v1.7.4-beta

Advanced Roughness

  • 4-signal extractor — luminance + local variance + edge density + saturation variance
  • Slider Rough detail (0.0–1.0): 0 = old luminance-only, 1 = full multi-feature
  • Much better roughness on textured surfaces (stone, wood, rust)

Color-Based Metallic

  • Pick on Albede — click on the metal part of your texture
  • Negative pick — click on non-metal to exclude similar colors
  • 5×5 averaging — reduces noise and specular highlights
  • Tolerance presets: 🌿 Tight / ⚖ Medium / 🔥 Loose — one click, no manual tuning
  • LAB color distance for accurate separation
  • Mask diagnostics in log (X.X% белых)
  • Auto-recalculation on Generate — no separate button

Dynamic Right Panel in PBR

  • Panel content changes based on selected map:
    • Albedo → presets
    • Height → height blur
    • Normal → strength, smoothing, threshold, high-pass
    • AO → AO radius, intensity
    • Rough → roughness mode, custom map, base, variation, detail
    • Metal → metallic mode, custom map, auto pick, presets, sliders
    • Edge / ORM → info message
  • No more cluttered panel with all sliders at once

Per-map PNG Bit Depth

  • Each PBR map saves in its own 8/16 bit setting
  • Normal and Height default to 16-bit, Albedo/Metallic/Roughness to 8-bit
  • Saved across sessions

Fixed

  • Metallic pick was returning black mask — was comparing float32 (0–1) LAB with uint8 (0–255) LAB. Now both in 0–255.
  • PBR panel overcrowded — dynamic rebuild on map switch
  • [DEBUG] prints removed from pbr_generator.py and main.py

Changed

  • Tolerance slider now shows current value
  • Generate Mask button removed — mask recalculated automatically on Generate

Requirements: Windows 10/11, 64-bit
License: MIT

Full changelog: CHANGELOG.md

Albedolizer v1.7.3-beta

Choose a tag to compare

@invisiblelevel invisiblelevel released this 23 Sep 09:59
359b8fe

What's new in v1.7.3-beta

Custom Metallic / Roughness Maps

  • Load your own grayscale PNG for Metallic or Roughness channels
  • Auto-resize with confirmation dialog if size doesn't match albedo
  • Auto-regenerate PBR after loading custom map
  • Batch PBR warns when custom map is applied to a whole folder

GIMP-style Make Seamless

  • Exact port of GIMP's tile-seamless.c (Tim Rowley, 1997)
  • Optional Hi-pass pre-filter to even out brightness between edges
  • Works on textures where previous seamless algorithm failed

Realism Presets

  • Three one-click presets: Soft / Medium / Hard

Simple Mode Improvements

  • Compress tab in Simple mode — two big buttons, auto-save to _compressed
  • CLIP auto-detect — detects material on texture load, picks best preset
  • Welcome dialog on first launch — explains Simple / Advanced modes

Quality of Life

  • Global hotkeys — Ctrl+O Open, Ctrl+S Save, Ctrl+R Reset, Ctrl+Z Undo, Space toggle preview, Enter context action
  • Settings persistence — Realism, batch threads, export options, seamless hipass, pbr metallic/roughness, tiling saved across sessions
  • Preview toggle Original/Result — button in Single toolbar
  • File info bar — name, resolution, mode, size under toolbar
  • Compress shows size delta (original → new, % saved) after save
  • Batch PBR warning when custom map applied to whole folder

Fixed

  • Preview toggle button was missing in Single toolbar
  • Custom Metallic/Roughness preview updates immediately after load
  • seamless_hipass checkbox state now persists across sessions
  • toggle_tiling now saves state to config.json

Requirements: Windows 10/11, 64-bit
License: MIT

Full changelog: CHANGELOG.md

Albedolizer v1.7.2-beta

Choose a tag to compare

@invisiblelevel invisiblelevel released this 22 Sep 13:21
cd85bac

What's new in v1.7.2-beta

3D Viewer Overhaul

  • 4 shapes: Sphere / Cylinder / Cube / Plane — switchable on the fly
  • Substance-style lighting — key + fill + rim lights, proper volume on all shapes
  • ACES tone mapping — richer contrast, no more washed-out look
  • Exposure slider (0.5–2.0) in the viewer panel
  • Rim light — separates the object from the background
  • Control panel: Shape / Lighting / Tiling in one window

50 Texture Presets (was 47)

  • Stucco (🏛) — Mineral
  • Gemstone (🔮) — Mineral
  • Cardboard (📦) — Synthetic

Quality of Life

  • PBR preview is now zoomable with the mouse wheel
  • Log panel title now follows the app language (RU / EN)
  • manual.html — full Russian translation with in-page RU / EN switcher

Fixed

  • Viewer volume on sphere — was flat, now has proper shading
  • Viewer exposure order — applied before ACES tone mapping in linear space
  • GLSL indentation bug in viewer.py

Requirements: Windows 10/11, 64-bit
License: MIT

Full changelog: CHANGELOG.md

Albedolizer v1.7.1-beta

Choose a tag to compare

@invisiblelevel invisiblelevel released this 21 Sep 17:22
f10bc49

What's new in v1.7.1-beta

🎮 New tab: Engine Export

Pack your PBR maps for a specific engine in one click:

  • Unity HDRP — Mask Map (R=Metallic, G=AO, B=Detail Mask, A=Smoothness)
  • Unity URP — MetallicSmoothness (R=Metallic, A=Smoothness)
  • Unreal — ORM (R=AO, G=Roughness, B=Metallic)
  • Godot — ORM (R=AO, G=Roughness, B=Metallic)

Extras:

  • Normal map format — OpenGL (Y+) or DirectX (Y-), green channel flipped
  • Detail Mask for Unity HDRP — white (1.0) / edge map / custom loaded from disk
  • Channel preview — R / G / B / A / RGB / RGBA
  • Source: current PBR result or a folder with existing *_albedo.png, *_normal.png, *_ao.png, etc.

👁 3D Viewer: tiling controls

  • In-window panel with X/Y tiling buttons (ImGui)
  • Scale from 1×1 up to 16×16
  • Reset 4x3 button
  • Viewer UI language follows the app language

✨ Quality of life

  • Last opened folder is remembered across sessions

🐛 Fixes

  • Realism tab Save — was broken, now works
  • Realism progress bar — added, so 8K textures don't look frozen
  • LUTwithBGrid blur on high-res textures — model was downscaling to 512px internally. Now processes up to 6 megapixels before downscaling. Blur gone.

📦 Installation

Download Albedolizer_Setup_v1.7.1-beta.exe below and run it.

Requirements: Windows 10/11, 64-bit


📄 License

MIT — free to use, including in commercial projects.

Author: INV.LVL

Albedolizer v1.7.0-beta

Choose a tag to compare

@invisiblelevel invisiblelevel released this 20 Sep 15:58
a8ff3b5

Major UI refactor + new Realism tab.

What's new

UI refactor:

  • Left NavigationRail instead of tab buttons (5 tabs: Single, Batch, PBR, Compress, Realism)
  • Own right panel per tab
  • BottomSheet log — single, collapsible, shows last line

New Realism tab:

  • Procedural photorealism filter (grain + high-pass + HSV variation + vignette)
  • Three sliders: grain, detail, variation
  • Zoom in preview (mouse wheel)

Improvements:

  • Batch: threads slider (1–8 parallel tasks)
  • Compress: PNG bit depth (8/16-bit)

Optimization:

  • Slim exe: ~140 MB → 119 MB

Install

  1. Download Albedolizer_Setup_v1.7.0-beta.exe
  2. Run, follow instructions
  3. Requires Windows 10/11 x64

Albedolizer v1.7.0-beta

Крупный рефакторинг интерфейса + новая вкладка Realism.

Что нового

UI рефакторинг:

  • NavigationRail слева вместо кнопок-табов (5 вкладок: Single, Batch, PBR, Compress, Realism)
  • Своя правая панель у каждой вкладки
  • BottomSheet-лог снизу — один общий, сворачивается кликом, показывает последнюю строку

Новая вкладка Realism:

  • Процедурный фильтр фотореализма (grain + high-pass + HSV-вариация + виньетка)
  • Три слайдера: зерно, детализация, вариация
  • Zoom в превью (колесо мыши)

Улучшения:

  • Batch: слайдер потоков (1–8 параллельных задач)
  • Compress: выбор битности PNG (8/16-bit)

Оптимизация:

  • exe slim: ~140 МБ → 119 МБ

Установка

  1. Скачай Albedolizer_Setup_v1.7.0-beta.exe
  2. Запусти, следуй инструкциям
  3. Требуется Windows 10/11 x64

Albedolizer v1.6.1-beta

Choose a tag to compare

@invisiblelevel invisiblelevel released this 19 Sep 16:01
6791969

Albedolizer v1.6.1-beta

🔧 Changes

  • CLIP vision quantized — 167 MB → 84 MB (INT8), faster inference
  • CLIP tokenizer bundled — no longer downloads from HuggingFace on first launch
  • FilePicker — single instance across the entire app (fixes memory leaks)
  • UI — wider right panel (320px), log panel moved under the preview
  • Math button stretched to full width
  • Window transparency removed
  • Tiling — new 🔲 Seamless button (radial mask + scatter)
  • Viewer — fully reworked lighting (Cook-Torrance BRDF + IBL)
  • lut_model — fixed LAB→RGB conversion (clip before astype)
  • Slimmer exe — CUDA/TensorRT/ffmpeg binaries stripped

📦 Installation

Download Albedolizer_Setup_v1.6.1-beta.exe and run it.

🔧 Изменения

  • CLIP vision квантизован — 167 МБ → 84 МБ (INT8), инференс быстрее
  • CLIP tokenizer забандлен — больше не тянет с HuggingFace при первом запуске
  • FilePicker — один инстанс на всё приложение (фикс утечек)
  • UI — правая панель шире (320px), лог-панель сдвинута под превью
  • Math-кнопка растянута на всю ширину
  • Прозрачность окна убрана
  • Тайлинг — новая кнопка 🔲 Seamless (radial mask + scatter)
  • Вьюер — полностью переработано освещение (Cook-Torrance BRDF + IBL)
  • lut_model — фикс конвертации LAB→RGB (клип перед astype)
  • exe похудел — вырезаны CUDA/TensorRT/ffmpeg бинари

📦 Установка

Скачай Albedolizer_Setup_v1.6.1-beta.exe и запусти.

Albedolizer v1.6.0-beta

Choose a tag to compare

@invisiblelevel invisiblelevel released this 16 Sep 22:32
4d94473

◐ Albedolizer v1.6.0-beta

Material auto-detection via CLIP + 10 new texture presets.


✨ What's new in 1.6.0-beta

  • 🤖 Material auto-detection — CLIP-based classifier (OpenAI ViT-B/32, ONNX) automatically picks the best preset from 47 options. One click in the sidebar.
  • New Fabric category — cotton, wool, silk, denim, carpet, velvet.
  • New presets: copper (Metal), clay + granite (Mineral), carbon (Synthetic).
  • Total presets: 47 (was 37) across 7 categories.
  • Viewer floats on top — 3D preview window now opens focused above the main app.

📥 Download

Recommended: Albedolizer_Setup_v1.6.0-beta.exe — installer, does everything for you.

Requirements: Windows 10/11, 64-bit.

Albedolizer v1.5.0-beta

Choose a tag to compare

@invisiblelevel invisiblelevel released this 16 Sep 14:28
e257f82

◐ Albedolizer v1.5.0-beta

Second AI model added — now you can switch between correction methods in the sidebar.


✨ What's new in 1.5.0-beta

  • 🎨 LUTwithBGrid — second AI model (ONNX, 1.9 MB). Based on LUTwithBGrid (ECCV 2024) — image-adaptive 3D LUT with bilateral grid. Runs on CPU, no CUDA required.
  • Three correction methods — Autolevels, LUTwithBGrid, or Math. Switch via the pyramid selector in the sidebar (works in both Simple and Advanced).
  • Hybrid LUTwithBGrid mode — takes brightness from the model, keeps original color. Prevents color cast on PBR textures.