欢迎光临散文网 会员登陆 & 注册

【日常记录】差生文具多,利用java自动获取Civitai模型思路

2023-03-16 23:00 作者:来杯咖啡再说  | 我要投稿

第一步 自动获取模型

利用github wiki上提供的api /civitai/civitai/wiki/REST-API-Reference 访问模型列表获取模型最新版本并下载。

可能要注意的问题:

模型列表数据缓存到本地文件;

超时重试(未携带cookie每下载2个小时出现15-20分钟连不上的情况,携带情况没测);

过滤不安全的模型;

过滤已下载内容;


示例

info日志


第二步 通过chromedriver和selenium保存详情页面

考虑到光有模型是不够的,还需要知道如何使用,虽然可以回到源站查找,但是如果模型被删除的话(没错就是那几个抖),仅保留图片和生成图片的tag,并不易于阅读。

在源站详情页面可以按Ctrl + S保存页面到本地,这样即使模型被删除,或者离线状态,我们也可以查看如何去使用,但这种枯燥繁琐的操作还是让脚本去执行吧,不过因为让程序模拟了保存网页的过程,无法在下载期间操作电脑。

可以使用selenium和jdk提供的api来模拟按下ctrl + s的过程,前提是需要安装chromedriver,如果使用的话建议先升级chrome浏览器到最新版本,请求链接在第一步的列表中可以获取到。至于何时下载完,我不清楚如何控制,目前是预估一个时间如20s让程序等待来实现的。

为了下载稳定,建议开启全局模式。

示例 BV1Zx4y1A7dX

第三步 合并模型和详情页

目前看下载的模型版本名称应该是模型名称仅保留英文的那一部分。通过java文件api,将模型和保存的网页放到同一个目录中留做备份(暂未实现)


因为上面的模型都是通过文件名的方式比对的,所以如果文件名被修改的话,对程序来说就是两个文件了,依然会被下载,但是这里并不想那么麻烦去修改。更新版本、其它各种异常情况也没精力弄,就是随便玩玩,代码和人有一个能跑就行了(dog)

考虑到应该没人看,有需要源码的私我吧。



【日常记录】差生文具多,利用java自动获取Civitai模型思路的评论 (共 条)

分享到微博请遵守国家法律