diff --git a/clearml/backend_interface/task/models.py b/clearml/backend_interface/task/models.py
index dd406b94..6c19e963 100644
--- a/clearml/backend_interface/task/models.py
+++ b/clearml/backend_interface/task/models.py
@@ -80,19 +80,20 @@ class TaskModels(UserDict):
             except Exception:
                 pass
 
-        # remove duplicates and preserve order
-        input_models = OrderedDict(
-            (m_id, "Input Model #{}".format(i))
-            for i, m_id in enumerate(
-                filter(None, map(get_model, OrderedDict.fromkeys(parsed_ids)))
-            )
-        )
-
-        if not input_models and Session.check_min_api_version("2.13"):
-            # Only new 2.13 task.models.input in case we have no parsed models
+        # noinspection PyProtectedMember
+        if Session.check_min_api_version("2.13") and task._get_task_property(
+                "models.input", raise_on_error=False, log_on_error=False):
             input_models = OrderedDict(
                 (x.name, get_model(x.model)) for x in task.data.models.input
             )
+        else:
+            # remove duplicates and preserve order
+            input_models = OrderedDict(
+                ("Input Model #{}".format(i), a_model)
+                for i, a_model in enumerate(
+                    filter(None, map(get_model, OrderedDict.fromkeys(parsed_ids)))
+                )
+            )
 
         return ModelsList(input_models)