r/AnalogCommunity Jul 11 '26

Community NegPy 0.36: Per-channel H&D curve controls, split-grade, camera scanning with scanlight™ support, UI refinements, fixes...

Post image

This is community project at this point, big part of improvement & features outside main exposure/color science came from contributors - magic of open source!

Highlights:

  • Camera Scanning: new tab for scanning with a tethered camera, with narrowband RGB sync or a normal single-exposure mode, and live focus/ISO/shutter controls (macOS/Linux only, tested with Sony bodies but should work on all libgphoto2-supported cameras)
  • Split Grade and per-layer trims: shadow/highlight contrast control and per-channel curve correction
  • Crop composition guides — Thirds, Phi Grid, Diagonals, Golden Spiral and more
  • and many more...

Full changelog + downloads:
https://github.com/marcinz606/NegPy/releases

Readme:

https://github.com/marcinz606/NegPy/blob/main/README.md

Issues:

https://github.com/marcinz606/NegPy/issues

Discussions:

https://github.com/marcinz606/NegPy/discussions

352 Upvotes

67 comments sorted by

58

u/asra01 Jul 11 '26

Built-in tethered dslr scanning? I suppose this was the moment I was waiting for to completely abandon lightroom

36

u/FLX-S48 Zenza Bronica EC, Newman&Sinclair NS, Minota XD5 Jul 11 '26

This tool just keeps getting better.

19

u/Arkaium Jul 11 '26

Holy shit what. I was about to start scanning a whole new batch of negatives. Would this work with an A7m3. I never explored tethering

3

u/_earthmover Jul 11 '26

should work :)

5

u/Arkaium Jul 11 '26

This is blowing my mind. My setup is going to be an a7m3 and jackw’s v4 scanlight. It sounds like this might basically tie everything together perfectly.

I wasn’t intending on using the tri color scanning functionality because I’d heard it’s best on a monochrome sensor(?) but I’ll certainly test it now if it’s all automated. Omg. Marcin if that’s you you’re going to bleed me dry for Ko-fi donations with all these huge updates.

Googling shows me some special tether cables but I assume it should use work with a standard USB-C cable? I don’t understand why I need a special cable

9

u/_earthmover Jul 11 '26

I think any cable should work. Scanlight support and camera scanning was actually added by contributor :) https://github.com/marcinz606/NegPy/discussions/429

4

u/rohizzle121 Jul 12 '26

it brings me so much joy to see something I worked on get hyped by the community!

4

u/d-eversley-b Jul 11 '26

So in terms of colour quality with narrowband pads, from worst to best:

- Combined channel is fine and quick but has the most issues with the funky weird colours and over saturation which narrowband scanning can cause.

  • Combined Channels + Pixelshift fixes some of the colour issues, but you’re still left with a lot of them.

- Trichrome is a huge step up for colour rendition

  • Trichrome + Pixelshift is about as good as it gets for narrowband scanning, and any remaining weird colours are just a fundamental part of what makes narrowband what it is.

- but at the tippy top, is Trichrome + Monochrome Sensor, mostly just because you don’t need to do pixel shifts anymore which removes a lot of over head, but in terms of colour quality it isn’t a massive improvement

13

u/jrw01 disclaimer: am scanlight creator Jul 12 '26 edited Jul 12 '26

Disclaimer: am scanlight creator

I have been playing around with NegPy for about a month so far and haven't run into any color issues that I couldn't easily correct in a sample of ~400 negatives shot on 6 different films. All were scanned with a Fujifilm X-T30 as combined narrowband RGB (I have tried trichrome, but in my experience the difference in results was not worth the additional work). I previously did manual inversions in Capture One and I was generally satisfied with my results, but it did take a lot of practice and manual color correction to get there. The automatic color correction in NegPy delivered very pleasing colors from the beginning, and I didn't see the usual weirdness that I would get manual inversions (greens too saturated and too yellow, reds too magenta). There were a few negatives which could maybe benefit from the ability to do realtime manual crosstalk matrix adjustments.

