Skip to main content
Pictograph

Pictograph

Label images, train vision models, run them anywhere.

PyPI Python License Docs

Docs · Quick start · API reference · App


Four ways in. Same API underneath, so you can move between them.

Python pip install pictograph, this repo
CLI pip install "pictograph[cli]" · reference
REST Any language, X-API-Key header · reference
Claude skill Let an agent drive it · guide

Quick start

pip install pictograph

Upload, label from a text prompt, train, predict.

from pictograph import Client

client = Client(api_key="pk_live_...")     # or set PICTOGRAPH_API_KEY

client.datasets.create(
    name="road-signs",
    annotation_types=["bbox"],
)
client.images.upload(
    dataset_name="road-signs",
    file_path="sign.jpg",
)
client.auto_annotate.batch(
    dataset_name="road-signs",
    image_filenames=["sign.jpg"],
    classes=[{"name": "stop sign", "type": "bbox"}],
)
client.exports.create(
    dataset_name="road-signs",
    name="v1",
    format="coco",
)
run = 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)

result = client.models.predict(
    name="signs-detector",
    image="test.jpg",
)
for a in result.annotations:
    print(a.name, round(a.confidence, 3), a.bounding_box)

The same thing from the shell:

pictograph login
pictograph datasets create road-signs --type bbox
pictograph images upload road-signs ./sign.jpg
pictograph models predict signs-detector ./test.jpg

Or over REST:

curl -s https://api.pictograph.io/api/v1/developer/datasets/ \
  -H "X-API-Key: $PICTOGRAPH_API_KEY"

Resources are addressed by name everywhere. There are no IDs to look up first.

Typed

Responses are Pydantic models. Failures are typed exceptions.

from pictograph.exceptions import NotFoundError, PaymentRequiredError, RateLimitError

try:
    client.datasets.get(name="does-not-exist")
except NotFoundError:
    ...

Transient failures retry with backoff, and writes carry an idempotency key so a retry cannot apply twice.

Async

Every method has an async twin with the same signature.

import asyncio
from pictograph import AsyncClient

async def main():
    async with AsyncClient() as client:
        print([d.name for d in await client.datasets.list()])

asyncio.run(main())

Run models on your own hardware

from pictograph import get_model

model  = get_model(name="signs-detector", task="object_detection")
result = model.predict(image="test.jpg")

Weights download and cache on first use. ONNX, PyTorch, ExecuTorch and TensorRT are supported targets. See local inference.

Agents

pip install "pictograph[agents]"
pictograph agents install-skill --target claude-code
from pictograph.agents import Toolkit

tools = Toolkit(client).as_anthropic_tools()   # or .as_openai_tools()

Offline utilities

No network needed, so an existing local dataset can be brought into typed models before uploading anything.

pictograph.formats Read and write COCO, YOLO, Pascal VOC
pictograph.metrics Score detections against ground truth by IoU
pictograph.augment Transform images, remapping annotation geometry with them
pictograph.tile Slice images into a grid, clipping annotations per tile

Documentation

Full reference at pictograph.io/docs.

Quick start · Installation · Authentication · API reference · CLI · Agents · Annotation format · Auto-annotation · Local inference · Deployments · Export conversion · Async client · Error handling · Rate limits

Requires Python 3.10 or newer. Extras: [cli], [agents], [inference], [torch], [all].

Contributing, security, license

