记录StableDiffusion调用PhotoMaker执行失败的调试及结果

查理谈科技 2024-06-12 10:04:31

续上篇

上一篇说到,我用Stable-Diffusion.cpp , 在红米K70 Pro 上调用PhotoMaker 来产生AI 图片, 之前的执行命令为:

sd -m ./models/sdxlUnstableDiffusers_v11.safetensors           \    --vae ../models/vae/sdxl_vae.safetensors              \    --stacked-id-embd-dir ./models/photomaker-v1.safetensors          \    --input-id-images-dir ./assets/photomaker_examples/scarletthead_woman/    \    -p "a girl img, retro futurism, retro game art style but extremely beautiful, intricate details, masterpiece, best quality, space-themed, cosmic, celestial, stars, galaxies, nebulas, planets, science fiction, highly detailed"              \    -n "realistic, photo-realistic, worst quality, greyscale, bad anatomy, bad hands, error, text"         \    --cfg-scale 5.0       \    --sampling-method euler    -H 768 -W 768     --style-ratio 10     --vae-on-cpu     -o ./output/output_photomaker.png

结果,昨天晚上在安卓手机上执行PhotoMaker了很久, 没错, 就是红米K70 Pro, 这个号称用了骁龙8 Gen 3 芯片的最新手机, 也执行了很久很久, 大概8个小时, 最后一看, 我去, 白片~崩溃了!!!

白色, 没错,这就是产出的图片

后来又在我的Mac 笔记本上执行了一次, 这次是黑的~!! 苍天啊~~

经过仔细排查, 第一次只用最基本的SDXL 模型,提示需要添加VAE模型, 日志输出:

[INFO ] stable-diffusion.cpp:180 - loading vae from './models/vae/sdxl_vae.safetensors'

[WARN ] model.cpp:739 - unknown format ./models/vae/sdxl_vae.safetensors

[WARN ] stable-diffusion.cpp:182 - loading vae from './models/vae/sdxl_vae.safetensors' failed

经过仔细研究, 发现我用的VAE 插件,是madebyollin/sdxl-vae-fp16-fix, 在hugface 里面,居然有俩文件:

这怎么区分的清楚哪个对呢? 都下载下来试试吧, 结果,就是不带下划线的文件是对的,所以应该使用的VAE文件名是:sdxl.vae.safetensors

所以,正确的命令是:

sd \--threads 8 \--model "./models/sdxlUnstableDiffusers_v11_2.safetensors" \--vae ./models/sdxl.vae.safetensors \--stacked-id-embd-dir ./models/photomaker-v1.safetensors \--input-id-images-dir ./assets/photomaker_examples/scarletthead_woman/ \--output "./output/photomaker_s_1.png" \--prompt "a girl img, retro futurism, retro game art style but extremely beautiful, intricate details, masterpiece, best quality, space-themed, cosmic, celestial, stars, galaxies, nebulas, planets, science fiction, highly detailed" \--negative-prompt "realistic, photo-realistic, worst quality, greyscale, bad anatomy, bad hands, error, text" \--cfg-scale 7.0 \--sampling-method euler_a \--steps 20 \--seed -1 \--clip-skip 2 \-W 768 \-H 512 \--type f16 \-v

先不用PhotoMaker, 做了两个作为对照组:

后面又产生了黑寡妇姐的图片:

能看得出原片的样子,这是寡妇姐本人的例子图片:

这样对比会更直接:

但是感觉加上PhotoMaker 之后, 图片质量不如对照组的精美, 尤其是在背景方面,感觉精细度不太够。

再来看看我们的大蜜蜜的照片:

使用的命令(注意提示词里面带有Asian):

sd \--threads 8 \--model "./models/sdxlUnstableDiffusers_v11_2.safetensors" \--vae ./models/sdxl.vae.safetensors \--stacked-id-embd-dir ./models/photomaker-v1.safetensors \--input-id-images-dir ./assets/photomaker_examples/yangmi_woman/ \--output "./output/photomaker_y_1.png" \--prompt "an Asian girl img, retro futurism, retro game art style but extremely beautiful, intricate details, masterpiece, best quality, space-themed, cosmic, celestial, stars, galaxies, nebulas, planets, science fiction, highly detailed" \--negative-prompt "realistic, photo-realistic, worst quality, greyscale, bad anatomy, bad hands, error, text" \--cfg-scale 5.0 --style-ratio 10 \--sampling-method euler_a \--steps 20 \--seed -1 \--clip-skip 2 \-W 768 \-H 512 \--type f16 \-v

生成的图片:

图片生成了三次,最后一次图片有瑕疵。

需要注意的是, 上面这些图片都是在我Mac 电脑上执行得出的, 手机还是不太行。 所谓的AI 手机啥的, 计算能力跟真正的电脑比,还是有差距的。

外婆的照片

最后, 来张真实一点的, 要了几张外婆的照片(老人家九十多了,身体健康,心情愉快, 诸位请献上祝福,口下留德~~), 也用这个PhotoMaker 制作了几张试试。

原图是手机拍摄,细节太多就不放出了,直接看对比图吧:

这一张里面, 感觉姿态是对的, 细节部分有点夸张了哈哈。

再来一张:

整体感觉, PhotoMaker 在产生图片的时候, 还是抓住了面部特征的, 就是在年龄方面做的更加年轻一些, 整体的面部轮廓、肌肉线条等还是符合的。

多说一句,这真的是我的外婆, 老人家今年九十多了, 身体健康, 我希望老人家能长命百岁! 但是天不假年, 后续有机会,还是希望能给老人家做一个数字人, 希望在电子世界里能永远见到老人家~~

怎么样? 你有没有兴趣也制作几个这样的图片呢?通过本地运行PhotoMaker, 这些图片处理和最后产生的图片,都完全在本地离线的情况下处理的,完全不担心隐私泄漏的风险的。

 

0 阅读:2

查理谈科技

简介:感谢大家的关注