Upload your first model
Uploading a model is the first step to making it available through Norman’s managed inference API. You provide the model’s metadata, assets (such as weights), and input/output definitions — Norman handles storage, indexing, and deployment. Once uploaded, you can run it from anywhere using the Norman SDK.
Uploading a model is the first step to making it available through Norman’s managed inference API. You provide the model’s metadata, assets (such as weights), and input/output definitions — Norman handles storage, indexing, and deployment. Once uploaded, you can run it from anywhere using the Norman SDK.
Example: Uploading an Image Model
Below is a complete example of uploading a simple image reversal model. The model accepts an image file and returns a mirrored copy.
Step 1 — Define the Model Configuration
model_config = { "name": "image_reverser_model", "version_label": "beta", "short_description": "A simple model that mirrors images.", "long_description": "Demonstrates image reversal for onboarding.", "assets": [ {"asset_name": "weights", "data": "./model.pt"} ], "inputs": [ { "display_title": "Input Image", "data_encoding": "png", "receive_format": "File", "parameters": [ {"parameter_name": "image", "data_encoding": "png"} ] } ], "outputs": [ { "display_title": "Output Image", "data_encoding": "png", "receive_format": "File", "parameters": [ {"parameter_name": "mirror_image", "data_encoding": "png"} ] } ] }
model_config = { "name": "image_reverser_model", "version_label": "beta", "short_description": "A simple model that mirrors images.", "long_description": "Demonstrates image reversal for onboarding.", "assets": [ {"asset_name": "weights", "data": "./model.pt"} ], "inputs": [ { "display_title": "Input Image", "data_encoding": "png", "receive_format": "File", "parameters": [ {"parameter_name": "image", "data_encoding": "png"} ] } ], "outputs": [ { "display_title": "Output Image", "data_encoding": "png", "receive_format": "File", "parameters": [ {"parameter_name": "mirror_image", "data_encoding": "png"} ] } ] }
model_config = { "name": "image_reverser_model", "version_label": "beta", "short_description": "A simple model that mirrors images.", "long_description": "Demonstrates image reversal for onboarding.", "assets": [ {"asset_name": "weights", "data": "./model.pt"} ], "inputs": [ { "display_title": "Input Image", "data_encoding": "png", "receive_format": "File", "parameters": [ {"parameter_name": "image", "data_encoding": "png"} ] } ], "outputs": [ { "display_title": "Output Image", "data_encoding": "png", "receive_format": "File", "parameters": [ {"parameter_name": "mirror_image", "data_encoding": "png"} ] } ] }
model_config = { "name": "image_reverser_model", "version_label": "beta", "short_description": "A simple model that mirrors images.", "long_description": "Demonstrates image reversal for onboarding.", "assets": [ {"asset_name": "weights", "data": "./model.pt"} ], "inputs": [ { "display_title": "Input Image", "data_encoding": "png", "receive_format": "File", "parameters": [ {"parameter_name": "image", "data_encoding": "png"} ] } ], "outputs": [ { "display_title": "Output Image", "data_encoding": "png", "receive_format": "File", "parameters": [ {"parameter_name": "mirror_image", "data_encoding": "png"} ] } ] }
Step 2 — Upload the Model
from norman import Norman norman = Norman(api_key="nrm_sk_...") model = await norman.upload_model(model_config) print("Model uploaded successfully:", model.name)
from norman import Norman norman = Norman(api_key="nrm_sk_...") model = await norman.upload_model(model_config) print("Model uploaded successfully:", model.name)
from norman import Norman norman = Norman(api_key="nrm_sk_...") model = await norman.upload_model(model_config) print("Model uploaded successfully:", model.name)
from norman import Norman norman = Norman(api_key="nrm_sk_...") model = await norman.upload_model(model_config) print("Model uploaded successfully:", model.name)
·
©
2026