Skip to main content

quickthumb

quickthumb

Design thumbnails, social graphics, and presentation visuals in Python.
One layered API. Deterministic output. Ready for automation.

Get started · Browse recipes · API reference

Launch announcement created with quickthumb

Create the image. Keep the system

quickthumb turns a visual composition into reusable Python or JSON. Build it once, change the content or assets, and render consistent creative at any scale.

pip install quickthumb
from quickthumb import Canvas

canvas = (
    Canvas.from_aspect_ratio("16:9", base_width=1280)
    .background(color="#F5F5F7")
    .text(
        "Make the message impossible to miss.",
        size=88,
        color="#1D1D1F",
        weight=700,
        position=(80, 180),
        max_width=820,
    )
    .shape(
        "rectangle",
        position=(80, 500),
        width=180,
        height=8,
        color="#0066CC",
    )
)

canvas.render("announcement.png")

The core workflow stays small:

  1. Create a Canvas.
  2. Add backgrounds, text, images, shapes, SVG, or auto-layout groups.
  3. Call render().

Follow the five-minute guide →

Built for creative automation

  • Layered by default — compose visuals in the same order people think about them.
  • Python or JSON — author directly, generate specs with AI, or template content at scale.
  • One source, many formats — render images, animated media, documents, and slide decks.
  • Designed to be checked — diagnostics catch common layout and legibility problems before export.

Gallery

YouTube thumbnail Commentary thumbnail Tutorial cover
YouTube thumbnail Commentary thumbnail Tutorial cover
Instagram news card Podcast promo
Instagram news card Podcast interview promo
Vertical shorts cover Animated product reel
Vertical shorts cover Animated product reel

Explore the examples and source files →

Render wherever the work goes

canvas.render("creative.png")
canvas.render("creative.svg")
canvas.render("creative.html")
canvas.render("creative.pptx")
canvas.render("creative.pdf")
canvas.render("creative.gif")
canvas.render("creative.mp4")

Multi-slide Deck compositions can also render to numbered images, PDF, PPTX, HTML slideshows, GIF, WebM, and narrated MP4.

Some formats use optional dependencies. See Installation and Exporting for the exact setup and format behavior.

Pick a path

I want to… Start here
Make my first graphic Getting Started
Build a proven layout Cookbook
Generate visuals with JSON or AI JSON & AI Workflow
Build a multi-slide deck Deck guide
Validate a composition Diagnostics & CLI
Look up a class or option API Reference

License

MIT

Release files for quickthumb 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quickthumb 0.7.0
File Size Uploaded
quickthumb-0.7.0.tar.gz 87.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for quickthumb 0.7.0
File Interpreter ABI Platform
quickthumb-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 87.9 MB

Release files / quickthumb-0.7.0.tar.gz

Download URL quickthumb-0.7.0.tar.gz
Size 87.6 MB
Tags Source
SHA-256 checksum
How to use checksums
f3c3cc67d68a18c4417e72a97fbc9225374de35ae4499187aa2c4bbc58554975
BLAKE2b-256 checksum
How to use checksums
8ce7ac38d28836c175ddfc9765eeedfd3ec7e6f120f55b932fff0aa1a71a33f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / quickthumb-0.7.0-py3-none-any.whl

Download URL quickthumb-0.7.0-py3-none-any.whl
Size 253.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
21ae38ffa9d1676759af3ccc727670ce5d8e760164ddc00e91a915070acb9d5a
BLAKE2b-256 checksum
How to use checksums
6936570fefd18b02cab7c791de0f486ebc0331abeb2a233732373e49a05bb838
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release 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