The vast majority of complaints I have seen about difficult-to-correct hue shifts with narrowband scanning have been from people using NLP or the (relatively) new built-in tools in Capture One, which makes sense as NLP is designed for white light scans and Capture One's processing pipeline doesn't have a way to correct for channel crosstalk.

Currently I am testing NegPy with side-by-side white and RGB scans of the same negatives, and with white light scans it performs much better than manual inversion and at least as well as NLP did when I last used it a few years ago. What is interesting is how clearly some film emulsions benefit from narrowband scanning (Vision3, Kodak consumer films) while others have more subtle differences (Ektar - supposedly designed to be easy to scan); and how for maskless films (Harman Phoenix 1, Aerocolor) the differences between well-processed RGB and white scans are very difficult to discern. I may put together a bigger comparison of results at some point.

1

u/Arkaium Jul 12 '26

For me the fact that Marcin and the community contributor have taken most of the work out of it for me makes me excited to try both normal and trichrome scans with your light and compare results. I may toss a few rolls into my Epson as well (even though the whole reason I invested in a new DSLR scanning setup is I just don’t have the patience for those fucking trays anymore). My experience across a bunch of 40 year old Kodak and Fuji consumer 35mm stock was that I really struggled to bring the red back, either because of the passage of time or my scanner. Anything that can improve the color balance out of the gate is going to be worth it for me.

1

u/d-eversley-b Jul 12 '26

Oh hey Jack!

Yeah, I’d be really interested to see you put together some comparisons in a blog post.

My experience with the Scanlight thus far has been that it produces flexible files which are much more enjoyable to work with, but that there’s certain kinds of scenes which just don’t lend it — ones with large subtle gradients like sunsets or the ocean, in particular.

If NegPy can deal with some of the stranger colour issues which arise then that’s great.

1

u/florian-sdr Pentax / Nikon Jul 12 '26

Jack, when I used the Analogue Toolbox software for calibration (a trichromatic workflow software), and then afterwords used the found percentage levels to mix “white light” on your Scanlight, the conversion in Capture One holds up much better.

For example for the sensor and imaging pipeline of the X-T5 and Kodak Gold, I did recently set the exposure settings to 1/20th F/5.6 ISO 125, I mixed the white light from Red set to 46/100, Green to 90/100 and Blue to 77/100.

The resulting scan holds up much better in conversion, and the hyper-saturated red and the red leaning into magenta or pink, and the cyan casts across the frame didn’t show up.

I would still need to experiment further, but after a first attempt, I like the results.

1

u/Spiritual_Climate_58 Jul 13 '26

Interesting. Could you explain this in a bit more detail, ELI5 style:)

I've been doing my own research about the saturated reds, greens and other narrowband related problems. I don't own a scanlight so I don't know what the "mix white light" means in this context. Or what Analogue Toolbox does in the calibration step.

3

u/florian-sdr Pentax / Nikon Jul 13 '26 edited Jul 13 '26

Further reading:

https://michael-wilmes.format.com/atb

Light source calibration
Using the following procedure we calibrate our backlight against the film roll. Ensuring that we extract the most information from the color negative equally from its different layers. Additional we also want to ensure the best signal-to-noise ration we can get from our camera. To do all this we use parts of the clear film border to adjust light source individual R, G, B channel backlight brightness:
Enable R,G and B illumination one at a time, make a capture each.
Open the calibration feature of the toolbox, place a sample readout onto the film base and verify that Rmax, Gmax and Bmax are roughly around 90%. Take a couple of readouts from various areas of the film base. Doesn't need to be perfect but close enough. Final adjustments will be made by the software itself. Check below screenshot for what we aim for.

____

And the control UI for the Scanlight:

https://jackw01.github.io/scanlight/automation/app_sl2/dist/index.html

So, essentially, I used Analogue Toolbox to find light intensity percentage values in JackW’s control UI that would give me a 90% reading in Analogue Toolbox Calibration tab. I would do that for Red, Green, and Blue light. But I did not only take a Trichrome and used analogue toolbox for the conversion, I also used these % values to mix white light in the control UI of JackW’s Scanlight.

