AI Neural Painting

Project brief

Project Overview
An automated neural-rendering pipeline that transformed a 26-hour manual image workflow into a scalable production process.
My Contribution
Built the image-preparation and neural-rendering pipeline and deployed the automated workflow on AWS.

The Problem

A personalized-gift store needed to turn customer photos into stylized artwork. Its existing workflow took approximately 26 hours and cost $5 per image. The goal was to automate image preparation and rendering while preserving the quality needed for printed products.

Automated AI neural painting workflow pipeline
The photo-to-gift workflow connects image preparation, neural rendering, and product output.

The Engineering

I developed a full automation pipeline using OpenCV, Pillow, and Stylized Neural Painting deployed on AWS. The system utilizes a dual-pathway neural renderer that translates images into paintings using vector representations. It incorporates Optimal Transport Loss to ensure similarity to the input and Differentiable Rendering to fine-tune the artistic output. The pipeline handles everything from face detection and background removal to the final application of oil painting effects.

Local Binary Patterns face detection visualization
Visualization of the Local Binary Patterns (LBP) algorithm used for precise face detection and alignment.
Dual-pathway neural rendering architecture diagram
The dual-pathway neural rendering architecture that transforms vector representations into stylized artistic strokes.

The Results

Processing time fell from approximately 26 hours to 15 minutes per image, about 100× faster. Processing cost fell from $5 to $0.25 per image, a 95% reduction. Automating the workflow allowed the store to handle more orders with a shorter turnaround.

Input customer photograph before neural painting
Original portrait supplied to the rendering pipeline.
Animated portrait being painted by the neural renderer
Watch individual strokes accumulate into a painted portrait, then compare the result with the input photo beside it.