Deploy a trained model as one API endpoint

Stand a model up behind a single authenticated /predict URL and call it from REST, the SDK, the CLI, or your agent. Billed by uptime: pause it to stop the meter.

# Deploy a trained model (prints its bearer token)
pictograph deployments create signs-detector --gpu t4

# Call it
pictograph deployments predict signs-detector ./frame.jpg \
  --token pk_deploy_...

# Stop the meter when you are done
pictograph deployments pause signs-detector
from pictograph import Client, CreatedDeployment

client = Client()

# Stand a trained model up as an endpoint
created: CreatedDeployment = client.deployments.create(
    model="signs-detector",
    gpu_type="t4",       # or l4 / a100 (or compute_type="cpu")
    min_containers=1,    # keep one warm, or 0 to scale to zero
)

print(created.deployment.endpoint_url)
print(created.auth_token)  # the endpoint's bearer token

From trained model to live endpoint

No infrastructure to manage. Pictograph provisions a dedicated inference app per model and gives you one URL to call.

  1. Train or import a model

    Train one on Pictograph, or import a public model from Explore.

  2. Create a deployment

    Pick CPU or a GPU and how many containers stay warm. Pictograph provisions a dedicated app for the model.

  3. Call /predict

    Send images to one authenticated URL from REST, the SDK, or the CLI, and get predictions back as JSON.

  4. Pause when idle

    Pause to stop billing and resume to bring the same URL back, or scale to zero and pay only while it serves.

One endpoint, three ways to call it

Each deployment has a stable /predict URL secured by its own bearer token, not your account API key. Reveal the token again any time from the deployment's settings.

curl -X POST "$ENDPOINT_URL" \
  -H "Authorization: Bearer pk_deploy_..." \
  -F "file=@frame.jpg"
from pictograph import DeploymentClient, DetectionResult

client = DeploymentClient(
    endpoint="https://.../predict",   # created.deployment.endpoint_url
    api_key="pk_deploy_...",
    task="object_detection",
)
result: DetectionResult = client.infer(
    image="./frame.jpg",   # path, URL or bytes
)

for p in result.predictions:
    print(p.name, round(p.confidence, 2), p.bounding_box)
pictograph deployments predict signs-detector ./frame.jpg \
  --token pk_deploy_...

Pick the compute, billed by uptime

Choose the tier that fits your latency and traffic. You see a USD quote before you create it, and a deployment pauses itself if your balance runs out.

CPU The cheapest tier, for lightweight classifiers and low traffic.
T4 A cost-efficient GPU for most detection and segmentation models.
L4 More throughput for higher resolutions and busier endpoints.
A100 The lowest latency for the largest models and batch sizes.

Pay only for what runs. Pause a deployment to stop billing. Scale it to zero and you pay only while a request is being served.

Model deployment FAQ

What is a Pictograph model deployment?

A deployment turns a trained model into an always-on REST endpoint. Each one is its own isolated service with a single authenticated /predict URL, billed by uptime. Pause it to stop charges, and resume it to bring the same URL back.

How is deployment pricing calculated?

Deployments bill your compute credits by uptime, at the per-minute rate of the CPU or GPU you choose, and you see the quote before you create one. A scale-to-zero deployment bills only while a container is serving; a warm one bills for the containers you keep running. Deployments run on every plan, Free included.

Which hardware can I deploy on?

CPU, or a T4, L4, or A100 GPU. Pick the smallest tier your model fits to keep the cost down.

Do I need a deployment to run batch inference?

No. A workflow loads the model for each run and needs no standing endpoint, so it is cheaper for one-off jobs over a dataset or a video. You can also download the weights and run the model yourself. Deployments are for low-latency, always-on serving.

How do I call a deployed model?

Send a POST to the deployment /predict URL with its bearer token. Pass a file, an image URL, or base64 bytes and get JSON predictions back. The Python SDK ships a DeploymentClient that returns the same typed results as running the model locally.

Deploy your first model

$5 of free compute every month. No card required.