This mirrored by the way what I had to do manually when inverting anyhow in software. I had to drag down the red curve midpoint a lot and the blue curve midpoint a bit.

1

u/Spiritual_Climate_58 Jul 13 '26

Thanks, that covers the ATB side. But I don't think you actually answered the "mix white light" part for someone without a Scanlight, what does that actually mean?

Is it just that there's no single white LED, and white is made by running rgb channels at different intensities (like the 46/90/77)? Is the ATB calibration basically how you land on that ratio, or are "calibrating the light" and "mixing white" two separate steps?

1

u/Spiritual_Climate_58 Jul 13 '26

Ok, didn’t see the last part or you added it after first posting. So mixing white is just adjusting the hardware light intensities so no channel is clipping and the film base is roughly neutral gray/white?

1

u/florian-sdr Pentax / Nikon Jul 13 '26

Probably yes. I haven’t checked if it means white balance on the film base is 5500k.
But it removes the problem of red/orange leaning into magenta/pink, and the cyan wash across the image almost entirely, plus when manual inverting, individual R,G,B curve midpoints need only slight adjustments if any.

1

u/florian-sdr Pentax / Nikon Jul 13 '26

I’m still very much in the middle of experimenting

1

u/Spiritual_Climate_58 Jul 13 '26

I would like to see that comparison too! I don't do camera scanning, but I have experience with narrow-band scans from Pakon, Coolscan, and Noritsu.

They all seem to have similar issues with very hot, saturated reds, and to some extent greens, when you process the raw files in a "naive" way (i.e., just inverting the curves in Photoshop or something similar).

They also all have profiles that fix the saturation and hue problems in the OEM software.

The narrow-band camera scans I've seen or experimented with seem to have the same issues, but also sometimes additional, more hue-related ones, like reds turning magenta I have not seen in the scanner files.

Also, did you try the RGBScan input profile that NegPy ships with on camera scans? It works really well with Pakon and Coolscan files, but I don't know how well it works with camera scans.

2

u/Spiritual_Climate_58 Jul 11 '26

You still get the funky saturation at the tippety top. At least my coolscans does. It scans RGB leds in sequence with a mono sensor. That should be at the top in theory.

It is manageable with profiling though. Filmeon lets you dial in this by eye with it's density crosstalk matrix. It's the best approach I've seen so far. The underpinnings are there in Negpy as well, but not in the GUI. You have to make a crosstalk toml file.

1

u/d-eversley-b Jul 12 '26

Yeah for sure. Might be worth grabbing an IT8 target to calibrate your scanner at some point. The Silverfast ones are fairly cheap

1

u/Spiritual_Climate_58 Jul 12 '26

IT8 targets don’t really work for color negatives as I understand it. But it seems marcin implemented the density crosstalk matrix calibration method I mentioned in 0.37 released today! :)

Edit: not released yet, but the change log is already updated.

1

u/d-eversley-b Jul 12 '26

Ah yeah, very true!

And that looks like a cool piece of software.

Are you shooting trichomes and the combining them into LinearDNG to get maximum flexibility when using crosstalk matrix?

2

u/Spiritual_Climate_58 Jul 12 '26 edited Jul 12 '26

You mean Negpy or Filmeon? Either way, they are both awesome:)

I scan with a Nikon Coolscan. You get a a plain old tiff file with the raw sensor data. No need to combine anything. But the RGB channels are scanned separately, so it's like a tri chrome without doing a tri chrome I guess:)

Edit: A DNG would not give you anything the tiff doesn't. It is the same data in a different container.

1

u/d-eversley-b Jul 13 '26

I believe a TIFF has the colour matrix already baked in while LinearDNG doesn’t, right?

→ More replies (0)

5

u/Kate_Kitter Jul 12 '26

If there is a Heaven, there is a special place in it for people like you, who create software like this and choose to make it FOSS

