Computer vision
that runs itself.

The platform to annotate, train, and deploy computer vision workflows that run on a schedule. From solo devs to enterprise teams.

$5/mo free compute. No payment method required.

train.py
from pictograph import Client, TrainingRun

client = Client()

# Freeze the dataset, then train RF-DETR on a managed GPU
client.exports.create(
    dataset_name="Doorbell Camera",
    name="v1",
    format="coco",
)
run: TrainingRun = client.training.create(
    dataset_name="Doorbell Camera",
    export_name="v1",
    pipeline_type="rfdetr_segmentation",
    name="doorbell-seg",
    gpu_type="a100",
    config={"epochs": 15},
)
Trained model RF-DETR · 15 epochs · A100
auto_annotate.py
from pictograph import Client, PromptResult

client = Client()

# Label from a text prompt. No training required.
result: PromptResult = client.auto_annotate.text(
    dataset_name="road-signs",
    image_filename="img-001.jpg",
    text_prompt="stop sign",
)

client.annotations.save(
    dataset_name="road-signs",
    image="img-001.jpg",
    annotations=result.annotations,
)
Auto-annotation

Label with a click, a box,
or a prompt

SAM3 turns a point, a box, or a text prompt into pixel-perfect labels. Annotate one image, or run a batch over thousands.

Point Click to add and exclude regions.
Box Draw one, label every match.
Text Type a prompt, label by concept.
Batch Thousands of images in one job.
Auto-annotate a dataset
train.py
from pictograph import Client, TrainingRun

client = Client()

# Freeze the dataset into an export, then train on it
client.exports.create(
    dataset_name="road-signs",
    name="v1",
    format="coco",
)
run: TrainingRun = client.training.create(
    dataset_name="road-signs",
    export_name="v1",
    pipeline_type="rfdetr_detection",
    name="signs-detector",
    config={"epochs": 30},
)
client.training.wait_for_completion(run_id=run.id)
Training

Train vision models
without the infrastructure

Pick an architecture and a GPU. Pictograph exports your data, trains on managed GPUs, and returns model weights.

YOLOX Fast, edge-ready detection.
RF-DETR Detection and segmentation.
Segformer Semantic segmentation.
Classification Image-level labels.
Train a model
deploy.py
from pictograph import Client, DeploymentClient, CreatedDeployment

client = Client()

# Stand a trained model up as an always-on endpoint
created: CreatedDeployment = client.deployments.create(
    model="signs-detector",
    gpu_type="t4",
)

# Call /predict directly. Billed by uptime.
endpoint = DeploymentClient(
    endpoint=created.deployment.endpoint_url,
    api_key=created.auth_token,
)
print(endpoint.infer(image="./frame.jpg").predictions)
Deployments

Deploy custom models
with one click

Turn a trained model into an authenticated /predict endpoint. Call it from REST, the SDK, or the CLI. Billed by uptime, paused anytime.

One URL A stable /predict endpoint per model.
Any GPU T4, L4, or A100.
By uptime Pause to stop billing.
Secure A per-deployment token.
Deploy a model
workflow.py
from pictograph import Client, WorkflowRun

client = Client()

# Run a saved workflow. Its graph lives in the app.
created = client.workflows.run(workflow="people-counter")

result: WorkflowRun = client.workflows.wait_for_run(
    run_id=created.run_id,
)
print(result.step_results)   # counts, dwell, occupancy
Workflows

Run pipelines
over images and video

Build a pipeline in a visual editor and run it over images or video. Track objects, count crossings, and measure dwell time.

Visual builder Drag together source, model, steps.
Tracking Follow objects across frames.
Analytics Counts, dwell, and occupancy.
Webhooks Signed delivery to your stack.
Build a workflow
Built for developers and agents

Everything else you need

Import and export anywhere, search your library, and drive it all from the SDK, CLI, or an agent.

Start building today

$5/mo free compute. No payment method required.