Metadata-Version: 2.2
Name: pytorch-image-translation-models
Version: 0.2.5
Summary: A PyTorch library for multi-modal image translation with diffusion bridges, GANs, and transformer backbones.
Author: Bili-Sakura, EarthBridge Team
License: MIT
Project-URL: Repository, https://github.com/Bili-Sakura/pytorch-image-translation-models
Project-URL: Issues, https://github.com/Bili-Sakura/pytorch-image-translation-models/issues
Project-URL: Changelog, https://github.com/Bili-Sakura/pytorch-image-translation-models/blob/main/CHANGELOG.md
Keywords: pytorch,image-translation,diffusion,bridge-models,remote-sensing,SAR,aerial-imagery,GAN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: absl-py==2.4.0
Requires-Dist: accelerate==1.12.0
Requires-Dist: affine==2.4.0
Requires-Dist: aiofiles==24.1.0
Requires-Dist: aiohappyeyeballs==2.6.1
Requires-Dist: aiohttp==3.13.3
Requires-Dist: aiosignal==1.4.0
Requires-Dist: altair==6.0.0
Requires-Dist: annotated-doc==0.0.4
Requires-Dist: annotated-types==0.7.0
Requires-Dist: anyio==4.12.1
Requires-Dist: asttokens==3.0.1
Requires-Dist: async-timeout==5.0.1
Requires-Dist: attrs==25.4.0
Requires-Dist: av==16.1.0
Requires-Dist: bitsandbytes==0.49.1
Requires-Dist: black==26.1.0
Requires-Dist: blinker==1.9.0
Requires-Dist: braceexpand==0.1.7
Requires-Dist: brotli==1.2.0
Requires-Dist: cachetools==6.2.6
Requires-Dist: certifi==2026.1.4
Requires-Dist: charset-normalizer==3.4.4
Requires-Dist: click==8.3.1
Requires-Dist: click-plugins==1.1.1.2
Requires-Dist: cligj==0.7.2
Requires-Dist: comm==0.2.3
Requires-Dist: contourpy==1.3.3
Requires-Dist: cycler==0.12.1
Requires-Dist: datasets==4.5.0
Requires-Dist: debugpy==1.8.20
Requires-Dist: decorator==5.2.1
Requires-Dist: decord==0.6.0
Requires-Dist: Deprecated==1.3.1
Requires-Dist: diffusers==0.36.0
Requires-Dist: dill==0.4.0
Requires-Dist: distro==1.9.0
Requires-Dist: easygui==0.98.3
Requires-Dist: einops==0.8.2
Requires-Dist: entrypoints==0.4
Requires-Dist: exceptiongroup==1.3.1
Requires-Dist: executing==2.2.1
Requires-Dist: fastapi==0.128.0
Requires-Dist: ffmpy==1.0.0
Requires-Dist: filelock==3.20.0
Requires-Dist: fonttools==4.61.1
Requires-Dist: frozenlist==1.8.0
Requires-Dist: fsspec==2025.10.0
Requires-Dist: ftfy==6.3.1
Requires-Dist: gitdb==4.0.12
Requires-Dist: GitPython==3.1.46
Requires-Dist: gradio==6.5.1
Requires-Dist: gradio_client==2.0.3
Requires-Dist: groovy==0.1.2
Requires-Dist: grpcio==1.76.0
Requires-Dist: h11==0.16.0
Requires-Dist: hf-xet==1.2.0
Requires-Dist: httpcore==1.0.9
Requires-Dist: httpx==0.28.1
Requires-Dist: huggingface_hub==1.3.5
Requires-Dist: idna==3.11
Requires-Dist: imagesize==1.4.1
Requires-Dist: img2pdf==0.6.3
Requires-Dist: importlib_metadata==8.7.1
Requires-Dist: intel-cmplr-lib-ur==2025.3.2
Requires-Dist: intel-openmp==2025.3.2
Requires-Dist: ipykernel==7.1.0
Requires-Dist: ipython==9.9.0
Requires-Dist: ipython_pygments_lexers==1.1.1
Requires-Dist: ipywidgets==8.1.8
Requires-Dist: jedi==0.19.2
Requires-Dist: Jinja2==3.1.6
Requires-Dist: jiter==0.12.0
Requires-Dist: jsonschema==4.26.0
Requires-Dist: jsonschema-specifications==2025.9.1
Requires-Dist: jupyter_client==8.8.0
Requires-Dist: jupyter_core==5.9.1
Requires-Dist: jupyterlab_widgets==3.0.16
Requires-Dist: kiwisolver==1.4.9
Requires-Dist: liger_kernel==0.6.4
Requires-Dist: lightning-utilities==0.15.2
Requires-Dist: lion-pytorch==0.2.3
Requires-Dist: lpips==0.1.4
Requires-Dist: lxml==6.0.2
Requires-Dist: Markdown==3.10.1
Requires-Dist: markdown-it-py==4.0.0
Requires-Dist: MarkupSafe==2.1.5
Requires-Dist: matplotlib==3.10.8
Requires-Dist: matplotlib-inline==0.2.1
Requires-Dist: mdurl==0.1.2
Requires-Dist: mkl==2025.3.1
Requires-Dist: mkl-service==2.6.1
Requires-Dist: mkl_fft==1.3.14
Requires-Dist: mkl_random==1.2.10
Requires-Dist: mpmath==1.3.0
Requires-Dist: multidict==6.7.1
Requires-Dist: multiprocess==0.70.18
Requires-Dist: mypy_extensions==1.1.0
Requires-Dist: narwhals==2.15.0
Requires-Dist: nest-asyncio==1.6.0
Requires-Dist: networkx==3.6.1
Requires-Dist: ninja==1.13.0
Requires-Dist: numpy==1.26.4
Requires-Dist: nvidia-cublas-cu12==12.6.4.1
Requires-Dist: nvidia-cuda-cupti-cu12==12.6.80
Requires-Dist: nvidia-cuda-nvrtc-cu12==12.6.77
Requires-Dist: nvidia-cuda-runtime-cu12==12.6.77
Requires-Dist: nvidia-cudnn-cu12==9.10.2.21
Requires-Dist: nvidia-cufft-cu12==11.3.0.4
Requires-Dist: nvidia-cufile-cu12==1.11.1.6
Requires-Dist: nvidia-curand-cu12==10.3.7.77
Requires-Dist: nvidia-cusolver-cu12==11.7.1.2
Requires-Dist: nvidia-cusparse-cu12==12.5.4.2
Requires-Dist: nvidia-cusparselt-cu12==0.7.1
Requires-Dist: nvidia-nccl-cu12==2.27.3
Requires-Dist: nvidia-nvjitlink-cu12==12.6.85
Requires-Dist: nvidia-nvtx-cu12==12.6.77
Requires-Dist: onemkl-license==2025.3.1
Requires-Dist: openai==2.16.0
Requires-Dist: opencv-python==4.11.0.86
Requires-Dist: orjson==3.11.6
Requires-Dist: packaging==25.0
Requires-Dist: pandas==2.3.3
Requires-Dist: parso==0.8.5
Requires-Dist: pathspec==1.0.4
Requires-Dist: peft==0.18.1
Requires-Dist: pexpect==4.9.0
Requires-Dist: pikepdf==10.3.0
Requires-Dist: pillow==12.0.0
Requires-Dist: platformdirs==4.5.1
Requires-Dist: prodigy-plus-schedule-free==2.0.1
Requires-Dist: prodigyopt==1.1.2
Requires-Dist: prompt_toolkit==3.0.52
Requires-Dist: propcache==0.4.1
Requires-Dist: protobuf==6.33.5
Requires-Dist: psutil==7.2.2
Requires-Dist: ptyprocess==0.7.0
Requires-Dist: pure_eval==0.2.3
Requires-Dist: pyarrow==23.0.0
Requires-Dist: pydantic==2.12.5
Requires-Dist: pydantic_core==2.41.5
Requires-Dist: pydeck==0.9.1
Requires-Dist: pydub==0.25.1
Requires-Dist: Pygments==2.19.2
Requires-Dist: pyparsing==3.3.2
Requires-Dist: pyproj==3.7.2
Requires-Dist: python-dateutil==2.9.0.post0
Requires-Dist: python-dotenv==1.2.1
Requires-Dist: python-multipart==0.0.22
Requires-Dist: pytokens==0.4.1
Requires-Dist: pytorch_optimizer==3.9.0
Requires-Dist: pytz==2025.2
Requires-Dist: PyYAML==6.0.3
Requires-Dist: pyzmq==27.1.0
Requires-Dist: qwen-vl-utils==0.0.14
Requires-Dist: rasterio==1.4.4
Requires-Dist: referencing==0.37.0
Requires-Dist: regex==2026.1.15
Requires-Dist: requests==2.32.5
Requires-Dist: rich==14.3.1
Requires-Dist: rpds-py==0.30.0
Requires-Dist: ruff==0.14.14
Requires-Dist: safehttpx==0.1.7
Requires-Dist: safetensors==0.7.0
Requires-Dist: schedulefree==1.4.1
Requires-Dist: scipy==1.17.0
Requires-Dist: semantic-version==2.10.0
Requires-Dist: sentencepiece==0.2.1
Requires-Dist: setuptools==80.10.1
Requires-Dist: shapely==2.1.2
Requires-Dist: shellingham==1.5.4
Requires-Dist: six==1.17.0
Requires-Dist: smmap==5.0.2
Requires-Dist: sniffio==1.3.1
Requires-Dist: stack-data==0.6.3
Requires-Dist: starlette==0.50.0
Requires-Dist: streamlit==1.53.1
Requires-Dist: sympy==1.14.0
Requires-Dist: tbb==2022.3.1
Requires-Dist: tcmlib==1.4.1
Requires-Dist: tenacity==9.1.2
Requires-Dist: tensorboard==2.20.0
Requires-Dist: tensorboard-data-server==0.7.2
Requires-Dist: timm==1.0.24
Requires-Dist: tokenizers==0.22.2
Requires-Dist: toml==0.10.2
Requires-Dist: tomli==2.4.0
Requires-Dist: tomlkit==0.13.3
Requires-Dist: toolz==1.1.0
Requires-Dist: torch==2.8.0+cu126
Requires-Dist: torch-fidelity==0.3.0
Requires-Dist: torchaudio==2.8.0+cu126
Requires-Dist: torchmetrics==1.8.2
Requires-Dist: torchvision==0.23.0+cu126
Requires-Dist: tornado==6.5.4
Requires-Dist: tqdm==4.67.1
Requires-Dist: traitlets==5.14.3
Requires-Dist: transformer_engine==2.11.0
Requires-Dist: transformer_engine_cu12==2.11.0
Requires-Dist: transformers==5.0.0
Requires-Dist: triton==3.4.0
Requires-Dist: typer==0.21.1
Requires-Dist: typer-slim==0.21.1
Requires-Dist: typing-inspection==0.4.2
Requires-Dist: typing_extensions==4.15.0
Requires-Dist: tzdata==2025.3
Requires-Dist: umf==1.0.3
Requires-Dist: urllib3==2.6.3
Requires-Dist: uvicorn==0.40.0
Requires-Dist: voluptuous==0.16.0
Requires-Dist: watchdog==6.0.0
Requires-Dist: wcwidth==0.5.2
Requires-Dist: webdataset==1.0.2
Requires-Dist: websockets==16.0
Requires-Dist: Werkzeug==3.1.5
Requires-Dist: wheel==0.46.3
Requires-Dist: widgetsnbextension==4.0.15
Requires-Dist: wrapt==2.1.0
Requires-Dist: xxhash==3.6.0
Requires-Dist: yacs==0.1.8
Requires-Dist: yarl==1.22.0
Requires-Dist: zipp==3.23.0
Provides-Extra: training
Requires-Dist: accelerate>=0.25.0; extra == "training"
Requires-Dist: peft>=0.7.0; extra == "training"
Requires-Dist: datasets>=2.14.0; extra == "training"
Requires-Dist: tensorboard>=2.14.0; extra == "training"
Provides-Extra: metrics
Requires-Dist: torchmetrics>=1.0.0; extra == "metrics"
Requires-Dist: lpips>=0.1.4; extra == "metrics"
Requires-Dist: torch-fidelity>=0.3.0; extra == "metrics"
Requires-Dist: scipy>=1.10.0; extra == "metrics"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Provides-Extra: all
Requires-Dist: pytorch-image-translation-models[dev,metrics,training]; extra == "all"

