FreeTex v0.3.0:支持静默运行/软件体积压缩
概述
FreeTex 在经过用户反馈后,又进行一轮小更新,现发布v0.3.0
版本,主要有两点更新:
-
静默运行
-
体积压缩
FreeTex开源地址:https://github.com/zstar1003/FreeTex
下载地址
此版本仅适合windows_x86_64用户,并未做功能更新,无需强制下载。
百度网盘:https://pan.baidu.com/s/1MupcVrl4epva1UP-bSWovg?pwd=8888 (提取码: 8888)
夸克网盘:https://pan.quark.cn/s/830c4ec3d61d
静默运行
在上版本中,有用户反馈:不小心“手痒”关闭软件,再次启动又需要等待几秒中加载模型,导致工作思路中断。
因此,在此版本,调整了软件的关闭逻辑。
在关闭软件窗口后,软件仍会自动最小化到托盘,保持静默运行状态,双击软件图标可重新打开,无需再次等待模型加载。
体积压缩
v0.2.0
版本下载文件体积为1.07GB,为进一步压缩体积,做了以下两个优化操作。
1. 模型精度转换
之前使用的unimernet_small
模型精度是fp32,一般正常模型做推理时,fp16就足够使用,精度不会损失很多。
因此,使用以下脚本,将模型精度从fp32转换成fp16。
import torch
import osdef convert_to_fp16(state_dict: dict) -> dict:"""将 state_dict 中所有 float32 张量转换为 float16"""return {k: v.half() if isinstance(v, torch.Tensor) and v.dtype == torch.float32 else vfor k, v in state_dict.items()}def convert_pth_to_fp16_keep_structure(input_path, output_path=None):print(f"加载模型文件: {input_path}")data = torch.load(input_path, map_location="cpu")if "model" in data:data["model"] = convert_to_fp16(data["model"])elif "state_dict" in data:data["state_dict"] = convert_to_fp16(data["state_dict"])else:data = convert_to_fp16(data)if output_path is None:base, _ = os.path.splitext(input_path)output_path = base + ".fp16.pth"torch.save(data, output_path)print(f"已保存 fp16 模型: {output_path}")if __name__ == "__main__":convert_pth_to_fp16_keep_structure("models/unimernet_small/unimernet_small.pth")
转换后,模型体积显著减小,从772MB降低至386MB。
2. 安装包压缩
v0.2.0
版本提供的是软件本体的zip形式压缩包,将软件从1.76GB压缩至1.07GB。
实践证实,使用Inno将软件打成安装包后,体积压缩会更为明显,从1.38GB压缩至603.75MB。
此外,由于某些依赖并不支持中文路径,因此,在安装到含中文路径下时,会出现无法启动的情况,在使用安装包选择安装路径时,需要注意该点。
总结
FreeTexv0.3.0
做了后台静默运行优化和软件体积优化,下载文件体积从1.07GB优化至603.75MB。
致谢
感谢 @windy 对此软件添加的静默运行功能。(PR#16)