feat: 色情图片识别(NudeNet);明暗档位改为5档(20%~100%)
This commit is contained in:
@@ -24,6 +24,7 @@ import (
|
||||
"time"
|
||||
|
||||
"kenaito-media-picker/internal/config"
|
||||
"kenaito-media-picker/internal/nsfw"
|
||||
"kenaito-media-picker/internal/organize"
|
||||
"kenaito-media-picker/internal/probe"
|
||||
"kenaito-media-picker/internal/scanner"
|
||||
@@ -492,7 +493,23 @@ func (s *ScanService) runScan(ctx context.Context, rootDir, destDir string) erro
|
||||
fmt.Printf("=== 使用 ffmpeg 转正图片EXIF旋转: %s\n", ffmpegPath)
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- 第五步(可选):色情识别 ----------
|
||||
// 用本机 python + NudeNet 起一个本地检测服务。没装 python/nudenet 时跳过,
|
||||
// 不影响图片整理——检测结果只决定走普通目录还是「图片_敏感」目录。
|
||||
nsfwDet := (*nsfw.Detector)(nil)
|
||||
if cfg := config.GetAppConfig(); cfg.NSFWEnabled {
|
||||
if d, err := nsfw.Start(cfg.NSFWPython, cfg.NSFWThreshold); err != nil {
|
||||
fmt.Printf("=== 色情识别未启用(图片照常处理): %v\n", err)
|
||||
} else {
|
||||
nsfwDet = d
|
||||
defer nsfwDet.Stop()
|
||||
fmt.Println("=== 色情识别已启用(NudeNet)")
|
||||
}
|
||||
}
|
||||
|
||||
org := organize.New(pickerDir, ffprobePath, ffmpegPath, s.store, ctx)
|
||||
org.SetNSFWDetector(nsfwDet)
|
||||
|
||||
// 整个"整理"分两个阶段,界面上共用一条进度条:
|
||||
// 归类阶段:图片、视频/音频分两批处理。进度 = 已处理文件数 / 全部待整理文件数
|
||||
|
||||
Reference in New Issue
Block a user