Skip to main content

A command-line utility for applying artistic effects to videos and still images

Project description

Siss

A command-line tool for applying duotone and halftone effects to video and still-image files. Duotone maps per-pixel luminance to a linear blend between two user-supplied RGB colors; halftone renders plus, asterisk, slash, or dot symbols at luminance-proportional sizes over a 3×3-pixel sampled grid, on a square or hex-offset screen. Accepts hex strings, CSS named colors, RGB triples, and named two-color palettes.

Features

  • Duotone – maps per-pixel luminance to a linear gradient between two RGB colors; color1 is applied to dark areas, color2 to light areas
  • Halftone – renders plus, asterisk, slash, or dot symbols at sizes proportional to local luminance (3×3-pixel sampled average), with independent symbol and background colors, over a square or hex-offset sampling grid
  • Color input – accepts 3- and 6-digit hex strings (with or without #), case-insensitive CSS named colors, RGB integer triples, and named two-color palettes via --palette
  • Still-image output – write PNG, JPEG, BMP, TIFF, or WebP by using an image extension for the output path; reuses the same per-frame effect closures as video output
  • Codec selection – probes cv2.VideoWriter_fourcc candidates per output format and OS; falls back through a priority list until a working codec is found
  • Audio passthrough – copies the original audio track into the output with ffmpeg after rendering; disable with --no-audio
  • Custom palettes – load your own two-color looks from a JSON file with --palette-file; custom names shadow built-in ones

Installation

pip install siss

Quick Start

After installation, run siss from the command line:

siss input_video.mp4 output_video.mp4 --effect duotone

To process a still image, use an image extension for the output path:

siss input.jpg output.png --effect duotone --palette sunset

Specifying Colors

Colors accept hex strings, CSS names, RGB triples, or curated palettes:

siss input.mp4 output.mp4 --effect duotone --color1 "#3b1f4b" --color2 gold
siss input.mp4 output.mp4 --effect duotone --palette sunset
siss --list-palettes

Example Effects

Duotone Effect

Duotone Example

siss input.mp4 output.mp4 --effect duotone --color1 56 12 45 --color2 217 237 3

Applies a duotone effect with deep purple mapped to dark areas and bright yellow-green to light areas.

Halftone Effect

Halftone Example

siss input.mp4 output.mp4 --effect halftone --symbol_type slash --symbol_size 20 --color1 56 12 45 --color2 217 237 3

Applies a halftone effect with slash symbols at luminance-proportional sizes.

Documentation

See the GitHub repository for full documentation.

Requirements

  • Python 3.7+
  • OpenCV (cv2)
  • NumPy
  • tqdm
  • ffmpeg (optional — for audio passthrough)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

siss-0.7.0.tar.gz (42.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

siss-0.7.0-py3-none-any.whl (23.3 kB view details)

Uploaded Python 3

File details

Details for the file siss-0.7.0.tar.gz.

File metadata

  • Download URL: siss-0.7.0.tar.gz
  • Upload date:
  • Size: 42.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for siss-0.7.0.tar.gz
Algorithm Hash digest
SHA256 f0644cd9b31eddc56eda805a441c3ff58aff1f65bbb1c84577c081ed3ed8f51b
MD5 52e3e17d112b670ee2576e22ba64bb98
BLAKE2b-256 63abd7b7dd3ffbca8cdccf585928dee009706d6350eb2b74fd197ce9201f3120

See more details on using hashes here.

Provenance

The following attestation bundles were made for siss-0.7.0.tar.gz:

Publisher: publish.yml on MichailSemoglou/siss

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file siss-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: siss-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 23.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for siss-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 21d0e58c51759846152e87f3de30236c84f2c12f511880438e3df28567555a24
MD5 428ac6b410705bf19a7b23fdcffefe33
BLAKE2b-256 46c3dcf51b1313bed16da773646519c14e59d816382b8a9b73815cc4916cc632

See more details on using hashes here.

Provenance

The following attestation bundles were made for siss-0.7.0-py3-none-any.whl:

Publisher: publish.yml on MichailSemoglou/siss

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page