A CLI that utilizes VapourSynth to generator frame accurate comparison images
Go to file
2024-01-29 22:34:20 -05:00
frame_forge feat: added a work around to attempt to position text to the top right of the image for different fonts/sizes dynamically, while not 100% accurate it's close enough 2024-01-29 22:34:20 -05:00
hooks feat: initial commit 2024-01-24 12:11:06 -05:00
images feat: initial commit 2024-01-24 12:11:06 -05:00
.gitignore feat: initial commit 2024-01-24 12:11:06 -05:00
build.py chore: update build script 2024-01-24 12:36:09 -05:00
frame_forge.py refactor: update name for v1.0.0 2024-01-24 12:31:46 -05:00
LICENSE chore: update license 2024-01-24 12:31:58 -05:00
poetry.lock feat: initial commit 2024-01-24 12:11:06 -05:00
pyproject.toml refactor: update name for v1.0.0 2024-01-24 12:31:46 -05:00
README.md Update README.md 2024-01-24 13:24:12 -05:00

Image-Generator

A CLI to generate comparison image sets with

Usage

usage: Comparison Image Generator [-h] [-v] [--source SOURCE] [--encode ENCODE] [--image-dir IMAGE_DIR]
                                  [--indexer {lsmash,ffms2}] [--index-dir INDEX_DIR] [--sub-size SUB_SIZE]
                                  [--left-crop LEFT_CROP] [--right-crop RIGHT_CROP] [--top-crop TOP_CROP]
                                  [--bottom-crop BOTTOM_CROP] [--adv-resize-left ADV_RESIZE_LEFT]
                                  [--adv-resize-right ADV_RESIZE_RIGHT] [--adv-resize-top ADV_RESIZE_TOP]
                                  [--adv-resize-bottom ADV_RESIZE_BOTTOM] [--tone-map] [--re-sync RE_SYNC]
                                  [--comparison-count COMPARISON_COUNT] [--subtitle-color SUBTITLE_COLOR]
                                  [--release-sub-title RELEASE_SUB_TITLE]

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  --source SOURCE       Path to source file
  --encode ENCODE       Path to encode file
  --image-dir IMAGE_DIR
                        Path to base image folder
  --indexer {lsmash,ffms2}
                        Indexer choice
  --index-dir INDEX_DIR
                        Path to look/create indexes
  --sub-size SUB_SIZE   Size of subtitles
  --left-crop LEFT_CROP
                        Left crop
  --right-crop RIGHT_CROP
                        Right crop
  --top-crop TOP_CROP   Top crop
  --bottom-crop BOTTOM_CROP
                        crop
  --adv-resize-left ADV_RESIZE_LEFT
                        Advanced resize left
  --adv-resize-right ADV_RESIZE_RIGHT
                        Advanced resize right
  --adv-resize-top ADV_RESIZE_TOP
                        Advanced resize top
  --adv-resize-bottom ADV_RESIZE_BOTTOM
                        Advanced resize bottom
  --tone-map            HDR tone-mapping
  --re-sync RE_SYNC     Sync offset for image generation in frames (i.e. --re-sync=-3)
  --comparison-count COMPARISON_COUNT
                        Amount of comparisons to generate
  --subtitle-color SUBTITLE_COLOR
                        Hex color code for subtitle color
  --release-sub-title RELEASE_SUB_TITLE
                        Release group subtitle name (this will show on the encode images)

Supports

Windows 8 and up (x64). Technically could support Linux/MacOS but binaries will only be compiled for Windows for now.

Requirements

You will need lsmash, ffms2, libfpng, libimwri, and SubText vapoursynth plugins. Place all of these in a folder 'img_plugins' beside the script/executable.

Example Usage

FrameForge.exe --source "path/Ant-Man.2015.mkv" --encode "path/Ant-Man.2015.Encoded.mkv" --sub-size 12 --indexer lsmash --top-crop 22 --bottom-crop 22 --subtitle-color #00FF00

Indexing source
...
Source index completed

Indexing encode
...
Encode index completed

Checking if encode has been de-interlaced
No de-interlacing detected

Generating 20 'B' frames for comparison images
Finished generating 20 'B' frames

Creating folders for images
Folder creation completed

Generating screenshots, please wait
Writing file: 01a_source__%d.png, frame: 25270
Writing file: 02a_source__%d.png, frame: 30590
...

Generating a few sync frames
Writing file: 01b_encode__%d.png, frame: 35910
Writing file: 02b_encode__%d.png, frame: 25270
...

Screen generation completed
Output: path/Ant-Man.2015_images/

04a_source__41230.png 04b_encode__41230.png

11a_source__41230.png 11b_encode__41230.png

16a_source__41230.png 16b_encode__41230.png