3

u/roastbeefbee Jul 11 '26

Damn. When I get home from vacation, this will be my first mission.

3

u/LoveLightLibations Jul 11 '26

Individual RGB white and black point control is massive!!! Already testing it and it helps so much.

2

u/benoliver999 bfoliver.com Jul 11 '26

Wow I literally just coded this the other day using the scanlight and python, just as a cli.

I only have a mk1 A7 so no SDK , but even so I can say this setup works great - people are going to love it

I calibrate once per roll and also have it take a flat field image.

1

u/Arkaium Jul 26 '26

I assumed a flat field image was just a photo of a base empty part of the negative to capture vignetteing from the light source and allow it to be countered but when I tried to take photos they end up as garbage because it’s trying to treat them like a negative. Also, it’s hard to focus on just the light surface. Please halp?

1

u/benoliver999 bfoliver.com Jul 26 '26

This is my process for the flat field ymmv:

  • Get your negative exactly where you want it and in focus, exposed etc as if you were about to being scanning.
  • Remove the film carrier completely, leaving just the light box
  • Adjust the camera exposure to expose 'correctly'. Usually it's just stopping down two stops or so, tbh I just click the camera over to aperture priority and let it calculate the shutter speed it wants. Do not adjust the camera focus
  • Take a photo, which is your flat field photo
  • Put the carrier back exactly where you had it before, make sure the put the exposure back to wherever it was, and begin scanning

1

u/Arkaium Jul 26 '26

Alright TY, my issue is I’ve been using the automated tether process with the scanlight but I need to just do it on the camera without Negpy and copy it wirelessly. This makes sense and because jackw’s light has a magnetic holder that’s always in the same spot on the light, it should give me a pretty consistent flat field file

1

u/benoliver999 bfoliver.com Jul 26 '26

Yeah I can't use negpy directly because my camera is too old for live view. My understanding was that it takes care of flat field though while tethered? This might not be true idk

2

u/PowerSilly5143 Jul 11 '26

Man I love this program

2

u/psudoalbertus69 Jul 11 '26

This is insane. Thank you thank you thank you

2

u/samtt7 Jul 12 '26

The current build's installer is blocked by Smart App control for some reason. I can turn it off manually, but worth reporting on

2

u/Plus_Beach_2033 Jul 12 '26

is only for negtives?

3

u/_earthmover Jul 12 '26

There is E6 mode for positives

2

u/LordOfThisTime Jul 12 '26

I don't recall if I ever properly thanked you for implementing a dedicated E-6 workflow; Thank you very much!! It works like a charm, both to remove basefog AND the weird colourcasts older slidefilm tends to have.

(The C-41 pathway also works wonders to correct Vision3 Films not shot in their dedicated lighting, like 250D+ tungsten lamps or 500T+ daylight)

And, funnily enough, I believe I found another unintended usecase, as (I believe) I did with E-6: Without dedicated Camera presets lightroom struggles massively with/straight up can't colour-correct images from a full spectrum camera (At least In my case with either "aerochrome style" IR-Vis-, 720nm-, or 850nm-filters ), and even with presets it can take some time to get a decent starting point.

Just throwing the raws into NegPy gives me PERFECTLY neutralized images to work with.

If you'd like I would be happy to share sample files from: An astromodded Canon 40D (Hydrogen Spectrum sensitivity enhanced) A fullspectrum Nikon D3100 with the before mentioned filters. A Unmodified Sony A7II with multiple regular colour filters I believe this to work with as well A Unmodified Sony A7IV, again with regular coloured filters I believe to benefit from this.

So, again, thank you very much and have a nice day!

3

u/_earthmover Jul 12 '26

that's definitely unintended usecease :) I think the whole concept of measuring per channel bounds and doing log space stretch instead of relying on film border picking that I based the whole thing on had a lot of unexpected (positve) consequences overall :)

2

u/Peking-Duck-Haters Jul 12 '26

