Stable Diffusion
对于这种生成图片的项目,需要有一种高效的方法来查看生成的结果,找来找去,发现 invoke-ai 这个项目能满足我的需求,有如下几个优点。
- 安装非常方便。
- 界面交互做的非常好。
- 可以很方便的集成 stable diffusion 各种模型。

对于这种生成图片的项目,需要有一种高效的方法来查看生成的结果,找来找去,发现 invoke-ai 这个项目能满足我的需求,有如下几个优点。
我开始了我的深度学习,对于以前没有搞过深度学习的人来说,有点吃力,不过我的学习方法比较适合我,首先我去看了一下基本的数学原理,这里推荐一本书,叫做《深度学习的数学(图灵出品)》([日]涌井良幸,涌井贞美) ,把书里的推导和 Excel 演算都动手实践的话,感觉原理基本上搞的差不多,会一些基本的原理和术语后,我就开始找一些 demo 来跑,这些 demo 能跑通,我就开始换不同的数据源,换不同的场景,这大概是我的学习路径。
推荐这本书,《深度学习的数学(图灵出品)》([日]涌井良幸,涌井贞美)
我正好有这个需求,手上有一些注册用户,默认是没有填写性别的,如果要给对方发促销邮件,最好是知道基本的性别,所以这是一个真实的场景。
自己从 0-1 去实现性别预测,肯定不现实,所以我优先去找开源项目,还真找到一个,人家还写成了论文,说根据名字可以预测性别。
今天在自己的服务器上把这个项目跑起来了,在图片消除上,效果还不错,基本上可以商用。
image inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people from your pictures or erase and replace(powered by stable diffusion) any thing on your pictures.
Image Cleaner – Cleanup Pictures/Images 100% Free (imgcleaner.com)
除了常规的图片对象消除外,还支持图片替换,基于 SD 1.5
可选择的模型和调整的参数都比较多,需要持续使用。
Runway Inpainting – a Hugging Face Space by runwayml 这个项目也可以实现生成的效果。
用跑 nextjs 的一个 demo,用 nextjs+wordpress+GraphQL 报错,摄氏的原因是说命名的问题,我把主题更改成英文,这个摄氏就消息了,GraphiQL IDE 就可以正常展示了,具体原因还没时间来查,发现有用户提交了相关 case。
Uncaught (in promise) GraphQLError: Names must only contain [_a-zA-Z0-9] but "Template_封面模板" does not.
GraphQL IDE got broken when site locale is CJK · Issue #2492 · wp-graphql/wp-graphql · GitHub
把主题更改成英文就解决问题了。
发一个邮件,其实路径还是很长的,首先要搞清楚需求,然后制作邮件模板,邮件模板制作好后,要填充真实的内容,最后再交给平台去发送,邮件模板制作主要是前端同学,邮件内容填写往往是市场或者运营同学,用什么样的方法可以提高邮件模板的生产效率呢?发现了几个工具,可以加速邮件模板的生产。
虽然邮件支持 html 格式,但是展示的内容和浏览器中的表现还是非常不一样的,有很多标签和样式不支持,还需要加一些条件表达示,所以造成前端编写邮件模板非常底效,这几个工具可以提高邮件模板的编写效率。
MJML – The Responsive Email Framework 他相当于一种描述语言,最后可以编译成邮件模板(html 格式)。
知道 Dreamweaver 这个工具的,一定是 “德高望重” 的程序员了,当年在大学的时候,一个同学一个晚上做了一个网站,我当时用 jsp,做了一个星期也没有做成,后来一问,他用的是 Dreamweaver,工作以后,这个工具基本上就是在视野之外了。
今天有一个运营同学问我,有没有他可以用的网页或者邮件(html 格式)编辑的工具,我知道最主流的肯定是 Webflow: Create a custom website | No-code website builder ,比 Dreamweaver 好用,并且支持在线协作,除了 webflow 之外,还有很多开源的,花了两个小时做了一下调研,发现需求还是那个需求,只是满足的方式变了,就像出行的需求几百年来一直存在,从马车,到汽车,到飞机,满足的方式不一样了。
webflow 需要有一定的设计能力,其实挺好用的,最大的一个问题是不支持导出已经有的模板,只能在 webflow 上面自己创建,对我来说是一个比较大的挑战,因为我已经买了很多模板,比如邮件模板,我只要换几张图片,更新几个连接就可以了。
这个编辑器非常强大,但是他不支持一键 deploy,需要自己集成,没有代码经验的人来说,难度有点高,有代码经验的人,可以二次开发。
GitHub – artf/grapesjs: Free and Open source Web Builder Framework. Next generation tool for building templates without coding
GitHub – givanz/VvvebJs: Drag and drop website builder javascript library. 是 bootstrap+jquery 组合,对于我编辑模板,基本上够用。
Google翻译 (qishiya.com) 要支持格式化翻译,如要翻译 html, json, 之类的文本或者文件,需要找一个好的代码编辑器,参考了 Best JSON Viewer and JSON Beautifier Online (codebeautify.org) 的方案,发现他用的是 GitHub – ajaxorg/ace: Ace (Ajax.org Cloud9 Editor) 这个开源编辑器,这个编辑器确实很强大,基本上可以满足各种代码的需求。
我喜欢用 Find out what websites are built with – Wappalyzer 来分析网站所用的技术,他是一个插件,只要打开所在的网站,点击一下,就会显示此网站用了哪些技术,非常方便。
一台 GPU 机器,直接访问 gpu 是没有问题的,但是安装 tensorflow 后,一直访问不到 GPU,看了一下 TensorFlow 支持容器化安装,是可以支持 GPU 的。
必须先在宿主机上 安装 NVIDIA driver 和 Docker。
Installation Guide — NVIDIA Cloud Native Technologies documentation
docker pull tensorflow/tensorflow:2.11.0-gpu
docker run --gpus all -it -v $PWD:/tmp -w /tmp tensorflow/tensorflow:2.11.0-gpu bash
nvidia-smi
docker run --gpus all -it --rm tensorflow/tensorflow:2.11.0-gpu \
python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
今天犯了一个错误,犯这个错误的原因是没有理解 docker 的设计哲学,大概花了 3 个小时来折腾一个事情。
一个容器没有安装 python 的一些依赖库,我在容器里面安装了依赖库,不想每次都安装这些依赖库,所以我想把这个容器保存成新的镜像。
有两种方式来解决这个问题。
方式一,构建新的 Dockerfile。
方式二,对一个正在运行的容器,通过 commit 来创建新的镜像。
我选择了方式二,我把容器当虚拟机使了,这是没有理解 Docker 设计的哲学。
找了一文章,这文章总结的很好,有利于我去了解 docker 的设计哲学,我就把他翻译在下面。
所以你最终屈服于容器,发现它们解决了很多问题并且有很多优势:
然而,许多用户仍然像对待典型的虚拟机一样对待容器,而忘记了容器有一个重要的特性:容器是一次性的。
“容器是短暂的”。
这种特性迫使用户改变他们应该如何处理和管理容器的思维方式;我将解释您不应该做的事情以继续发挥容器的最大优势:
经常会画一些草图,用来整理思路,或者画一些产品的原型图,和团队的人沟通,以前一直用 draw.io,昨天有朋友推荐,今天试用了一下 Excalidraw | Hand-drawn look & feel • Collaborative • Secure,还是很吸引人的,分收费和免费版,大部分场景其实免费版就够了,收费版主要是强调协作和存储。
画了一个登录页面的草图,还是很方便的,也有第三方的库,可惜类库不太丰富。