On-Device AI
Zero Data Collection
DDColor Neural Network
100% Offline

Chromis — Feel the Past Moments in Colour, by Chromis Never Fade with Chromis Life in Colour — Chromis Chromis — Keep Every Hue Colour the Memories with Chromis Forever in Colour, Powered by Chromis Chromis — Back Then, in Colour Your Story in Colour — Chromis A Second Life with Chromis

On-device AI colorization for Android.

Before After

Why on-device
actually matters.

Cloud AI means your photos leave your phone. On-device AI means they never do.

Cloud-Based Apps

Photos uploaded to remote servers
Requires constant internet connection
Per-image API pricing adds up
Unknown data retention policies
2-5s network round-trip latency
Fails without connectivity

Chromis Edge AI

Inference runs on your CPU
Works fully offline, always
Free after install, forever
Zero data collection, zero tracking
Sub-second local inference
Airplanes, remote areas, anywhere

See it in
action.

The complete flow — from gallery to colorized result.

Home screen
Home — Gallery Grid
Processing screen
Processing — Lottie Animation
Result screen
Result — Touch to Compare

Real results.
On your device.

Every image colorized 100% locally — no cloud, no API, no data leaving your phone.

Original photo Original
Colorized photo Colorized
Original photo Original
Colorized photo Colorized
Original photo Original
Colorized photo Colorized

Built with real technology.

Every component chosen for on-device performance. No shortcuts.

DDColor Neural Network

Deep colourization model predicting chrominance channels in CIE Lab colour space. Tiny FP16 variant optimized for mobile.

129 MB ONNX

ONNX Runtime

Microsoft's cross-platform ML inference engine. 4-thread parallel execution on-device with ALL_OPT optimization level.

v1.19.2

OpenCV

Image preprocessing and postprocessing. RGB→Lab conversion, channel splitting, chrominance upscaling back to original resolution.

v4.5.3

Jetpack Compose

100% declarative UI with Material Design 3. No XML layouts. Single-activity architecture.

Material 3

Multi-Arch Native

Native libraries compiled for arm64-v8a, armeabi-v7a, x86, and x86_64. Runs on every Android device.

4 ABIs

Zero Network Calls

No INTERNET permission. No analytics. No telemetry. The APK itself proves it — grep the manifest.

Privacy First

The inference
pipeline.

From gallery picker to colorized output — the complete on-device ML flow.

Input Gallery
01

Pick Photo

The user selects a black & white photo from the device gallery. The app decodes it into a Bitmap for processing.

RGB Lab L + a + b
OpenCV Color Space
02

Lab Conversion

OpenCV converts the image from RGB to CIE Lab colour space. The L (luminance) channel carries all structural detail.

ONNX Runtime 4 Threads
03

ONNX Inference

The DDColor-Tiny model predicts the a and b chrominance channels at 512×512 resolution using 4 parallel CPU threads.

512×512 Original Res
OpenCV Upscale
04

Upscale & Merge

The predicted chrominance is resized back to the original image resolution, then merged with the original L channel.

B&W Color
Result Side-by-Side
05

Colour Output

Lab is converted back to RGB. The app displays a side-by-side comparison — original on the left, colorized on the right.

// DDColorEngine.kt — 102 lines of pure inference

class DDColorEngine(private val context: Context) {

    private val env = OrtEnvironment.getEnvironment()
    private val session: OrtSession

    init {
        val modelBytes = context.assets
            .open("ddcolor-tiny-fp16.onnx")
            .readBytes()
        val opts = OrtSession.SessionOptions().apply {
            setOptimizationLevel(ALL_OPT)
            setIntraOpNumThreads(4)
            setInterOpNumThreads(4)
        }
        session = env.createSession(modelBytes, opts)
    }

    fun colorize(input: Bitmap): Bitmap {
        // 1. RGB → Lab, extract L channel
        // 2. Resize to 512×512, normalize
        // 3. ONNX inference → predict a,b
        // 4. Upscale a,b to original size
        // 5. Merge L + a,b → RGB Bitmap
    }
}

555 lines of Kotlin. Zero dependencies on cloud.

The entire app — UI, inference engine, image processing — fits in 6 source files. The ONNX model does the heavy lifting. The Kotlin code is the orchestration layer.

ONNX Runtime handles thread management, memory allocation, and CPU optimization. OpenCV handles colour space math. Compose handles the UI. Each tool does one thing well.

555
Lines of Kotlin
6
Source Files
0
Network Calls

Your photos never leave your phone.

The APK has no INTERNET permission. No analytics SDK. No crash reporting. No tracking. This isn't a policy — it's architecture.

No INTERNET permission
No analytics
No data collection
Open source — verify it yourself

Pick a plan.
We dare you.

Hours of executive meetings. Spreadsheets. ROI projections. We saved you the trouble.

CHOOSE WISELY
The Only Plan
$0 .00
One-time payment. In perpetuity. No take-backs.
  • Full app, not a demo
  • No "Pro" tier exists
  • No subscription to cancel
  • All future updates
  • Source code included
  • Unlimited colorizations
  • No dark patterns
Download APK — It's Free
No credit card required. Not even for show.
FOR COMPLETIONISTS
Premium+ Pro Max Ultra
$49 .99/mo
Also $0.00
FOMO edition. Same app, fancier name.
  • Exactly the same features
  • Identical neural network
  • Zero extra perks
  • We couldn't think of anything
  • Neither could the competition
Sold Out (Sorry)
The free one works better anyway.

Chromis is open source under MIT. That means you can audit every line, fork the repo, build it yourself, and still pay exactly $0.00. Our investors hate this one weird trick.

Questions?

Chromis uses DDColor-Tiny, a deep learning colourization architecture exported to ONNX format (FP16). It predicts the a and b chrominance channels in CIE Lab colour space from a grayscale input, while preserving the original luminance channel for maximum detail retention.

Cloud colourizers upload your photos to remote servers. Chromis runs the entire pipeline on your device — no network calls, no data leaving your phone. The APK doesn't even have the INTERNET permission declared. This is architectural privacy, not a privacy policy.

The DDColor model was trained and exported in ONNX format. ONNX Runtime provides cross-platform inference with aggressive graph optimizations and multi-threaded CPU execution. It's the standard format for model interoperability — train anywhere, run anywhere.

Android 8.0 (API 26) or higher. The app uses Jetpack Compose which requires API 21+, but ONNX Runtime and the native libraries target API 26+.

Processing typically takes 1-3 seconds on modern devices (Snapdragon 8-series, Tensor, Dimensity 9000+). Older devices may take 5-8 seconds. The model runs on 4 CPU threads with ONNX Runtime's ALL_OPT optimization level.

Yes. The entire project is open source under the MIT license on GitHub. The inference engine is 102 lines in DDColorEngine.kt. The Compose UI is 393 lines in MainActivity.kt. Total Kotlin: 555 lines across 6 files.

Your memories
deserve colour.

Download the APK. Explore the code. Verify the privacy claims yourself.

Raju Shingadiya