pyRender离线渲染的一些问题

记录一下使用pyRender在没有显示器的服务器端做场景渲染时遇到的一些报错和解决。

写在前面,pyrender真是个大坑,渲染还很慢, realrender用cpu渲染也很快,问题没这么多,如果还没有绑定pyrender可以早些转投realreader,调试时候也需要灵活些,发现egl后端问题解不了,可以先用osmega后端,两个可以切换着来。

阅读更多

cmake引用pybind11

python调用C++用pybind11来封装接口比较方便易用,由于pybind11和python环境有匹配关系,cmake构建工程时先检测python环境,然后导入pybind11环境,这篇博客提供一个参考的cmakelists和一个简单的测试。

阅读更多

Python保存函数入参到文件,并从文件load再次调用

在部分调试场景下,我们需要保存函数运行的现场,方便直接从函数入口开始调试(而不是从头开始运行整个工程),我们通常会选择把函数入参保存到文件,再次调试时我们从文件运行即可。下面的代码段提供了一个功能,把函数所有入参保存到文件,然后重新从文件load函数入参,并调用函数。泛型入参都打包到字典,保证代码复用。

阅读更多

Pyside6 Graphview鼠标框选

上一篇博客给了一个QImageView类,其中实现了图片浏览器的基础鼠标操作,在此基础之上,进一步实现鼠标框选的操作。具体实现时,我们先构建一个场景类QImageScene,用于管理场景中的Item,场景中的Item主要有两类,一类是图像,另一类是选择框。对于选择框的操作,我们把鼠标事件定义在QImage Scene类中。

阅读更多

Stable Diffusion 本地部署指南

部署stable diffusion ai绘图,需要 nvidia 显卡,至少需要6G显存(显存越大越好,高清图片需要更大显存)。这篇博客适用于一些有代码基础的同学(也就是不会手把手告诉怎么搭建python环境、clone代码),完全没接触过代码的同学可以找其它教程。

Stable Diffusion 官网地址: https://stability.ai/blog/stable-diffusion-public-release

Stable Diffusion 代码仓库: https://github.com/CompVis/stable-diffusion

模型下载(该链接建议从头阅读):https://stable-diffusion-art.com/models/#Stable_diffusion_v15

https://huggingface.co/CompVis/stable-diffusion

训练和使用Lora:https://zhuanlan.zhihu.com/p/624230991

webui:https://github.com/AUTOMATIC1111/stable-diffusion-webui

阅读更多

爱因斯坦求和约定

列维-奇维塔符号(Levi-Civita symbol)和 爱因斯坦标记(Einstein notation)是张量运算的常用标记。

爱因斯坦求和约定(Einstein summation convention)又称为爱因斯坦标记法(Einstein notation),可以让表达式更加简洁明了。里面主要涉及两个概念:哑标(dummy index),自由标(free index)

阅读更多

ImageJ拓展开发script、macro和 plugin

在处理图像和三维数据方面有一个强大且拓展性强的软件ImageJ,ImageJ本身功能不是特别多,但是多年以来积累了丰富的插件,使得其成为专业图像处理和数据科学、医学图像处理等领域的利器。FIJI ImageJ打包了很多插件,可以实现很多功能,但是总有需求超出功能的时候,我们可能希望自己开发插件。

ImageJ支持多种形式的拓展,支持用我们熟悉的Python语言(Jython)进行拓展开发,也支持JS脚本的macro开发,还支持Java开发的插件。实际上ImageJ开发插件是很简单的,有时候我们只需在demo代码基础上改上短短几行就能实现我们自己定制化的功能。这篇博客主要简单介绍script、macro和plugin开发的流程,指引一下资源位置,给简单的流程介绍,不会具体深入代码层面。

阅读更多