{"id":24316209,"url":"https://github.com/pystiche/pystiche","last_synced_at":"2025-06-22T05:01:50.492Z","repository":{"id":43092040,"uuid":"208798287","full_name":"pystiche/pystiche","owner":"pystiche","description":"Framework for Neural Style Transfer (NST) built upon PyTorch","archived":false,"fork":false,"pushed_at":"2023-04-11T12:44:38.000Z","size":8776,"stargazers_count":273,"open_issues_count":15,"forks_count":27,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-06-21T12:35:37.591Z","etag":null,"topics":["framework","neural-style-transfer","python","pytorch"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pystiche.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-09-16T12:49:12.000Z","updated_at":"2025-06-18T05:53:15.000Z","dependencies_parsed_at":"2023-11-11T19:45:23.330Z","dependency_job_id":null,"html_url":"https://github.com/pystiche/pystiche","commit_stats":{"total_commits":507,"total_committers":12,"mean_commits":42.25,"dds":"0.36094674556213013","last_synced_commit":"71217c24557dfba05da5795547bf6f3034e7c66f"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/pystiche/pystiche","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pystiche%2Fpystiche","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pystiche%2Fpystiche/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pystiche%2Fpystiche/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pystiche%2Fpystiche/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pystiche","download_url":"https://codeload.github.com/pystiche/pystiche/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pystiche%2Fpystiche/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261143265,"owners_count":23115690,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","neural-style-transfer","python","pytorch"],"created_at":"2025-01-17T12:19:55.233Z","updated_at":"2025-06-22T05:01:45.477Z","avatar_url":"https://github.com/pystiche.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":".. start-badges\n\n.. list-table::\n    :stub-columns: 1\n\n    * - package\n      - |license| |status|\n    * - citation\n      - |pyopensci| |joss|\n    * - code\n      - |black| |mypy| |lint|\n    * - tests\n      - |tests| |coverage|\n    * - docs\n      - |docs| |rtd|\n\n.. end-badges\n\n|logo|\n\n``pystiche``\n============\n\n``pystiche`` (pronounced\n`/ˈpaɪˈstiʃ/ \u003chttp://ipa-reader.xyz/?text=%CB%88pa%C9%AA%CB%88sti%CA%83\u003e`_ ) is a\nframework for\n`Neural Style Transfer (NST) \u003chttps://github.com/ycjing/Neural-Style-Transfer-Papers\u003e`_\nbuilt upon `PyTorch \u003chttps://pytorch.org\u003e`_. The name of the project is a pun on\n*pastiche* `meaning \u003chttps://en.wikipedia.org/wiki/Pastiche\u003e`_:\n\n    A pastiche is a work of visual art [...] that imitates the style or character of\n    the work of one or more other artists. Unlike parody, pastiche celebrates, rather\n    than mocks, the work it imitates.\n\n.. image:: docs/source/graphics/banner/banner.jpg\n    :alt: pystiche banner\n\n``pystiche`` has similar goals as Deep Learning (DL) frameworks such as PyTorch:\n\n1. **Accessibility**\n    Starting off with NST can be quite overwhelming due to the sheer amount of\n    techniques one has to know and be able to deploy. ``pystiche`` aims to provide an\n    easy-to-use interface that reduces the necessary prior knowledge about NST and DL\n    to a minimum.\n2. **Reproducibility**\n    Implementing NST from scratch is not only inconvenient but also error-prone.\n    ``pystiche`` aims to provide reusable tools that let developers focus on their\n    ideas rather than worrying about bugs in everything around it.\n\n\nInstallation\n============\n\n``pystiche`` is a proper Python package and can be installed with ``pip``. The latest\nrelease can be installed with\n\n.. code-block:: sh\n\n  pip install pystiche\n\nUsage\n=====\n\n``pystiche`` makes it easy to define the optimization criterion for an NST task fully\ncompatible with PyTorch. For example, the banner above was generated with the following\n``criterion``:\n\n.. code-block:: python\n\n  from pystiche import enc, loss\n\n  mle = enc.vgg19_multi_layer_encoder()\n\n  perceptual_loss = loss.PerceptualLoss(\n      content_loss=loss.FeatureReconstructionLoss(\n          mle.extract_encoder(\"relu4_2\")\n      ),\n      style_loss=loss.MultiLayerEncodingLoss(\n          mle,\n          (\"relu1_1\", \"relu2_1\", \"relu3_1\", \"relu4_1\", \"relu5_1\"),\n          lambda encoder, layer_weight: ops.GramOLoss(\n              encoder, score_weight=layer_weight\n          ),\n          score_weight=1e3,\n      ),\n  )\n\nFor the full example, head over to the example\n`NST with pystiche \u003chttps://pystiche.readthedocs.io/en/latest/galleries/examples/beginner/example_nst_with_pystiche.html\u003e`_.\n\nDocumentation\n=============\n\nFor\n\n- `detailed installation instructions \u003chttps://pystiche.readthedocs.io/en/latest/getting_started/installation.html\u003e`_,\n- a `gallery of usage examples \u003chttps://pystiche.readthedocs.io/en/latest/galleries/examples/index.html\u003e`_,\n- the `API reference \u003chttps://pystiche.readthedocs.io/en/latest/api/index.html\u003e`_,\n- the `contributing guidelines \u003chttps://pystiche.readthedocs.io/en/latest/getting_started/contributing.html\u003e`_,\n\nor anything else, head over to the `documentation \u003chttps://pystiche.readthedocs.io/en/latest/\u003e`_.\n\nCitation\n========\n\nIf you use this software, please cite it as\n\n.. code-block:: bibtex\n\n  @Article{ML2020,\n    author  = {Meier, Philip and Lohweg, Volker},\n    journal = {Journal of Open Source Software {JOSS}},\n    title   = {pystiche: A Framework for Neural Style Transfer},\n    year    = {2020},\n    doi     = {10.21105/joss.02761},\n  }\n\n.. |logo|\n  image:: logo.svg\n    :target: https://pystiche.org\n    :alt: pystiche logo\n\n.. |license|\n  image:: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg\n    :target: https://opensource.org/licenses/BSD-3-Clause\n    :alt: License\n\n.. |status|\n  image:: https://www.repostatus.org/badges/latest/active.svg\n    :target: https://www.repostatus.org/#active\n    :alt: Project Status: Active\n\n.. |pyopensci|\n  image:: https://tinyurl.com/y22nb8up\n    :target: https://github.com/pyOpenSci/software-review/issues/25\n    :alt: pyOpenSci\n\n.. |joss|\n  image:: https://joss.theoj.org/papers/10.21105/joss.02761/status.svg\n    :target: https://doi.org/10.21105/joss.02761\n    :alt: JOSS\n\n.. |black|\n  image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :target: https://github.com/psf/black\n    :alt: black\n\n.. |mypy|\n  image:: http://www.mypy-lang.org/static/mypy_badge.svg\n    :target: http://mypy-lang.org/\n    :alt: mypy\n\n.. |lint|\n  image:: https://github.com/pmeier/pystiche/workflows/lint/badge.svg\n    :target: https://github.com/pmeier/pystiche/actions?query=workflow%3Alint+branch%3Amaster\n    :alt: Lint status via GitHub Actions\n\n.. |tests|\n  image:: https://github.com/pmeier/pystiche/workflows/tests/badge.svg\n    :target: https://github.com/pmeier/pystiche/actions?query=workflow%3Atests+branch%3Amaster\n    :alt: Test status via GitHub Actions\n\n.. |coverage|\n  image:: https://codecov.io/gh/pmeier/pystiche/branch/master/graph/badge.svg\n    :target: https://codecov.io/gh/pmeier/pystiche\n    :alt: Test coverage\n\n.. |docs|\n  image:: https://github.com/pmeier/pystiche/workflows/docs/badge.svg\n    :target: https://github.com/pmeier/pystiche/actions?query=workflow%3Adocs+branch%3Amaster\n    :alt: Docs status via GitHub Actions\n\n.. |rtd|\n  image:: https://img.shields.io/readthedocs/pystiche?label=latest\u0026logo=read%20the%20docs\n    :target: https://pystiche.readthedocs.io/en/latest/?badge=latest\n    :alt: Latest documentation hosted on Read the Docs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpystiche%2Fpystiche","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpystiche%2Fpystiche","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpystiche%2Fpystiche/lists"}