快轉到主要內容

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

分類   資訊科技 電腦軟體分享
標籤   AI Hydrus Network DeepDanbooru
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

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

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

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

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

1. 安裝hydrus-dd
#

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

  1. 開啟終端機,複製hydrus-dd的儲存庫
git clone https://gitgud.io/koto/hydrus-dd.git
cd hydrus-dd
  1. 安裝 Anaconda,再安裝Python依賴套件
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。於該檔案填入以下內容

[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,開始偵測。

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

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

# 檔名取為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)

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

相關文章

FreeBSD安裝Steam + Steam Proton遊戲相容層教學
分類   資訊科技 電腦軟體分享
標籤   Wine FreeBSD Steam
如何使用UUP DUMP下載Windows的ISO [Linux / Windows / macOS]
分類   資訊科技 電腦軟體分享
標籤   Windows Windows on ARM
Cassowary:在Linux跑Windows軟體,支援Microsoft Office 365、Adobe Photoshop
分類   資訊科技 虛擬機與容器技術
標籤   Microsoft Office Photoshop QEMU-KVM Windows Linux

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。