往
全网 Kotlin Multiplatform 首个本地小语言模型(SLM)对话应用开发之旅C
全网 Kotlin Multiplatform 首个本地小语言模型(SLM)对话应用开发之旅B
全网 Kotlin Multiplatform 首个本地小语言模型(SLM)对话应用开发之旅A
前言
有一说一,都2025年了,移动互联网早日江河日下,但鲁迅可就不服了,他说,路就是人走出来的,只要人走多的多了,路就出来了
以前看着别人本地跑Stable Diffusion 几秒出图就很羡慕,我如果有这么强的显卡就好了,这么强的显卡,拿来玩游戏该有多爽呀,最近玩3a大作都只能开中低特效,整个屏幕都糊糊,可恶呀
话说回来,目前Android端的StableDiffusion都是套着一副webui client的样子,真是气都冷,Android开发已经这么没落了吗,重振Android荣光,我辈义不容辞,必须从此刻做起,MAGA(Make Android Great Again)是我的梦想,这是我此生能做的事情
那就从这里开始吧 🐯KMP-MineStableDiffusion: Run Stable Diffusion on Android and Desktop Devices with CPU/GPU inference
准备
作为一名切图仔,很多东西都是不懂的,没办法,得找一名强大的外援了
不像Kotlin这般没落,C++辈可谓人才辈出,就如下面这个
对于这个库只能这么说 good,very good ,super good
介绍一下,Stable Diffusion C++ 是一个基于纯 C/C++ 实现的 Stable Diffusion 和 Flux 推理项目
- 基于 ggml 的纯 C/C++ 实现,非常轻量级,适合性能低下设备
- 支持各种硬件平台
- CPU (AVX, AVX2 and AVX512 support for x86 architectures)
- CUDA
- Vulkan
- Metal
- OpenCL
- SYCL
- 支持图生图,图生文,图生视频
我们要的就是图生图,兄弟们,看到这里,凭通用性来说,我们可以取到通用的加速处理,没错,正是Vulkan 打游戏见到最多的就是这家伙了,游戏跨平台引擎,我们Kotlin Multiplatform也用这个, 虽然Kotlin很没落,但它跟Native层的交互还算友好
UI开发
老样子,没有审美的切图仔,只知道Control C 和Control V,那就盗用之前的处理过的缝合怪UI吧,对话应用开发之旅B,懒惰的人就是这样缝缝补补的,将原先写的GPT的返回文本消息类型改成图片消息类型就OK了
| Android | Desktop |
|---|---|
UI源码:KMP-MineStableDiffusion-UI
联通Native层
还是咱们的老朋友呀,JNI桥梁搭建,老三件套
- 初始化Native
- 先做图生图,那就是文本输入,图片返回处理C层交互
- 释放资源,先简单Deemo,管有的没的,这部不处理也可以
这里需要注意的C层的返回的是原始的RBG图片数据,到应用层还需重新封装成PNG编码
JNI源码:KMP-MineStableDiffusion-CPP
测试模型
sd_xl_turbo_1.0_fp16.safetensors
结论
- 哈哈,速度比较糟糕🤣🤣🤣
- 尽可能找一些七步成诗(图)的模型🐔🐔🐔
萍水相逢,尽是他乡之客 关山难越,谁悲失路之人,诸君,来Kotlin Multiplatform的伟大航路吧!
各平台下载
One Step By Step
| 系统 | 格式 | 下载链接 | 说明 |
|---|---|---|---|
| Android | apk | MineStableDiffusion-1.3.0.apk | |
| Windows X86_64 | zip | MineStableDiffusion-1.3.0-windows-x86_64.zip | |
| Windows X86_64 | exe | MineStableDiffusion-1.3.0-windows-x86_64.exe | |
| Windows X86_64 | msi | MineStableDiffusion-1.3.0-windows-x86_64.msi | |
| macOS X86_64 | DMG | MineStableDiffusion-1.3.0-macos-x86_64.dmg | sudo xattr -d com.apple.quarantine /Applications/MineStableDiffusion.app 或在设置-隐私与安全性中点击仍要打开 |
| macOS Arm64 | DMG | MineStableDiffusion-1.3.0-macos-aarch64.dmg | sudo xattr -d com.apple.quarantine /Applications/MineStableDiffusion.app 或在设置-隐私与安全性中点击仍要打开 |
| Linux X86_64 | AppImage | MineStableDiffusion-1.3.0-linux-x86_64.AppImage | |
| Linux X86_64 | Deb | MineStableDiffusion-1.3.0-amd64.deb | |
| Linux X86_64 | RPM | MineStableDiffusion-1.3.0-x86_64.rpm |