Metadata-Version: 2.4
Name: vexy-lines-run
Version: 1.0.32
Summary: GUI desktop application for Vexy Lines style transfer
Project-URL: Documentation, https://github.com/vexyart/vexy-lines/tree/main/vexy-lines-run#readme
Project-URL: Issues, https://github.com/vexyart/vexy-lines/issues
Project-URL: Source, https://github.com/vexyart/vexy-lines/tree/main/vexy-lines-run
Author-email: "Fontlab Ltd." <opensource@vexy.art>
License: MIT
License-File: LICENSE
Keywords: creative-tools,desktop-app,gui,style-transfer,vector-art,vexy-lines
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Multimedia :: Graphics
Classifier: Typing :: Typed
Requires-Python: <3.14,>=3.11
Requires-Dist: ctkmenubarplus>=0.1.3
Requires-Dist: customtkinter>=5.2.2
Requires-Dist: loguru>=0.7.2
Requires-Dist: pillow>=10.0.0
Requires-Dist: show-in-file-manager>=1.1.4
Requires-Dist: tkinterdnd2>=0.3.0
Requires-Dist: typing-extensions>=4.0
Requires-Dist: vexy-lines-apy[video]>=1.0.20
Requires-Dist: vexy-lines-py>=1.0.13
Description-Content-Type: text/markdown

# vexy-lines-run

Desktop GUI for [Vexy Lines](https://vexy.art) style transfer — load images, `.lines` files, or video, pick a style, export.

Built with CustomTkinter. Runs on macOS, Windows, and Linux wherever Tk is available.

## Install

```bash
pip install vexy-lines-run
```

All dependencies (CustomTkinter, tkinterdnd2, PyAV, OpenCV, resvg, svglab, CTkMenuBarPlus) are installed automatically.

## Launch

```bash
vexy-lines-run
```

Or:

```bash
python -m vexy_lines_run
```

From Python:

```python
from vexy_lines_run import launch
launch()
```

## Features

**Three input tabs**

- **Lines** — load `.lines` files; export embedded previews or apply a new style
- **Images** — load PNG, JPG, WEBP, and other rasters; style applied via the MCP API
- **Video** — load MP4, MOV, MKV, or similar; per-frame style transfer with audio passthrough

**Style picker**

Select a primary style from any `.lines` file. Optionally select an end style — the two are interpolated linearly across the input sequence. Both show inline thumbnail previews.

**Export formats**

| Format | Notes |
|--------|-------|
| SVG | Vector output from the style engine |
| PNG / JPG | Raster, with optional 2× upscale |
| MP4 | Re-encoded video with styled frames, optional audio |
| LINES | Copy `.lines` files directly (Lines tab only) |

**Drag-and-drop** onto any input list (via `tkinterdnd2`)

**Background processing** — export runs on a daemon thread; the progress bar updates live and the UI stays responsive

## Architecture

```
app.py          App(CTk)         — window, three tabs, style pickers, export bar
processing.py   process_export() — background thread dispatcher for lines/images/video
video.py        probe()          — PyAV-based video metadata and per-frame processing
widgets.py      CTkRangeSlider   — dual-handle range slider for video frame selection
```

Style transfer calls into `vexy-lines-apy` (`MCPClient`, `apply_style`, `interpolate_style`). Video uses PyAV for mux/demux and OpenCV for frame extraction.

## Full documentation

[Read the docs](https://vexyart.github.io/vexy-lines/vexy-lines-run/) for the complete GUI guide, API reference, and more examples.

## License

MIT
