Feat: Added video upscaling with Real-ESRGAN nn upscaling#24
Merged
Conversation
Vchen7629
commented
Apr 22, 2026
Owner
- feat(backend): created shared golang project for shared code across my go services
- refactor(backend): moved shared middleware package code like logging.go and cors.go into the shared go project
- refactor(backend): moved duplicated kv related code from go services into the shared folder under the kv package
- chore(shared): ran go mod tidy
- refactor(backend): moved health_check.go and shared queries.go for the storage package from individual services to shared folder to reduce duplication
- refactor(backend): moved the durable consumer creation into a seperate function in shared folder to reduce code duplication
- refactor(video-upload): renamed video.go to http.go and move start http api inside
- refactor(backend): moved duplicate publisher.go from transcoder-worker and video-recombiner to shared
- feat(ci): added shared ci and coverage
- chore(backend): updated go.work to include pipeline tests
- fix(ci): updated go version to 1.26.2
- chore(backend): update go.mod for go services to v1.26.2
- docs(readme): updated readme go badge
- fix(ci): added / to shared path filter**
- fix(ci): wrong shared coverage folder path
- feat(shared): added videoJobMessage type struct for use in scene-split and video-upscale nats messages
- feat(video-upload): added helper functions for checking video resolution using ffmpeg and converting resolution string to integer for comparison
- tests(video-upload): added unit tests for video.go in service package
- feat(video-upload): updated http.go to check the video resolution and target resolution to decide whether to send it to the upscaler service or transcoder right away
- tests(video-upload): added extra tests for new LOC
- refactor(backend): created new unmarshalJetstreamMsg helper in shared folder since its reused across transcoder and video-recombiner subscriber.go
- refactor(backend): extracted duplicated loadConfig and stopHttpApi functions into shared folder
- refactor(video-status): removed duplicated logic in main.go with shared function from shared folder
- refactor(video-upload): replaced duplicate ConnectJobStatus with the one in shared
- refactor(backend): created shared ack and nak helper which also captures err and replaced duplicate lines
- feat(video-upscaling): initialized uv project for video-upscaling service
- feat(video-upscaling): created load_model.py to load the upscaling model from the .pth file
- feat(video-upscaling): created logging.py helper
- feat(video-upscaling): created helper functions for upscaling model
- fix(scene-detector): wrong import path
- refactor(shared): moved shared go files to a go folder since i will be also creating shared python files
- feat(shared): created python folder in shared for shared python code
- refactor(backend): moved duplicated python logic out of scene-detector into python folder in shared
- tests(backend): moved shared specific tests out of scene-detector into the shared python folder
- refactor(backend): extracted more logic from scene-detector service.py to shared
- refactor(backend): moved publish_jetstream to shared folder since its used for both scene-detector and video-upscaling
- fix(scene-detector): circular imports for SceneSplitMessage pydantic class
- tests(backend): moved consumer specific tests to shared
- Refactor(backend): added source_resolution to scene-split-message pydantic class and moved it to shared to be used across both scene-split and video-upscaler
- feat(video-upscaling): added video_upscale helper function
- fix(video-upscaling): updated path typing for load_model.py and batch.py
- feat(video-upscaling): created model_router.py to help choose the correct model based on the source and target resolutions
- feat(video-upscaling): created process_msg to handle downloading the video processing and reupload
- refactor(video-upscaling): extracted the print metrics into a seperate function
- feat(video-upscaling): created service.py to start the service and initialize service resources and connections
- chore: updated general makefile
- chore(frontend): removed unused assets
- refactor(frontend): combined videoDownloadButton and videoUploadButton into a single file
- feat(frontend): video upload with different features like transcode, upscale, denoise, and transfer
- fix(backend): updated logging.py in shared to accept service name rather than be hardcoded to scene-detector
- feat(scene-detector): updated the http route to accept source resolution and removed redundant ffmpeg resolution check
- fix(backend): added missing logger to connection.py
- fix(video-upscaling): removed duplicate logs and fixed output dir errpr
- fix(video-upscaling): updated 2k to 1440p
- fix(backend): updated shared upload_video to accept a storage_url
- tests(scene-detector): updated tests with missing params
- tests(shared): updated python shared tests with new params
- deps(shared-python): added pyrefly
- chore(backend): ruff formatting
- feat(ci): added ci for shared python folder
- refactor(backend): moved shared start health http server function out of video-recombiner and transcoder-worker into shared folder
- feat(video-upscaling): added upscaling models
- fix(video-upscaling): added missing comma to video_downscale
- chore(video-upscaling): added more testing dependencies
- tests(video-upscaling): added unit/integration tests for video-upscaling
- fix(video-upload): added missing http request values to tests
- fix(transcoder-worker): added bandaid -p fix
- deps(shared-python): added pytest-cov for test coverage
- chore(shared-python): added type annotation
- refactor(backend): replaced duplicate service StartSeaweedFSFiler test function with the one from shared
- tests(shared-go): added unit tests for helpers.go
- refactor(backend): removed duplicate OpenTestVideo test helper from backend go services and replaced with the one from shared
- refactor(backend): replaced duplicate SetupNats in services with the one in shared
…t and video-upscale nats messages
…ion using ffmpeg and converting resolution string to integer for comparison
… target resolution to decide whether to send it to the upscaler service or transcoder right away
… folder since its reused across transcoder and video-recombiner subscriber.go
…nctions into shared folder
…ed function from shared folder
…res err and replaced duplicate lines
…del from the .pth file
…e also creating shared python files
…r into python folder in shared
…o the shared python folder
… used for both scene-detector and video-upscaling
…antic class and moved it to shared to be used across both scene-split and video-upscaler
…rect model based on the source and target resolutions
…video processing and reupload
… of video-recombiner and transcoder-worker into shared folder
…t function with the one from shared
…ackend go services and replaced with the one from shared
…tatus kv so frontend progress bar works based on the number of frames
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.