【日常記錄】差生文具多,利用java自動(dòng)獲取Civitai模型思路
第一步 自動(dòng)獲取模型
利用github wiki上提供的api /civitai/civitai/wiki/REST-API-Reference 訪問模型列表獲取模型最新版本并下載。
可能要注意的問題:
模型列表數(shù)據(jù)緩存到本地文件;
超時(shí)重試(未攜帶cookie每下載2個(gè)小時(shí)出現(xiàn)15-20分鐘連不上的情況,攜帶情況沒測);
過濾不安全的模型;
過濾已下載內(nèi)容;
示例

第二步 通過chromedriver和selenium保存詳情頁面
考慮到光有模型是不夠的,還需要知道如何使用,雖然可以回到源站查找,但是如果模型被刪除的話(沒錯(cuò)就是那幾個(gè)抖),僅保留圖片和生成圖片的tag,并不易于閱讀。
在源站詳情頁面可以按Ctrl + S保存頁面到本地,這樣即使模型被刪除,或者離線狀態(tài),我們也可以查看如何去使用,但這種枯燥繁瑣的操作還是讓腳本去執(zhí)行吧,不過因?yàn)樽尦绦蚰M了保存網(wǎng)頁的過程,無法在下載期間操作電腦。
可以使用selenium和jdk提供的api來模擬按下ctrl + s的過程,前提是需要安裝chromedriver,如果使用的話建議先升級chrome瀏覽器到最新版本,請求鏈接在第一步的列表中可以獲取到。至于何時(shí)下載完,我不清楚如何控制,目前是預(yù)估一個(gè)時(shí)間如20s讓程序等待來實(shí)現(xiàn)的。
為了下載穩(wěn)定,建議開啟全局模式。
示例?BV1Zx4y1A7dX
第三步 合并模型和詳情頁
目前看下載的模型版本名稱應(yīng)該是模型名稱僅保留英文的那一部分。通過java文件api,將模型和保存的網(wǎng)頁放到同一個(gè)目錄中留做備份(暫未實(shí)現(xiàn))
因?yàn)樯厦娴哪P投际峭ㄟ^文件名的方式比對的,所以如果文件名被修改的話,對程序來說就是兩個(gè)文件了,依然會(huì)被下載,但是這里并不想那么麻煩去修改。更新版本、其它各種異常情況也沒精力弄,就是隨便玩玩,代碼和人有一個(gè)能跑就行了(dog)
考慮到應(yīng)該沒人看,有需要源碼的私我吧。