{"id":21216764,"url":"https://github.com/mingtaoguo/conditional-instance-norm-for-n-style-transfer","last_synced_at":"2025-06-10T15:35:19.496Z","repository":{"id":168646378,"uuid":"155820925","full_name":"MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer","owner":"MingtaoGuo","description":"Implementation of the paper A Learned Representation for Artistic Style (Conditional instance  normalization)","archived":false,"fork":false,"pushed_at":"2018-11-19T13:16:54.000Z","size":25834,"stargazers_count":40,"open_issues_count":0,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-05T13:11:18.803Z","etag":null,"topics":["conditional-instance-normalization","styletransfer","tensorflow"],"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/MingtaoGuo.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":"2018-11-02T06:00:34.000Z","updated_at":"2022-11-10T09:45:03.000Z","dependencies_parsed_at":"2023-07-21T08:01:16.864Z","dependency_job_id":null,"html_url":"https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer","commit_stats":null,"previous_names":["mingtaoguo/conditional-instance-norm-for-n-style-transfer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MingtaoGuo%2FConditional-Instance-Norm-for-n-Style-Transfer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MingtaoGuo%2FConditional-Instance-Norm-for-n-Style-Transfer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MingtaoGuo%2FConditional-Instance-Norm-for-n-Style-Transfer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MingtaoGuo%2FConditional-Instance-Norm-for-n-Style-Transfer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MingtaoGuo","download_url":"https://codeload.github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MingtaoGuo%2FConditional-Instance-Norm-for-n-Style-Transfer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259102665,"owners_count":22805526,"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":["conditional-instance-normalization","styletransfer","tensorflow"],"created_at":"2024-11-20T21:55:31.137Z","updated_at":"2025-06-10T15:35:19.485Z","avatar_url":"https://github.com/MingtaoGuo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Conditional-Instance-Norm-for-n-Style-Transfer\nImplementation of the paper A Learned Representation for Artistic Style\n\n## Introduction\nSimply implementing the paper [A Learned Representation for Artistic Style](https://arxiv.org/pdf/1610.07629.pdf) (Conditional instance normalization)\n![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/cin.jpg)\n\n``` python\ndef conditional_instance_norm(x, scope_bn, y1=None, y2=None, alpha=1):\n    mean, var = tf.nn.moments(x, axes=[1, 2], keep_dims=True)\n    if y1==None:\n        beta = tf.get_variable(name=scope_bn + 'beta', shape=[x.shape[-1]], initializer=tf.constant_initializer([0.]), trainable=True)  \n        gamma = tf.get_variable(name=scope_bn + 'gamma', shape=[x.shape[-1]], initializer=tf.constant_initializer([1.]), trainable=True) \n    else:\n        beta = tf.get_variable(name=scope_bn+'beta', shape=[y1.shape[-1], x.shape[-1]], initializer=tf.constant_initializer([0.]), trainable=True) # label_nums x C\n        gamma = tf.get_variable(name=scope_bn+'gamma', shape=[y1.shape[-1], x.shape[-1]], initializer=tf.constant_initializer([1.]), trainable=True) # label_nums x C\n        beta1 = tf.matmul(y1, beta)\n        gamma1 = tf.matmul(y1, gamma)\n        beta2 = tf.matmul(y2, beta)\n        gamma2 = tf.matmul(y2, gamma)\n        beta = alpha * beta1 + (1. - alpha) * beta2\n        gamma = alpha * gamma1 + (1. - alpha) * gamma2\n    x = tf.nn.batch_normalization(x, mean, var, beta, gamma, 1e-10)\n    return x\n```\n\n## How to use\n1. Download the dataset [MSCOCO](http://images.cocodataset.org/zips/train2014.zip), and unzip the dataset to the folder 'MSCOCO'\n```\n├── imgs\n├── results\n├── save_imgs\n├── save_para\n├── style_imgs\n├── vgg_para\n├── MSCOCO\n     ├── COCO_train2014_000000000009.jpg\n     ├── COCO_train2014_000000000025.jpg\n     ├── COCO_train2014_000000000030.jpg\n     ├── COCO_train2014_000000000034.jpg\n     ├── COCO_train2014_000000000036.jpg\n     ├── COCO_train2014_000000000049.jpg\n     ...\n```\n2. Download the vgg16.npy, and put it into the folder 'vgg_para'\n3. Execute the python file 'main.py'\n\n## Requirement\n- python3.5\n- tensorflow1.4.0\n- scipy\n- numpy\n- pillow\n\n## Results\nStyle = alpha * style2 + (1 - alpha) * style1\n\n|Content|Style1|Style2|Result|\n|-|-|-|-|\n|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/imgs/5.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/5.png)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/10.png)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/4_9.gif)|\n\n|Content|Style1|Style2|Result|\n|-|-|-|-|\n|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/imgs/11.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/2.png)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/1.png)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/0_1.gif)|\n\n|Content|Style1|Style2|\n|-|-|-|\n|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/content.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/7.png)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/4.png)|\n\n|alpha=0|alpha=0.6|alpha=1.0|\n|-|-|-|\n|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/1lanting_0.0.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/1lanting_0.6.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/1lanting_1.0.jpg)|\n\n|Content|Style1|Style2|\n|-|-|-|\n|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/content.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/6.png)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/2.png)|\n\n|alpha=0|alpha=0.6|alpha=1.0|\n|-|-|-|\n|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/lanting_0.0.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/lanting_0.6.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/lanting_1.0.jpg)|\n\n|Content|Style1|Style2|\n|-|-|-|\n|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/content_dog.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/7.png)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/10.png)|\n\n|alpha=0|alpha=0.2|alpha=0.4|alpha=0.6|alpha=0.8|alpha=1.0|\n|-|-|-|-|-|-|\n|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/dog_0.0.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/dog_0.2.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/dog_0.4.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/dog_0.6.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/dog_0.8.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/dog_1.0.jpg)|\n\n|Content|style|result|\n|-|-|-|\n|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/door.jpg)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/6.png)|![](https://github.com/MingtaoGuo/Conditional-Instance-Norm-for-n-Style-Transfer/blob/master/IMAGES/door_.jpg)|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmingtaoguo%2Fconditional-instance-norm-for-n-style-transfer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmingtaoguo%2Fconditional-instance-norm-for-n-style-transfer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmingtaoguo%2Fconditional-instance-norm-for-n-style-transfer/lists"}