Papers › Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization

Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization

20 Mar 2017ICCV 2017 10arXiv:1703.06868archive 2025-07-28

Xun Huang, Serge Belongie

Gatys et al. recently introduced a neural algorithm that renders a content image in the style of another image, achieving so-called style transfer. However, their framework requires a slow iterative optimization process, which limits its practical application. Fast approximations with feed-forward neural networks have been proposed to speed up neural style transfer. Unfortunately, the speed improvement comes at a cost: the network is usually tied to a fixed set of styles and cannot adapt to arbitrary new styles. In this paper, we present a simple yet effective approach that for the first time enables arbitrary style transfer in real-time. At the heart of our method is a novel adaptive instance normalization (AdaIN) layer that aligns the mean and variance of the content features with those of the style features. Our method achieves speed comparable to the fastest existing approach, without the restriction to a pre-defined set of styles. In addition, our approach allows flexible user controls such as content-style trade-off, style interpolation, color & spatial controls, all using a single feed-forward neural network.

PaperPDFConference PDFCodeCode Syntology ran

In Syntology View this paper on Syntology: its repositories, every harvested function with whether it ran, its licence and the call to fetch it.

Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1703.06868")

Code

Syntology Ran 28 of 41 code samples harvested from 18 repositories linked to this paper; 13 have no recorded run. Of those that ran: 3 ran · honoured contract; 6 ran · our draft was wrong; 10 ran · fixture could not drive it; 9 ran with no contract checked.

By repository: community (archive-listed): 41 samples from 18 repositories, 28 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

29 repositories listed; official and paper-mentioned ones first.

xunhuang1995/AdaIN-style officialmentioned in papermentioned on GitHubtorchMIT report
JeongsolKim/BiS400_term_project mentioned on GitHubtf report
Jwrede/neural_style_transfer mentioned on GitHubpytorch report
KaiyangZhou/mixstyle-release mentioned on GitHubpytorch report
KaiyangZhou/ssdg-benchmark mentioned on GitHubpytorchMIT report
ZVK/Talking-Heads mentioned on GitHubpytorchGPL-3.0 report
ZVK/talking_heads mentioned on GitHubpytorch report
aadhithya/AdaIN-pytorch mentioned on GitHubpytorch report
abhishtagatya/paintgan mentioned on GitHubtf report
asindel/artfacepoints mentioned on GitHubpytorchMIT report
bethgelab/stylize-datasets mentioned on GitHubpytorch report
cynicaldevil/neural-style-transfer mentioned on GitHubpytorch report
dongkwani/upcsc mentioned on GitHubpytorchMIT report
eridgd/WCT-TF mentioned on GitHubtf report
gs18113/AdaIN-TensorFlow2 mentioned on GitHubtf report
nhatsmrt/torch-styletransfer mentioned on GitHubtorch report
ptran1203/style_transfer mentioned on GitHubtf report
tyui592/adain_pytorch mentioned on GitHubpytorch report
yjunej/AdaIN-tf2 mentioned on GitHubtf report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

41 samples harvested; 28 ran; 3 honoured the contract we drafted; 13 have no recorded run. Read from Syntology's graph 2026-09-25; that is when this build read the record, not when the samples ran.

3ran · honoured contract
6ran · our draft was wrong
10ran · fixture could not drive it
9ran
13unverified

Licence: 29 of the 41 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 18 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

