English | 中文
    You can use it to automatically remove the mosaics in images and videos, or add mosaics to them.
    This project is based on "semantic segmentation" and "Image-to-Image Translation".
    Try it at this website!



    origin auto add mosaic auto clean mosaic
    image image image
    image image image
    mosaic image DeepCreamPy ours
    image image image
    image image image
    • Style Transfer
    origin to Van Gogh to winter
    image image image

    An interesting example:Ricardo Milos to cat

    Run DeepMosaics

    You can either run DeepMosaics via a pre-built binary package, or from source.

    Try it on web

    You can simply try to remove the mosaic on the face at this website.

    Pre-built binary package

    For Windows, we bulid a GUI version for easy testing.
    Download this version, and a pre-trained model via [Google Drive] [百度云,提取码1x0a]


    • Requires Windows_x86_64, Windows10 is better.
    • Different pre-trained models are suitable for different effects.[Introduction to pre-trained models]
    • Run time depends on computers performance (GPU version has better performance but requires CUDA to be installed).
    • If output video cannot be played, you can try with potplayer.
    • GUI version updates slower than source.

    Run From Source



    This code depends on opencv-python, torchvision available via pip install.

    Clone this repo

    git clone
    cd DeepMosaics

    Get Pre-Trained Models

    You can download pre_trained models and put them into './pretrained_models'.
    [Google Drive] [百度云,提取码1x0a]
    [Introduction to pre-trained models]

    In order to add/remove mosaic, there must be a model file mosaic_position.pth at ./pretrained_models/mosaic/mosaic_position.pth

    Install dependencies

    (Optional) Create a virtual environment

    virtualenv mosaic
    source mosaic/bin/activate

    Then install the dependencies

    pip install -r requirements.txt

    If you can not build scikit-image, running export CFLAGS='-Wno-implicit-function-declaration then try to rebuild.

    Simple Example

    • Add Mosaic (output media will be saved in './result')
    python --media_path ./imgs/ruoruo.jpg --model_path ./pretrained_models/mosaic/add_face.pth --gpu_id 0
    • Clean Mosaic (output media will save in './result')
    python --media_path ./result/ruoruo_add.jpg --model_path ./pretrained_models/mosaic/clean_face_HD.pth --gpu_id 0

    If you see the error Please check mosaic_position_model_path!, check if there is a model file named mosaic_position.pth at ./pretrained_models/mosaic/mosaic_position.pth

    More Parameters

    If you want to test other images or videos, please refer to this file.

    Training With Your Own Dataset

    If you want to train with your own dataset, please refer to


    This code borrows heavily from [pytorch-CycleGAN-and-pix2pix] [Pytorch-UNet] [pix2pixHD] [BiSeNet] [DFDNet] [GFRNet_pytorch_new].



    发行版本 3



    贡献者 5

    HypoX64 @weixin_36721459
    Z Zhang Tiance @Zhang Tiance
    H Harry Pham @Harry Pham
    H hypox64 @hypox64


    • Python 97.4 %
    • C++ 1.5 %
    • CMake 1.0 %