# pytorch-image-translation-models

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![PyPI version](https://img.shields.io/pypi/v/pytorch-image-translation-models.svg)](https://pypi.org/project/pytorch-image-translation-models/) [![Checkpoint Collections](https://img.shields.io/badge/🤗%20Checkpoints-Collection-FFD21E)](https://huggingface.co/collections/BiliSakura/image-translation-checkpoint-collections)

A PyTorch library for multi-modal image translation with diffusion bridges, GANs, and transformer backbones.

## Installation

### Install from PyPI

```bash
pip install pytorch-image-translation-models
```

### Install from source

```bash
pip install -e .
```

With optional dependencies:

```bash
# With training extras (accelerate, peft, datasets, tensorboard)
pip install -e ".[training]"

# With metrics extras (torchmetrics, lpips, torch-fidelity, scipy)
pip install -e ".[metrics]"

# Everything
pip install -e ".[all]"
```

> **Note:** PyTorch is listed as a dependency but you may want to install a specific CUDA build first.
> See [PyTorch — Get Started](https://pytorch.org/get-started/previous-versions/) for details.

## Quick Start

```python
import src
from PIL import Image
from examples.community.e3diff import E3DiffPipeline

# Baseline method (DDBM) - one-stop load
ddbm = src.DDBMPipeline.from_pretrained(
    "/path/to/DDBM-ckpt/diode-vp",
    subfolder="unet",
    device="cuda",
)

source = Image.open("/path/to/source.png").convert("RGB")
baseline_out = ddbm(source_image=source, num_inference_steps=40, output_type="pil")
baseline_out.images[0].save("ddbm_output.png")

# Community method (E3Diff) - one-stop load
e3diff = E3DiffPipeline.from_pretrained(
    "/path/to/E3Diff-ckpt/SEN12 ",
    device="cuda",
)
community_out = e3diff(source_image=source, num_inference_steps=50, output_type="pil")
community_out.images[0].save("e3diff_output.png")
```

## Checkpoint Layout Conventions

`from_pretrained(...)` expects method-specific subfolders under your checkpoint root.

| Method | Expected layout (relative to method root) |
| --- | --- |
| `DDBM`, `BDBM`, `BiBBDM`, `DBIM`, `CDTSDE`, `LBM` | `unet/config.json`, `unet/diffusion_pytorch_model.safetensors`, optional `scheduler/scheduler_config.json` |
| `DDIB` | `source_unet/config.json`, `source_unet/diffusion_pytorch_model.safetensors`, `target_unet/config.json`, `target_unet/diffusion_pytorch_model.safetensors`, optional `scheduler/scheduler_config.json` |
| `I2SB` | `unet/config.json`, `unet/diffusion_pytorch_model.safetensors`, optional `scheduler_config.json` (or `scheduler/scheduler_config.json`) |
| `CUT` | `generator/config.json`, `generator/diffusion_pytorch_model.safetensors` |
| `Pix2PixHD` | `generator/config.json`, `generator/diffusion_pytorch_model.safetensors` |
| `UNSB` | `generator/config.json`, `generator/diffusion_pytorch_model.safetensors` |
| `StegoGAN` | `generator_A/config.json`, `generator_A/diffusion_pytorch_model.safetensors`, `generator_B/config.json`, `generator_B/diffusion_pytorch_model.safetensors` |
| `LocalDiffusion` | `unet/config.json`, `unet/diffusion_pytorch_model.safetensors`, optional `scheduler/scheduler_config.json` |
| Community `sar2optical` | `generator/config.json`, `generator/diffusion_pytorch_model.safetensors` |
| Community `parallel_gan` | `generator/config.json`, `generator/diffusion_pytorch_model.safetensors` |
| Community `e3diff` | `config.json`, `diffusion_pytorch_model.safetensors` |

## Documentation

| Doc | Description |
| --- | --- |
| [Features](docs/features.md) | Models, schedulers, pipelines, data, losses, training, metrics |
| [Examples](docs/examples.md) | Extended usage for I2SB, DDBM, UNSB, Local Diffusion, etc. |
| [Package structure](docs/package-structure.md) | Source layout and module overview |
| [Credits](docs/credits.md) | Reference papers and citations |

## License

MIT