CONTRIBUTING.md has the development setup and the checks a change must pass. Report vulnerabilities per SECURITY.md, not as a public issue. MIT licensed, see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pictograph-1.69.43.tar.gz (952.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pictograph-1.69.43-py3-none-any.whl (720.3 kB view details)

Uploaded Python 3

File details

Details for the file pictograph-1.69.43.tar.gz.

File metadata

  • Download URL: pictograph-1.69.43.tar.gz
  • Upload date:
  • Size: 952.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for pictograph-1.69.43.tar.gz
Algorithm Hash digest
SHA256 b802c1f42dae99520bdfbcdba7c1b267af01fc2a88d84b3f09c7d38f4e98de0c
MD5 7364643aae112f8a4c44a32e093c7178
BLAKE2b-256 eac93be3ad6e7cc7ef8b0bae1f82d6cb011543b92a7242b61d716d810c8b6b98

See more details on using hashes here.

File details

Details for the file pictograph-1.69.43-py3-none-any.whl.

File metadata

  • Download URL: pictograph-1.69.43-py3-none-any.whl
  • Upload date:
  • Size: 720.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for pictograph-1.69.43-py3-none-any.whl
Algorithm Hash digest
SHA256 33eba76f1ccc1bad55401aff76ce2349db787d654fb34d668285801e4dfdfe5a
MD5 7174c76f30b3cd4acd42f6b8b9a8c8f1
BLAKE2b-256 72c26a71db7cb19acee023d69040eef870fcefa5b2bcca1fdd5f060efad18c05

See more details on using hashes here.

Release history Release notifications | RSS feed

1.69.70

2 files

1.69.69

2 files

1.69.68

2 files

1.69.67

2 files

1.69.66

2 files

1.69.65

2 files

1.69.64

2 files

1.69.63

2 files

1.69.62

2 files

1.69.61

2 files

1.69.60

2 files

1.69.59

2 files

1.69.58

2 files

1.69.57

2 files

1.69.56

2 files

1.69.55

2 files

1.69.54

2 files

1.69.53

2 files

1.69.52

2 files

1.69.51

2 files

1.69.50

2 files

1.69.49

2 files

1.69.48

2 files

1.69.47

2 files

1.69.46

2 files

1.69.45

2 files

1.69.44

2 files

This release

1.69.43 This release

2 files

1.69.42

2 files

1.69.41

2 files

1.69.40

2 files

1.69.39

2 files

1.69.38

2 files

1.69.37

2 files

1.69.36

2 files

1.69.35

2 files

1.69.34

2 files

1.69.33

2 files

1.69.32

2 files

1.69.31

2 files

1.69.30

2 files

1.69.29

2 files

1.69.28

2 files

1.69.23

2 files

1.69.22

2 files

1.69.21

2 files

1.69.20

2 files

1.69.19

2 files

1.69.18

2 files

1.69.17

2 files

1.69.16

2 files

1.69.15

2 files

1.69.14

2 files

1.69.13

2 files

1.69.12

2 files

1.69.11

2 files

1.69.10

2 files

1.69.8

2 files

1.69.7

2 files

1.69.6

2 files

1.69.5

2 files

1.69.4

2 files

1.69.3

2 files

1.69.2

2 files

1.69.1

2 files

1.68.2

2 files

1.68.1

2 files

1.68.0

2 files

1.67.17

2 files

1.67.16

2 files

1.67.15

2 files

1.67.14

2 files

1.67.13

2 files

1.67.12

2 files

1.67.11

2 files

1.67.10

2 files

1.67.9

2 files

1.67.8

2 files

1.67.7

2 files

1.67.6

2 files

1.67.4

2 files

1.67.3

2 files

1.67.1

2 files

1.67.0

2 files

1.66.2

2 files

1.66.1

2 files

1.66.0

2 files

1.65.0

2 files

1.64.1

2 files

1.64.0

2 files

1.63.0

2 files

1.62.1

2 files

1.62.0

2 files

1.61.5

2 files

1.61.4

2 files

1.61.3

2 files

1.61.1

2 files

1.61.0

2 files

1.60.0

2 files

1.59.0

2 files

1.58.0

2 files

1.57.0

2 files

1.56.0

2 files

1.55.0

2 files

1.54.0

2 files

1.53.0

2 files

1.52.0

2 files

1.51.0

2 files

1.50.0

2 files

1.49.0

2 files

1.48.0

2 files

1.47.0

2 files

1.46.0

2 files

1.45.0

2 files

1.44.0

2 files

1.43.0

2 files

1.42.0

2 files

1.41.0

2 files

1.40.0

2 files

1.39.0

2 files

1.38.0

2 files

1.37.0

2 files

1.36.0

2 files

1.35.0

2 files

1.34.0

2 files

1.33.0

2 files

1.32.0

2 files

1.31.0

2 files

1.30.0

2 files

1.29.0

2 files

1.28.0

2 files

1.27.0

2 files

1.26.0

2 files

1.25.0

2 files

1.24.0

2 files

1.23.0

2 files

1.22.0

2 files

1.21.0

2 files

1.20.0

2 files

1.19.0

2 files

1.18.0

2 files

1.17.0

2 files

1.16.0

2 files

1.15.0

2 files

1.14.0

2 files

1.13.0

2 files

1.12.0

2 files

1.11.0

2 files

1.10.0

2 files

1.9.0

2 files

1.8.2

2 files

1.8.1

2 files

1.8.0

2 files

1.7.34

2 files

1.7.33

2 files

1.7.32

2 files

1.7.30

2 files

1.7.29

2 files

1.7.28

2 files

1.7.27

2 files

1.7.26

2 files

1.7.25

2 files

1.7.24

2 files

1.7.23

2 files

1.7.22

2 files

1.7.21

2 files

1.7.20

2 files

1.7.19

2 files

1.7.18

2 files

1.7.17

2 files

1.7.16

2 files

1.7.15

2 files

1.7.14

2 files

1.7.13

2 files

1.7.12

2 files

1.7.11

2 files

1.7.10

2 files

1.7.9

2 files

1.7.8

2 files

1.7.7

2 files

1.7.6

2 files

1.7.5

2 files

1.7.4

2 files

1.7.3

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.7

2 files

1.6.6

2 files

1.6.5

2 files

1.6.4

2 files

1.6.3

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

1.5.0

2 files

1.4.1

2 files

1.4.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page