Computer vision
that runs itself.

The platform to annotate, train, and deploy computer vision workflows that run on a schedule. Built for solo devs and enterprises alike.

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

pipeline.py
from pictograph import Client
from pictograph.pipelines import full_pipeline

client = Client()

# Upload images, annotate with SAM3, train an RF-DETR model
report = full_pipeline(
    client,
    dataset_name="Doorbell Camera",
    folder="./doorbell_camera_images",
    classes=[("person", "polygon"), ("package", "polygon")],
    pipeline="rfdetr_segmentation",
)
Trained model RF-DETR · 15 epochs · A100
auto_annotate.py
from pictograph import Client

client = Client()

# Three SAM3 prompt modes: point, box, or text
result = client.auto_annotate.text(
    dataset_name="Road Signs",
    image_filename="img-001.jpg",
    text="stop sign",
    name="stop_sign",
)

# Save the returned annotation polygon
client.annotations.save(image_id, 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
from pictograph.pipelines import train_pipeline

client = Client()

# Export, train, fetch the model in one call
run, model = train_pipeline(
    client,
    "road-signs",
    pipeline="yolox",   # or rfdetr / sm_pytorch / ...
    gpu="a10g",
)

client.models.download(model.id, "./yolox.onnx")
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

client = Client()

# Stand up a trained model as an always-on endpoint
deployment = client.deployments.create(
    model_id="mdl_road_signs",
    gpu="t4",
)

# Call /predict directly, billed by uptime
result = deployment.predict(image="./frame.jpg")
print(result.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, A10G, or A100.
By uptime Pause to stop billing.
Secure A per-deployment token.
Deploy a model
workflow.py
from pictograph import Client

client = Client()

# Run a saved node-graph workflow over a video
run = client.workflows.run(
    workflow_id="wf_people_counter",
    source={"type": "video", "url": "./lobby.mp4"},
)

result = client.workflows.wait_for_run(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 with computer vision today

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