{"id":19572143,"url":"https://github.com/advimman/deep-landscape","last_synced_at":"2025-07-10T09:38:33.191Z","repository":{"id":49039575,"uuid":"280481702","full_name":"advimman/deep-landscape","owner":"advimman","description":"Official repository for the paper \"DeepLandscape: Adversarial Modeling of Landscape Videos\" (ECCV2020)","archived":false,"fork":false,"pushed_at":"2023-02-15T12:44:08.000Z","size":40263,"stargazers_count":111,"open_issues_count":2,"forks_count":20,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-27T03:32:52.611Z","etag":null,"topics":["deep-learning","gan","generative-adversarial-network","reenactment","video-generation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/advimman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-17T17:07:57.000Z","updated_at":"2025-04-03T08:27:22.000Z","dependencies_parsed_at":"2024-11-11T06:34:55.880Z","dependency_job_id":null,"html_url":"https://github.com/advimman/deep-landscape","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/advimman/deep-landscape","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/advimman%2Fdeep-landscape","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/advimman%2Fdeep-landscape/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/advimman%2Fdeep-landscape/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/advimman%2Fdeep-landscape/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/advimman","download_url":"https://codeload.github.com/advimman/deep-landscape/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/advimman%2Fdeep-landscape/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264559678,"owners_count":23628040,"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":["deep-learning","gan","generative-adversarial-network","reenactment","video-generation"],"created_at":"2024-11-11T06:24:00.959Z","updated_at":"2025-07-10T09:38:33.171Z","avatar_url":"https://github.com/advimman.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DeepLandscape: Adversarial Modeling of Landscape Videos\r\nImplementation of DeepLandscape: Adversarial Modeling of Landscape Video in PyTorch\r\n## [Project Page](https://advimman.github.io/deep-landscape/) | [Video Explanation](https://youtu.be/mnYIx9DwVlE) | [Paper](https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123680256.pdf) | [Teaser [1min]](https://youtu.be/2CoQRf5qXWY)\r\n---\r\n\r\nOfficial repository for the paper E. Logacheva, R. Suvorov, O. Khomenko, A. Mashikhin, and V. Lempitsky. \"DeepLandscape: Adversarial Modeling of Landscape Videos\" In 2020 European Conference on Computer Vision (ECCV).\r\n\r\n![teaser image](./docs/img/01_intro_grid.jpg)\r\n\r\n## GIF sample\r\n\u003cimg src=\"./docs/img/gifs/2-1336_homman3.mp4_frames.gif\" width=\"200\" style=\"border-radius: 15px;\" alt=\"gif sample #1\"\u003e\r\n\r\n---\r\n\r\n## Requirements\r\n* `pip3 install -r requirements.txt`\r\n\r\n## Usage\r\nDownload [everything from here](https://drive.google.com/drive/folders/1HqrT8SwkPOg_N9b2-KLZGUAi4OiLMFEz?usp=sharing) and put in the `results` directory.\r\n\r\n### Homographies\r\nUse ``homographies/manual_homographies`` to reproduce the paper; use ``homographies/manual_homographies_x2.5`` if you want the speed to match the speed of real videos in test data; use `homographies/selected_homographies` to get the best visual results.\r\n\r\n### Animate Images\r\nMove images you like to animate to `results/test_images`. Then run\r\n\r\n``PYTHONPATH=`pwd`:$PYTHONPATH runfiles/encode_and_animate_test_all256_with_style.sh \u003chomography_dir\u003e``\r\n\r\nResults will be saved in `results/encode_and_animate_results`.\r\n\r\n### Generate Synthetic Videos\r\nTo use the 256x256 generator run\r\n\r\n`./generate.py config/train/256.yaml --homography_dir \u003chomography_dir\u003e`\r\n\r\nResults will be saved in `results/generated`\r\n\r\n### Calculate Metrics\r\nTBD\r\n\r\n### Super-Resoultion\r\nSee [superres/README.md](superres/README.md)\r\n\r\n### Train\r\n#### Train the Generator\r\nYou should prepare an lmdb dataset:\r\n\r\n`./prepare_data.py \u003cdata type (images or videos)\u003e \u003cinput data path\u003e --out \u003coutput lmdb directory\u003e --n_worker \u003cnumber of workers\u003e`\r\n\r\nTo train the 256x256 generator:\r\n\r\n`./train.py configs/train/256.yaml --restart -i \u003cpath to image data\u003e -v \u003cpath to video data\u003e`\r\n\r\n#### Train the Encoder\r\nYou should prepare a dataset:\r\n\r\n``PYTHONPATH=`pwd`:$PYTHONPATH runfiles/gen_encoder_train_data_256.sh``\r\n\r\nTo train the 256x256 encoder:\r\n\r\n``PYTHONPATH=`pwd`:$PYTHONPATH runfiles/train_encoder_256.sh``\r\n\r\n## Download Test Data\r\n`vid_dl/main.py \u003coutput directory\u003e`\r\n\r\n-----\r\n## Acknowledgment\r\nThis repository is based on [Kim Seonghyeon's Implementation A Style-Based Generator Architecture for Generative Adversarial Networks in PyTorch](https://github.com/rosinality/style-based-gan-pytorch)\r\n\r\nThe Superresolution part is based on [https://github.com/xinntao/BasicSR](https://github.com/xinntao/BasicSR)\r\n\r\nMean optical flow calculation is taken from https://github.com/avinashpaliwal/Super-SloMo\r\n\r\nSegmentation is taken form https://github.com/CSAILVision/semantic-segmentation-pytorch\r\n\r\n### Metrics\r\n* LPIPS metric https://github.com/richzhang/PerceptualSimilarity\r\n* SSIM https://github.com/Po-Hsun-Su/pytorch-ssim\r\n* FID https://github.com/mseitzer/pytorch-fid\r\n\r\n-----\r\n\r\n## Citation\r\nIf you found our work useful, please don't forget to cite\r\n```\r\n@inproceedings{Logacheva_2020_ECCV,\r\n  author = {Logacheva, Elizaveta and\r\n            Suvorov, Roman and\r\n            Khomenko, Oleg and\r\n            Mashikhin, Anton and\r\n            Lempitsky, Victor\r\n  },\r\n  title = {DeepLandscape: Adversarial Modeling of Landscape Videos},\r\n  booktitle = {Proceedings of the European Conference on Computer Vision (ECCV)},\r\n  month = {August},\r\n  year = {2020},\r\n}\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvimman%2Fdeep-landscape","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadvimman%2Fdeep-landscape","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvimman%2Fdeep-landscape/lists"}