Hydrus Network:以標籤作分類的相片管理軟體,使用介紹

如果說管理圖書有calibre,管理下載的同人誌漫畫有Ehviewer配合紳士方舟。針對大量雜圖又該如何處置呢?例如梗圖跟養眼圖片混在一起,要如何整理?

使用Hydrus Network分類圖片吧,這是由4chan網友開發的開源軟體。

按照作者的理念,言論自由和匿名性是很重要的。因為找不到能管理大量圖片,又能保護隱私的解決方案,因此開發了Hydrus,軟體授權條款為WTFPL ( 你他媽的想幹嘛就幹嘛公眾授權條款 )。

Hydrus支援Linux/Windows/MacOS系統,還有網頁版能在手機檢視。

對習慣使用歐美"booru系"動漫圖片網站的用戶來說(像Danbooru、Gelbooru、yande.re),用標籤給種類混雜的圖片分類是最好的方式了。

檢視圖片會顯示一坨拉庫的標籤,可自動化產生,方便管理與搜尋圖片。

其他主要功能:

  • 搜尋時支援按照檔案種類搜尋,儲存搜尋的標籤組合
  • 內建識別重複圖片的工具
  • 批量下載Danbooru、Gelbooru等圖站的圖片,並自動上標籤
  • 能使自身變成伺服器,跟他人共享檔案,共同編輯標籤
  • 有提供API讓其他擴充程式利用
  • 資料庫很好備份
  • 目前只有英文版,但標籤可以用中文

注意,Hydrus不是Adobe Lightroom那樣的工作相片編修軟體,也不是Google相簿的無腦相簿分類。Hydrus是用來「封存」各式各樣網路蒐集的雜圖用的,用標籤取代硬碟資料夾作為圖片管理方式。

1. 安裝Hydrus

首先,安裝最新版Pyhton

接著至Github,按照作業系統下載Hydrus安裝檔。

Linux版Hydrus作者僅提供單一執行檔,需要解壓縮後點二下執行。

如果是Arch Linux,可以從AUR安裝Hydrus:

1
yay -S hydrus

2. Hydrus基礎使用方式

首先讓我們理解一下Hydrus的管理概念:不論是從哪裡匯入圖片,一律會先進到Hydrus的收件匣(system:inbox,每張圖片右上角會顯示信封圖案),接著你要手動審查一番,再對圖片按右鍵→"select",並點選"archive"將圖片正式收到Hydrus的圖片庫(system:archived)。

要刪除圖片的話是對其按右鍵 → “Delete from my files”,圖片會進到垃圾桶(system:trash),要再按右鍵 → “Delete physically now”,圖片才會真的刪除。

接著來實戰一番,了解如何下載並匯入圖片至Hydrus。

2.1. 自動下載圖片並匯入

Hydrus的下載功能是直接從圖站下載圖片。如果需要瀏覽圖片再下載的話,建議使用imgbrd-grabber會有更好體驗。

  1. 點選page → new download page → gallery,新增畫廊下載頁面。

  2. 如下圖所示,輸入Danbooru或Gelbooru的標籤開始搜尋圖片,並將下載的圖片數量改成20。

  3. 例如搜尋《少女與戰車》的版權圖繪:girls_und_panzer official_art,按下Enter就會開始下載Danbooru網站的最新圖片,並進到Hydrus的收件匣。

  4. 對圖片點二下,放大檢視,可看到下載器也自動抓取了圖片的標籤。

  5. 對順眼的圖片按下右鍵(Shift和Ctrl多選),按archive selected將圖片收進Hydrus圖片庫。

  6. 封存完成後,信封的圖示會消失。對gallery的頁面右鍵,close page。

  7. 回到主界面,對左邊的搜尋框search tags點一下,按system:everything便會列出目前在圖片庫中的圖片。

備註:Gelbooru需要編輯cookie才能搜尋到會被FBI抓走的圖片 (點選展開)
  1. 按network → data → review session cookies

  2. 按下create new,填入gelbooru.com,按apply。

  3. webdomain:gelbooru按二下,點選add新增cookie,name欄位填寫fringeBenefits,value填寫yup,expire過期時間設定為12個月以上。

  4. 點選Apply。接著再次搜尋會被FBI抓走的標籤,就會回傳結果了。

