Skip to content

pydfine

A batteries-included, config-first Python library for the D-FINE real-time object detector (Peterande/D-FINE, ICLR 2025 Spotlight), with an ultralytics-style developer experience.

Design goal: the entire model — backbone, encoder, decoder, losses, denoising, training, augmentation — is configured through typed Python parameters on one class (DFINEConfig). No YAML on the user path, no config-registry indirection, no torchrun incantations.

Install

pip install pydfine              # core (config + CLI, torch-free)
pip install pydfine[torch]       # + inference (model build + predict)
pip install pydfine[train]       # + training / COCO val
pip install pydfine[export]      # + ONNX export
pip install pydfine[track]       # + ByteTrack on predict_video

Quickstart

from dfine import DFINE

# Presets fill sensible defaults; every field is overridable inline.
model = DFINE(size="l", num_classes=80, device="cuda")

results = model.predict("street.jpg", conf=0.4)
results[0].save("out.jpg")

model.train(data="dataset/", epochs=72)   # fine-tune on a COCO dataset
metrics = model.val(data="dataset/")      # COCO metrics
model.export(format="onnx")               # deployable ONNX graph

Load released COCO weights in one line:

model = DFINE.from_pretrained("dfine-s")   # resolve + download + strict-load

CLI

dfine models                       # list presets + known checkpoints
dfine predict dfine-s img.jpg      # detect and save annotated output
dfine val dfine-l --data coco/     # COCO metrics
dfine train n --data coco/         # fine-tune
dfine export dfine-m               # ONNX
dfine convert yolo/ coco/          # YOLO dataset -> COCO layout

Learn more