XiaoMi / StableDiffusionOnDevice

本项目是一个通过文字生成图片的项目,基于开源模型Stable Diffusion V1.5生成可以在手机的CPU和NPU上运行的模型,包括其配套的模型运行框架。
MIT License
80 stars 17 forks source link

量化模型推理效果不理想 #6

Closed 1826133674 closed 1 month ago

1826133674 commented 4 months ago

你好!

  我按照要求编译好apk后,在xiaomi13 pro上运行apk时,使用默认提示词,以及”猫咪“这样的提示词,生成的图片与提示内容毫不相关。请问可能的原因是什么?与推理的step参数有关系吗?我看到默认的step参数是20.
GainLee commented 4 months ago

可以固定种子,换多个提示词看看生成的图是不是一样的,如果是一样的说明提示词没有生效,使用的默认提示词,我遇到过这个问题,tokenizer有点问题

1826133674 commented 4 months ago

可以固定种子,换多个提示词看看生成的图是不是一样的,如果是一样的说明提示词没有生效,使用的默认提示词,我遇到过这个问题,tokenizer有点问题

确实是这样,请问您是怎么解决的呢? @GainLee

GainLee commented 4 months ago

可以固定种子,换多个提示词看看生成的图是不是一样的,如果是一样的说明提示词没有生效,使用的默认提示词,我遇到过这个问题,tokenizer有点问题

确实是这样,请问您是怎么解决的呢? @GainLee

把tokenizer修复一下就可以了,可以参考stablediffusion.cpp这个repo

billlight commented 4 months ago

这个工作不支持中文输入,换成cat试一下

1826133674 commented 4 months ago

可以固定种子,换多个提示词看看生成的图是不是一样的,如果是一样的说明提示词没有生效,使用的默认提示词,我遇到过这个问题,tokenizer有点问题

确实是这样,请问您是怎么解决的呢? @GainLee

把tokenizer修复一下就可以了,可以参考stablediffusion.cpp这个repo

您好,我没有找到这个cpp代码文件,您可以告诉我这个文件的链接地址吗?

1826133674 commented 1 month ago

可以固定种子,换多个提示词看看生成的图是不是一样的,如果是一样的说明提示词没有生效,使用的默认提示词,我遇到过这个问题,tokenizer有点问题

确实是这样,请问您是怎么解决的呢? @GainLee

把tokenizer修复一下就可以了,可以参考stablediffusion.cpp这个repo

你好,我试了将.so文件替换成了最新的2.19的库,但是在xiaomi13 pro(骁龙8Gen2)的手机上仍然输出的图像与提示词无关,而且也不是默认提示词的内容,是一个内容非常抽象的图片。请问还有什么别的方案吗 @billlight @GainLee

1826133674 commented 1 month ago

我解决了这个问题,这个问题是因为app/src/main/assets/stable_diffusion/utils/merges.txt,app/src/main/assets/stable_diffusion/utils/vocab.txt,这两个文件的符号系统变成了windows的CRLF,在手机运行时必须是Unix的LF,用notepad++修改文件的符号后重新编译apk即可。

这个工作不支持中文输入,换成cat试一下

可以固定种子,换多个提示词看看生成的图是不是一样的,如果是一样的说明提示词没有生效,使用的默认提示词,我遇到过这个问题,tokenizer有点问题

确实是这样,请问您是怎么解决的呢? @GainLee

把tokenizer修复一下就可以了,可以参考stablediffusion.cpp这个repo