Skip to content

sjquant/quickthumb

Repository files navigation

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

About

A Python library for programmatic thumbnail generation with support for layers, gradients, and flexible styling

Topics

Resources

License

Stars

3 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors