feat: 添加动漫色情检测(WD Tagger v3),媒体库展示优化
- 新增 anime_nsfw 模块:WD Tagger v3 模型检测动漫/二次元图片 - 修复误判:当 general 评分最高时判定为安全,避免非动漫图误判 - 数据库存储四个 rating 原始分数(JSON),无需重扫即可查看 - 媒体库新增动漫色情检测列、文件路径列(支持一键复制) - 修复预览图加载占位符显示两个点的问题 - 移动文件按钮不再限制扫描完成后才显示
This commit is contained in:
+21
-10
@@ -22,16 +22,20 @@ import (
|
||||
// - NSFWEnabled:是否开启色情图片识别(本地 python + NudeNet,默认 false)
|
||||
// - NSFWPython:python 可执行文件路径;留空自动在 PATH 里找
|
||||
// - NSFWThreshold:判定阈值 0~1(默认 0.5)
|
||||
// - AnimeNSFWEnabled:是否开启动漫色情图片识别(本地 python + WD Tagger v3,默认 false)
|
||||
// - AnimeNSFWThreshold:动漫判定阈值 0~1(默认 0.5)
|
||||
type Config struct {
|
||||
Port int
|
||||
Dsn string
|
||||
AutoOpen bool
|
||||
FFmpegPath string
|
||||
RotateImages bool
|
||||
Workers int
|
||||
NSFWEnabled bool
|
||||
NSFWPython string
|
||||
NSFWThreshold float64
|
||||
Port int
|
||||
Dsn string
|
||||
AutoOpen bool
|
||||
FFmpegPath string
|
||||
RotateImages bool
|
||||
Workers int
|
||||
NSFWEnabled bool
|
||||
NSFWPython string
|
||||
NSFWThreshold float64
|
||||
AnimeNSFWEnabled bool
|
||||
AnimeNSFWThreshold float64
|
||||
}
|
||||
|
||||
// appConfig 当前生效的配置(程序运行期间一直不变)。
|
||||
@@ -45,7 +49,7 @@ func GetAppConfig() Config {
|
||||
// LoadAppConfig 从 application.properties 读配置;文件不存在就用默认值。
|
||||
func LoadAppConfig() {
|
||||
// 先给一套默认值
|
||||
appConfig = Config{Port: 8080, Dsn: "media-info.db", AutoOpen: true, RotateImages: true, Workers: 4, NSFWThreshold: 0.5}
|
||||
appConfig = Config{Port: 8080, Dsn: "media-info.db", AutoOpen: true, RotateImages: true, Workers: 4, NSFWThreshold: 0.5, AnimeNSFWThreshold: 0.5}
|
||||
|
||||
p, err := properties.LoadFile("application.properties", properties.UTF8)
|
||||
if err != nil {
|
||||
@@ -80,6 +84,13 @@ func LoadAppConfig() {
|
||||
appConfig.NSFWThreshold = t
|
||||
}
|
||||
}
|
||||
// 动漫色情识别:默认关;阈值只认 0~1 之间的小数
|
||||
appConfig.AnimeNSFWEnabled = p.GetBool("anime_nsfw.enabled", false)
|
||||
if v, ok := p.Get("anime_nsfw.threshold"); ok && strings.TrimSpace(v) != "" {
|
||||
if t, err := strconv.ParseFloat(strings.TrimSpace(v), 64); err == nil && t > 0 && t < 1 {
|
||||
appConfig.AnimeNSFWThreshold = t
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// WorkerCount 返回探测/MIME/移动阶段使用的并发 worker 数:
|
||||
|
||||
Reference in New Issue
Block a user