Second-Party Plugins¶
Second-party plugins are officially maintained but distributed as separate packages to keep the core installation lightweight.
Overview¶
-
Comparison
Select, extract, and upload comparison frames to Slow.pics with TMDB metadata integration.
-
Dependency Graph
Interactive visualizer of the VapourSynth filter graph, with a profiling heatmap, call stacks and exports.
-
Editor
Monaco-based code editor workspace for VapourSynth scripts.
-
FFT Spectrum
Displays the Fast Fourier Transform (FFT) spectrum of all the planes of a video clip.
-
FrameProps Extended
Extends the built-in Frame Properties tool with specialized categories and formatters.
-
Histogram
Per-frame video scopes: Levels, Luma, Vectorscope, and Waveform.
-
Remote
Remote VapourSynth execution and frame streaming workspace powered by vsremote.
-
Split Planes
Visualize individual planes (e.g., Y, U, V) of a video clip to inspect channel-specific artifacts.
Installation¶
Second-party plugins are officially maintained but distributed as separate Python packages.
You can install plugins individually or choose one of the pre-configured bundles.
Optional: Recommended & Full Bundles
- The recommended bundle includes Split Planes, FrameProps Extended, FFT Spectrum, and Comparison.
- The full bundle includes all first, second and third-party plugins.
Detailed installation for individual packages can be found in their respective sections below.
Comparison ¶
The Comparison plugin provides an integrated workflow for extracting frames and uploading them directly to Slow.pics.
Features¶
- Frame Selection:
- Choose frames manually or automatically based on frame count and time range.
- Filter by picture types (I/P/B-frames) and combed frames.
- Select the darkest and/or lightest frames using asymmetric Gaussian brightness scoring.
- Probability Curve:
- Bias which part of the timeline random frames are drawn from using an interactive curve editor.
- Click Curve... next to the random frame count to open the editor.
- TMDB Integration:
- Search and retrieve metadata from TMDB to automatically populate collection names.
- Customize the naming format in the plugin Settings.
- Direct Upload:
- Upload extracted frames to Slow.pics.
- Configure login in the plugin Settings to upload directly.
Settings¶
| Setting | Default | Description |
|---|---|---|
| Browser ID | auto | UUID sent to Slow.pics on every upload. (see Browser ID). |
| Allowed frame searches | 150 | Max attempts per frame slot before giving up. |
| Brightness candidates | 0 (auto) | Candidate frames to analyze for dark/light selection. 0 auto-scales from clip length and FPS. |
Frame List Context Menu¶
Right-clicking any thumbnail in the selected frames list opens a context menu for managing and copying frame data. Multi-selection (Ctrl-click or Shift-click) is supported:
| Action | Description |
|---|---|
| Copy timestamp(s) | Copies the timestamp (HH:MM:SS.mmm) or a list of timestamps to the clipboard. |
| Copy frame number(s) | Copies the frame number or a list of frame numbers to the clipboard. |
| Remove frame(s) | Removes the selected frame(s) from the list (also supported via Del). |
Double-clicking any thumbnail in the list seeks the playback directly to that frame.
Probability Curve Editor¶
Click Curve... (next to the random frame count) to open the curve editor and bias where in the timeline random frames are sampled from.
The boundary points (start/end frame) are fixed horizontally but their weights are editable. Y = 1 everywhere gives uniform sampling.
Dark / Light Frame Selection¶
Candidate frames are scored with an asymmetric Gaussian on their average luma (PlaneStatsAverage):
- Dark: peak ≈ 6.5 % (σ left = 0.015, σ right = 0.15)
- Light: peak ≈ 75 % (σ left = 0.45, σ right = 0.90)
Browser ID¶
Every upload is tagged with a persistent Browser ID UUID so Slow.pics can associate it with your browser session.
Claiming an anonymous upload
If you uploaded without being logged in, you can still claim the comparison afterwards:
- Copy your Browser ID from the plugin Settings (clipboard button).
- In your browser's dev tools (F12), go to Application → Cookies →
slow.picsand setBROWSER-IDto that value. - Reload the comparison page and claim it from the page menu.
When uploading while logged in, Slow.pics returns its own BROWSER-ID; the plugin adopts it automatically.
Script Integration¶
All set_output outputs are available by default. Pass allow_comp to explicitly exclude specific outputs.
VapourSynth Requirements¶
- fpng (Optional): For slightly faster frame extraction.
Dependency Graph ¶
The Dependency Graph dock renders the filter dependency graph of any output using vsgraph and Cytoscape.js.
Features¶
- Layouts: Dagre (TB / LR), breadth-first, concentric, and grid.
- Profiling: Heatmap and per-node execution timings.
- Visual encoding: Concurrency mode borders, request pattern edges, and media change highlights.
- Lineage: Highlights upstream dependencies and downstream consumers for the selected node.
- Inspector: Node and edge specs, inputs, call stacks, and copy actions (ID, Python call, report).
- Overview panel: Graph metrics, concurrency warnings, media transitions, and filter mode filters.
- Search: Space-separated keywords and
/regex/flagsmatching node attributes and call arguments. - Export: DOT, Mermaid, ASCII, JSON, and PNG.
Settings¶
| Setting | Default | Description |
|---|---|---|
| Layout Direction | TB |
Graph flow: TB (top-to-bottom) or LR (left-to-right). |
| Layout Algorithm | Dagre |
Algorithm: Dagre (hierarchical, respects direction), Breadth First, Concentric, or Grid. |
| Rank Separation | 60 px |
Spacing between levels in Dagre (20–200 px). |
| Node Separation | 40 px |
Spacing between sibling nodes in Dagre and Concentric (10–200 px). |
| Profiling Heatmap | off |
Toggles profiling heatmap overlay. |
| Auto-Fit Viewport | on |
Fits graph to screen on reload. |
| Show Timings | on |
Shows execution times on nodes and tooltips. |
| Timing Unit | auto |
Time format: auto (adaptive), ms, or ns. |
HUD Toolbar¶
- Output: Select an output or follow the active timeline output.
- Navigation: Zoom (
+/−), fit to view (Fit), reset zoom (1:1), and orientation (↕ TB/↔ LR). - Actions: Toggles for
Heatmap, edgePatterns,Overviewpanel, and↻(re-inspect). - Search: Input with match count.
Search Syntax¶
Matches against node names, IDs, labels, call stack functions, namespaces, argument names, and argument values:
- Words: Space-separated terms use AND matching (e.g.
std crop left 8). - Regex: Enclose in slashes with optional flags (e.g.
/crop$/i). Invalid syntax displays!.
Visual Encoding¶
- Filter modes (
vs.FilterMode):PARALLEL: Solid border.PARALLEL_REQUESTS: Dashed green border.UNORDERED: Dotted highlight border.FRAME_STATE: Dashed red border (serialized frame processing).Root node: Amber border.
- Request patterns (
vsgraph.RequestPattern):GENERAL: Solid line.STRICT_SPATIAL: Dotted line (skips frame cache).NO_FRAME_REUSE: Dashed line (disables frame reuse).FRAME_REUSE_LAST_ONLY: Thick dashed line.
- Media transitions: Amber edges and target glows mark format, resolution, fps, or frame count changes.
- Selection & Lineage: Selecting a node highlights upstream inputs and downstream outputs; unrelated elements are dimmed.
Profiling Heatmap¶
Node background color indicates relative execution time (square-root scaled against the slowest node):
- Slate: Baseline / negligible.
- Teal: Fast.
- Amber: Moderate.
- Orange: Heavy.
- Red: Bottleneck.
Inspector Drawer¶
Clicking a node or edge opens its details (specs, performance, inputs, call stack, and copy actions) in the side drawer. Node references in the drawer are clickable and jump to the related node.
Overview Panel¶
Toggle with Overview or L. It summarizes the graph (counts, timings, formats), lists warnings and media changes, and offers filters that dim unrelated nodes on the canvas.
Context Menu & Export¶
Right-click the canvas:
| Action | Description |
|---|---|
| Fit to View | Fit graph into viewport (F). |
| Reset View | Reset zoom to 100% (Ctrl+0). |
| Reload Graph | Re-inspect active output and update timings (R). |
| Copy Graph as → | Copy as PNG Image, DOT, Mermaid, ASCII, or JSON. |
| Save Graph as → | Save as PNG Image, DOT, Mermaid, ASCII, or JSON. |
Timings and caching¶
The graph is inspected once per output and cached; the displayed timings are a snapshot of the last inspection. Press the refresh button to re-inspect the current output.
Keyboard Shortcuts¶
| Shortcut | Action |
|---|---|
Up / Down |
Walk to the parent / child dependency |
Shift + Up / Down |
Cycle between sibling dependencies |
Home / End |
Jump to the root / deepest leaf |
Enter |
Center the selected node |
Esc |
Clear the selection |
Ctrl + 0 |
Reset zoom to 100% |
F |
Fit the graph |
H |
Toggle the profiling heatmap |
P |
Toggle request-pattern labels |
L |
Toggle the overview panel |
R |
Re-inspect the graph |
/ |
Focus the search box |
FFT Spectrum ¶
The FFT Spectrum tool provides a visualization of the Fast Fourier Transform (FFT) spectrum of all the planes of a video clip.
Histogram ¶
Provides per-frame video scopes as tabs inside a single panel.
- Updates are paused during playback and resume on the active tab when playback stops.
- Right-click any plot to copy or save the view.
Levels¶
Plots a per-plane pixel value histogram for the current frame.
| Control | Options | Description |
|---|---|---|
| Bin resolution | Auto, 256, 512, 1024 | Number of histogram bins. Auto scales to the panel width. |
| Clamp factor | 0.001 % – 100 % | Clips peak bin counts to this percentage of total pixels, making smaller peaks visible. |
| Show unsafe zones | on / off | Highlights broadcast-illegal ranges (YUV limited range only). |
Luma¶
Displays a luma scope rendered through a standard graphics view.
| Control | Options | Description |
|---|---|---|
| Frequency (Shift) | 2 – 256 cycles (shift 1 – 8) | Controls the number of luma cycles displayed across the scope. |
| Sawtooth style | on / off | Switches the rendering style from sine-like to a sawtooth waveform. |
Only GRAY and YUV inputs are supported. RGB input shows an error overlay.
Vectorscope¶
Plots chroma (U/V) distribution on a 2D plane.
Graticules show 75 % and 100 % saturation circles, a skin-tone reference line, and primary/secondary color targets that automatically adjust based on the clip's color matrix (supporting Rec. 601, Rec. 709, Rec. 2020, and ST 240M).
| Control | Options | Description |
|---|---|---|
| Mode | Density, Chroma Wheel, Pixel Color | Density: logarithmic heat-map with a phosphor color table. Chroma Wheel: density map drawn over a full-color UV background wheel. Pixel Color: each pixel plotted at its actual RGB-converted color. |
| Resolution | Auto, 256, 512, 1024 | Size of the internal scope image (square). Auto caps to the bit depth limit. |
| Matrix | Auto, BT.709, BT.601, BT.2020, ST 240M | Color matrix coefficients used for target graticules and signal conversion. Auto detects from clip properties or resolution. |
| Luma | 0.01 – 2.00 | Brightness scaling factor applied to the point cloud/glow. Only active in Chroma Wheel mode. |
RGB input is not supported and shows a warning. GRAY input plots all pixels at neutral chroma.
Waveform¶
Plots pixel values column-by-column as a waveform. Logarithmic density scaling is applied per-column.
| Control | Options | Description |
|---|---|---|
| Mode | Luma, RGB/YUV Parade | Luma: single Y-plane waveform. Parade: one waveform per plane side-by-side (R/G/B or Y/U/V, depending on color family). |
| Resolution | Auto, 256, 512, 1024 | Vertical resolution of the scope. Auto caps to the bit depth limit. |
| Show zones | on / off | Overlays the neutral line and broadcast-limit lines (16/235 for luma, 16/240 for chroma) with shaded unsafe regions. |
| Dynamic gain | on / off | When on, scales brightness relative to the densest column. When off, scales relative to frame height. |
| Gain | 0.1x – 10.0x | Multiplier applied on top of the logarithmic scale. |
CIE Chromaticity¶
Plots the chromaticity coordinates of the frame pixels onto a standard CIE chromaticity diagram (CIE 1931 xy or CIE 1976 u'v').
Graticules show the boundary triangles for common color gamuts (Rec. 709, Rec. 601, DCI-P3, and Rec. 2020) and a reference crosshair for the D65 white point.
| Control | Options | Description |
|---|---|---|
| CIE Mode | CIE 1931 (xy), CIE 1976 (u'v') | Toggles between the CIE 1931 standard color space representation and the CIE 1976 Uniform Chromaticity Scale (UCS) representation. |
| Render Mode | Density, Chroma Wheel, Pixel Color | Density: logarithmic heat-map showing pixel density using a phosphor color table. Chroma Wheel: density map drawn as a white glow over a full-color background chromaticity diagram. Pixel Color: each pixel plotted at its actual RGB color, scaled by density and luma settings. |
| Resolution | Native, 256x256, 512x512, 1024x1024 | Size of the internal scope image. Native uses the height of the frame. |
| Luma | 0.01 – 2.00 | Brightness scaling factor applied to the point cloud/glow. Only active in Pixel Color and Chroma Wheel modes. |
| Gamuts | Rec. 709, Rec. 601, DCI-P3, Rec. 2020 | Checkboxes to toggle the display of the target gamut boundary triangles and labels on the diagram. |
Only RGB input is supported. Other formats, or clips without a valid _Primaries frame property, will display an error overlay.
FrameProps Extended ¶
This plugin adds more categories and formatters to the built-in Frame Properties panel.
Split Planes ¶
Split Planes splits a video clip into its individual planes for inspection.
Features¶
- Extends the Graphics View's default context menu to provide a way to offset chroma plane values.