KMP-MineStableDiffusion
Kotlin Multiplatform 实现的跨平台 Stable Diffusion 客户端,支持 Android/iOS/桌面端离线生图,C++ 原生推理引擎保障性能
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Kotlin Multiplatform 实现的跨平台 Stable Diffusion 客户端,支持 Android/iOS/桌面端离线生图,C++ 原生推理引擎保障性能
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:你正在咖啡馆里等待朋友,突然灵感来了想画一张图。传统做法是打开电脑、登录云端 AI、等待服务器排队——更别提有些还要收费、有些会被审核。而 Mine StableDiffusion 告诉你:掏出口袋里的 Android 手机,点开 App,输入一句提示词,30 秒后,一张 512×512 的 AI 画作就躺在你的相册里了。没有网络、没有付费、没有审核,数据永远留在你自己的设备上。
这就是 Mine StableDiffusion 带来的体验:一部 Android 手机、iPhone,或者一台普通电脑,就能运行 Stable Diffusion 全系列模型的离线 AI 画图工具。它的背后,是 Kotlin Multiplatform 架构将 C++ 推理引擎无缝桥接到现代移动端和桌面端。
Stable Diffusion 自 2022 年开源以来,一直是 AI 生成图像领域最受欢迎的基础模型。然而,现有方案普遍存在两个痛点:
痛点一:平台割裂。 爱好者通常需要针对不同场景使用不同工具——Windows 用户用 Automatic1111 WebUI,Linux 开发者用 ComfyUI,移动端则几乎没有像样的本地推理方案(大多数方案依赖云端 API)。
痛点二:部署门槛高。 即使是桌面端,Stable Diffusion 的主流实现(如 Automatic1111)也依赖复杂的 Python 环境、CUDA 配置,大量普通用户被挡在"本地部署"的门槛之外。
Mine StableDiffusion 的作者 Onion99 正是看到了这个空白。项目于 2025 年 11 月创建,采用 Kotlin Multiplatform 技术栈,试图打造一个"一处代码、多端运行"的 Stable Diffusion 统一客户端——Android、iOS、macOS、Windows、Linux,一个不落。
Mine StableDiffusion 的核心定位是离线优先的 AI 艺术工作室。它整合了从模型下载到图像生成再到参数管理的完整流程:
多模型支持,覆盖主流架构。 项目支持的模型范围相当全面:经典的 SD 1.5/2.x 系列、SDXL 及其 Turbo 变体、Illustrious-XL、Pony 等社区热门 SDXL 模型,以及 FLUX.1(schnell/dev)、SD3/SD3.5、Z-Image、Chroma、Ovis-Image 等最新架构。GGUF 量化格式原生支持,降低本地运行门槛。
LoRA 无限扩展。 用户可以直接拖放 .safetensors 格式的 LoRA 文件,App 支持多个 LoRA 同时叠加、权重精细调节,UI 内置权重滑块,无需切换到其他工具。
高级采样控制。 内置 Euler a、DPM++ 2M、LCM、TCD 等多种采样算法,可以实时切换、对比不同算法对同一提示词的效果差异,帮助用户深入理解采样器对生成结果的影响。
元数据自文档化。 导出的 PNG 图片自动嵌入完整生成参数(提示词、种子、模型名、采样器、CFG、LoRA 信息),将图片重新拖入 App 即可完整还原上一次的生成环境。

从技术角度看,Mine StableDiffusion 的架构设计颇为精妙。项目没有选择纯 Kotlin/Python 混合路线,而是采用了Native C++ 后端 + Kotlin Multiplatform 桥接层的架构:
底层:C++ 推理引擎。 项目直接集成 stable-diffusion.cpp——这是 llama.cpp 作者 leejet 的作品,将 Stable Diffusion 模型用纯 C/C++ 重写,支持 GGUF 量化、CPU/GPU 混合推理、Flash Attention 等优化。这是整个项目的性能根基:纯 C++ 实现绕过了一切 Python 开销。
桥接层:JNI 绑定。 Kotlin Multiplatform 通过 JNI(Android)和类似机制(macOS/iOS 的 Metal bindings)调用 C++ 层,实现跨平台的 native 互操作。gradle 构建脚本中可以看到 diffusion-loader.cpp 等自定义 C++ 模块被编译为各平台的 native 库。
UI 层:Compose Multiplatform。 整个前端使用 JetBrains 的 Compose Multiplatform 构建,一套 Kotlin 代码同时编译为 Android 的 Jetpack Compose、iOS 的 SwiftUI、Web 的 Canvas,以及桌面端的 JVM UI。配合 Koin 做依赖注入,架构清晰简洁。

