diff --git a/include/aidge/utils/DynamicAttributes.hpp b/include/aidge/utils/DynamicAttributes.hpp
index cfacc6b3bd02040b4b7cabc776ed3779852f18fc..04ed58f7e636d6a0d528f1946ead110857312576 100644
--- a/include/aidge/utils/DynamicAttributes.hpp
+++ b/include/aidge/utils/DynamicAttributes.hpp
@@ -54,7 +54,18 @@ public:
     {
         mAnyCompare.emplace(std::make_pair<std::type_index, bool(*)(const future_std::any&, const future_std::any&)>(typeid(T),
             [](const future_std::any& lhs, const future_std::any& rhs) {
-                return (future_std::any_cast<T>(lhs) < future_std::any_cast<T>(rhs));
+#ifdef PYBIND
+                if (lhs.type() == typeid(py::object)) {
+                    return (future_std::any_cast<py::object>(lhs).cast<T>() < future_std::any_cast<T>(rhs));
+                }
+                else if (rhs.type() == typeid(py::object)) {
+                    return (future_std::any_cast<T>(lhs) < future_std::any_cast<py::object>(rhs).cast<T>());
+                }
+                else
+#endif
+                {
+                    return (future_std::any_cast<T>(lhs) < future_std::any_cast<T>(rhs));
+                }
             }));
 
         const auto dot = name.find('.');
@@ -94,7 +105,18 @@ public:
     {
         mAnyCompare.emplace(std::make_pair<std::type_index, bool(*)(const future_std::any&, const future_std::any&)>(typeid(T),
             [](const future_std::any& lhs, const future_std::any& rhs) {
-                return (future_std::any_cast<T>(lhs) < future_std::any_cast<T>(rhs));
+#ifdef PYBIND
+                if (lhs.type() == typeid(py::object)) {
+                    return (future_std::any_cast<py::object>(lhs).cast<T>() < future_std::any_cast<T>(rhs));
+                }
+                else if (rhs.type() == typeid(py::object)) {
+                    return (future_std::any_cast<T>(lhs) < future_std::any_cast<py::object>(rhs).cast<T>());
+                }
+                else
+#endif
+                {
+                    return (future_std::any_cast<T>(lhs) < future_std::any_cast<T>(rhs));
+                }
             }));
 
         const auto dot = name.find('.');