Download Latest Version Release Anomalib Library v2.6.0 source code.zip (22.4 MB)
Email in envelope

Get an email when there's a new version of Anomalib

Home / lib_v2.6.0
Name Modified Size InfoDownloads / Week
Parent folder
anomalib-2.6.0-py3-none-any.whl 2026-07-25 1.0 MB
anomalib-2.6.0-py3-none-any.whl.publish.attestation 2026-07-25 10.1 kB
anomalib-2.6.0.tar.gz 2026-07-25 711.7 kB
anomalib-2.6.0.tar.gz.publish.attestation 2026-07-25 10.2 kB
README.md 2026-07-24 8.1 kB
Release Anomalib Library v2.6.0 source code.tar.gz 2026-07-24 21.4 MB
Release Anomalib Library v2.6.0 source code.zip 2026-07-24 22.4 MB
Totals: 7 Items   45.6 MB 0

What's Changed

Added

Removed

  • ⚠️ data: Remove Kaputt deprecated APIs (use_reference, reference_only, category='all'); use image_mode=ImageMode.* and category=None / a concrete category (default book_other) instead
  • ⚠️ metric: Remove deprecated AUPRO num_thresholds constructor argument and unused compute_pro(..., target=...) parameter
  • ⚠️ utils: Remove temporary resolve_with_warning / _is_legacy_default_root helpers; use resolve_dataset_root instead

Changed

  • πŸ”§ data: Kaputt datamodule default category is now book_other (was the deprecated all pseudo-category)

Fixed

New Contributors

Full Changelog: https://github.com/open-edge-platform/anomalib/compare/lib/v2.5.1...lib/v2.6.0


API Changes

New Public Exports

The following class is now exported from anomalib.models:

Class Module Path
SuperADD anomalib.models.image.super_add
:::python
from anomalib.data import MVTecAD2
from anomalib.engine import Engine
from anomalib.models import SuperADD

datamodule = MVTecAD2(category="sheet_metal")
model = SuperADD(patch_size=640, patch_overlap=128)
engine = Engine()
engine.fit(model=model, datamodule=datamodule)

The following classes are now exported from anomalib.data:

Class Module Path
AutoVI anomalib.data.datamodules.image.autovi
AutoVIDataset anomalib.data.datasets.image.autovi
:::python
from anomalib.data import AutoVI

datamodule = AutoVI(
    root="./datasets/AutoVI",
    category="pipe_clip",
)
datamodule.prepare_data()  # downloads only the zip for `pipe_clip`
datamodule.setup()

Breaking Changes

These APIs were deprecated in prior releases and are removed in v2.6.0:

Removed API Replacement Since
Kaputt(category='all') category=None (all categories) or a concrete material (default is now book_other) v2.4.0
KaputtDataset(reference_only=...) image_mode=ImageMode.REFERENCE_ONLY v2.4.0
KaputtDataset(use_reference=...) image_mode=ImageMode.QUERY_AND_REFERENCE v2.4.0
AUPRO(num_thresholds=...) Omit the argument (it was ignored) v2.1.0
AUPRO.compute_pro(..., target=...) compute_pro(cca=..., preds=...) only v2.1.0
resolve_with_warning / _is_legacy_default_root resolve_dataset_root v2.4.x

Kaputt category and image mode

:::python
# Before (removed)
from anomalib.data import Kaputt

datamodule = Kaputt(category="all", use_reference=True)
datamodule = Kaputt(reference_only=True)

# After
from anomalib.data import Kaputt
from anomalib.data.datasets.image.kaputt import ImageMode

datamodule = Kaputt(category=None)  # all categories
datamodule = Kaputt()  # default category is now "book_other"
datamodule = Kaputt(image_mode=ImageMode.QUERY_AND_REFERENCE)
datamodule = Kaputt(image_mode=ImageMode.REFERENCE_ONLY)

:::python
# Before (removed)
from anomalib.data.datasets import KaputtDataset

dataset = KaputtDataset(use_reference=True)
dataset = KaputtDataset(reference_only=True)

# After
from anomalib.data.datasets import KaputtDataset
from anomalib.data.datasets.image.kaputt import ImageMode

dataset = KaputtDataset(image_mode=ImageMode.QUERY_AND_REFERENCE)
dataset = KaputtDataset(image_mode=ImageMode.REFERENCE_ONLY)

AUPRO

:::python
# Before (removed)
from anomalib.metrics import AUPRO

metric = AUPRO(fpr_limit=0.3, num_thresholds=100)
fpr, pro = metric.compute_pro(cca=cca, preds=preds, target=masks)

# After
from anomalib.metrics import AUPRO

metric = AUPRO(fpr_limit=0.3)
fpr, pro = metric.compute_pro(cca=cca, preds=preds)

Dataset root resolution

:::python
# Before (removed)
from anomalib.utils.path import resolve_with_warning

root = resolve_with_warning("./datasets/MVTecAD", "MVTecAD")

# After
from anomalib.utils.path import resolve_dataset_root

root = resolve_dataset_root("./datasets/MVTecAD", "MVTecAD")
root = resolve_dataset_root(None, "MVTecAD")  # -> ~/.cache/anomalib/datasets/MVTecAD

Existing Deprecations (carried forward)

These were deprecated in prior releases and remain deprecated:

Deprecated API Replacement Since Removal Target
anomalib.models.components.dinov2 TimmFeatureExtractor v2.5.1 Future
Legacy ONNX exporter (dynamo=False) Dynamo exporter (dynamo=True) v2.5.1 v2.7.0
Engine.export(ov_args=...) Use ExportParameters directly v2.3.0 Future
PatchcoreTorchModel.compute_distance(embeddings=...) Default memory bank path v2.1.0 Future
:::python
# Prefer (current)
from anomalib.models.components.feature_extractors import TimmFeatureExtractor

extractor = TimmFeatureExtractor(
    backbone="vit_small_patch14_dinov2",
    layers=["blocks.2", "blocks.5", "blocks.8", "blocks.11"],
)

# Avoid (deprecated)
from anomalib.models.components import dinov2  # FutureWarning

# Prefer dynamo ONNX export
model.to_onnx(export_root="./exports", dynamo=True)

# Avoid legacy exporter (removed in v2.7.0)
model.to_onnx(export_root="./exports", dynamo=False)

What's Changed

New Contributors

Full Changelog: https://github.com/open-edge-platform/anomalib/compare/lib/v2.5.1...lib/v2.6.0

Source: README.md, updated 2026-07-24