2.2. 搜尋與管理圖片

  1. 在主界面的search tags搜尋圖片,打字後會出現提示。搜尋語法跟Danbooru類似,標籤前面加-排除不想看的標籤。

  2. 搜尋的標籤會跑到上面,對標籤按二下將其從搜尋條件移除。

  3. 對搜尋到的圖片按右鍵(可用Shift多選) → manage → tags (或按F3),可給圖片新增和移除標籤。於右邊的欄位填寫新標籤並按Enter確認,按Esc退出。

Hydrus預設的搜尋語法是AND,例如搜尋《少女與戰車》 《艦隊收藏》的標籤,就只會回傳一張圖片裡同時有這二部作品的結果。

但是若想要找《少女與戰車》 《艦隊收藏》的結果呢?在鍵入第一個標籤的時候,按Shift再對標籤提示按二下,該標籤會自動變成OR語法:

然後再繼續搜尋下一個標籤,同樣按著Shift對標籤按二下,這樣它就會串成OR搜尋。

之後對串好的OR搜尋點二下,即可看到《少女與戰車》 《艦隊收藏》的圖片同時出現的結果。

可點選星星符號 → save this search 將目前的搜尋字串存起來,方便日後利用。

2.3. 搜尋重複或類似圖片

此功能可用來找出重複圖片,用來找組圖(連續圖片,動作只有些微不同)也很有用。

  1. 點選 page → new special page → dulpicates processing,開啟搜尋重複圖片的頁面

  2. 在prepare頁籤,設定要搜尋的圖片相似度。exact match找完全一樣,speculate找看起來類似的圖片,數字越高越不精確。

  3. 切換到filtering頁籤,可看到maxium search pair預設為4,越高顯示的重複圖片組合就越多。按launch the filter啟動對比程式。

  4. 接著顯示可能重複的圖片,點一下圖片,滾動滑鼠滾輪,就會交替顯示二張圖片讓你比對。比對後按右邊的按鈕做決定。

此外,在搜尋圖片時,對圖片按右鍵 → open → similar-looking files也是可以搜尋相似圖片。

3. 手動匯入圖片並自動上標籤

沒辦法用Hydrus下載的圖片,例如現有的圖片收藏,就得手動匯入再手動打標籤。

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

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

3.1. 安裝hydrus-dd

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

  1. 開啟終端機,複製hydrus-dd的儲存庫
1
2
git clone https://gitgud.io/koto/hydrus-dd.git
cd hydrus-dd
  1. 安裝Python依賴套件
1
pip install . --user
  1. 下載Deepbooru的模型model.h5至model目錄
1
wget https://koto.reisen/model.h5 -P model
  1. 新增設定檔。Linux設定檔位置位於~/.config/hydrus-dd/hydrus-dd.conf,Windows則是位於C:\Users\USERNAME\AppData\Local\hydrus-dd\hydrus-dd.conf

  2. 填入以下內容

 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
  1. 保持終端機開著。

3.2. 偵測圖片並生成標籤檔

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

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

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

3.3. 匯入圖片至Hydrus

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

4. 啟動Hydrus伺服器服務

Hydrus的特色功能:將自身變成伺服器,這樣就能將圖庫分享給他人存取,還有細部的權限控管,所以Hydrus可以變成一個小型的貼圖伺服器。

這邊只介紹如何啟用client api,以便其他輔助工具能跟Hydrus連線。

  1. 點選services → manage services,對client api點二下:

  2. 按照下圖設置,按apply,再按apply。

  3. 按services → review services,點選client api的頁籤,再點選add → manually

  4. 此頁面會產生一組金鑰(access key),將其保存下來。接著所有權限都打勾,按appy。

  5. 確認防火牆有開啟45869通訊埠後,上面得到的金鑰便能給其他輔助工具使用了。

5. Hydrus輔助工具

更多輔助工具請參閱Browsers and tools created by hydrus users

5.1. 瀏覽器擴充元件

Hydrus Companion可在瀏覽網頁時,將圖片直接送到Hydrus匯入。

需要輸入client api金鑰。

5.2. 手機版網頁

有第三方做的Hydrus Web版可以充當手機客戶端,只要輸入client api金鑰即可。

非本機存取需要啟用HTTPS才能連線,其中Tailscale可換成ZeroTier

6. 備份與匯出Hydrus資料庫

作者建議在更新Hydrus主程式前備份資料庫。

點選databse → change database backup location,選取要建立備份的目錄,之後建立備份。

如果要匯出單張圖片,對圖片點右鍵 → share → export → file。

參考資料

如果本網站文章對您有幫助,歡迎贊助我。