diff --git a/mhcflurry/train_allele_specific_models_command.py b/mhcflurry/train_allele_specific_models_command.py
index ce6231ab53f644b37e55a622027f3808e879f217..b09194aaf4d20810f7b41d0475baa5f1c0b5db26 100644
--- a/mhcflurry/train_allele_specific_models_command.py
+++ b/mhcflurry/train_allele_specific_models_command.py
@@ -275,7 +275,7 @@ def run(argv=sys.argv[1:]):
             results = (
                 calibrate_percentile_ranks(
                     allele=allele,
-                    predictor=predictor,
+                    predictor=args.out_model_dir,
                     peptides=encoded_peptides)
                 for allele in alleles)
         else:
@@ -383,6 +383,8 @@ def calibrate_percentile_ranks(allele, predictor, peptides=None):
     global GLOBAL_DATA
     if peptides is None:
         peptides = GLOBAL_DATA["calibration_peptides"]
+    if isinstance(predictor, str):
+        predictor = Class1AffinityPredictor.load(predictor)
     predictor.calibrate_percentile_ranks(
         peptides=peptides,
         alleles=[allele])