AdaIN CellEight/Pytorch-Adaptive-Instance-Normalization/AdaIN.py community (archive-listed) ran fingerprinted no licence file found · pointer only · 1b5a7b593632abec · report
AdaIN aadhithya/AdaIN-pytorch/model.py community (archive-listed) ran · metamorphic tier: invariant GPL-3.0 (copyleft) · pointer only · b6bda511442174ee · report
AdaIN tyui592/adain_pytorch/network.py community (archive-listed) ran · metamorphic tier: invariant fingerprinted no licence file found · pointer only · 1e75525dca622a5b · report
AdaptiveInstanceNorm ptran1203/style_transfer/model.py community (archive-listed) ran no licence file found · pointer only · 80f6c4540623a906 · report
MixStyle KaiyangZhou/mixstyle-release/reid/models/mixstyle.py community (archive-listed) ran fingerprinted MIT (permissive) · 7b69aa89b55f1907 · report
Net Jwrede/neural_style_transfer/network.py community (archive-listed) ran · metamorphic tier: deterministic no licence file found · pointer only · feb8354419bc47a3 · report
Net gs18113/AdaIN-TensorFlow2/model.py community (archive-listed) ran no licence file found · pointer only · e9c0b7f386130131 · report
Norm dongkwani/upcsc/trainers/adain/adain.py community (archive-listed) ran fingerprinted MIT (permissive) · 70413403e7bd4032 · report
UndoNorm dongkwani/upcsc/trainers/adain/adain.py community (archive-listed) ran fingerprinted MIT (permissive) · 20d93f7c8062709d · report
_check_shapes J3698/AdaIN-reimplementation/adain.py community (archive-listed) ran · fixture could not drive it fingerprinted no licence file found · pointer only · 6b522b9ea394b717 · report
_match_normalized_to_stats J3698/AdaIN-reimplementation/adain.py community (archive-listed) ran · honoured contract fingerprinted no licence file found · pointer only · a1f744f78d31de67 · report
adaIN ZVK/talking_heads/network/blocks.py community (archive-listed) ran · fixture could not drive it GPL-3.0 (copyleft) · pointer only · 5eec2a5c6c95f4ab · report
adaIN Jwrede/neural_style_transfer/network.py community (archive-listed) ran · our draft was wrong fingerprinted no licence file found · pointer only · a44a1f4fc02b2471 · report
ada_in_func abhishtagatya/paintgan/algorithm/ada_in_comp/model.py community (archive-listed) ran · fixture could not drive it fingerprinted no licence file found · pointer only · f47797a80e241835 · report
adain J3698/AdaIN-reimplementation/adain.py community (archive-listed) ran · fixture could not drive it fingerprinted no licence file found · pointer only · 336fa3afbebc8219 · report
adain yjunej/AdaIN-tf2/model.py community (archive-listed) ran · fixture could not drive it fingerprinted no licence file found · pointer only · ced95aa1ec3ddcb2 · report
adain gs18113/AdaIN-TensorFlow2/model.py community (archive-listed) ran · honoured contract no licence file found · pointer only · 96ad7bbb7f8171f7 · report
adaptive_instance_norm cryu854/ArbitraryStyle-tfjs/model.py community (archive-listed) ran · fixture could not drive it fingerprinted no licence file found · pointer only · 277eca3b84592e36 · report
adaptive_instance_normalization bethgelab/stylize-datasets/function.py community (archive-listed) ran · fixture could not drive it fingerprinted licence not identified · pointer only · bd9607443cdfbbe8 · report
adaptive_instance_normalization dongkwani/upcsc/trainers/adain/adain.py community (archive-listed) ran · our draft was wrong fingerprinted MIT (permissive) · 16679a24b9881031 · report
calc_feature_stats J3698/AdaIN-reimplementation/adain.py community (archive-listed) ran · fixture could not drive it fingerprinted no licence file found · pointer only · 33f304ede0c2b810 · report
calc_mean_std bethgelab/stylize-datasets/function.py community (archive-listed) ran · our draft was wrong fingerprinted licence not identified · pointer only · abe85479c8ccd9a7 · report
compute_mean_std aadhithya/AdaIN-pytorch/model.py community (archive-listed) ran · fixture could not drive it GPL-3.0 (copyleft) · pointer only · 5c064a93e7042c2c · report
deprocessing JeongsolKim/BiS400_term_project/StyleTransfer.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 4ef3b0e9747d6981 · report
expand_moments_dim gs18113/AdaIN-TensorFlow2/model.py community (archive-listed) ran · honoured contract no licence file found · pointer only · 457244674e377df9 · report
get_mean_std abhishtagatya/paintgan/algorithm/ada_in_comp/model.py community (archive-listed) ran · fixture could not drive it fingerprinted no licence file found · pointer only · fc194f2d050dbd6d · report
preprocessing JeongsolKim/BiS400_term_project/StyleTransfer.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 994ad288a2dff0d9 · report
std_and_mean Jwrede/neural_style_transfer/network.py community (archive-listed) ran · our draft was wrong fingerprinted no licence file found · pointer only · 2bb3accb9ec4b9df · report
AdaIN dongkwani/upcsc/trainers/adain/adain.py community (archive-listed) unverified MIT (permissive) · 0dd85d8525c0fba8 · report
AdaptiveInstanceNorm abhishtagatya/paintgan/algorithm/ada_in_comp/model.py community (archive-listed) unverified no licence file found · pointer only · dff326cf89112719 · report
AdaptiveInstanceNormalization srihari-humbarwadi/adain-tensorflow2.x/adain/model/layers/adaptive_instance_normalization.py community (archive-listed) unverified MIT (permissive) · 6c204664e722b241 · report
adain eridgd/WCT-TF/ops.py community (archive-listed) unverified MIT (permissive) · 6acb2016293c036e · report
assert_shape J3698/AdaIN-reimplementation/adain.py community (archive-listed) unverified no licence file found · pointer only · 9debb36434e3f2cf · report
decoder JeongsolKim/BiS400_term_project/StyleTransfer.py community (archive-listed) unverified no licence file found · pointer only · 246cb3106fe953a1 · report
defineHeatmapNetwork asindel/artfacepoints/network.py community (archive-listed) unverified MIT (permissive) · ec43c13d4a962175 · report
defineLRscheduler asindel/artfacepoints/network.py community (archive-listed) unverified MIT (permissive) · b9af50ae977def20 · report
encoder JeongsolKim/BiS400_term_project/StyleTransfer.py community (archive-listed) unverified no licence file found · pointer only · 8c0e5a509dab7362 · report
getRelPaths asindel/artfacepoints/data_utils.py community (archive-listed) unverified MIT (permissive) · c868992c0f0ff321 · report
is_image_file asindel/artfacepoints/data_utils.py community (archive-listed) unverified MIT (permissive) · eafb5322ecc71e47 · report
styletransfer JeongsolKim/BiS400_term_project/StyleTransfer.py community (archive-listed) unverified no licence file found · pointer only · 8091756b8c40713c · report
tensor2imRGB asindel/artfacepoints/data_utils.py community (archive-listed) unverified MIT (permissive) · f3c73b49545c08c8 · report

Tasks

Style Transfer

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Methods

Introduced by this paper: Style Transfer Module

AdamAdaptive Instance NormalizationConvolutionDense ConnectionsDropoutMax PoolingReLUSPEEDSoftmaxStyle Transfer Module

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections