pystiche

pystiche: A Framework for Neural Style Transfer - Published in JOSS (2020)

https://github.com/pystiche/pystiche

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.7%) to scientific vocabulary

Keywords

framework neural-style-transfer python pytorch

Keywords from Contributors

analyses
Last synced: 6 months ago · JSON representation

Repository

Framework for Neural Style Transfer (NST) built upon PyTorch

Basic Info
  • Host: GitHub
  • Owner: pystiche
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 8.37 MB
Statistics
  • Stars: 273
  • Watchers: 9
  • Forks: 26
  • Open Issues: 15
  • Releases: 17
Topics
framework neural-style-transfer python pytorch
Created over 6 years ago · Last pushed almost 3 years ago
Metadata Files
Readme Contributing License

README.rst

.. start-badges

.. list-table::
    :stub-columns: 1

    * - package
      - |license| |status|
    * - citation
      - |pyopensci| |joss|
    * - code
      - |black| |mypy| |lint|
    * - tests
      - |tests| |coverage|
    * - docs
      - |docs| |rtd|

.. end-badges

|logo|

``pystiche``
============

``pystiche`` (pronounced
`/ˈpaɪˈstiʃ/ `_ ) is a
framework for
`Neural Style Transfer (NST) `_
built upon `PyTorch `_. The name of the project is a pun on
*pastiche* `meaning `_:

    A pastiche is a work of visual art [...] that imitates the style or character of
    the work of one or more other artists. Unlike parody, pastiche celebrates, rather
    than mocks, the work it imitates.

.. image:: docs/source/graphics/banner/banner.jpg
    :alt: pystiche banner

``pystiche`` has similar goals as Deep Learning (DL) frameworks such as PyTorch:

1. **Accessibility**
    Starting off with NST can be quite overwhelming due to the sheer amount of
    techniques one has to know and be able to deploy. ``pystiche`` aims to provide an
    easy-to-use interface that reduces the necessary prior knowledge about NST and DL
    to a minimum.
2. **Reproducibility**
    Implementing NST from scratch is not only inconvenient but also error-prone.
    ``pystiche`` aims to provide reusable tools that let developers focus on their
    ideas rather than worrying about bugs in everything around it.


Installation
============

``pystiche`` is a proper Python package and can be installed with ``pip``. The latest
release can be installed with

.. code-block:: sh

  pip install pystiche

Usage
=====

``pystiche`` makes it easy to define the optimization criterion for an NST task fully
compatible with PyTorch. For example, the banner above was generated with the following
``criterion``:

.. code-block:: python

  from pystiche import enc, loss

  mle = enc.vgg19_multi_layer_encoder()

  perceptual_loss = loss.PerceptualLoss(
      content_loss=loss.FeatureReconstructionLoss(
          mle.extract_encoder("relu4_2")
      ),
      style_loss=loss.MultiLayerEncodingLoss(
          mle,
          ("relu1_1", "relu2_1", "relu3_1", "relu4_1", "relu5_1"),
          lambda encoder, layer_weight: ops.GramOLoss(
              encoder, score_weight=layer_weight
          ),
          score_weight=1e3,
      ),
  )

For the full example, head over to the example
`NST with pystiche `_.

Documentation
=============

For

- `detailed installation instructions `_,
- a `gallery of usage examples `_,
- the `API reference `_,
- the `contributing guidelines `_,

or anything else, head over to the `documentation `_.

Citation
========

If you use this software, please cite it as

.. code-block:: bibtex

  @Article{ML2020,
    author  = {Meier, Philip and Lohweg, Volker},
    journal = {Journal of Open Source Software {JOSS}},
    title   = {pystiche: A Framework for Neural Style Transfer},
    year    = {2020},
    doi     = {10.21105/joss.02761},
  }

.. |logo|
  image:: logo.svg
    :target: https://pystiche.org
    :alt: pystiche logo

.. |license|
  image:: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg
    :target: https://opensource.org/licenses/BSD-3-Clause
    :alt: License

.. |status|
  image:: https://www.repostatus.org/badges/latest/active.svg
    :target: https://www.repostatus.org/#active
    :alt: Project Status: Active

.. |pyopensci|
  image:: https://tinyurl.com/y22nb8up
    :target: https://github.com/pyOpenSci/software-review/issues/25
    :alt: pyOpenSci

.. |joss|
  image:: https://joss.theoj.org/papers/10.21105/joss.02761/status.svg
    :target: https://doi.org/10.21105/joss.02761
    :alt: JOSS

.. |black|
  image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/psf/black
    :alt: black

.. |mypy|
  image:: http://www.mypy-lang.org/static/mypy_badge.svg
    :target: http://mypy-lang.org/
    :alt: mypy

.. |lint|
  image:: https://github.com/pmeier/pystiche/workflows/lint/badge.svg
    :target: https://github.com/pmeier/pystiche/actions?query=workflow%3Alint+branch%3Amaster
    :alt: Lint status via GitHub Actions

.. |tests|
  image:: https://github.com/pmeier/pystiche/workflows/tests/badge.svg
    :target: https://github.com/pmeier/pystiche/actions?query=workflow%3Atests+branch%3Amaster
    :alt: Test status via GitHub Actions

.. |coverage|
  image:: https://codecov.io/gh/pmeier/pystiche/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/pmeier/pystiche
    :alt: Test coverage

.. |docs|
  image:: https://github.com/pmeier/pystiche/workflows/docs/badge.svg
    :target: https://github.com/pmeier/pystiche/actions?query=workflow%3Adocs+branch%3Amaster
    :alt: Docs status via GitHub Actions

.. |rtd|
  image:: https://img.shields.io/readthedocs/pystiche?label=latest&logo=read%20the%20docs
    :target: https://pystiche.readthedocs.io/en/latest/?badge=latest
    :alt: Latest documentation hosted on Read the Docs

Owner

  • Name: pystiche
  • Login: pystiche
  • Kind: organization

GitHub Events

Total
  • Watch event: 4
Last Year
  • Watch event: 4

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 507
  • Total Committers: 12
  • Avg Commits per committer: 42.25
  • Development Distribution Score (DDS): 0.361
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Philip Meier g****r@p****e 324
Philip Meier p****r@t****e 147
Philip Meier g****e@o****e 20
Pranjal Gulati 7****l 6
dooglewoogle 4****e 2
sakshi kumari 5****6 2
Ankita Sharma a****m@g****m 1
Kushashwa Ravi Shrimali k****i@g****m 1
Sreeja Govardhana 4****7 1
divo12 7****2 1
jbueltemeier 4****r 1
sourcery-ai[bot] 5****] 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 22
  • Total pull requests: 78
  • Average time to close issues: 28 days
  • Average time to close pull requests: 2 days
  • Total issue authors: 1
  • Total pull request authors: 8
  • Average comments per issue: 1.68
  • Average comments per pull request: 1.41
  • Merged pull requests: 72
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • pmeier (22)
Pull Request Authors
  • pmeier (63)
  • DevPranjal (7)
  • dooglewoogle (2)
  • sakshi-06 (2)
  • ankitaS11 (1)
  • sreeja97 (1)
  • divo12 (1)
  • krshrimali (1)
Top Labels
Issue Labels
Good first issue (7) documentation (2) enhancement (2) bug (2)
Pull Request Labels
do NOT merge (3) BC breaking (2)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 287 last-month
  • Total docker downloads: 10
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 28
    (may contain duplicates)
  • Total versions: 20
  • Total maintainers: 1
pypi.org: pystiche

Framework for Neural Style Transfer built upon PyTorch

  • Versions: 9
  • Dependent Packages: 1
  • Dependent Repositories: 28
  • Downloads: 287 Last month
  • Docker Downloads: 10
Rankings
Dependent repos count: 2.7%
Stargazers count: 3.9%
Docker downloads count: 4.0%
Dependent packages count: 4.8%
Average: 5.1%
Forks count: 7.3%
Downloads: 8.1%
Maintainers (1)
Last synced: 6 months ago
proxy.golang.org: github.com/pystiche/pystiche
  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.4%
Average: 6.6%
Dependent repos count: 6.8%
Last synced: 6 months ago

Dependencies

docs/requirements-rtd.txt pypi
  • importlib-metadata *
  • jinja2 *
  • matplotlib *
  • memory_profiler *
  • pydata_sphinx_theme *
  • sphinx >=3
  • sphinx-gallery >=0.8,<0.10
  • sphinx_autodoc_typehints >=1.11
  • sphinxcontrib-bibtex ==2
requirements-dev.txt pypi
  • pre-commit * development
  • tox >=3.2 development
.github/workflows/docs-build.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • appleboy/scp-action v0.1.1 composite
.github/workflows/docs-dispatch.yml actions
  • actions/checkout v2 composite
  • peter-evans/repository-dispatch v1 composite
.github/workflows/lint-style.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/lint-typing.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/publishable.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/tests-download.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/tests.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v1.5.0 composite
pyproject.toml pypi