หน้านี้รวบรวม NegPy ไว้ 15 เวอร์ชัน ตั้งแต่ 11 กรกฎาคม 2569 จนถึงเวอร์ชันปัจจุบัน 0.66.0 ทุกเวอร์ชันลิงก์ไปยังไฟล์ตัวติดตั้งของผู้เผยแพร่เอง
| เวอร์ชัน | วันที่ | ขนาด | ไฟล์ |
|---|---|---|---|
| 0.66.0ล่าสุด | 24 ตุลาคม 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.66.0
• New:**Interface redesign** — simpler panels with one shared look; fine-tune controls fold behind chevrons, and toggles replace checkboxes.
• New:**Film Strip and Light Table** — the strip is one row of film under the canvas, the Light Table shows strips on a table, and the Library is the first tab on the right.
• Change:**Panel layout** — Crop and Straighten cards on Geometry, one Setup card on Roll in place of the wizard and the film-process autodetect, and tabs for Export and Metadata, with Gear inside Metadata.
• Change:**User Guide and tooltips** — shorter, plain-language guide panels, one-sentence tooltips and a shorter tour.
• Change:**Rust core** — all CPU image work runs in a new Rust engine on every core, with the same results and faster tools; Numba and OpenCV are gone.
• New:**Translations** — Simplified Chinese, Japanese and Korean. @Warth2033
• New:**Digital (Frontier)** print stock; Digital (Pakon Minilab) is renamed Digital (Pakon).
• New:**Detect Scenes** groups frames by light, and a scene can be dragged from any frame.
• New:**Scan tab** — Meter, channel selections, infrared exposure, built-in presets and one name per capture type. @jondestoppeleire
• New:**Scanlight** — a Light On toggle that holds its state, and Set by Hand with only the light connected. @seanharding @kurtwindisch
• New:**Compare** with any history step or work print. @seanharding
• New:**Presets** hold Optics, Flat Field and the crop shape. @kurtwindisch
• New:**Film edge print** — real markings for the bundled stocks and KEYKODE for Kodak cine stocks.
• New:**Toolbar Export** — an Export button on the canvas toolbar that exports the Frame, Selected or Roll choice of the Export panel; the Print menu takes the Tools button's look, and Export has one icon everywhere.
• New:**Tab header helpers** — Auto beside Pick Better on Exposure, Auto Crop and Square to Film on Geometry, Optical and IR Removal on Finish.
• New:**Contact sheet** — Name order by default, and a Label text field for the roll label.
• Change:**Cast Removal** is a per-frame Filtration control.
• Change:**IR Removal** — NegPy is the only method, improved and much faster; the OpenICE method is removed.
• Fix:**Flat export** keeps the print stock's dye colors and the capture date. @thetalkingdrum @MbappeWU
• Fix:**Edits** — each edit is its own undo step, Optics-pinned frames keep their flat-field profile, and Print Density Target acts only under Auto Density. @Warth2033 @MbappeWU
• Fix:**Library and thumbnails** — collapsed folders are remembered, and thumbnails update on roll load. @kurtwindisch
• Fix:**macOS and export** — window background, scaled-UI hairlines, and exported files take the umask's mode. @kurtwindisch @seanharding |
| 0.65.0 | 18 ตุลาคม 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.65.0
• New:**Print stocks** — color papers and print films print their dye colors through a LUT built from Kodak's datasheets and Fujifilm's Frontier profiles; new Kodak Portra, Supra and Ultra Endura, Fujicolor Crystal Archive HD and the Vision 2383 and Vision Premier 2393 print films for color, Digital (Pakon Minilab) for a minilab's colors, Polymax II RC and Polycontrast IV RC for B&W; the control is renamed Print stock, its list grouped Digital, Paper and Print film.
• New:**Paper Test Strip** — prints the frame on every print stock, as bands or a grid of whole frames; click a paper to see it on the whole frame, and Keep makes it the Print stock.
• Change:**Normalization** — every channel reaches past its color refs by the same share of its own span, so Luma Range Clip no longer tints; a frame with no crop meters the picture, not the holder; saved bounds re-measure after an analysis change, and a stale roll or scene baseline asks for Reanalyze. @seanharding
• Change:**Cast Removal** — foliage, sky and water stay out of the gray sets, so green and blue scenes no overcorrect into magenta, cream or pink; a frame with no neutral gets no correction.
• New:**Crosstalk** — Measure from Chart fits a matrix from a ColorChecker or SpyderCheckr frame and shows each patch's ΔE00; labeled editor rows with terms to ±1; Vision3 250D and 500T re-derived from Kodak's dye curves, the Kodak consumer films re-estimated, and VERITA 200D added. An existing edit keeps its matrix until the profile is picked again.
• Change:**Narrowband toggle retired** — the print stocks do its job: an old Narrowband edit opens on Digital (Pakon Minilab), and Scanning Setup picks that stock for narrowband light and Digital for white light, then suggests other stocks to try. Linear RAW is a Camera WB | Linear RAW choice.
• Change:improved **Chroma Denoise** — a band split of the color channels that removes color speckle, keeps color edges and leaves grain alone; faster on CPU.
• Change:**Dropdowns** — every dropdown has ‹ and › arrows that step to the neighbor choice and wrap past the ends.
• New:**Tone** — Hold Black in the Auto menu lifts shadows and keeps the black point; Bake Auto Density/Grade and Bake to Roll freeze the helpers' values into a frame or the whole roll. @kurtwindisch @red-prs
• New:**Pick Better** — guided tuning: pick the better of two prints round by round to set Filtration, Tone and Paper Response, in an order set with Custom Routing. @red-prs
• New:**Film Base tool** — click the clear rebate to set the roll's film base; the Negative row's hover reads Dmax, Dmed and Dmin above it, and the probe's ΔD reads up from the frame's thinnest tone. @jondestoppeleire
• New:**Zone Overlay and Analysis** — False Color, Zone Map and Grid looks with a toolbar legend of each zone's share, and hovering a zone shows it alone; Analysis is pinned above the Roll tab too, refreshes while a slider drags, and keeps its collapse per tab and its height across restarts.
• New:**RGB Parade** — R, G and B side by side beside the Waveform, or on one plot with Parade Overlay; in Peek Negative it plots each channel's scan density with its stretch range and the film base, and Base Relative zeroes the channels on the base. @thetalkingdrum
• New:**Canvas** — a Navigator for zoomed views, Frame Info levels, Probe at Cursor, double-click to toggle Fit and 100%, a Tools menu that arms any canvas tool, and hold-to keys for compare and peeks.
• New:**Library** — Remove from Roll…, Move to Trash… and Show in Folder in the Film Strip, Sequence for running frame numbers that can skip rejected frames, and Load Metadata for work prints. @thetalkingdrum @kurtwindisch @red-prs
• New:**Scanning** — nkscan 0.14.X cuts frames and nudges from the thumbnail as Nikon Scan does, polls for film, keeps one session per scanner and writes the scanner's color profile and resolution into the TIFF; Keep Light On holds the Scanlight lit between frames, and Capture Delay holds Scan and Retake so |
| 0.64.0 | 11 ตุลาคม 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.64.0
• New:**Expanded Analysis** — Waveform and Vectorscope views beside the Curve chart, a Clipping Overlay, zone strip hover that highlights the zone's pixels, a double-click on the zone strip toggles the Zone Overlay, and the step wedge prints through alt process and toning.
• New:**Darkroom printing** — Sabattier as a third Alternative Process (Strength, Re-exposure, Agitation for the Mackie lines), Local Flash on a Dodge & Burn mask, and a Diffusion slider on the Tone card. @jondestoppeleire
• New:**Auto Grade Shadow Hold** — lifts shadows on contrasty frames, and Auto Density and Auto Grade show their values on the sliders.
• New:**Camera scanning** — live view histogram and clipping zebras, Meter sets the shutter from one RAW probe, single-capture narrowband scanning that saves a sensor profile, a profile captured straight from the tethered camera, a Method choice for the sensor calibration against blown blues, and a New Roll button. @jondestoppeleire @seanharding @thetalkingdrum
• New:**Check Flat Field** — shows how even a flat field is from any frame, and saving warns when the reference is clipped or uneven. @thetalkingdrum
• New:**Export** — a Sharpening slider that runs at the final size after a resize, and White Paper and Film Base options that print the contact sheet with less ink. @seanharding @jondestoppeleire
• New:**Workflow** — Paste to every selected frame, Copy Card Settings, Undo Apply to Roll, Unmarked Only and Advance After Marking for triage, Load Edit from Sidecar…, a 1:1.4142 (ISO A) ratio, and a Color vision setting in Preferences → Accessibility.
• New:**Catalogs** — every current film stock under Kodak's 2026 names, Hasselblad V, Nikonos and Nikon AF gear, five more crosstalk matrices, and Panasonic RW2 embedded lens correction. @jondestoppeleire @red-prs
• Change:**Auto Crop** — a roll setting on the Crop card with Frame/Roll scope, mirrored on Geometry; Roll asks before a push changes it for other frames, hand-drawn crops stay out of it, and Square Before Crop runs the Auto Skew fit first. @kurtwindisch @jondestoppeleire
• Change:**Interface pass** — a canvas toolbar with zoom, Print and Overlays menus and a tool row while a tool is armed; segmented choices, Paper Response as its own card, panels that compact instead of clipping, and tooltips on every control.
• Fix:**Export safety** — an export never overwrites its source or another frame, unedited and border-crushed frames are flagged, and one failed file no longer stops a batch. @jondestoppeleire
• Fix:**Sidecars** — edits restore reliably from .negpy sidecars in the Film Strip and batch export, and a fork's or composite's edit stays out of the shared sidecar.
• Fix:**Flat Field and peeks** — the gain follows each frame's orientation, half frames take their own half, Auto Crop and Roll Analysis read the flat-fielded source, and an edit, frame change or rotation closes every peek. @thetalkingdrum
• Fix:**GPU and CPU match** — border color, tiled paper white, warped-crop metering, Hue Trim on slides, split-toning masks, Chroma Denoise tiles and slide Shadow Reach on export; Dodge & Burn grays out on slides.
• Fix:**Scanning** — Coolscan single-frame adapters, Output folder and file-pattern checks, a busy scanner on Meter Frame, typed Resolution without Enter, and film re-measured after a format change.
• Fix:**File loading** — palette, MinIsWhite, CMYK, planar and two-sample gray TIFFs, LogLuv, CR3/RAF orientation, oversized TIFF and Nikon Scan thumbnails, and NegPy's own ICC profiles on reload.
• Fix:**Editing** — brush and mask sizes against the whole frame, off-frame mask points kept, crop resets as undo steps, Crop Offset clamped, and forked frames and renamed roll folders keep their edits.
• Fix:**Library and canvas** — brush size kept from frame to frame, a sharp canvas after a screen change, roll counts show photos, dot-prefixed files are skipped, and Cast Removal holds on a mixed neutral set. @s6stkurz @jondestoppeleire @seanhardi |
| 0.63.0 | 4 ตุลาคม 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.63.0
• New:**Retouch Clone tool** — Alt-click sets a source, and painting copies it with an aligned offset; the heal tool stays fast as strokes add up. @PabloRuizCuevas
• New:**Darkroom contact sheet** — the roll printed as film strips 1:1 on Ilford paper, with rebate, edge print and an optional Straight Proof; replaces the pixel-grid templates. @s6stkurz
• New:**Merge to TIFF Negative** — a trichrome triplet or stitch becomes one 16-bit linear TIFF that keeps its edit. @kurtwindisch
• New:**Geometry tools** — Auto Skew squares the frame to its film edges, and the Tilt and Swing tool solves keystone from four marked edges. @jondestoppeleire @matthoosier
• New:**Canvas panning** — Space + left-drag pans, and drags auto-pan at the edge of a zoomed image. @matthoosier
• New:**Scan as Roll** — scans open as a Library roll and frames load as they land; Folder as Roll scans straight into a roll folder.
• New:**Interactive tour** — chaptered, with steps that wait for you to act and a demo negative.
• New:**Scanning additions** — live view focus meter and frame border @seanharding; Eject When Done, nkscan debug log and strip offset markers @thetalkingdrum.
• New:**Menu additions** — Close Roll in the Library and Film Strip menus, and frame resets in the canvas menu. @thetalkingdrum
• Change:**Optical Removal hair detection** — Hair Threshold is a separate slider from Spot Threshold and rises along tonal edges, so bright rims are no longer taken for hairs; Size goes down to 2 px.
• Change:**Update Thumbnails renders only stale frames**, with progress and time left. @thetalkingdrum
• Change:**Linear Output can apply lens correction.** @thetalkingdrum
• Change:**UI polish** — right-aligned slider labels, toggles in place of Export's checkboxes, the wheel never edits a box, and dialogs remember their size and position. @s6stkurz
• Change:**Trichrome Mode is remembered per roll.** @thetalkingdrum
• Change/Fix:**ISO-R Grade defaults to 115 R everywhere**, and Crosstalk Strength to 0. @kurtwindisch
• Fix:**Geometry** — Half Frame splits along the detected axis, Tilt and Swing follow a turn or flip, embedded lens correction fills the frame, and the crop view leaves out the border and keeps negative peek. @jondestoppeleire @thetalkingdrum @matthoosier
• Fix:**Responsiveness and display** — a click never waits behind a prefetch, one click closes a dropdown, the canvas overlay is color-managed on GPU, and X-Trans camera-WB previews decode at full size. @jondestoppeleire @thetalkingdrum
• Fix:**Camera Scanning** — Live View keys work on macOS and in floating windows, and lossy raws are not read as clipped. @kurtwindisch @seanharding
• Fix:**Library and resets** — Roll Settings scopes and filters, crop defaults on a fresh frame, card resets that cleared the scanning setup, and settings lost on an empty Film Strip. @kurtwindisch |
| 0.62.0 | 26 กันยายน 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.62.0
• Change:**major UX pass**
• **Find** — Ctrl+K or the Controls panel's title box reaches every slider, card and action by name or by a common synonym ("contrast" finds ISO-R Grade); a slider hit is a live control.
• **Light Table** — Shift+G shows the roll as a grid across the whole window.
• **Reference view** — Shift+R pins a frame beside the canvas to match the roll to it; Draw Region moves to Ctrl+R.
• **Compact panels** — sliders are one row (label, track, value) with values always shown, and a slider's modifiers sit under it behind a rail; a row of either-or buttons becomes one dropdown, and small tools sit on the section headers. Cast Removal moves to the Roll tab's Calibration card, Protect Original Metadata to the Metadata tab, and Tone's auto helpers into one Auto menu; Sync Metadata to Batch, Filtration's Roll Lock and the Show slider values preference are retired.
• **Labeled tabs** — tabs carry text labels, and the Color tab is now Look.
• **More room for the canvas** — the logo header is gone (About and updates are in the ⋯ menu), and Shift+H hides both side panels.
• **Edit Toolbar** can place the actions that were only in the ⋯ menu.
• New:**Preflash** — a uniform paper pre-exposure in the print curve that lifts highlights near the paper's threshold and leaves the rest; print only.
• New:**Single-edge crop handles** — drag one side of the crop at a time. @matthoosier
• New:**Plustek Multi-Pass scanning** — a Scan mode combo (Single-Pass, Multi-Pass, Adaptive Multi-Exposure, Adaptive Multi-Pass) with a Passes slider stacks repeated exposures for less noise; not with IR. @TobbyTravel
• New:**Hide the GPU memory warning** — a Preferences → Performance option; the warning no longer shows on CPU renders. @kurtwindisch
• Change:**Filed carrier rebate** — the rebate prints through the frame's curves and filtration, the edge is filed in straight strokes with nicks near the corners, the film sits off center in the aperture, and flare takes the paper's toe color.
• Change:**More Pakon and Noritsu scan sizes** — Pakon TLX dimensions are read from the file header; four more 5028-high Noritsu sizes are recognized. @thetalkingdrum
• Change:**Crash reports go to negpy.log** — `~/negpy_boot.log` is gone. @seanharding
• Fix:**Stitch cuts a seam through the overlap** — detail the alignment cannot match is no longer doubled. @kurtwindisch
• Fix:**Slide fixes** — a Flat export of a raw slide gets no second white balance, Zone placement is off on an as-captured slide, the Half Frame dialog shows a slide as a positive, and Before resets to the shipped defaults.
• Fix:**Dye Separation on saturated slide colors** — a clipped channel no longer speckles a blue sky. @thetalkingdrum
• Fix:**Half Frame scans with a detected rebate** — Auto-detect All Splits no longer breaks thumbnails, export and the Half Frame dialog; affected scans are repaired. @thetalkingdrum
• Fix:**Editing a Roll-tab card on an empty roll no longer crashes.** @kurtwindisch |
| 0.61.0 | 25 กันยายน 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.61.0
• New:**Nested roll discovery** — Import Subfolders as Rolls finds roll folders at any depth and shows them in a tree under their parent folders; Refresh finds new folders and marks rolls whose folder is gone; Discovery Filters (default `export`) skip folders by name; a folder with no images of its own imports its subfolders.
• New:**Sort the Film Strip by scene** — each scene's frames form their own block on a band in the scene's color, and Show Scenes edges each frame in its scene color. @s6stkurz
• New:**Exposure lock for nkscan roll scanning** — Meter Frame… on the Scan panel fixes the exposure for every frame of a roll, so frames at the strip ends match the rest; needs nkscan 0.12, which also retries an incomplete frame pass.
• Fix:**HQ preview and export of a large slide match the preview** — the transfer curve is metered the same way in tiled renders. @thetalkingdrum |
| 0.59.0 | 14 กันยายน 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.59.0
• New:**Per-frame registration in the Coolscan strip preview** — every frame tile gets its own offset slider on top of the roll-wide Offset and Drift, for a splice or a mis-fired advance; tiles gain a size slider, the detected boundary is outlined in the accent color, a measured strip finds its frames as the dialog opens, and a moved offset re-cuts the tile. Needs nkscan 0.11.0, which also fixes tile pitch and low-DPI scans on the LS-5000.
• New:**TIFF (mono) scan format** — one 16-bit gray plane for single-record film, a third the size; NegPy reads its own mono scans back.
• New:**Positive** — a Process toggle beside Normalize for a source that is already a finished positive: it decodes the file's own profile and skips the as-captured lift and highlight roll-off. @PabloRuizCuevas
• New:**Per-frame half-frame splits** — a scan can use its own detected gutter or a hand-set one, applied to the current, selected or all frames; heal strokes, spots, lines and masks re-anchor across a split or crop change. @PabloRuizCuevas
• New:**Peek Embedded Preview** — the camera's own JPEG of the capture, as an outside reference for the decode; every peek now badges the canvas, checks in the menu, and leaves with Esc. @seanharding
• New:**Per-mask enable/disable** — click a mask's shape icon in Dodge & Burn to suppress it without deleting it; the tint overlay and Printing Notes skip it. @thetalkingdrum
• Change:**DNG scan output retired** — scans write TIFF; reading LinearRaw DNGs is unchanged.
• Change:**UI consistency pass** — toasts colored by severity and a failed export no longer blanks the canvas, a GPU viewport that fails to start says so and falls back to CPU, dock layout and active tab survive a restart, one Enter target per dialog, one section factory with a ⓘ guide, every color and size from the theme, one spelling and casing scheme, and the keyboard docs and tutorial read the shortcut registry.
• Change:**Fast interactive geometry drags** — fine rotation, keystone and the crop tool no longer drop to the CPU engine or re-measure the frame per step. @PabloRuizCuevas
• Change:**Painted heal strokes bake incrementally** — a new stroke no longer re-runs every earlier one. @PabloRuizCuevas
• Change:**Lower memory for Linear DNG decoding and CPU export.** @hsnilsson
• Fix:**Optical Removal's Threshold reaches past 12σ** — the top of the slider now runs to 48σ, where a specular highlight or a rail edge sits, so those can be gated out; a setting at or below the default renders as before.
• Fix:**Stale Narrowband flag tinted a slide green** — the flag is now inert on a transparency everywhere. @seanharding
• Fix:**Peek Negative renders the way the negative looks** — as-shot multipliers fold in and the view gets a brightness level, so an orange mask reads as one. @seanharding
• Fix:**Linear Output records the demosaic algorithm it ran.** @thetalkingdrum
• Fix:**Arrow keys step a slider by its declared step** — fractional sliders moved by 1/precision, so a Grade press moved 0.01 ISO-R. @PabloRuizCuevas
• Fix:**No traceback while dragging Border Width** — a retired texture could be drawn from between frames. @dtrtuser
• Fix:**Filename and contact-sheet path fields keep the cursor while typing.** @TobbyTravel
• Fix:**Scanlight v4b recognized** — the newer v4 PCB has white LEDs, so the W slider and the White Light preset work. @ianfyffe
• Fix:**JPEG exports with GPS or PrintImageMatching tags are readable** — high-numbered camera tags broke IFD0 order and the dates and coordinates after it. @jihorba
• Fix:**Exported files carry the source's filesystem dates** — mtime, and the creation date on macOS. @jihorba |
| 0.58.0 | 6 กันยายน 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.58.0
• New:**Print tone grounded in the photofinishing literature** — the default print envelope, Auto Grade and Auto Density were retuned against published preferred-reproduction data; both meters now read textured parts of the frame only, so rebate, sky and flat walls no longer set grade or exposure. **Retune your Auto Grade and Auto Density targets** — existing frames on the automatic helpers will print differently.
• New:**Shadow Reach and Highlight Hold** — two Set Targets tunables that place the ends of the print automatically: the darkest textured tone is held to a minimum print density, and the brightest gets an automatic highlight burn so it keeps tone instead of going paper white. Either can be turned off with 0.
• New:**Low VRAM export tiling** — a Preferences option (Performance) that halves the tile size and drops readback pipelining for tiled exports, for integrated GPUs that ran out of shared memory mid-export. @TobbyTravel
• New:**Windows startup falls back to a writable data folder** — when the default data folder is blocked, a dialog offers Local AppData or lets you pick another folder; nothing is copied, the choice is remembered. @hsnilsson
• Change:**Optical Removal rebuilt** — the detector was measured against the IR channel and rewritten: a local-noise threshold instead of an absolute one, min-pooled detection at full detail, and seed-and-grow so a mark covers the whole speck and a hair joins into one piece. It now finds many times more of what IR sees; on strongly textured film some marks are given up to protect image detail.
• Change:**Sharpening rolls off in the deep shadows** — both sharpen methods reduce gain toward paper black, where grain is coarsest relative to detail.
• Change:**Faster startup, navigation and export** — the first render and window build are quicker, switching files no longer stalls the interface, and tiled export, 16-bit TIFF encoding and the IR/dust bakes are several times faster. An export after a full-resolution preview reuses that preview's detection and repair work.
• Change:**Brighter interface text** — every text color moved a step brighter, disabled text most of all, and the stylesheet now takes its colors from the theme instead of its own copies.
• Fix:**Printability read-out with a source-only input ICC** — narrowband scans with soft proof on lost the read-out and logged an error.
• Fix:**Toggle buttons no longer draw a focus outline.**
• Fix:**Two film or sensor profiles with similar names** — "Portra 400" and "Portra-400" resolved to the same file, so saving one destroyed the other. @MohammedAlkindi
• Fix:**Batch progress during Hot Folder** — a manual Add Files or Add Folder import ran with no progress dialog while the Hot Folder toggle was on. @MohammedAlkindi
• Fix:**GPS coordinates in exported metadata** — rounded seconds and minutes now carry into minutes and degrees. @MohammedAlkindi
• Fix:**File sizes pick the right unit** — a size just under a threshold showed as "1024.0 KB". @MohammedAlkindi
• Fix:**Startup no longer flashes small unparented windows** — toolbar, scan light and section-help widgets parent correctly before showing. @hsnilsson
• Fix:**Optional inter-exposure delay for trichrome capture** — some older USB/PTP cameras need a pause between red/green/blue captures; default stays zero. @matthoosier |
| 0.57.0 | 31 สิงหาคม 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.57.0
• New:**Demosaic panel** — pick the CFA interpolation for preview and export separately, under Calibration; the list is built from what your libraw build supports and Auto keeps the previous behavior.
• New:**Soft Proof section on the Export tab** — printer and paper presets, rendering intent, black point compensation, simulate paper white and simulate ink black, a gamut warning, and the monitor profile; the proof profile follows the Export profile or can be set on its own, so you can proof a print while exporting a web JPEG.
• New:**Printability and Repair read-outs in Analysis** — the share of the frame the proof profile cannot print, and the share of the scan each repair route (IR, dust, painted) rewrote.
• New:**Cast Removal on transparencies** — the slider now works on slides, for faded E-6 originals with a shadow/highlight crossover; slides start at 0, negatives at 0.5.
• New:**Scanners reach their native per-axis resolution** — DPI values a device offers only on x are now usable, with y resampled up after the read; IR capture still refuses a DPI that needs resampling. @dtrtuser
• Change:**Lens distortion is a per-image control** — moved out of the flat-field profile into Alignment beside Tilt and Swing, so a rig with no profile can use it; finer 0.001 steps over ±0.10.
• Change:**UI consistency pass** — one font scale, readable hint text, one control family and one button width across the panels, radio buttons and a focus ring in dialogs, and one Enter target per dialog footer; Flat Field is rebuilt on the shared panel layout and the Calibration and Flat Field resets are connected.
• Fix:**Trichrome triplets assemble reliably** — frame agreement is scored in density rather than linear levels, so exposures several stops apart are no longer refused; a restored session groups the files it left loose, and a capture hands its own three exposures to discovery, so a frame with no detail in it still stacks. @seanharding
• Fix:**Plustek multi-exposure scan alignment** — pyOpticfilm updated to 1.3.3. @jboneng
• Fix:**Hot folder no longer re-imports open files on Windows** — paths were compared raw, so a different separator or letter case read as a new file. @MohammedAlkindi
• Fix:**`path:` search queries match on Windows** — backslashes were stripped as escapes before the matcher saw them, so a documented query returned nothing. @MohammedAlkindi |
| 0.56.0 | 29 สิงหาคม 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.56.0
• New:**One Export profile control** — color spaces and imported ICC profiles in a single combo, so the ICC can no longer silently override a live-looking color-space choice; Import ICC copies a profile into `~/NegPy/icc` with no restart, Same as Source names the space it resolves to, and Soft Proof with its warning moves beside the profile it describes.
• New:**TIFF, PNG and JPEG export options** — Bit Depth (8/16, for TIFF, PNG and JXL), TIFF Compression (Uncompressed/LZW/ZIP), PNG Compression (0-9) and JPEG Progressive; JPEG optimize is always on. RGB PNG now exports 16-bit by default.
• Change:**Plustek backend updated to pyOpticfilm 1.3.** @jboneng
• Fix:**Flatbed scanners switch to their transparency source before scanning** — a flatbed+TPU device ran every film scan in reflective mode with the lamp off, and probed its geometry against the flatbed area, so crops and requested DPI landed wrong. @dtrtuser
• Fix:**Slide with an Input ICC no longer corrects primaries twice** — an active Input ICC replaces the raw's embedded camera matrix instead of stacking on it, matching negatives and narrowband. @thetalkingdrum
• Fix:**Linear Output white balance on 3-color CFA sensors** — a missing second green multiplier (X-Trans and similar) doubled the red and blue gains and cast exports magenta. @thetalkingdrum
• Fix:**HQ preview no longer crashes on integrated GPUs** — a large scan was handed to the GPU with no size budget; integrated adapters get a conservative cap and downsample with a status message instead. @TobbyTravel
• Fix:**Enter stays on Scan in the live-view popup** — pressing Retake once made Enter keep retaking. @TobbyTravel
• Fix:**Copy Settings + Bounds pastes its bounds** — the per-frame floors, ceils and lock state never reached the target and a pasted bounds field wiped the target's own; the paste picker now lists them as "Normalization bounds". |
| 0.55.0 | 28 สิงหาคม 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.55.0
• New:**Nikon Coolscan scanning through nkscan** — drives a Coolscan directly instead of through SANE: frame rectangles measured off the film in one pass, a native IR pass, native eject and the driver's own "ICE" dust removal, Samples, Superfine, Film type and Film format controls gated on what the unit advertises.
• New:**OpticFilm 8100 V2 support** — the Scan tab is no longer pinned to the 8200i SE; controls follow each device, with multi-exposure on both and no IR channel on the 8100 V2. @TobbyTravel
• Change:**GPU frames and tiled exports do less host work** — the meter reuses its prefiltered grid instead of re-partitioning it, and the paper buffer is skipped when there is no border to draw. Export bytes are unchanged.
• Change:**Plustek Scan tab hides controls the pyopticfilm backend does not use.** @jboneng
• Fix:**Camera connection no longer segfaults on unpopulated gphoto2 widgets** — a NULL value returned for a widget crashed the app. @fivedots
• Fix:**Exports tag an absolute resolution** — TIFF and PNG read as 1 DPI in Preview and fell back to 72 in Photoshop; every format now tags the DPI its own long edge implies, and both metadata rewrite paths carry it through. @Icodextrin
• Fix:**Linear Output no longer crashes on a camera DNG** — a stale early branch also skipped RGB triplets, flat-field, sensor correction and white balance. @Icodextrin
• Fix:**Stale source-camera EXIF is stripped on export** — a camera's own ColorSpace tag and its source-relative preview pointers contradicted the file's real color tag, making strict readers report the export untagged and refuse to preview it. @thetalkingdrum
• Fix:**Batch Analysis measures the assembled composite** — an RGB triplet or an HDR merge was measured on one exposure alone, which inverted the other channels to black and left a solid red roll. @seanharding
• Fix:**Camera scanning keeps the PTP claim its identify probe wins** — releasing it let macOS's camera daemon take the interface for minutes, so the next live view or scan was refused; transient open failures are retried instead of reported. @light-sntchr
• Fix:**The canvas HUD no longer lags one edit behind** — pills drawn from the config, such as the export color space, updated only on the next history-recording edit. @seanharding
• Fix:**The Film Strip says when a filter, not a load failure, emptied it** — a persisted Sheet filter that matched nothing left a blank strip under a full frame count; the tally now reads "0 of 36 frames · Keepers filter". @seanharding
• Fix:**The H&D chart no longer resizes on hover** — the probe row grew with a taller fallback font and took the pixels out of the chart. |
| 0.54.0 | 22 สิงหาคม 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.54.0
• New:**Metadata presets** — save any set of metadata fields as a named preset and apply it from the Metadata panel; gear presets are replaced and convert automatically, and a preset's values are editable in the library. @Icodextrin
• New:**Development process and scan setup libraries** — saved recipes (developer, dilution, push/pull, time, temperature) and scan setups sit beside cameras, lenses and film stocks; the new fields reach XMP, EXIF, the metadata preview, filename templates and search as `devtime:`, `temp:` and `dilution:`. @Icodextrin
• New:**Preferences dialog** — app-wide settings in one place (⋯ menu, Ctrl+, or the macOS application menu), in three sections: Interface, Performance, and Session & Storage; nine `override.toml` keys gain a UI, and a key the file pins greys out its row and says so.
• Change:**Narrowband capture modes renamed** — Narrowband Scanner, Trichrome and Single-Shot Narrowband replace "RGB Scan", "true RGB scan" and "Trichrome Calibration" across the UI and the docs. @thetalkingdrum
• Change:**Modeless windows stay above the main window on macOS** — the export progress window, the crosstalk and exposure target editors and the Scanlight windows can no longer be buried. @seanharding
• Fix:**Shortcut labels use the platform's own notation** — macOS menus, tooltips and shortcut lists show ⌘C rather than Ctrl+C, and a rebound action shows its own key instead of the default. @seanharding
• Fix:**1:1 zoom no longer upscales the preview** — the layout pass stretched a preview decoded below the render size, so 100% was not one scan pixel per device pixel; cropped frames and a raised `preview_render_size` were worst hit. @seanharding
• Fix:**Trichrome exposures decode at a neutral white balance** — three unrelated as-shot gains were tinting the assembled image; Linear RAW is now locked for a triplet, where it has no effect. @thetalkingdrum
• Fix:**Camera white balance is never folded into a narrowband capture matrix** — Negative Peek, the CPU transparency-transfer stage and the GPU shader all follow the same rule. @thetalkingdrum
• Fix:**Apply white balance greyed for Trichrome and Single-Shot Narrowband** — a narrowband capture has no broadband scene for as-shot gains to describe, so the Linear Output bake is inert. @thetalkingdrum |
| 0.53.0 | 21 สิงหาคม 2569 | — | 64 บิต EXE (NSIS) บันทึกประจำรุ่น## 0.53.0
• New:**Capture date and place** — a Metadata panel card for when and where a frame was shot, with a map picker; searchable as `shot:` and `place:`.
• New:**Peek Negative** — view the negative as loaded, un-inverted and un-toned, to judge exposure or color cast before any edits; color-managed so the orange mask reads correctly, and the density histogram splits into R/G/B and luminance while peeking. @seanharding @thetalkingdrum
• New:**NegPy gets a macOS menu bar** — Window (minimize, zoom, close, window list) and Help (tour, shortcuts, guide, update check, report an issue). @seanharding
• New:**Choose what sits on the toolbar** — drag to reorder the toolbar and the Favourites pickers, plus an Edit Toolbar… entry.
• New:**Mask tint steps aside while you adjust it** — Burn, Feather and Grade sliders are no longer judged through the tint overlay; overlapping masks fade too. @Icodextrin
• New:**Preview resolution is configurable** — `preview_render_size` under `[performance]` in `override.toml` sets the interactive preview's long edge, between the 1600 px default and a full HQ decode.
• New:**Single-shot scan preview** for scanners with no motorized frame feed (Plustek and similar) — a lightweight preview-and-crop dialog before the full scan. @cymbal221
• Change:**Export and preview performance** — batch export overlaps decode, render and encode across files instead of running them strictly in sequence; slider drags on Process and Sensor, and other worst-case interactions, no longer pay settled-frame cost.
• Change:**Canvas zoom reads real scan pixels** — 100% now means one scan pixel per screen pixel in every mode, and a HUD pill flags when 100% is showing an upscaled preview. @seanharding
• Change:**Save Edits action removed** — edits already autosave on every change, so the explicit command was redundant. @seanharding
• Fix:**Auto Crop and Batch Autocrop fixed across seven edge cases** — dark subjects, portrait frames in a batch run, slides with true-black shadows, RGB triplets and rolls with no bed to detect all crop correctly now. @seanharding
• Fix:**Exports round to the nearest level instead of truncating** — every export, and the canvas itself, was up to half a level too dark. @seanharding
• Fix:**RGB triplets group correctly regardless of filename order** — captures are grouped and verified by capture order and scene content, not filename sort, and a folder that assembles nothing now says why. @seanharding
• Fix:**Matrix/TRC ICC input profiles no longer double-apply their tone curve** — the bypass gate never fired, and the primaries transform is now built and applied correctly for D50-, D60- and D65-native profiles alike. @thetalkingdrum
• Fix:**ETTR clipping no longer trusts a generic sensor white level** — camera-scan calibration used a camera's published ADC ceiling instead of its calibrated one, letting a saturated channel read as clean. @light-sntchr
• Fix:**A stitch or an HDR merge survives a folder switch** — composite membership is now stored independently of the open-file list. @seanharding
• Fix:**Metadata is carried into every export format** — JPEG XL and WebP previously dropped every field; punctuation NegPy writes now survives EXIF's 7-bit limit, and a JPEG XL source's own metadata is read correctly. @Icodextrin
• Fix:**Linear Output's triplet merge is clamped before it can overshoot** — ringing from the alignment warp could push values past 1.0 uncaught in the float32 decode path.
• Fix:**Linux app icon resolves correctly** — follows the AppImage icon-theme spec, and fixes the taskbar icon under Wayland compositors. @kinnajowa
• Fix:**EXIF parsing no longer runs inside a `finally` block** — a malformed block silently returned empty metadata instead of surfacing the real error. @MohammedAlkindi
• Fix:**IR TIFF sidecar description no longer carries the source filename.** @MohammedAlkindi |
| 0.52.0 | 18 สิงหาคม 2569 | — | 64 บิต EXE (NSIS) |
| 0.36.0 | 11 กรกฎาคม 2569 | — | 64 บิต EXE (NSIS) |