| Name | Modified | Size | Downloads / 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
- π model: Add SuperADD VAND4.0 winning method by @alexriedel1 in https://github.com/open-edge-platform/anomalib/pull/3628
- π data: Add AutoVI Dataset by @julie-bat in https://github.com/open-edge-platform/anomalib/pull/3633
Removed
- β οΈ data: Remove Kaputt deprecated APIs (
use_reference,reference_only,category='all'); useimage_mode=ImageMode.*andcategory=None/ a concrete category (defaultbook_other) instead - β οΈ metric: Remove deprecated AUPRO
num_thresholdsconstructor argument and unusedcompute_pro(..., target=...)parameter - β οΈ utils: Remove temporary
resolve_with_warning/_is_legacy_default_roothelpers; useresolve_dataset_rootinstead
Changed
- π§ data: Kaputt datamodule default
categoryis nowbook_other(was the deprecatedallpseudo-category)
Fixed
- π data: Distribute split remainder over subsets to avoid ZeroDivisionError by @prawnsgupta in https://github.com/open-edge-platform/anomalib/pull/3680
- π security: Fix path traversal by @AlexanderBarabanov in https://github.com/open-edge-platform/anomalib/pull/3686
- π§ deps: Bump
torchto resolve Dependabot alerts by @AlexanderBarabanov in https://github.com/open-edge-platform/anomalib/pull/3681
New Contributors
- @prawnsgupta made their first contribution in https://github.com/open-edge-platform/anomalib/pull/3680
- @julie-bat made their first contribution in https://github.com/open-edge-platform/anomalib/pull/3633
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
- chore(lib): bump version by @ashwinvaidya17 in https://github.com/open-edge-platform/anomalib/pull/3677
- chore(deps): update python:3.13-slim docker digest to 6771159 by @oep-renovate[bot] in https://github.com/open-edge-platform/anomalib/pull/3678
- fix(deps): bump
torchto resolve Dependabot alerts (v2) by @AlexanderBarabanov in https://github.com/open-edge-platform/anomalib/pull/3681 - chore(deps): update dependency js-yaml to v4.3.0 [security] by @oep-renovate[bot] in https://github.com/open-edge-platform/anomalib/pull/3682
- π fix(data): distribute split remainder over subsets to avoid ZeroDivisionError by @prawnsgupta in https://github.com/open-edge-platform/anomalib/pull/3680
- ci: Add cleanup old images workflow by @ivanzati in https://github.com/open-edge-platform/anomalib/pull/3683
- chore(deps): update dependency dompurify to v3.4.12 [security] by @oep-renovate[bot] in https://github.com/open-edge-platform/anomalib/pull/3685
- chore(ci): add temp guard to prevent some Dependabot alerts from reopening by @AlexanderBarabanov in https://github.com/open-edge-platform/anomalib/pull/3684
- fix: path traversal by @AlexanderBarabanov in https://github.com/open-edge-platform/anomalib/pull/3686
- feat(lib): merge 2.6.0 branch by @ashwinvaidya17 in https://github.com/open-edge-platform/anomalib/pull/3694
New Contributors
- @prawnsgupta made their first contribution in https://github.com/open-edge-platform/anomalib/pull/3680
Full Changelog: https://github.com/open-edge-platform/anomalib/compare/lib/v2.5.1...lib/v2.6.0