このページはまだ翻訳されていません — 英語版を表示しています。

FAQ

Common questions about OpenEnlarge, its inversion engine, and its tools — answered with links to the pages that go deeper.

Why density-domain inversion instead of just flipping a tone curve?

Inverting a negative by simply applying a tone curve in RGB space treats every channel as an independent brightness value — it cannot remove the orange mask, and it compresses or expands tonal range in ways that have no photographic basis. OpenEnlarge works in optical density: it samples the clear film edge to measure the orange base, divides that base out of each pixel channel by channel, and then converts the result to density using D = log₁₀(base / scan). Because density is logarithmic, equal slider steps correspond to equal photographic stops, and the mask removal is physically exact. The tone curve is then applied in this perceptually linear space rather than in arbitrary RGB. See the inversion pipeline and density & log space for a stage-by-stage breakdown.

My scan has a color cast — why, and how do I fix it?

The most common cause is an inaccurate film-base sample. The orange mask is not a fixed color — it varies by emulsion batch and development chemistry, and even a small error in the sampled base shifts every channel's density differently, producing a warm, cool, or cross-colored cast across the whole roll. The fix is to re-sample the base from a region of truly clear, unexposed film leader: open the Film base tool in the Roll tab or in the Basic panel, place the picker on the clear edge of the strip, and apply the new reading to the whole roll. Note that the Roll tab's Film base tool recalibrates the entire roll base; the Film-Edge Color swatch in the Basic panel overrides the base for that one image only. The second common cause is white balance: once the base is correct, use the Temperature and Tint sliders to remove any remaining color shift. See film-base calibration for a full explanation of how base sampling works and why the sample must come from clear leader.

IR dust removal vs the AI dust tools — which should I use?

Use IR removal whenever your scanner captured a dedicated infrared channel (Nikon Coolscan, Minolta Scan Multi with ICE, and similar). The infrared channel identifies dust and scratches with near-perfect accuracy because silver-halide grain is transparent to IR while dust scatters it strongly — the result is a clean mask that costs nothing in image quality. If your scan has no IR channel (most flatbed and DSLR scans), use the AI dust & hair removal tool, which runs an on-device machine-learning detector followed by MI-GAN inpainting. For isolated spots you can also paint them out manually with the Eraser brush. All three options run entirely on your machine. See Crop & dust for a full description of each tool and how to choose between them.

Why is AI Enhance "not faithful"? Is my image uploaded to the internet?

AI Enhance is fundamentally a creative tool, not a restoration tool: it sends your preview image to the OpenAI API and the model re-imagines the content to reduce noise and scratches. Because a generative model can invent detail that was not in the original scan, the result is not a pixel-faithful representation of the negative. It is the only place in OpenEnlarge where image data leaves your computer, and it requires your own OpenAI API key. By contrast, Tone Matching and Upscale both run entirely on-device — no image data is transmitted anywhere, and the results are deterministic. If privacy or fidelity matter, use the on-device tools. See AI tools for a full comparison of what each tool does and where it runs.

Does the exported file match what I see in the preview?

Yes. Export renders through the same pipeline as the live Frame preview: the same inversion math, the same tone curve, the same finish pass, applied to the full-resolution source. A dedicated offscreen renderer (the same WebGL shader used in the Frame viewport) runs the complete inversion and finish chain; the exported pixels are identical to what the preview shows at 1:1. If WebGL is unavailable or the image exceeds the GPU texture limit, the export falls back to a CPU path that runs the same calculations in Rust and produces the same result. The one exception is HDR export, which is a separate GPU path used only for HDR gain-map JPEG. See Export for details on format options, the GPU/CPU fallback, and how resolution caps are applied.

Per-roll vs per-frame film base — which does OpenEnlarge use?

OpenEnlarge uses a per-roll base by design, and computes it automatically. The orange mask is a property of the film emulsion and the development chemistry — it is the same across every frame on a strip. When you develop a roll, OpenEnlarge computes a single roll-wide base: the confidence-filtered per-channel median of each frame's auto-detected rebate. This base is stored as the folder default and every frame is seeded against it, so no manual sampling step is required. Existing rolls that have no stored base are migrated automatically on first open. If the automatic base is off, use the Roll tab's Film base reference-edit mode to recalibrate the whole roll from a region of clear leader. You can also override the base for an individual frame in the Basic panel (Film-Edge Color swatch) — that override applies to that one image only and does not affect the roll base. See film-base calibration and the Roll tool for details.

What file formats can I import?

OpenEnlarge accepts JPG, JPEG, PNG, DNG, TIF, TIFF, RAF, RW2, NEF, ARW, CR2, CR3, 3FR, ORF, and RAW (all case-insensitive). Any file whose extension is not in this list is silently skipped during import. The most common workflow is to import multi-channel TIFFs produced by a dedicated film scanner, which may also carry an infrared plane used for dust removal. See the Library page for how importing works, how folders map to rolls, and how thumbnails are generated and kept up to date.

← Back to the docs home

OpenEnlarge — オープンソースのフィルムスキャン編集 · MITライセンス