From 6764037101a5879879e5abd39bc183930502357e Mon Sep 17 00:00:00 2001 From: Sachin Prasad Date: Fri, 24 Oct 2025 12:08:58 -0700 Subject: [PATCH 1/6] add new Hub model API details --- scripts/hub_master.py | 182 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) diff --git a/scripts/hub_master.py b/scripts/hub_master.py index fc323ebe03..f55cdb04bd 100644 --- a/scripts/hub_master.py +++ b/scripts/hub_master.py @@ -739,6 +739,38 @@ }, ], }, + { + "path": "depth_anything/", + "title": "DepthAnything", + "toc": True, + "children": [ + { + "path": "depth_anything_image_converter", + "title": "DepthAnythingImageConverter", + "generate": [ + "keras_hub.layers.DepthAnythingImageConverter", + "keras_hub.layers.DepthAnythingImageConverter.from_preset", + ], + }, + { + "path": "depth_anything_backbone", + "title": "DepthAnythingBackbone model", + "generate": [ + "keras_hub.models.DepthAnythingBackbone", + "keras_hub.models.DepthAnythingBackbone.from_preset", + ], + }, + { + "path": "depth_anything_depth_estimator", + "title": "DepthAnythingDepthEstimator model", + "generate": [ + "keras_hub.models.DepthAnythingDepthEstimator", + "keras_hub.models.DepthAnythingDepthEstimator.from_preset", + "keras_hub.models.DepthAnythingImageToDepth.backbone", + ], + }, + ], + }, { "path": "dinov2/", "title": "DINOV2", @@ -1591,6 +1623,38 @@ }, ], }, + { + "path": "mobilenetv5/", + "title": "MobileNetV5", + "toc": True, + "children": [ + { + "path": "mobilenetv5_image_converter", + "title": "MobileNetV5ImageConverter", + "generate": [ + "keras_hub.layers.MobileNetV5ImageConverter", + "keras_hub.layers.MobileNetV5ImageConverter.from_preset", + ], + }, + { + "path": "mobilenetv5_backbone", + "title": "MobileNetV5Backbone model", + "generate": [ + "keras_hub.models.MobileNetV5Backbone", + "keras_hub.models.MobileNetV5Backbone.from_preset", + ], + }, + { + "path": "mobilenetv5_image_classifier", + "title": "MobileNetV5ImageClassifier model", + "generate": [ + "keras_hub.models.MobileNetV5ImageClassifier", + "keras_hub.models.MobileNetV5ImageClassifier.backbone", + "keras_hub.models.MobileNetV5ImageClassifier.preprocessor", + ], + }, + ], + }, { "path": "moonshine/", "title": "Moonshine", @@ -1731,6 +1795,42 @@ }, ], }, + { + "path": "parseq/", + "title": "ParSeq", + "toc": True, + "children": [ + { + "path": "parseq_backbone", + "title": "ParSeqBackbone model", + "generate": [ + "keras_hub.models.ParSeqBackbone", + "keras_hub.models.ParSeqBackbone.from_preset", + "keras_hub.models.ParSeqBackbone.token_embedding", + ], + }, + { + "path": "parseq_causal_lm", + "title": "ParSeqCausalLM model", + "generate": [ + "keras_hub.models.ParSeqCausalLM", + "keras_hub.models.ParSeqCausalLM.from_preset", + "keras_hub.models.ParSeqCausalLM.generate", + "keras_hub.models.ParSeqCausalLM.backbone", + "keras_hub.models.ParSeqCausalLM.preprocessor", + ], + }, + { + "path": "parseq_preprocessor", + "title": "ParSeqPreprocessor layer", + "generate": [ + "keras_hub.models.ParSeqPreprocessor", + "keras_hub.models.ParSeqPreprocessor.from_preset", + "keras_hub.models.ParSeqPreprocessor.tokenizer", + ], + }, + ], + }, { "path": "phi3/", "title": "Phi3", @@ -1865,6 +1965,51 @@ }, ], }, + { + "path": "qwen3_moe/", + "title": "Qwen3Moe", + "toc": True, + "children": [ + { + "path": "qwen3_moe_tokenizer", + "title": "Qwen3MoeTokenizer", + "generate": [ + "keras_hub.tokenizers.Qwen3MoeTokenizer", + "keras_hub.tokenizers.Qwen3MoeTokenizer.from_preset", + ], + }, + { + "path": "qwen3_moe_backbone", + "title": "Qwen3MoeBackbone model", + "generate": [ + "keras_hub.models.Qwen3MoeBackbone", + "keras_hub.models.Qwen3MoeBackbone.from_preset", + "keras_hub.models.Qwen3MoeBackbone.token_embedding", + "keras_hub.models.Qwen3MoeBackbone.enable_lora", + ], + }, + { + "path": "qwen3_moe_causal_lm", + "title": "Qwen3MoeCausalLM model", + "generate": [ + "keras_hub.models.Qwen3MoeCausalLM", + "keras_hub.models.Qwen3MoeCausalLM.from_preset", + "keras_hub.models.Qwen3MoeCausalLM.generate", + "keras_hub.models.Qwen3MoeCausalLM.backbone", + "keras_hub.models.Qwen3MoeCausalLM.preprocessor", + ], + }, + { + "path": "qwen3_moe_causal_lm_preprocessor", + "title": "Qwen3MoeCausalLMPreprocessor layer", + "generate": [ + "keras_hub.models.Qwen3MoeCausalLMPreprocessor", + "keras_hub.models.Qwen3MoeCausalLMPreprocessor.from_preset", + "keras_hub.models.Qwen3MoeCausalLMPreprocessor.tokenizer", + ], + }, + ], + }, { "path": "qwen_moe/", "title": "QwenMoe", @@ -2194,6 +2339,43 @@ }, ], }, + { + "path": "smollm3/", + "title": "SmollLM3", + "toc": True, + "children": [ + { + "path": "smollm3_tokenizer", + "title": "SmollLM3Tokenizer", + "generate": [ + "keras_hub.tokenizers.SmollLM3Tokenizer", + "keras_hub.tokenizers.SmollLM3Tokenizer.from_preset", + "keras_hub.models.SmollLM3Tokenizer", + "keras_hub.models.SmollLM3Tokenizer.from_preset", + ], + }, + { + "path": "smollm3_backbone", + "title": "SmollLM3Backbone model", + "generate": [ + "keras_hub.models.SmollLM3Backbone", + "keras_hub.models.SmollLM3Backbone.from_preset", + "keras_hub.models.SmollLM3Backbone.token_embedding", + ], + }, + { + "path": "smollm3_causal_lm", + "title": "SmollLM3CausalLM model", + "generate": [ + "keras_hub.models.SmollLM3CausalLM", + "keras_hub.models.SmollLM3CausalLM.from_preset", + "keras_hub.models.SmollLM3CausalLM.generate", + "keras_hub.models.SmollLM3CausalLM.backbone", + "keras_hub.models.SmollLM3CausalLM.preprocessor", + ], + }, + ], + }, { "path": "stable_diffusion_3/", "title": "Stable Diffusion 3", From c6faa88ecf00dee16c1220301f2ab797c4674db3 Mon Sep 17 00:00:00 2001 From: Sachin Prasad Date: Fri, 24 Oct 2025 13:40:30 -0700 Subject: [PATCH 2/6] address gemini review --- scripts/hub_master.py | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/scripts/hub_master.py b/scripts/hub_master.py index f55cdb04bd..158afc740b 100644 --- a/scripts/hub_master.py +++ b/scripts/hub_master.py @@ -766,7 +766,7 @@ "generate": [ "keras_hub.models.DepthAnythingDepthEstimator", "keras_hub.models.DepthAnythingDepthEstimator.from_preset", - "keras_hub.models.DepthAnythingImageToDepth.backbone", + "keras_hub.models.DepthAnythingDepthEstimator.backbone", ], }, ], @@ -1653,6 +1653,14 @@ "keras_hub.models.MobileNetV5ImageClassifier.preprocessor", ], }, + { + "path": "mobilenetv5_image_classifier_preprocessor", + "title": "MobileNetV5ImageClassifierPreprocessor layer", + "generate": [ + "keras_hub.models.MobileNetV5ImageClassifierPreprocessor", + "keras_hub.models.MobileNetV5ImageClassifierPreprocessor.image_converter", + ], + }, ], }, { @@ -1800,6 +1808,14 @@ "title": "ParSeq", "toc": True, "children": [ + { + "path": "parseq_tokenizer", + "title": "ParSeqTokenizer", + "generate": [ + "keras_hub.tokenizers.ParSeqtTokenizer", + "keras_hub.tokenizers.ParSeqTokenizer.from_preset", + ], + }, { "path": "parseq_backbone", "title": "ParSeqBackbone model", @@ -2348,8 +2364,6 @@ "path": "smollm3_tokenizer", "title": "SmollLM3Tokenizer", "generate": [ - "keras_hub.tokenizers.SmollLM3Tokenizer", - "keras_hub.tokenizers.SmollLM3Tokenizer.from_preset", "keras_hub.models.SmollLM3Tokenizer", "keras_hub.models.SmollLM3Tokenizer.from_preset", ], @@ -2374,6 +2388,15 @@ "keras_hub.models.SmollLM3CausalLM.preprocessor", ], }, + { + "path": "smollm3_causal_lm_preprocessor", + "title": "SmolLM3CausalLMPreprocessor layer", + "generate": [ + "keras_hub.models.SmolLM3CausalLMPreprocessor", + "keras_hub.models.SmolLM3CausalLMPreprocessor.from_preset", + "keras_hub.models.SmolLM3CausalLMPreprocessor.tokenizer", + ], + }, ], }, { From 9534d7d270a92f49af38277149ce045f280767ed Mon Sep 17 00:00:00 2001 From: Sachin Prasad Date: Fri, 24 Oct 2025 13:46:11 -0700 Subject: [PATCH 3/6] nit --- scripts/hub_master.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/hub_master.py b/scripts/hub_master.py index 158afc740b..f2aba52f9c 100644 --- a/scripts/hub_master.py +++ b/scripts/hub_master.py @@ -1812,7 +1812,7 @@ "path": "parseq_tokenizer", "title": "ParSeqTokenizer", "generate": [ - "keras_hub.tokenizers.ParSeqtTokenizer", + "keras_hub.tokenizers.ParSeqTokenizer", "keras_hub.tokenizers.ParSeqTokenizer.from_preset", ], }, From 79754752030c4c79df5e3286ed8b5fe05531624c Mon Sep 17 00:00:00 2001 From: Sachin Prasad Date: Fri, 24 Oct 2025 14:09:03 -0700 Subject: [PATCH 4/6] nit --- scripts/hub_master.py | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/scripts/hub_master.py b/scripts/hub_master.py index f2aba52f9c..53ba98515a 100644 --- a/scripts/hub_master.py +++ b/scripts/hub_master.py @@ -1822,7 +1822,6 @@ "generate": [ "keras_hub.models.ParSeqBackbone", "keras_hub.models.ParSeqBackbone.from_preset", - "keras_hub.models.ParSeqBackbone.token_embedding", ], }, { @@ -2357,35 +2356,35 @@ }, { "path": "smollm3/", - "title": "SmollLM3", + "title": "SmolLM3", "toc": True, "children": [ { "path": "smollm3_tokenizer", - "title": "SmollLM3Tokenizer", + "title": "SmolLM3Tokenizer", "generate": [ - "keras_hub.models.SmollLM3Tokenizer", - "keras_hub.models.SmollLM3Tokenizer.from_preset", + "keras_hub.models.SmolLM3Tokenizer", + "keras_hub.models.SmolLM3Tokenizer.from_preset", ], }, { "path": "smollm3_backbone", - "title": "SmollLM3Backbone model", + "title": "SmolLM3Backbone model", "generate": [ - "keras_hub.models.SmollLM3Backbone", - "keras_hub.models.SmollLM3Backbone.from_preset", - "keras_hub.models.SmollLM3Backbone.token_embedding", + "keras_hub.models.SmolLM3Backbone", + "keras_hub.models.SmolLM3Backbone.from_preset", + "keras_hub.models.SmolLM3Backbone.token_embedding", ], }, { "path": "smollm3_causal_lm", - "title": "SmollLM3CausalLM model", + "title": "SmolLM3CausalLM model", "generate": [ - "keras_hub.models.SmollLM3CausalLM", - "keras_hub.models.SmollLM3CausalLM.from_preset", - "keras_hub.models.SmollLM3CausalLM.generate", - "keras_hub.models.SmollLM3CausalLM.backbone", - "keras_hub.models.SmollLM3CausalLM.preprocessor", + "keras_hub.models.SmolLM3CausalLM", + "keras_hub.models.SmolLM3CausalLM.from_preset", + "keras_hub.models.SmolLM3CausalLM.generate", + "keras_hub.models.SmolLM3CausalLM.backbone", + "keras_hub.models.SmolLM3CausalLM.preprocessor", ], }, { From dd3ea5a7ce603ac5e67b2727641fd4f09c524fe5 Mon Sep 17 00:00:00 2001 From: Sachin Prasad Date: Fri, 24 Oct 2025 15:13:08 -0700 Subject: [PATCH 5/6] make changes to docstring generation --- scripts/docstrings.py | 6 ++++++ scripts/hub_master.py | 36 ++++++++++++++++++------------------ 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/scripts/docstrings.py b/scripts/docstrings.py index 3078e4a7b7..9010f7755e 100644 --- a/scripts/docstrings.py +++ b/scripts/docstrings.py @@ -217,10 +217,16 @@ def __repr__(self): # Render the function name instead return ReprWrapper(value.__name__) + if inspect.isclass(value): + # Render classes as module.ClassName to produce a valid python + # dotted-name expression in the fake signature (black can parse it). + return ReprWrapper(value.__module__ + "." + value.__name__) + if ( repr(value).startswith("<") # and hasattr(value, "__class__") # it is an object and hasattr(value, "get_config") # it is a Keras object + and not inspect.isclass(value) # ensure it's an instance, not a class ): config = value.get_config() init_args = [] # The __init__ arguments to render diff --git a/scripts/hub_master.py b/scripts/hub_master.py index 53ba98515a..987282a048 100644 --- a/scripts/hub_master.py +++ b/scripts/hub_master.py @@ -1805,43 +1805,43 @@ }, { "path": "parseq/", - "title": "ParSeq", + "title": "PARSeq", "toc": True, "children": [ { "path": "parseq_tokenizer", - "title": "ParSeqTokenizer", + "title": "PARSeqTokenizer", "generate": [ - "keras_hub.tokenizers.ParSeqTokenizer", - "keras_hub.tokenizers.ParSeqTokenizer.from_preset", + "keras_hub.tokenizers.PARSeqTokenizer", + "keras_hub.tokenizers.PARSeqTokenizer.from_preset", ], }, { "path": "parseq_backbone", - "title": "ParSeqBackbone model", + "title": "PARSeqBackbone model", "generate": [ - "keras_hub.models.ParSeqBackbone", - "keras_hub.models.ParSeqBackbone.from_preset", + "keras_hub.models.PARSeqBackbone", + "keras_hub.models.PARSeqBackbone.from_preset", ], }, { "path": "parseq_causal_lm", - "title": "ParSeqCausalLM model", + "title": "PARSeqCausalLM model", "generate": [ - "keras_hub.models.ParSeqCausalLM", - "keras_hub.models.ParSeqCausalLM.from_preset", - "keras_hub.models.ParSeqCausalLM.generate", - "keras_hub.models.ParSeqCausalLM.backbone", - "keras_hub.models.ParSeqCausalLM.preprocessor", + "keras_hub.models.PARSeqCausalLM", + "keras_hub.models.PARSeqCausalLM.from_preset", + "keras_hub.models.PARSeqCausalLM.generate", + "keras_hub.models.PARSeqCausalLM.backbone", + "keras_hub.models.PARSeqCausalLM.preprocessor", ], }, { - "path": "parseq_preprocessor", - "title": "ParSeqPreprocessor layer", + "path": "parseq_causal_lmpreprocessor", + "title": "PARSeqCausalLMPreprocessor layer", "generate": [ - "keras_hub.models.ParSeqPreprocessor", - "keras_hub.models.ParSeqPreprocessor.from_preset", - "keras_hub.models.ParSeqPreprocessor.tokenizer", + "keras_hub.models.PARSeqCausalLMPreprocessor", + "keras_hub.models.PARSeqCausalLMPreprocessor.from_preset", + "keras_hub.models.PARSeqCausalLMPreprocessor.tokenizer", ], }, ], From 3b9687e5b9124d2787a7fcae2628b9c7012a7d16 Mon Sep 17 00:00:00 2001 From: Sachin Prasad Date: Mon, 27 Oct 2025 21:43:10 -0700 Subject: [PATCH 6/6] address comments --- scripts/docstrings.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/docstrings.py b/scripts/docstrings.py index 9010f7755e..169b46d1cb 100644 --- a/scripts/docstrings.py +++ b/scripts/docstrings.py @@ -226,7 +226,6 @@ def __repr__(self): repr(value).startswith("<") # and hasattr(value, "__class__") # it is an object and hasattr(value, "get_config") # it is a Keras object - and not inspect.isclass(value) # ensure it's an instance, not a class ): config = value.get_config() init_args = [] # The __init__ arguments to render