硬件加速:Vulkan + Metal 双轨并行。 Android/Windows/Linux 走 Vulkan 1.2+ 路径,macOS/iOS 走 Apple Metal 路径。两者分别对应手机 GPU 和 Apple Silicon 的硬件特性,确保推理计算在 GPU 上高效执行。
没有 Docker 支持——这是需要注意的一点。项目没有提供 Dockerfile 或 docker-compose.yml,不支持容器化部署。对于习惯用 Docker 一键启动的用户来说,这需要额外的手动配置。
有预编译安装包。 项目维护了 GitHub Releases,提供针对各操作系统的预编译二进制:
.exe 安装程序.dmg 镜像(Apple Silicon 或 Intel)
从源码构建。 对于开发者,官方提供了 Gradle 构建流程。Android Studio 或 IntelliJ IDEA 打开项目后,执行 ./gradlew :composeApp:run 可启动桌面版,执行 ./gradlew :composeApp:assembleDebug 可构建 Android APK。
部署难度评估:中等。 预编译包对普通用户友好,开箱即用;但从源码构建需要 JDK 21、Android SDK、Vulkan/Metal 驱动等环境配置。quick_deploy = partially_supported。

Mine StableDiffusion 的移动端体验是它区别于大多数同类方案的核心竞争力。目前 Android 端已稳定发布,iOS 端处于 Beta 阶段。
手机端的核心挑战是 VRAM 管理。 手机 GPU 显存远小于桌面 GPU,项目在设置中提供了精细的 VRAM 控制选项:量化类型选择(FP16/Q8_0/Q4_K)、CPU Offload(将部分计算卸载到 CPU 以避免显存溢出)、CLIP/VAE 独立卸载等。对于不同档次的手机,用户可以灵活调整以在画质和成功率之间取得平衡。
批量生成。 App 支持一次生成最多 10 张图,进度条实时显示,适合快速迭代提示词或生成变体。
尽管项目设计理念清晰,但仍有几个客观限制:
1. iOS 端仍处于 Beta。 截至 2026 年初,iOS 版本尚未完全稳定,Apple 生态的审核和 Metal 兼容性可能带来额外工程挑战。
2. 模型文件管理缺失。 App 依赖用户手动准备 .gguf 或 .safetensors 模型文件,没有内置模型下载市场。用户需要自行从 Hugging Face 或 Civitai 下载模型,对新用户存在一定认知门槛。
3. 隐私与安全的两面性。 离线运行虽然保证了隐私,但也意味着模型文件的合法性完全依赖用户自觉——这在使用盗版模型时可能存在法律风险。
4. 模型规模受限。 FLUX、SD3 等大型模型对手机 GPU 压力很大,实测效果可能远不如桌面端。这不是项目的问题,而是硬件物理限制。

Mine StableDiffusion 的出现,代表了 Kotlin Multiplatform 在端侧 AI 推理领域的一次有意义的探索。
从生态角度看,KMP 的"一处代码、多平台"特性在 AI 工具类 App 中极少被采用——大多数开发者选择 WebApp(体验差)或纯原生多套代码(维护成本高)。Mine StableDiffusion 证明了 KMP + C++ JNI 这条路径在性能敏感的 AI 推理场景中是可行的。
从行业趋势看,端侧 AI 推理正在从"极客玩具"走向"大众工具"。随着手机 NPU 能力的提升和量化技术的成熟,未来在移动设备上流畅运行 SDXL 甚至 FLUX 级别模型并非不可能。Mine StableDiffusion 正是这一趋势的早期实践者。
项目自 2025 年 11 月上线以来保持活跃更新,截至 2026 年 7 月已有 118 颗 GitHub Stars,对于一个专注于如此垂直领域的项目而言,增长速度值得肯定。
| 维度 | 详情 |
|---|---|
| 编程语言 | Kotlin(UI + 业务逻辑)+ C++(推理引擎) |
| UI 框架 | JetBrains Compose Multiplatform |
| AI 推理引擎 | stable-diffusion.cpp(基于 llama.cpp) |
| 依赖注入 | Koin |
| 支持平台 | Android(稳定)、iOS(Beta)、Windows/macOS/Linux(桌面) |
| 硬件加速 | Android/Linux: Vulkan 1.2+;Apple: Metal |
| 模型格式 | .gguf(量化)、.safetensors(原生) |
| License | GPL-3.0 |
| 支持的 SD 架构 | SD 1.x/2.x、SDXL、SD3/3.5、FLUX.1、Z-Image、Chroma、Ovis-Image 等 |
| 特色功能 | LoRA 叠加、批量生成、实时采样器切换、参数元数据嵌入 |