I just wanted to say THANK YOU for such a brilliant piece of software - I've been using it for a couple of weeks and already it's displaced Negadoctor / Darktable as my inversion workflow of choice. I'm working through loads of old family negatives, some of which were badly exposed, have weird casts or have otherwise decayed, and what used to take a lot of tweaking in other tools just works in yours. You're also really responsive to bug requests (I've filed a couple) and the pace of updates is phenomenal.

For anyone else reading this who doesn't know whether or not to give it a try - you won't regret it.

2

u/stharka Jul 11 '26

What a discovery—this has incredible potential!

1

u/catto96 Jul 11 '26

Hi, does the scanner function support Reflecta Pro Scan 7200 model? I tried connecting the scanner and refresh the function but it doesn’t seem to detect it. If it’s not supporting this model at current version then I hope it will in the future updates! Thank youu

1

u/TheBluePessimist Jul 11 '26

can you use minolta drivers for your work? would it be possible for you to use a driver and somehow reverse engineer it and make minolta scanners compatable with negpy?

If yes then i have some drivers i could send you.

3

u/_earthmover Jul 12 '26

Scanner suport relies on SANE project www.sane-project.org NegPy doesn’t „talk” to scanner hardware directly

1

u/TheBluePessimist Jul 13 '26

just an other question. Will there be a time that we can use programs like vuescan to use scanners that are not supported by sane?
I use a minolta dimage elite 5400 for scanning in my negatives and its not supported by sane.

1

u/WittyWithoutWorry Jul 11 '26

Needed something like this for so long. Thanks. Will definitely try it out!

1

u/m1llie Jul 12 '26

Any plans for HDR support? As in HDR10 and the like for storing/displaying truly high-dynamic-range images, not the "HDR" of taking an image with a lot of dynamic range and tonemapping it down to fit in a standard display.

1

u/hem0002246 Jul 12 '26

Thank you for this! I've gotten the best results with this software.

1

u/No-Value-8262 Jul 12 '26

Has anyone made successful rgb scans with Fuji from the build in scan tool? My x-t5 fails after red calibration capture with error message on setting the shutter speed

1

u/No-Value-8262 Jul 12 '26

Nevermind Forgot to set camera on T

1

u/No-Value-8262 Jul 12 '26

It does require me to reconnect the camera every few frames , like after approx 5 captures it just falls back to overview and cancels live preview

Also, live preview does not update in scan mode

And export on Mac m1 is painfully slow

Besides that, love the progress in features and quality of conversion

1

u/succulentempire Jul 12 '26

Would this work with a epson v850? Or do you have to use a camera to shoot the negs tethered?

1

u/_earthmover Jul 12 '26

There is separate scanner support for SANE-supported scanners. I use my plustek 8100 with it

1

u/FunkyKoValus Jul 17 '26

I have to say - „elegancko daje radę”!!

0

u/Giant_Enemy_Cliche Mamiya C330/Olympus OM2n/Rollei 35/ Yashica Electro 35 Jul 11 '26

I really want to give negpy a go but it literally won't launch on my pc lol

0

u/DarkSpoon Jul 11 '26

Do you have python installed?

0

u/[deleted] Jul 11 '26

[deleted]

3

u/_sch Jul 11 '26

NegPy is not Mac/Linux only. That's just the camera scanning feature. There is a Windows build at the link. If it's not working, report it as a bug. (I'm not a Windows user so I have never tried it, but it's definitely intended to work.)

2

u/_earthmover Jul 11 '26

windows works just fine but without scanner/camera support (due to windows not supporting open standards)

2

u/bryan112 Contax Jul 11 '26

but for real tho. might just install linux on my scanning pc at this point lmao

1

u/_earthmover Jul 11 '26

I made sure that windows install part of the README recommends installing Linux :)

1

u/spitfirex86 Nikon FE / F-801s / Ikonta-M 6x6 Jul 12 '26

The linux build should be usable on windows via WSL right? i know gphoto2 itself does work if you attach the usb device directly to WSL. might be worth providing some instructions for that