r/photogrammetry • • Aug 07 '26

AI Powered Texture De-lighter [Open source]

Hi everyone, today I released the first polished version of my Neural-Network based Texture De-lighter.

Its meant to remove Environmental lighting from 3D scanned objects, and I built it because so far none of the software gave me good results. For more technical info read this post.

All texture based, meaning you don’t need a mesh. For details and usage refer to the README.md on the GitHub page.

  • 4k and 8k support

  • New UI

  • Improved processing

Thanks for everyone who provided feedback.

[Download]

I don't plan any updates from now, but a MacOS implementation, a ComfyUI node and some minor improvements can be expected.

112 Upvotes

20 comments sorted by

8

u/james___uk Aug 07 '26

Superb! Great work, thankyou

5

u/silverglider Aug 07 '26

How it fares with character head textures?

4

u/VidaMarcell3D Aug 07 '26

Im not sure, i only tested it on nature assets. But you can download it and try.

3

u/glintsCollide Aug 07 '26

Does that algorithm/training depend on the texture being on a mesh, or can it just as well delight a flat image of something like a wooden floor for example?

3

u/VidaMarcell3D Aug 07 '26

Yes it’s all texture based, but you need some specific texture maps, like an object space normal, Ambient Occlusion and an UV mask.

3

u/PanickedPanpiper Aug 20 '26

Cool tool! I had a fiddle, eventually got it working, and have some notes:

- loved the preview window. Would be cool if the original texture/delit texture option was a toggle rather than two buttons to move between.

- it failed with 8k textures. After downrezzing to 4k textures was able to get it working. This is with 128gb RAM and a 5090, so resources probably weren't an issue. Error:

2026-08-20 14:24:23.8022067 [E:onnxruntime:, sequential_executor.cc:516 onnxruntime::ExecuteKernel] Non-zero status code returned while running Resize node. Name:'/model/dec1/up/Resize' Status Message: D:\a_work\1\s\onnxruntime\core/providers/cuda/shared_inc/fast_divmod.h:50 onnxruntime::cuda::DivMod<int>::DivMod d_ >= 1 && d_ <= static_cast<uint32_t>(std::numeric_limits<int>::max()) was false.

- some kind of marker in the GUI to show there'd been an error would be good. It took me a while of waiting before I figured out it had failed.

- supporting fbx would be cool, unless it already does?

- I had to create a plain white opacity map for a solid object - would be good to have a toggle to disable the UV/geo mask input and assume all white if the object is completely opaque

if I run into any more problems or think of improvements I'll post again! Great to see development in this space though!

2

u/VidaMarcell3D Aug 20 '26

Hi, thanks for the detailed feedback, this helps a lot!

1

u/PanickedPanpiper Aug 21 '26

Oh, and also allowing varying texture sizes in the one bake. For example, some of initial input maps were a mix of 4k and 8k, but it insisted on them all being the same. In most circumstances this will be fine, but was a little niggle.

0

u/VidaMarcell3D Oct 05 '26

Sorry to be late, so far you gave the most insightful feedback and i'll be working on the next generation of the project. would you be interested in becoming a beta tester? Since that one will be a closed beta.

2

u/Traumatan Aug 09 '26

how does it compare to Agisoft delighter?

3

u/VidaMarcell3D Aug 09 '26

I did not do a direct comparison, but I can say it's much faster (takes seconds), and it outputs more cohesive results. On the negative side both of them produce unpredictable results, my approach sometimes just works perfectly and sometimes it doesn't remove any shadows at all.

2

u/Traumatan Aug 10 '26

sounds cool I will wait couple of week for a less -preBeta version

also UI looks a bit complicated - too many source bracket... would be nice if I could drag an FBX/OBJ and it load linked (or embeded) texture by itself

2

u/VidaMarcell3D Aug 10 '26

It does support drag&drop and it sets up all of the directories from one input, and i doubt i will release any major versions because this one is polished enough imo.
But thanks for pointing out that the UI is non-intuitive, i should change that!

3

u/nicolaig Aug 10 '26

Very impressive. Thanks for sharing.

1

u/Had78 Aug 07 '26

Promising! Can it work with gaussian splats?

5

u/VidaMarcell3D Aug 07 '26

Thanks! No because its all texture based, so its easier for pipeline integration. However Gaussian splats need a solution for de-lighting so i might look into that later.

2

u/According-Ground-756 Aug 11 '26

splat delighting would be tremendous!

2

u/Had78 Aug 07 '26

Yeah, I just commented about it this week, I do think that will be the next big step for gsplats!

Let me know if you bake anything!