Hydrus Network是一款標籤式的圖片管理軟體。
使用Hydrus Network時,如果要匯入現有的圖片收藏,就得手動匯入再手動打標籤。
可是萬一圖片很多,標籤哪上的完?所幸有很多自動化的解決方案,例如動漫圖片有「DeepDanbooru」,靠AI自動偵測圖片角色並輸出Danbooru風格的標籤,方便我們匯入Hydrus。
這裡解說DeepDanbooru/hydrus-dd的用法。
1. 安裝hydrus-dd#
hydrus-dd是基於DeepDanbooru開發的Hydrus輔助程式,將標籤格式修改為適合Hydrus的格式。
- 開啟終端機,複製hydrus-dd的儲存庫
git clone https://gitgud.io/koto/hydrus-dd.git
cd hydrus-dd
- 安裝 Anaconda,再安裝Python依賴套件
conda create --name hydrus-dd python=3.9
conda activtae hydrus-dd
pip install .
下載 Deepbooru預先訓練的模型
model.h5
,解壓縮後將全部檔案放至model
目錄(這裡使用v3-20211112-sgd-e28版本,模型檔名要叫做model.h5
)新增設定檔。Linux設定檔位置位於
~/.config/hydrus-dd/hydrus-dd.conf
,Windows則是位於C:\Users\USERNAME\AppData\Local\hydrus-dd\hydrus-dd.conf
。於該檔案填入以下內容
[general]
api_url = http://127.0.0.1:45869
model_path = model/model.h5
tags_path = model/tags.txt
tag_format = {tag}
tag_service = my tags
file_service = my files
sort_type = 2
sort_asc = False
api_key =
chunk_size = 100
threshold = 0.5
cpu = False
[server]
host = 0.0.0.0
port = 4443
2. 偵測圖片並生成標籤檔#
假設這裡有一個動漫圖片的目錄,路徑為
/home/user/Pictures/anime
:在終端機執行以下指令,最後面接圖片目錄的路徑,按下Enter,開始偵測。
hydrus-dd evaluate-batch "/home/user/Pictures/anime"
偵測完成後,hydrus-dd會為每個圖片生成對應的txt檔案,裡面就是該圖片的標籤。
如果覺得每次都要打一堆指令很麻煩,這邊提供快捷指令稿的範例。此指令稿的用法為
bash ./start.sh "要處理的圖片目錄"
# 檔名取為start.sh
#!/bin/bash
eval "$(conda shell.bash hook)"
conda activate hydrus-dd
hydrus-dd evaluate-batch "$1"
3. 匯入圖片至Hydrus Network#
將動漫圖片的目錄直接拖曳到Hydrus的界面
點選
add tags/urls with the import
點選左上角的
sidecars
,點選左下角的add
選取
a .txt sidecard
,之後都按apply
。這樣圖片就會自動帶入txt記載的標籤了。點選
appy
再點選Import
。之後的步驟就跟上面第二節的一樣了,確認圖片標籤無誤後,全選,右鍵,按archive selected。
Hydrus匯入的圖片會原封不動複製到資料庫,因此匯入後可將原圖檔案刪除。
另外,有啟動Hydrus的client api伺服器的話,也是可以給Hydrus圖庫中的圖片自動上標籤。 (Hydrus圖片右鍵 → export → share → copy → hash → sha256)
hydrus-dd evaluate-api-hash --hash "圖片的sha256" --api_key "client api金鑰"
附錄:我的手動標記圖片原則#
如果匯入的圖片不適合給Deepbooru掃,就得手動加標籤。
標籤的原則我是參照 Danbooru。
圖片特徵以外的標籤一定要有命名空間(namespace),以英文為主,空格之間有底線連接。
category:
是我獨創的命名空間,標記圖片的「功用」,例如category:梗圖
,category:真人
。
有明確人物的的梗圖會標記人名,例如person:daniella_wang
。有cosplay的額外加入原作標籤series:anime
。
針對動漫圖片:
必須標記:繪師,原作,角色名稱
選擇性標記:看圖片是否能有特殊用途或符合性癖好,例如抱枕圖就額外標記dakimakura_(medium)
。
另外按services → manage services → add → local numerical rating service,啟用5星評分系統來給圖片評分(會顯示在全螢幕檢視圖片右上角),5星是大師級繪畫等級這樣。