作者ivon852 (内容农场杀手)
看板MobileComm
标题[讨论] 手机跑AI绘图 Stable Diffusion
时间Mon Feb 20 00:02:22 2023
AI绘图软体,最近比较热门的是Stable Diffusion,它的好处为能在自己的电脑跑,而不
用依赖云端服务,硬体到位想做什麽都可以。
这时候不禁想到,手机是否也有跑AI绘图模型的办法?毕竟都有人用树莓派跑了
最近有开发者自行移植Stable Diffusion到iOS平台,苹果使用者可以直接下载APP来玩,
配合最新iPhone的性能,几分钟就能出图,该APP称之为Draw Things。
那如果是Android平台呢?乾脆直接跑电脑版Stable Diffusion吧,所以有了这篇的实验
。
网志好读版:
https://reurl.cc/a155Ml
建议硬体:
1. 8GB以上RAM的手机,有「虚拟记忆体」功能的更好,因为Stable Diffusion建议规格
是12GB以上RAM。
2. 30GB以上的储存空间
3. S865以上的处理器
4. 很快的网路
手机不需要root,然而没root的情况最多只能算到320x320的图片。有root的话可以上到
512x512。
首先我们需要Linux环境,当然就是请出Termux,然後装Debian。
(选择性) 编译virgl使之能存取手机的GPU(需要支援Vulkan)
进入Debian环境,安装Python和Pip
接着下载Stable Diffusion v1.5的模型 (30GB),要画动漫人物则是找Anything。
WebUI目前我是装不起来
写个Python小程式开始算图,关键字填维多利亚,长宽320像素
https://i.imgur.com/GwiyIMI.png
开发人员选项禁止所有APP在背景执行
开始算图,等个20分钟 (用GPU算的话15分钟)就会出图。关键字设定不好就会恐怖谷。
https://i.imgur.com/Dqfa7w8.png
如果想要算到512x512像素,我们就得另外设定Debian/Ubuntu的chroot环境。又Termux一
旦执行Stable Diffusion算更大的图,会因占用过多CPU被系统杀掉,因此要从电脑ADB
Shell进入手机的终端机,进入chroot,从这里启动算图程式节省资源。
(嗯都用到电脑了我干嘛还用手机算呢,电脑出图只要30秒)
Stable Diffusion算的图片大小越高,越吃资源。
https://i.imgur.com/gUosjoX.png
顺带一提手机没有虚拟记忆体功能的,也可以手动在chroot里面建立SWAP file,并将之
挂载到系统,这样8GB手机也能扩张到20GB的RAM。
接着只要等一小时图就会出来了 (没办法,chroot无法用GPU)
https://i.imgur.com/HVlfSi2.png
经历几小时系统不断的崩溃和等待,做完实验後发现我的美好星期天只剩下三个小时了。
结论是勉强可行,运算时手机其实也没烧起来。
若有人能利用Android的AI技术移植Stable Diffusion就更好了,能有效利用手机GPU。
目前只有ncnn版的Stable Diffusion能在手机跑。
--
最真实的1944年日美海空战,绝赞上映中。
https://i.imgur.com/XvVnOv9.png
https://i.imgur.com/z3atpS6.png
https://i.imgur.com/QrmG2LL.png
https://i.imgur.com/zZ0vNvR.png
https://i.imgur.com/dlhNnEL.png
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.40.6.25 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MobileComm/M.1676822547.A.930.html
※ 编辑: ivon852 (114.40.6.25 台湾), 02/20/2023 00:18:21
1F:→ benjaminchia: 自言自语02/20 00:21
2F:推 NX9999: 彩!!02/20 00:31
3F:推 jaspergod: 实验精神推XD 瞎搞也是种浪漫02/20 00:39
4F:推 saimeitetsu: PC都热爆了,用手机跑soc应该会提早虚焊02/20 00:58
其实CPU算的时候并没有比长时间录制4K热
5F:推 sismiku: 然後就可以出保了 02/20 02:00
6F:推 hollen9: 某楼标准劣币逐良币02/20 06:30
7F:推 jhangyu: 推,不过实在太久了,3060出图不过6~8秒02/20 07:29
8F:推 BlackCoal: S865的手机价格,组一台PC还比较划算 02/20 07:51
9F:推 sixkeeper: 好猛推个,不晓得有没有可能推APP出来?02/20 08:49
10F:推 Arbin: Termux那ART沙箱环境做chroot的效能会差一点02/20 08:50
11F:推 s78513221: 我还是手机上colab吧02/20 08:51
12F:→ Arbin: 只是也不知道直接用root的方式做chroot会不会有其他问题就02/20 08:52
13F:→ Arbin: 是了02/20 08:52
从ADB shell进入chroot就不会有Termux耗尽记忆体崩溃的问题。ADB Shell是纯文字介面,
Android图形介面当掉的时候照样能运作
14F:推 keigowei: 真的很烂慢…很厉害的实验02/20 09:05
15F:推 weltschmerz: 放过手机 请用云端算图==02/20 09:16
16F:推 Sinreigensou: 为何要用手机做啊 技术展示?02/20 09:22
17F:推 lkj12tw: 推一个02/20 09:34
18F:推 kkagq: 应该拿pixel来试试,这两年吹AI多强,真正应用派上用场,02/20 09:36
19F:→ kkagq: 看是不是真有本事02/20 09:36
首先要有苹果那种成熟的AI框架给人利用
20F:推 emptie: 推实验精神02/20 09:52
21F:推 sheng76314: 手机都能算 a卡… 02/20 10:47
23F:→ lsps40803: 云端就能做到的事为什麽要虐待你的手机...02/20 10:53
云端有可能挡nsfw =w= 不过控制的好也是比自家电脑快很多
24F:推 milk830122: 因为这个还是对n卡支援好很多 没vram算都超慢的 不如02/20 10:53
25F:→ milk830122: 用网路的帮你算02/20 10:53
26F:→ abc0922001: 强02/20 11:01
27F:推 double5915: 手机:....帮复.... 02/20 11:16
28F:推 guogu: a卡能算阿 网路上教学也不少吧02/20 11:29
29F:推 louie0909: 是说手机的npu有开放api之类的吗 每次新处理器发表都02/20 12:16
30F:→ louie0909: 再吹ai性能多猛多猛 02/20 12:16
31F:推 henrylin8086: 这折腾很像很好玩02/20 12:16
32F:推 LoveShibeInu: 笑死 美好星期天就是要这样浪费02/20 12:17
※ 编辑: ivon852 (223.139.117.41 台湾), 02/20/2023 12:31:31
33F:推 superstu: 猛欸,跪着看这篇 02/20 12:44
34F:→ shengshampoo: 物尽其用不是坏事,DIY土炮也可以发挥创意。 02/20 13:27
35F:→ shengshampoo: 徒手制作喷射火箭飞上天空,也是需要这类人才能付 02/20 13:30
36F:→ shengshampoo: 诸实行。 02/20 13:30
37F:推 Loliprpr: 云端都有免费P100能用 怎麽会想用手机跑XD 02/20 15:15
38F:推 a0910bb: 推 02/20 17:44
39F:推 ymx3xc: 推 新烧机模式 02/20 20:43
40F:推 ncuephysics: 用模拟器好了 02/21 04:03
41F:推 devilhades: 我...我还是乖乖NovelAI吧 02/21 14:34