2025-04-17 10:05:18
微软明确说明 Windows 11用户在安装4月累积更新(KB5055523)后,不能删除系统创建的“inetpub”文件夹!!如果已经删了,需要按步骤恢复这个“inetpub”文件夹,以提高系统安全性。
最近很多人在安装微软发布的 Windows 11 4月累积更新(KB5055523)后,发现系统C盘根目录下神秘出现了一个名为 “inetpub” 的空文件夹。当时大家一致认为这又是伟大的阿三程序员写出新bug了。
“inetpub” 文件夹通常是微软 Internet 信息服务 (IIS) 创建的,IIS 是微软推出的 Web 服务器软件,用于在Windows 11上托管网站或应用程序,一般情况下只有在启用 IIS 后根目录才会出现 “inetpub” 文件夹,但在此次更新中,即使用户未启用 IIS 该文件夹也会自动创建。看起来十分不正常,于是大家都认为这是个 bug。
于是很多科技博主都表示 “这个 “inetpub” 文件夹可以删除,本身这个文件夹也是空的,测试删除后不会对系统造成任何负面影响”,我也受不了C盘有个陌生文件夹,就给删了,结果尴尬了……
但其实这个操作是为了修复漏洞“CVE-2025-21204”的,估计微软没想到大家会如此在意系统根目录出现陌生文件夹,在更新日志中压根没提到会有这个操作,考虑到用户删除“inetpub”后会影响系统安全,微软最近又更新日志添加了这个文件夹的说明。
注意:直接手动重建这个文件夹对修复漏洞“CVE-2025-21204”是没有作用的!需要按正确步骤恢复
恢复方式一:
1. 点开开始菜单
2. 在搜索框里搜索开启或关闭 Windows 功能
并打开
3. 勾选 IIS 服务 (Internet Information Services) 并点击确定
4. 等待 1、2 分钟 IIS 服务会完成安装,此时会自动创建“inetpub”文件夹
5. 随后关闭 IIS 服务
恢复方式二(微软的推荐做法):
1. 设置 → Windows更新 → 更新历史记录
2. 拉到底,选「卸载更新」
3. 找到 「用于Microsoft Windows的安全更新(KB5055523)」,点击卸载,等待卸载完毕后,重启电脑
4. 重启后,再次检查系统更新,并重新安装「适用于 Windows 11 Version 24H2 的 04 累积更新,适合基于 x64 的系统 (KB5055523)」即可自动恢复“inetpub”文件夹。
The post WIN11更新后,C盘下莫名多出的神秘空文件夹inetpub不是BUG,不要删 appeared first on 秋风于渭水.
2025-04-16 15:20:54
Claw Cloud Run是 Claw Cloud 旗下的轻应用平台,你可以理解成 Vercel、Netlify 之类的东西,既是 PaaS 平台,也有 Serverless 服务,还能跑类 Docker 项目(不是直接用 Docker 跑的,是自动适配,用 Serverless 形式跑的),可以快速部署 Alist、Rsshub、Memos、Uptime Kuma、Chatgpt-next-web等程序。甚至可以用来跑 Minecraft 游戏服务器,注册即送 5 刀额度,如果绑定一个注册超过180天的 Github 账号可以永久享受每月5美元的额度。每个可用区有4H 8G 10G 资源,一共 10 GB 流量。
有白嫖自然是很开心的嘛,虽然Vercel也挺好用的,但是Claw Cloud Run还有免费的数据库可用,跑一些个人项目会更加方便一点,最主要是,新加坡区和日本区到国内的速度相当不错:
注册页链接 (有AFF)
如果不想走我的AFF的话,自己谷歌一下「Claw Cloud Run」就能找到官网了。
使用注册超过180天的github账号登录的话,可以享受每月5刀的赠送,不需要信用卡。
如果没有的话,则只会赠送一次5刀的额度。
注意:每月送的5刀的账户,还是免费计划而不是爱好计划。送你的5刀是让你抵扣使用费用的。
根据页面上的预计费用,Alist 每天0.04刀,WordPress 每天0.06刀,通过适当自行缩小容器配置,算下来每个月免费部署4、5个自用项目还是没问题。
如何缩小容器配置
默认他一个项目最小给1H1G,对于有些小项目,实在太奢侈了,适当改小可以有效降低部署费用。
我有个给贴吧自动签到的脚本,这玩意本地跑才占用几M好不,所以我只给了0.1核64M内存。每天仅需1分钱(其实用不到的,只是因为显示上最小差值是 0.01元)。
PS: Claw Cloud(阿爪云,又名阿里云青春版)小道消息称,这是阿里云在新加坡开的马甲(因为他们基础设施都是用的阿里云的)。不过也有一种可能是基于阿里云的二道贩子在蹭热度,这在云服务提供商中也并不少见。
The post Claw Cloud Run 免费容器来了,无需信用卡,Github账号满180天,终身每月送5$ appeared first on 秋风于渭水.
2025-03-23 11:47:56
我也没开广告拦截收入挽回啊,谷歌就偷偷通过扩展静默注入广告拦截收入挽回代码了?
我对大家拦截站内广告的态度是:不喜欢看那就拦截掉,不想看广告是用户的权利。
开始我还以为谷歌这是广告营收下滑了,着急了。
结果去查了一下。啥,营收反而涨了?
哦,不会就是靠这种方式涨的吧
随后我再仔细一看,好嘛
反反广告拦截收入挽回也被自动注入了
去广告拦截器拦截了广告拦截收入挽回会被检测
但问题是,我压根就没开这个功能,adsense 内这个选项也是关闭状态,这完全是谷歌自作主张自行强制加入的。
从“不作恶”到“做正确的事”
从“技术导向”到“资本导向”
谷歌公司正在向下一个波音公司一路狂奔……
The post 谷歌这是在干啥?强制给我开个广告拦截收入挽回? appeared first on 秋风于渭水.
2025-03-19 20:20:36
为了解决几十万量级图片库内异常图片的检测,折腾出了一个基于 python 的图片检测程序。
用前一段发现的本地 AI 图片视频搜索引擎 MaterialSearch 整理十几年间积累的几十万张图片时,遇到了一个令人崩溃的场景:有上百张图片报损坏,经过部分核查,很多文件打开后呈现诡异色块,亦或者只有半截图,还有些文件大小为 0 KB。这些损坏的图片零散的散布在数千个子文件夹中,手动一个一个检查无异于大海捞针,累死也搞不定。于是 VS code 启动!!
用 Pillow 暴力验证,直接用 Pillow verify()
看看是否报错来解决。
from PIL import Image
def check_img_v1(path):
try:
Image.open(path).verify()
return True
except:
return False
V1.0方案的情况:
1. 误报文件:很多图片会报损坏,但是用图片浏览器打开却十分正常,经过研究之后才知道,原来大量网站在使用一种叫做渐进式JPEG的技术,通过将图像数据分为多个扫描逐层渲染,可以在网速不好时图片先绘制出低分辨率的模糊轮廓,随着数据被下载逐步变为清晰图像(现代图片编码如WEBP、AVIF也都有类似的渐进式加载机制)。这导致需要完整解码才能验证所有扫描数据。因此被verify()
误认为损坏。
2. 漏检文件:未完整下载的图片有时也能通过验证。
3. 性能问题:慢,按照测试计算,10万张图片的检测起码需要耗时4、5小时了。
经过对 MaterialSearch 日志报错图片的抽查,发现损坏的文件主要是文件不完整导致的半截图,于是我打算改为:先检查文件结尾是否存在结束符来判定图片是否损坏,然后再做进一步检查。
def check_img_v2(path):
with open(path, 'rb') as f:
f.seek(-32, 2) #只用获取文件最后32字节就行
trailer = f.read()
if path.lower().endswith('.jpg'):
return trailer.endswith(b'\xff\xd9') # JPEG的结束符
elif path.lower().endswith('.png'):
return trailer.endswith(b'\xaeB`\x82') # PNG的IEND块
V2.0方案的情况:
1. 捕获到了异常文件 :下载一半的文件确实被检测出来了。
2. 检测了个寂寞 :如果图片附加了元数据,图片文件很可能就不是以\xff\xd9
结尾了,结果就是1000张的测试图片,在尾部检测部分逻辑,有800多张都报了损坏……想快速检查了个寂寞。
使用img.load()
强制加载所有数据。对渐进式jpeg图片做特殊处理逻辑。
def check_img_v3(path):
try:
with open(path, 'rb') as f:
img = Image.open(f)
img.load() # 强制加载完整图片
# 特殊处理渐进式JPEG
if img.format == 'JPEG' and 'progressive' in img.info:
img.tile = []
return True
except Exception as e:
print(f"损坏文件: {path} | 错误类型: {type(e).__name__}")
return False
V3.0方案的情况:
1. 漏报率下降了很多
2. 渐进式JPEG兼容处理
3. 打印异常类型方便处理
4. 实际代码中自己傻逼了在verify()
之后调用load()
,导致文件指针不可用,说人话就是:代码逻辑中verify()
做完检查后,就把图片文件关闭了,load()
啥也获取不到。
5. 性能就很一般了,基本和初版差不多的速度。
又经过一番研究和查证其实 Pillow verify()
对渐进式图片检测是没问题的,误报率并没有我在V1测试时那么高,只是我本地环境的 Pillow 版本不够新而已,但也确实会有漏报。只用load()
也会有漏报,有一点误报可以接受,但是漏报就无法接受了,所以还是需要联合检查。
最终决定采用如下逻辑
1. 先检测文件路径是否存在,收集所有路径。
2. img.verify()
先上
3. 同一个循环内使用img.load()
再来一次检测
4. 并行处理加快处理速度
5. 不在控制台显示扫描 log,毕竟绝大部分图片都是好的,没问题的显示出来无意义,只显示有问题的又很容易看起来像是卡住了,所以用 tqdm 做个进度条。还能大概估计下完成时间。
6. 用 jinja2 做个 html 格式的检测报告,毕竟在终端里复制粘贴起来也不方便。
实在太长了就放github上了:img_validator.py
命令:python img_validator.py <"目录路径"> [并发数]
ex:python img_validator.py "D:\Download\图片" 8
最终会在脚本的同级目录下生成 html 格式的检测报告image_validation_report.html
自己十年前写的P站抓取代码不完善,如果因为网络超时导致图片下载失败,爬虫会重试,但是之前损坏的图片有可能并不会被正确清除(删除部分代码没有正确处理超长文件名和带特殊符号的文件名),虽然带问题代码只使用了从14年到16年这大约一坤年,但是也积累了接近 600 张问题文件。不过倒是挺奇怪的,抓全年龄的部分出现大量这种问题,抓R18的几乎就没出错过,这是又为什么呢,沉思中…………
The post 如何快速批量检索损坏的图片文件—python开发学习笔记(一) appeared first on 秋风于渭水.
2025-03-12 18:06:17
收集自网络,结合自身体验得出,虽然我更多是用的自己的 DeepSeek API,但是 R1 这种思考时,一个不想小心就能想个几千字的玩法,也是有点扛不住,复杂问题还是先找免费的问的差不多了,再用自己的 API 增加体验。毕竟白嫖总是让人开心。
序号 | 平台 | 速度 | 版本 | 是否需要登录 | 备注 |
---|---|---|---|---|---|
1 | 官方 | 慢 | 满血V3/R1 | 否 | 官方、开箱即用 |
2 | 腾讯元宝 | 快 | 满血R1 | 需登录 | 联网检索包括微信公众号 |
3 | 知乎直答 | 比较快 | 满血R1 | 需登录 | 联网检索包括知乎内容 |
4 | WPS 灵犀 | 中 | 满血R1 | 不登录存在功能限制 | 可以生成PPT |
5 | 国家超算互联网中心 | 快 | 残血R1 | 否 | 最大为70B模型 |
6 | 华为小艺ai网页版 | 快 | 满血R1 | 否 | 开箱即用 |
7 | 360纳米ai | 快 | 满血R1 | 不登录存在功能限制 | 每天有限免额度 |
8 | 秘塔ai | 快 | 满血R1 | 否 | 每天有限免额度 |
9 | 天工ai | 中 | 满血R1 | 不登录存在功能限制 | 文史类资料挺全的 |
10 | 当贝ai | 快 | 满血R1 | 否 | 开箱即用 |
11 | 问小白 | 中 | 满血R1 | 不登录存在功能限制 | |
12 | 跃问 | 中 | 满血R1 | 不登录存在功能限制 | |
13 | 百度 | 快 | 满血R1 | 否 | 开箱即用 |
14 | 有道 | 快 | 满血R1 | 不登录存在功能限制 | 免费用户存在功能限制 |
15 | Lambda | 快 | 满血R1 | 否 | 国内不能直连 |
16 | Flowith | 比较快 | 满血R1 | 不登录存在功能限制 | 有个人知识库 |
17 | Deepinfra | 快 | 满血R1 | 否 | 无上传附件图片功能 |
18 | Nvidia | 快 | 满血R1 | 否 | 无上传附件图片功能 |
The post DeepSeek R1 可免费/白嫖网页版一览 appeared first on 秋风于渭水.
2025-02-28 12:06:54
基于 AI 的本地素材搜索引擎。扫描本地的图片以及视频,可以用自然语言进行查找。
实现中文语义下的 以图搜图、截图搜视频、查找本地素材、根据文字描述匹配画面、视频帧搜索、根据画面描述搜索视频。找素材再也不用费力去一个个翻 tag 了。
首先,默认看本文的照片视频都是存在 windows 系统上的,以下都是基于 win 系统的操作
需要准备3个或2个东西
Python 3.11.7,Git ,CUDA(不是N卡的不用装CUDA),这三个的下载地址在文章的最前边。
视情况,你可能还需要一个魔法上网工具(假设你的魔法上网工具代理在127.0.0.1:6808)
我这里采用直接系统内安装Python 3.11.7的方式(其实安装Python3.12.9也是可用的,看你需求了。)
如果你会用Miniconda,也可以用Miniconda实现Python多版本切换。
把页面拉到底,找到【Windows installer (64-bit)】点击下载
安装是注意,到这一步,需要如下图这样勾选 Add Python to PATH
然后再点上边的 Install Now
python
安装完成后,命令行里输入Python -V
,如果返回Python 3.11.7
那就是成功安装了。
命令行里输入 python -m pip install --upgrade pip
安装升级pip到最新版。
访问 Git 下载页面
点击【Download for Windows】,【64-bit Git for Windows Setup】点击下载
一路下一步安装
命令行运行git --version
,返回git version 2.XX.0.windows.1
就是安装成功了。
命令行运行nvidia-smi
,看下自己显卡支持的 CUDA版本
(升级显卡驱动可能会让你支持更高版本的 CUDA)
接下来前往英伟达 CUDA 官网,下载对应版本。
注意请下载,你对应的版本号最高的版本,比如我的是11.7的,那就下11.7.1(这里最后的.1意思是,11.7版本的1号升级版)
选你自己的操作系统版本,注意下个离线安装包【exe [local]】,在线安装的话,速度还是比较堪忧的。
以下假设你当前文件目录是D:\github\
,
避免玩其他 Python 项目时出现项目依赖冲突问题
pip install virtualenv
pip install virtualenvwrapper
# virtualenvwrapper一定要在virtualenv后安装
virtualenv MSWenv
这将在当前目录下创建一个名为”MSWenv”的虚拟环境。
D:\github\MSWenv\Scripts\activate
这将激活虚拟环境,并将您的终端提示符更改为虚拟环境名称类似这样
(MSWenv) D:\github> ▏
# 拉取仓库
git clone https://github.com/chn-lee-yumi/MaterialSearch.git
# 进入目录
cd MaterialSearch
# 安装全部依赖(N卡 GPU运行)
pip install -U -r requirements.txt --index-url=https://download.pytorch.org/whl/cu124 --extra-index-url=https://pypi.org/simple/
# 安装全部依赖(A卡、I卡 GPU运行)
pip install -U -r requirements_windows.txt
# 安装全部依赖(CPU运行)
pip install -U -r requirements.txt
注意:
1. N卡 GPU运行里的cu124
如果你运行环境中的 CUDA 小于 12.4 的话,请写成你实际的版本
2. 如果你这会儿还拿不准用 GPU 还是 CPU 运行的话,请先按照【安装全部依赖(A卡、I卡 GPU运行)】执行,这样安装后也可以支持CPU运行。
torch 2.X+CU12.X
吧按照以下命令启动项目
python main.py
如果不知道在你设备上 CPU 和 GPU 那个更快,可以在上边步骤中先走 【安装全部依赖(GPU运行)】,在依赖安装完毕后执行python benchmark.py
,运行基准测试。
建议通过在项目根目录创建.env文件修改配置
.env文件配置示例:
# 下面添加扫描路径,用英文半角逗号分隔
ASSETS_PATH=D:\Videos,D:\Pctures
# 如果路径或文件名包含这些字符串,就跳过,逗号分隔,不区分大小写
IGNORE_STRINGS=thumb,avatar,__MACOSX,icons,cache
# 图片最小宽度,小于此宽度则忽略。不需要可以改成0
IMAGE_MIN_WIDTH=64
# 图片最小高度,小于此高度则忽略。不需要可以改成0。
IMAGE_MIN_HEIGHT=64
# 视频每隔多少秒取一帧,视频展示的时候,间隔小于等于2倍FRAME_INTERVAL的算为同一个素材,同时开始时间和结束时间各延长0.5个FRAME_INTERVAL
FRAME_INTERVAL=2
# 视频搜索出来的片段前后延长时间,单位秒,如果搜索出来的片段不完整,可以调大这个值
VIDEO_EXTENSION_LENGTH=1
# 素材处理批次大小,过大会导致显存不足而无法运行或拖慢速度。
SCAN_PROCESS_BATCH_SIZE=4
# 支持的图片拓展名,逗号分隔,请填小写
IMAGE_EXTENSIONS=.jpg,.jpeg,.png,.gif,.heic,.webp,.bmp
# 支持的视频拓展名,逗号分隔,请填小写
VIDEO_EXTENSIONS=.mp4,.flv,.mov,.mkv,.webm,.avi
# 监听IP,如果想允许远程访问,把这个改成0.0.0.0
HOST=127.0.0.1
# 监听端口
PORT=8085
# 运行模式
DEVICE=cuda
# 使用模型
MODEL_NAME=OFA-Sys/chinese-clip-vit-base-patch16
# 数据库保存位置
SQLALCHEMY_DATABASE_URL=sqlite:///./instance/assets.db
# 是否web页启用登录验证功能,如需启用改为true
ENABLE_LOGIN=False
# 登录用户名
USERNAME=admin
# 登录密码
PASSWORD=123456
# 是否自动扫描设置路径下的文件变化,如果开启,则会在指定时间内进行扫描,每天只会扫描一次
AUTO_SCAN=False
# 自动扫描开始时间
AUTO_SCAN_START_TIME=22:30
# 自动扫描结束时间
AUTO_SCAN_END_TIME=8:00
# 是否启用文件校验(如果是,则通过文件校验来判断文件是否更新,否则通过修改时间判断)
ENABLE_CHECKSUM=False
IMAGE_EXTENSIONS
和VIDEO_EXTENSIONS
增加对应的后缀。
小图片没被扫描到的话,可以调低IMAGE_MIN_WIDTH
和IMAGE_MIN_HEIGHT
重试
运行模式(DEVICE)可以写的选项有auto/cpu/cuda/mps`四种,如果写 auto 的话,优先级是这样的:cuda > mps > directml > cpu
一般来说默认的小模型就够用了,如果你显存大或者感觉小模型的精度不够,可以改成更大的模型
更换模型需要删库重新扫描!否则搜索会报错。数据库路径见SQLALCHEMY_DATABASE_URL
参数。
模型越大,扫描速度越慢,且占用的内存和显存越大。
如果显存较小且用了较大的模型,并在扫描的时候出现了”CUDA out of memory”,请换成较小的模型或者改小SCAN_PROCESS_BATCH_SIZE
。如果显存充足,可以调大上面的SCAN_PROCESS_BATCH_SIZE
来提高扫描速度。
因为目前的N卡驱动,支持了内存显存融合,超过物理显存的模型会被放在内存中,不会直接炸显存,只要你电脑显存+内存还没满,超过物理显存后,只会体现为扫描速度非常的慢,大概会慢3倍左右的速度(比如,设置1线程,扫描用时100秒;设置成4线程,用时反而是300秒,线程越多速度反而越慢)
所以,一定要确保扫描时电脑留有足够的可用显存,可以启动任务管理器——性能——GPU——专用GPU内存查看实际显存占用。不要让斜杠前的数字过于接近斜杠后的数字(比如:10.7/12GB就是良好配置,而11.8/12GB就不太好了)
OFA-Sys/chinese-clip-vit-base-patch16
OFA-Sys/chinese-clip-vit-large-patch14-336px
OFA-Sys/chinese-clip-vit-huge-patch14
openai/clip-vit-base-patch16
openai/clip-vit-large-patch14-336
myrun.txt
call D:\github\MSWenv\Scripts\activate
python main.py
pause
myrun.bat
以后启动直接运行这个文件就好了。打开浏览器访问最后提示的http://127.0.0.1:8085
说明默认端口8085已经被占用了,把.env文件中的PORT=8085
随便改成一个 1开头的5位数试试。
内存不足,显存不足,最简单就是换个更好的电脑吧
原因是 你试图用N卡的GPU跑,但是你安装的 Torch 不支持 CUDA,是仅支持 CPU 的版本
先执行命令:
python -c "import torch; print(torch.cuda.is_available())"
如果返回的是False,说明安装的 Torch 不支持CUDA,是仅支持CPU的,需要执行了下面的命令安装支持cuda的版本:
pip install torch>=2.0 -f --index-url=https://download.pytorch.org/whl/cu124
The post 本地 AI 图片视频搜索引擎——MaterialSearch appeared first on 秋风于渭水.