
NumpyConcatenate加速
Error 多次循环进行 Numpy Concentrate 操作后,当原始数组变得过大的时,单步处理时间会逐渐变长,处理大量数据的时候时间成本极高。 解决思路 这里简单的讲一下问题的定位过程,通过装饰器 Check 每个函数的执行时间,重点关注执行时长逐渐变长的部分。 ...
Error 多次循环进行 Numpy Concentrate 操作后,当原始数组变得过大的时,单步处理时间会逐渐变长,处理大量数据的时候时间成本极高。 解决思路 这里简单的讲一下问题的定位过程,通过装饰器 Check 每个函数的执行时间,重点关注执行时长逐渐变长的部分。 ...
树莓派家庭服务器的搭建以 docker 为核心,通过 docker 统一管理家庭服务,目前搭建的服务还在持续完善中,主要目的是为了方便日常使用、满足学习和探索的需求。 Docker 的安装这里不再赘述,参考 Docker Configuration01 Install on Linux 一文进行安装即可;本篇主要侧重于介绍部署的镜像和服务,以及简单介绍使用方式。 一些 Docker 容器推荐 这里推荐一些 Docker 容器:Alist、XiaoYa、PiDashboard、redis、mysql、portainer、memos、wikijs 相关的 Docker-Compose 文件会上传到AikenH/aikenh-DockerComposeYML (github.com) 数据库部署与远程连接测试 sqlite 3 Sqlite 与 Mysql 等不同,是一个无服务器、零配置的数据库,其更像是一个解析特定数据库文件的命令接口(CLI 工具),其将数据完全存储于一个单一的跨平台磁盘文件中; 由于 sqlite3 的特性,决定了其是一个轻量级且不需要额外配置的数据库,但是在远程访问方面,只能通过文件共享来实现远程操作数据库。 大多数的 Linux 系统版本都会附带 SQLite 的安装,因此我们可以直接使用下面的指令验证一下是否安装: bash sqlite3 如果没有安装的话,可以去官方的下载页面 下载对应的预编译包,然后进行安装即可。 ...
将 RaspBerry Pi 4B 作为家庭影视中心/机顶盒的核心就是 KODI 软件,这是考虑到以下的几点:遥控器的控制、对挂载 webdav 和其他的支持 最方便的方式可以选择以 KODI 为核心的两个 OS:LibreELEC、OSMC(推荐),这两个系统以 KODI 为默认启动,同时也支持远程登录和 Docker 部署等 Linux 的功能。后者更为推荐应该是前者的官方改进版本。 考虑到后续可能会将该 SD 卡用于其他用处,因此本文选择的是使用 RaspBerryPi OS 的方案,以下围绕该方案进行展开: RaspBerry Pi OS+Kodi+Alist 方案探究 可以参考 trouble shooting,可以发现实际上安装 kodi 最简单的方式就是直接使用 apt,无需做其他的 PPA 添加。 安装Kodi bash sudo apt-get install kodi 安装完后,使用 kodi 命令开启或者在开始菜单的软件中心中选择 kodi 打开。 ...
本文介绍基于 Windows Clash Desktop 的代理服务器设置,可以为局域网内的设备提供代理服务,该方案可以解决一定的科学上网需求,但是没办法覆盖所有的场景,例如 PS5 的 Netflix ,其不走代理服务器,因此无法通过该方案解决,(软路由可破) 本篇的设置内容主要会从两个方面出发:一个是服务器的开启和防火墙的设置、另一个是客户端如何设置使用对应的代理服务器。 Clash开启代理服务器 Clash 作为局域网代理服务器开启的方式十分简单,主要是以下几步。 开启局域网访问 -> 设置端口,查看 ip -> 防火墙允许通行 配置代理服务器 开启局域网访问: Allow LAN 打钩即可。 端口:设置好想要的 mixport 即可。 防火墙允许通行: 防火墙-> 高级设置,找到 Clash 所有项,允许其在专用网络上通行。 查看 ip:命令行输入 ipconfig/ all 里面的 WLAN 模块,可以找到自己的局域网 ip ...
不同于 Docker 在 Windows 端借助 Desktop 可视化进行安装和配置,Linux 端没有默认的 Desktop 界面,因此会额外安装 portainer 作为我们 docker 的 Dashboard. Install Docker on Ubuntu 该部分完全转载自官方 的安装指引,如果流程需要更新的时候可以移步官网检查,此外官网还包含了其他几种安装方式,这里就不介绍,这里只介绍基于 apt 的安装方式。 设置 apt 的 repo 1 更新 apt 的索引,同时通过下载包来允许 Apt 基于 http 来索引仓库 bash sudo apt-get update sudo apt-get install ca-certificates curl gnupg 2 安装 docker 官方的 GPG 秘钥 ...
Tmux 作为一款优秀的终端复用器,前面已经介绍过,这里在介绍一款有着相同功能的平替,个人认为 zellij 的 UI 各方面的设计,使得其相比于 Tmux 有着更低的入门难度,也避免了需要记大量快捷键,因此这里介绍一下该工具。 Zellij 是一款终端复用器,有什么功能可以完全参考 Tmux ,还支持了许多有趣的特性和自定义 Layout 等功能(可能后续用到的话会完善该部分笔记),详细的可以参考官网的介绍,接下来就简单的介绍一下安装和一些自定义的 Alias。 Install 安装 Zellij 是基于 Rust 编写,因此在安装之前需要安装 rust 和 cargo(类似 rust 的包管理器),安装可以参考 Rust 官方网站(推荐) | The Cargo Book | Rust Wiki CN 官方网站中介绍了 WSL 的安装指令如下: bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh #--proto以及--tlsvl在Linux或者Macos安装的时候可以忽略 安装完成后可以使用如下命令,基于 Cargo 安装 zellij: ...
该章节主要介绍 Stable-Diffusion 中模型的训练,考虑到硬件条件的限制,实际上这里介绍的训练,都是针对大模型的各种微调技术(Lora,Dreambooth,HyperNetwork, …),这里会以 LoRA 模型的训练为主。 参考文献: AIGC教程:Stable Diffusion精进,如何训练特定画风LoRA模型? | 游戏大观 | GameLook.com.cn stable diffusion打造自己专属的LORA模型 - 王清培 - 博客园 (cnblogs.com) sd-scripts/train_README-zh.md at main · kohya-ss/sd-scripts · GitHub Train LoRA LoRA 的优势就是其模型更小,且更加模块化;也就是说其的训练成本和要求都更低,同时使用代价小,可以作为某种风格插件或者角色插件来使用。 使用 LoRA 进行 Stable Diffusion 的高效参数微调 (huggingface.co) [2106.09685] LoRA: Low-Rank Adaptation of Large Language Models (arxiv.org) ...
手机到电脑端的图像备份和预览往往是一个大问题,特别是当多个手机要备份的时候,说难不难,但说简单也确实有很多麻烦的地方,因此我推荐 Immich 的解决方案。 Immich 是一个基于个人开发者开发的开源 Github 项目,immich-app/immich ,该解决方案有以下的一些优势: 移动端支持:移动端实现便于手机的随时和自动同步; 多用户支持:多用户的权限管理、分割、以及用户间的相册共享; Live 格式支持:支持各种原生格式存储, Self-hosted photo and video backup solution directly from your mobile phone. 因此我本人推荐按照以下的方式来使用:针对家庭等环境,多用户部署在 NAS 或者某台 PC 上,可以长期或者定期的启动备份服务,然后就可以将手机中的照片空间释放掉。由此可以实现: 通过共享文件夹共建家庭相册; 权限分割个人相册; 定期/自动备份手机中的照片,并清理对应的存储空间; Install 安装和部署 官方网站中有各种不同环境下安装的说明和实例已经足够详细,强烈建议根据自己的不同需求查看相关文档;和官方一样,我这边也推荐使用 docker compose 进行安装和部署。Thanks to docker,部署与安装变得简单。 bash mkdir ./immich_app cd ./immich_app Download 下载 安装实际上只需要两个文件,一个是 .env 用来填写配置,另一个是 docker-compose.yml 文件用来拉取镜像和部署。 ...
本篇主要介绍一下播放器 PotPlayer 的设置以及结合 Alist&小雅 alist 的使用,这样就可以直接在播放器访问本地网盘上的内容,便于使用和观看。 Alist Deploy Alist 作为一个网盘管理中心,可以将各大网盘中的资源进行统一管理,同时支持视频的 webdav 播放,这里推荐的安装方式是使用 Docker-Compose 进行安装,根据自己的情况来选择对应的挂载和安装目录。 由于官方的文档已经事无巨细,这里就不在赘述如何安装和配置 alist 的各个网盘挂载,详情参见:Home | AList Docs (nn.ci) 安装完并启动 Alist 服务即可,记住自己的端口和设置的账号密码。 Aria2离线下载支持 该部分介绍如何通过 docker 为 Alist 添加 Aria2 作为离线下载服务,以及一些常见的问题解决方法。 参考资料:aria2-pro | aira2-pro-github | aria2认证失败 这里介绍使用 docker-compose 安装 aria2的方法,并将 docker 版本的 aria2和 alist 结合起来使用,在基于 docker 安装之前,我们先准备几个文件夹: bash cd <your-path-2-aria2> && mkdir aria2-config && chmod 777 aria2-config mkdir aria2-downloads && chmod 777 aria2-downloads 其中 downloads 目录是我们用来下载文件的目录,我们也可以使用挂载的目录或者共享的目录来存储下载的文件;然后我们准备一下 alist 中用于离线下载的目录,该目录需要在 alist 的 docker 和 aria2的 docker 中都将该 volume 挂载到同一个地方。 ...
该章节主要包括 Promot 生成和部分工作流的分析,旨在了解如何写出更好的关键词,如何生成更好的图片,当我们不知道怎么描述的时候也可以将该工作交给 ChatGPT,让其为我们攥写一般基础的提示词 Prompt 编写范式 参考资料:【Stable Diffusion】Prompt 通常编写可以遵照以下的类别进行组织,主要有 <质量控制> + <前置> + <主体> + <场景词> 几类,其中分别包括以下的几类词: 质量控制:画质、镜头效果、光照效果 前置词:画风、艺术家、风格 主体:人物&对象、姿势、服装、道具 场景:环境、背景、细节 Additional Network:载入额外模型 分割符号: 各个关键词之间用 , 分割,且对应的权重从前到后依次递减,因此在编写关键词的时候也要注意先后顺序。 权重加权符号:各种括号代表各种不同的加权系数,这里建议用 (prompt: weight) 统一来编写提示词的权重规则,整体可读性会更好。 这里的 weight 指的是权重变成原本的 weight 倍,就可以调整加强或减弱。 各个括号的默认系数如下: () -> 1.1 ; {} -> 1.05 ; [] -> 0.952 可以通过(())进行叠加即 1.1*1.1 额外模型调取:编写格式为 <lora:loramodelname:multiplier>,即载入 loramodelname 模型,权重为 multiplier,该权重不建议过大。 关键词的切换: 语法如下 [key1:key2:step],通过该语法可以实现在进行到不同步骤的时候使用不同的关键词进行渲染,其中 :key2 可以忽略,忽略后即可理解为 ["":key1:step],有一下的一些规则: Step 在大于 1 时表示具体的步骤,小于 1 时表示迭代步数的百分比 如果想要在某步之后忽略 key1,与上面忽略 key2 正好相反,可以写成 [key1::step] [key1|key2] 则表示两个关键词交替选择渲染 反向提示词:反向提示词就是让 AI 避免生成什么样的图片,使用得当可以帮助我们更好的生成想要的图片,后面再关键词的地方会介绍一些常见的反向关键词,例如低画质相关和一些容易变形身体部位的描述等 ...