180 Commits
Author SHA1 Message Date
liuchenandClaude Sonnet 4.6 a1eb5bb28e Fix watermark detection + S3 upload + NVENC color + task download on S3 failure
Docker Build and Push / check-secrets (push) Successful in 11s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- smart_detect.py: rewrite detect_static_regions using saturation-signature method
  (high-sat logo frames vs no-logo frames diff) to handle animated/periodic watermarks
  that break temporal-std approach; merge top-region boxes; add print debugging
- web_app.py: fix S3 upload (async chunked streaming, error visible in task log);
  s3_failed flag keeps task downloadable even when S3 upload fails; add s3_failed
  column to DB; download/stream endpoints allow s3_failed tasks
- web/index.html: show play/download buttons for s3_failed tasks; task sort by
  created_at desc; watermark mode label update; isLocalDone() helper
- video_io.py: add -vf format=yuv420p before h264_nvenc to fix green video

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-06-28 00:20:44 +08:00
liuchenandClaude Opus 4.8 c65ec20119 Rework watermark detection + remove STTN modes
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Detection (smart_detect.py) — two complementary paths, both feed per-frame masks:
1. Faint/semi-transparent & scrolling text (e.g. "sjhs.pw"):
   - per-frame white top-hat extracts thin bright strokes (OCR can't see these)
   - connected-component count (>=3) keeps text, rejects solid bright objects
   - track-linking across frames keeps stable-width persistent tracks,
     drops erratic body/skin highlights
2. Colorful opaque logos (e.g. "黑料网 heiliao.com"):
   - high-saturation (>150) AND low temporal-variance → static logo,
     rejects moving skin and muted background art
   - corner-snapping extends box to frame edge for full logo coverage

Key fixes:
- per-frame dict uses 1-based frame numbers to match the inpaint pipeline
  (was 0-based → masks never applied → nothing removed)
- persistent watermarks require LaMa spatial inpaint; STTN temporal inpaint
  has the watermark in its own reference frames so it can't remove them

Remove STTN modes entirely:
- INPAINT_MODE_MAP drops sttn-auto/sttn-det; unknown modes fall back to LaMa
- frontend algorithm selector: LaMa (default) / ProPainter / OpenCV
- platform-task & TaskCreate default inpaint_mode = lama

Validated: both "sjhs.pw" (scrolling text) and "黑料网" (color logo)
fully removed on preview with LaMa, no content damage.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 17:59:41 +08:00
liuchenandClaude Haiku 4.5 fabde9cf83 Fix S3 streaming upload + detect white/gray watermarks
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Build Windows CPU / build (push) Has been cancelled
S3 upload:
- Replace read_bytes() (loads entire file into memory) with streaming SHA256
  computation (8MB chunks) + httpx streaming PUT with Content-Length header
- Add detailed logging for each upload step to diagnose future failures

Watermark detection (smart_detect.py):
- Add Path B: brightness-diff detection for low-saturation watermarks like
  white/gray text (e.g. 'sjhs.pw'). Compares mean brightness in first 10s
  vs the rest of the video. Regions that are brighter in early frames AND
  located in frame corners (top-left, top-right, etc.) are flagged.
- Merge Path A (saturation-based) + Path B (brightness-diff) results
- Fall back to global std method only if both paths find nothing

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 17:06:18 +08:00
liuchenandClaude Haiku 4.5 8b583a4b0e Fix smart_detect: correct pos index, remove O(n²) loop, clean up
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- actual_pos_s[] tracks real timestamps per frame (was using positions[i]
  which breaks when frames fail to read)
- Replace O(n²) np.array_equal logo frame matching with simple bool list
- Remove unused pos_set variable
- Fix docstring still mentioning '8s tail' after removing it
- All variables consistent: logo_gray_frames replaces logo_frames_gray

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 16:16:48 +08:00
liuchenandClaude Haiku 4.5 5cdc727207 SAM2: sample every second for the entire video, no exceptions
Docker Build and Push / check-secrets (push) Successful in 9s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
User requirement: correctness first, slow is acceptable.
- Remove the 120s dense + 8s tail split
- Full video sampled at 1 frame/second uniformly
- Analysis still uses 1/4 resolution for speed
- Coordinate scale restored to original resolution at the end

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 16:14:53 +08:00
liuchenandClaude Haiku 4.5 9094b3c888 Fix SAM2 missing early watermarks: always sample first 15 seconds
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / check-secrets (push) Failing after 3s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
For long videos (e.g. 1100s), uniform sampling started at ~23s, completely
missing watermarks that appear at 1s, 2s, 4s. Fix: always include dense
samples at 0.5, 1, 1.5, 2, 3, 4, 5, 7, 10, 15 seconds before the uniform
distribution, then deduplicate. Watermarks in the first 15s are now caught.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 16:11:29 +08:00
liuchenandClaude Haiku 4.5 b772ab3def Add HH:MM:SS timestamp to each log line in detail and log modals
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:54:32 +08:00
liuchenandClaude Haiku 4.5 f21f844f0f Fix NVENC transcode: use system ffmpeg instead of bundled one
Docker Build and Push / check-secrets (push) Successful in 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Bundled ffmpeg at backend/ffmpeg/linux_x64/ffmpeg has no NVENC support.
System /usr/bin/ffmpeg does. Switch _ensure_h264 to use shutil.which('ffmpeg')
which resolves to /usr/bin/ffmpeg. Also log the actual NVENC error message
so future failures are visible in the task logs.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:52:21 +08:00
liuchenandClaude Haiku 4.5 0b2a3ec6e3 Auto-transcode AV1/HEVC videos to H.264 before processing
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Root cause: FramePrefetcher._read_loop exits after cap.read() returns False
(AV1 decode failure), putting only one (False, None) sentinel in the queue.
If the caller reads past that, queue.get() blocks forever → deadlock.

Fix: _ensure_h264() checks if OpenCV can read the first frame. If not,
runs FFmpeg to transcode to H.264 NVENC (falls back to libx264 if NVENC
fails). Uses cached converted file on repeated attempts. Processing then
runs on the H.264 version which OpenCV can decode normally.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:48:12 +08:00
liuchenandClaude Haiku 4.5 8dc1276a7c Show animated pulse bar when processing but progress still 0%
Docker Build and Push / check-secrets (push) Successful in 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
For large videos (e.g. 27508 frames), the first 275 frames only amount
to ~1% which rounds to 0 in integer percentage — so detect_pct stays 0
for a while even though the task is actively running. Instead of showing
static zero bars, display a pulsing indeterminate bar with an explanation
message so the user knows the task is alive.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:42:20 +08:00
liuchenandClaude Haiku 4.5 b4b9837dde Fix platform worker task not appearing in list
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Two root causes:
1. Task was created in memory but not broadcast to frontend until the first
   update_task() call. If an exception happened before that, the task was
   invisible forever. Fix: broadcast immediately after task creation.
2. run_in_executor had no try/except — any exception was silently swallowed
   by asyncio.create_task with no log. Fix: wrap in try/except/finally,
   log exception via logger.exception, mark task as error.
Also: get_event_loop() → get_running_loop() (correct API for async context).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:30:52 +08:00
liuchenandClaude Haiku 4.5 b81f6afd0f Fix detail modal progress bars not updating
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Split openDetail (full render once) from renderDetail (partial update only).
- openDetail: renders static content + placeholder divs, loads logs once
- renderDetail (called on task_update): only patches status badge, phase bars,
  duration, error, action buttons — does NOT replace innerHTML or reload logs
This eliminates the flickering and actually makes progress bars respond to
WebSocket updates.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:21:35 +08:00
liuchenandClaude Haiku 4.5 da119826f5 Reduce sidebar width by 25% (264px → 198px)
Docker Build and Push / check-secrets (push) Failing after 3s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:13:54 +08:00
liuchenandClaude Haiku 4.5 ea1784a10f Fix detail modal: live progress + logs from DB
Docker Build and Push / check-secrets (push) Failing after 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Track S.detailTaskId; on task_update via WebSocket, re-render detail
  content if that task's modal is open (progress bars now update live)
- Detail logs: async load from DB via /api/tasks/{id}/logs, then append
  real-time WebSocket logs on top (de-duplicated)
- Remove log button from task list (logs now in detail modal)
- Clear S.detailTaskId on modal close

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:12:56 +08:00
liuchenandClaude Haiku 4.5 27b4a2c1bf Fix stuck 'processing' tasks after restart
Docker Build and Push / check-secrets (push) Failing after 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
On startup, tasks in downloading/processing state are interrupted (not
completed). Previously they were re-queued, causing the same task to be
processed multiple times after each restart.

Now: interrupted tasks are immediately marked as error with message
'服务重启,任务中断'. Only 'pending' tasks are re-queued.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:10:07 +08:00
liuchenandClaude Haiku 4.5 4d2fee2b1b Remove download button from task list (moved to detail modal)
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:05:03 +08:00
liuchenandClaude Haiku 4.5 50c6cf92ba Show full datetime (Y-M-D H:M:S) in task list and detail
Docker Build and Push / check-secrets (push) Failing after 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 15:00:36 +08:00
ClaudeandClaude Sonnet 4.6 073a2a4fba fix: worker 对接平台 watermark-task API
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / check-secrets (push) Failing after 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- claim/progress/result 路径改为 /openapi/watermark-task/*
- 认领字段 video_url → media_url(兼容旧字段)
- result status: passed→done,字段 output_path→output_url,error→error_message
- 新增 _upload_result_video:处理完后上传结果到平台(no_transcode 直传),获取 play_url 回传

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-06-26 23:55:56 -07:00
liuchenandClaude Haiku 4.5 76f5d1c857 Fix timestamps missing after restart + align detail modal
Docker Build and Push / check-secrets (push) Successful in 6s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Add started_at / completed_at columns to tasks table (were missing)
- Migration adds columns to existing DB without data loss
- _save_task_to_db now persists created_at / started_at / completed_at
- _load_tasks_from_db restores all three timestamp fields on startup
- Detail modal shows same created/started/elapsed layout as table row
  with identical fmtTime / fmtDur helpers, live elapsed for in-progress tasks

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:48:58 +08:00
liuchenandClaude Haiku 4.5 d5468ec958 Set smart/watermark mode as default detection mode
Docker Build and Push / check-secrets (push) Failing after 3s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:42:34 +08:00
liuchenandClaude Haiku 4.5 a56a861d57 Add original video playback in task detail modal
Docker Build and Push / check-secrets (push) Failing after 3s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- New API endpoint GET /api/tasks/{id}/source-stream to stream cached source file
- Detail modal shows '▶ 原视频' button (always, when cache exists) and
  '▶ 处理结果' button (only when done)
- playVideo() accepts type param ('source'|'output'), sets title and hides
  download button for source files

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:37:27 +08:00
liuchenandClaude Haiku 4.5 abd5d0ce47 Fix worker logs not appearing + align settings form
Docker Build and Push / check-secrets (push) Successful in 5s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Add _WorkerLogHandler that bridges Python logging → WorkerLogBuffer
  (previously only StreamHandler was used, logs went to stdout but not
  the buffer the frontend polls)
- Rewrite settings form: proper form-grid layout, form submit handler,
  App Secret show/hide toggle, hints below number fields, footer save button
- workerStatus shows configured/unconfigured text instead of badge

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:34:07 +08:00
liuchenandClaude Haiku 4.5 e512a842e4 Align Worker logs page with df-autotest design
Docker Build and Push / check-secrets (push) Successful in 22s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Extract Worker logs as separate nav page (page-worker-logs)
- Dark terminal style (#0b1320 bg, level-based colors: DEBUG/INFO/WARN/ERROR)
- Auto-poll every 2s via setInterval, starts on page enter, stops on leave
- Pause/Resume and Clear buttons, live line count
- Auto-scroll only when already at bottom
- Remove old embedded log panel from Settings page

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:29:39 +08:00
liuchenandClaude Haiku 4.5 273f03ee9f Fix modal close buttons and add task duration column
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / check-secrets (push) Successful in 9s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Fix JS crash: remove stale consoleBody scroll listener (element removed)
  This was causing all nav/modal event bindings to silently fail
- Replace all data-close delegation with direct onclick handlers
- Add 耗时 column to task list (shows elapsed time, live for in-progress tasks)
- Persist task logs to SQLite task_logs table; add GET /api/tasks/{id}/logs
- Load .env via python-dotenv; remove platform env var fallbacks (UI-only)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:16:29 +08:00
liuchenandClaude Haiku 4.5 b2dfbce962 Refactor VSR web: align UI with df-autotest, add auth and platform worker
Docker Build and Push / check-secrets (push) Failing after 4s
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Redesign web/index.html to match df-autotest light theme (sidebar layout,
  same token system, badges, panels, modals, toast notifications)
- Add simple cookie-based auth (ADMIN_PASSWORD env via .env)
- Add platform Worker (poll external platform for VSR tasks, sign requests
  with HMAC same as df-autotest)
- Add Settings page for platform connection config (DB-stored, no env vars)
- Add worker log API with incremental polling
- Remove bottom console strip; add per-task log modal with SQLite persistence
- Task table: add created_at / started_at columns, move progress to detail modal
- Fix modal close buttons (direct onclick, remove unreliable data-close delegation)
- Load .env via python-dotenv on startup

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 14:03:50 +08:00
liuchenandClaude Haiku 4.5 693d394f55 Add GPU support and multi-threaded subtitle detection
Docker Build and Push / check-secrets (push) Successful in 30s
Docker Build and Push / build-and-push (cuda, 12.6) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 12.8) (push) Has been skipped
Docker Build and Push / build-and-push (directml, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cpu, latest) (push) Has been skipped
Docker Build and Push / build-and-push (cuda, 11.8) (push) Has been skipped
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows CUDA 12.8 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
- Add gpu_id parameter to SubtitleDetect for GPU acceleration
- Implement multi-threaded frame scanning with thread-safe CUDA context
- Add smart_detect module and web application components
- Update .gitignore to exclude web cache

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-27 13:27:26 +08:00
天涯古巷 5b780e3186 Document solution for Mac 'bad CPU type' error
Added solution for Mac version error related to CPU type.
2026-04-11 20:18:49 +08:00
天涯古巷 577b64adad Add Trendshift badge to README
Added a badge linking to the Trendshift repository.
2026-04-10 23:30:45 +08:00
天涯古巷 c63f6b52da Update README.md 2026-04-10 23:30:00 +08:00
天涯古巷 b6644f3374 Add Trendshift badge to README 2026-04-10 23:12:45 +08:00
天涯古巷 c189f8368e Add subtitle extraction feature and documentation link
Added a feature to extract original subtitles and link to video-subtitle-extractor.
2026-04-09 23:26:58 +08:00
天涯古巷 3f3b061a53 修复拖动进度条时偶现闪退:video_cap线程安全保护
修复拖动进度条时偶现闪退:video_cap线程安全保护
1.4.0
2026-04-09 07:20:00 +08:00
flavioyandClaude Opus 4.6 bdf333c510 修复拖动进度条时偶现闪退:video_cap线程安全保护
UI线程slider_changed与后台线程video_cap.release()并发访问
导致FFmpeg上下文use-after-free(SIGSEGV),添加互斥锁保护

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 07:18:35 +08:00
flavioyandClaude Opus 4.6 0bae013097 优化字幕检测算法、添加多语言翻译支持
- 自适应采样间隔:根据视频帧率调整(60fps+→4, 30fps+→3, 低帧率→2)
- filter_and_merge_intervals 复杂度从 O(n²) 优化为 O(n log n)
- detect_subtitle 区域过滤:单区域快速路径,多区域匹配即停
- 插值逻辑改用 zip 预计算 max_gap,更高效
- SubtitleDetectMode 枚举值改为英文key,通过翻译系统显示本地化名称
- 7种语言文件添加 SubtitleDetectMode 翻译(中/繁/英/日/韩/越/西)
- 旧配置值自动迁移兼容

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 00:17:01 +08:00
flavioyandClaude Opus 4.6 93d822d067 修复LAMA模式100%卡死:帧区间扩展超出视频总帧数导致FramePrefetcher死锁
- 限制字幕区间end不超过frame_count,防止内循环消费哨兵后外层永久阻塞
- LAMA批量推理改为mini-batch(4帧),避免GPU OOM
- 各inpaint模型空inpaint_area时返回原始帧
- FFmpeg子进程添加600s超时保护

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 23:34:53 +08:00
flavioyandClaude Opus 4.6 99788e875b 图片模式锁定LAMA算法、未选区时全屏处理
- 加载图片时自动锁定 inpaint 模式为 LAMA 并禁用下拉框
- 加载视频时恢复用户原始的 inpaint 模式选择
- 未选择字幕区域时自动使用全屏区域,不再报错失败

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 21:54:24 +08:00
flavioyandClaude Opus 4.6 9a2f3cc743 支持图片文件打开与处理、修复图片加载溢出问题
- 文件对话框添加图片格式过滤(jpg/png/bmp/webp/tiff等)
- 修复 cv2.VideoCapture 打开图片时 FRAME_COUNT 返回 INT64_MIN
  导致 QSlider.setMaximum 溢出的问题,图片直接走 load_as_picture

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 21:41:08 +08:00
flavioyandClaude Opus 4.6 e801d58e80 GPU加速和批处理优化、更新README
- STTN Auto/Det: 统一 torch.no_grad 包裹,减少重复上下文切换开销
- STTN Auto: 添加 FramePrefetcher 帧预读取,根据 GPU 显存动态调整 batch size
- Lama Inpaint: 新增 _inpaint_batch 批量推理,多帧合并一次 GPU 推理
- ProPainter: copy.deepcopy 替换为浅拷贝,每个区域处理后 gc.collect
- HardwareAccelerator: 新增 get_available_vram_mb 显存查询方法
- README: 添加应用 Logo,同步英文版 README_en.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 00:17:50 +08:00
flavioy 8aac76030d 更新readme 2026-04-07 23:58:57 +08:00
flavioy 1c0e396801 更新demo 2026-04-07 23:54:16 +08:00
flavioyandClaude Opus 4.6 dbb7911b33 更新演示截图
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 23:30:10 +08:00
flavioyandClaude Opus 4.6 1ab2eb96cf 美化控制台输出:时间戳、颜色标签、线程安全优化
- PlainTextEdit 替换为 TextEdit 支持 HTML 富文本
- 每条日志添加 [HH:MM:SS] 时间戳
- 根据消息类型自动着色(错误红/成功绿/警告橙/信息蓝)
- 修复字幕检测模型无 ONNX providers 时输出空括号的问题
- HTML 特殊字符转义防止注入
- 清理 gui.py closeEvent 中多余的注释代码

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 23:29:16 +08:00
flavioyandClaude Opus 4.6 6c61ddc6b0 性能优化:帧采样、FFmpeg编码、帧预读取、消除冗余拷贝
- 字幕检测:每3帧采样一次OCR,中间帧插值填充,检测速度提升约3倍
- 视频编码:cv2.VideoWriter(mp4v) 替换为 FFmpeg libx264 管道编码,画质更好、体积更小
- 帧预读取:后台线程预解码视频帧,I/O 与模型推理重叠
- 消除 deepcopy:numpy 数组改用 .copy() 替代 copy.deepcopy,降低内存开销
- 清理冗余颜色空间转换中的 np.array() 包装

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 22:58:52 +08:00
flavioyandClaude Opus 4.6 70e669e9d4 升级 PaddleOCR 至 3.4.0,移除 PP-OCRv4 模型
- PaddleOCR 2.10.0 升级至 3.4.0,使用新的 TextDetection API 替代旧版 TextDetector
- V5 模型替换为 PaddleX 格式(inference.pdiparams + inference.yml)
- 移除 PP-OCRv4 模型(backend/models/V4),仅保留 PP-OCRv5
- 字幕检测选项重命名为"快速"和"精准"
- 清理 requirements.txt,移除 11 个未使用的依赖,补充缺失的依赖
- 更新设计素材

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 22:34:36 +08:00
flavioyandClaude Opus 4.6 d023ca775c Merge eritpchy/dev: update Docker instructions to v1.4.0
Resolve README.md conflict by adopting dev branch's updated
Docker commands (v1.4.0 with python backend/main.py args).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 22:18:27 +08:00
天涯古巷 a577efd3e1 Update README.md 2025-12-03 08:40:41 +08:00
方耀 2bb2d54314 ganxie lyons 2025-06-26 14:43:41 +08:00
Jason 7025d3234b 升级版本号至1.4.0 2025-05-22 19:52:37 +08:00
Jason 21b0c31638 CPU版本硬件加速给予友好提示 2025-05-22 19:52:37 +08:00
Jason 50c89c1217 同时支持PP-OCRv4 PP-OCRv5模型 2025-05-22 19:52:36 +08:00