Hydrus Network:藉由DeepDanbooru自動給匯入的動漫圖片上標籤

Hydrus Network是一款標籤式的圖片管理軟體。

使用Hydrus Network時,如果要匯入現有的圖片收藏,就得手動匯入再手動打標籤。

可是萬一圖片很多,標籤哪上的完?所幸有很多自動化的解決方案,例如動漫圖片有「DeepDanbooru」,靠AI自動偵測圖片角色並輸出Danbooru風格的標籤,方便我們匯入Hydrus。

這裡解說DeepDanbooru/hydrus-dd的用法。

1. 安裝hydrus-dd

hydrus-dd是基於DeepDanbooru開發的Hydrus輔助程式,將標籤格式修改為適合Hydrus的格式。

  1. 開啟終端機,複製hydrus-dd的儲存庫
1
2
git clone https://gitgud.io/koto/hydrus-dd.git
cd hydrus-dd
  1. 安裝Anaconda,再安裝Python依賴套件
1
2
3
conda create --name hydrus-dd python=3.9
conda activtae hydrus-dd
pip install .
  1. 下載Deepbooru預先訓練的模型model.h5,解壓縮後將全部檔案放至model目錄(這裡使用v3-20211112-sgd-e28版本,模型檔名要叫做model.h5

  2. 新增設定檔。Linux設定檔位置位於~/.config/hydrus-dd/hydrus-dd.conf,Windows則是位於C:\Users\USERNAME\AppData\Local\hydrus-dd\hydrus-dd.conf。於該檔案填入以下內容

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[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. 偵測圖片並生成標籤檔

  1. 假設這裡有一個動漫圖片的目錄,路徑為/home/user/Pictures/anime

  2. 在終端機執行以下指令,最後面接圖片目錄的路徑,按下Enter,開始偵測。

1
hydrus-dd evaluate-batch "/home/user/Pictures/anime"
  1. 偵測完成後,hydrus-dd會為每個圖片生成對應的txt檔案,裡面就是該圖片的標籤。

  2. 如果覺得每次都要打一堆指令很麻煩,這邊提供快捷指令稿的範例。此指令稿的用法為bash ./start.sh "要處理的圖片目錄"

1
2
3
4
5
# 檔名取為start.sh
#!/bin/bash
eval "$(conda shell.bash hook)"
conda activate hydrus-dd
hydrus-dd evaluate-batch "$1"

3. 匯入圖片至Hydrus Network

  1. 將動漫圖片的目錄直接拖曳到Hydrus的界面

  2. 點選add tags/urls with the import

  3. 點選左上角的sidecars,點選左下角的add

  4. 選取a .txt sidecard,之後都按apply

  5. 這樣圖片就會自動帶入txt記載的標籤了。點選appy再點選Import

  6. 之後的步驟就跟上面第二節的一樣了,確認圖片標籤無誤後,全選,右鍵,按archive selected。

Hydrus匯入的圖片會原封不動複製到資料庫,因此匯入後可將原圖檔案刪除。

另外,有啟動Hydrus的client api伺服器的話,也是可以給Hydrus圖庫中的圖片自動上標籤。 (Hydrus圖片右鍵 → export → share → copy → hash → sha256)

1
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星是大師級繪畫等級這樣。


感謝您的閱讀。歡迎分享Ivon的部落格(ivonblog.com)的文章,引用或轉載請註明文章網址,並遵守創用CC-姓名標示-非商業性-禁止改作 4.0 國際授權條款。如需商業使用請來信告之。

written by human, not by AI

如果本網站文章對您有幫助,歡迎請我喝杯珍珠奶茶。

留言板

點選按鈕,選擇您覺得方便的留言系統。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要登入Github帳號才能留言。支援markdown語法,方便您張貼程式碼,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus投放的廣告。無論有無登入皆可留言。此處留言只有本站參與者看得到。若您選擇以訪客身份匿名留言,就不會收到後續回覆通知。