Back to all projects

Auto Palette

Turn any photo into a ready-to-use color palette

An ML-powered web app that extracts a clean, usable color palette from any uploaded image using K-Means clustering — handy for designers who want colors straight from a photo or mood board.

Repository

Auto Palette gives designers and developers a fast way to pull a coherent color scheme out of any image, instead of manually eyeballing hex codes with a color picker.

  • Picking a matching color palette from an image by hand is tedious and inconsistent.
  • Most online color-pickers only sample a single pixel at a time instead of representing the image as a whole.

A Next.js front end sends the uploaded image to a Flask backend, which processes it with K-Means clustering and returns the dominant colors.

Data Flow

User uploads an image in the Next.js UI

Image is sent to the Flask backend API

Backend preprocesses the image with Pillow/NumPy

K-Means clustering groups pixels into dominant color clusters

Cluster centers are converted to hex codes

Palette is returned and rendered in the UI

Key Architectural Decisions

  • ✓Built a Flask API that runs K-Means clustering on image pixels to find the dominant colors.
  • ✓Built a Next.js front end where users upload an image and instantly see the generated palette.
  • ✓Added the ability to copy hex codes or download the palette for use in design tools.
Next.jsTypeScriptTailwindCSSshadcn/uiFlaskPythonK-Means ClusteringPillowNumPy
  • K-Means is a lightweight but effective way to summarize an image's color composition.
  • Splitting the app into a Next.js frontend and a separate Flask ML service keeps each piece focused and easy to deploy independently.
  • Small UX touches, like one-click copy of hex codes, matter a lot for a tool aimed at designers.