{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/ganwriting-content-conditioned-generation-of","title":"GANwriting: Content-Conditioned Generation of Styled Handwritten Word Images","arxiv_id":"2003.02567","date":"2020-03-05","proceeding":"ECCV 2020 8","authors":["Lei Kang","Pau Riba","Yaxing Wang","Marçal Rusiñol","Alicia Fornés","Mauricio Villegas"],"abstract":"Although current image generation methods have reached impressive quality levels, they are still unable to produce plausible yet diverse images of handwritten words. On the contrary, when writing by hand, a great variability is observed across different writers, and even when analyzing words scribbled by the same individual, involuntary variations are conspicuous. In this work, we take a step closer to producing realistic and varied artificially rendered handwritten words. We propose a novel method that is able to produce credible handwritten word images by conditioning the generative process with both calligraphic style features and textual content. Our generator is guided by three complementary learning objectives: to produce realistic images, to imitate a certain handwriting style and to convey a specific textual content. Our model is unconstrained to any predefined vocabulary, being able to render whatever input word. Given a sample writer, it is also able to mimic its calligraphic features in a few-shot setup. We significantly advance over prior art and demonstrate with qualitative, quantitative and human-based evaluations the realistic aspect of our synthetically produced images.","url_abs":"https://arxiv.org/abs/2003.02567v2","url_pdf":"https://arxiv.org/pdf/2003.02567v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"ganwriting-content-conditioned-generation-of","repo_url":"https://github.com/omni-us/research-GANwriting","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"ganwriting-content-conditioned-generation-of","repo_url":"https://github.com/hendraet/research-GANwriting","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"ganwriting-content-conditioned-generation-of","repo_url":"https://github.com/liviniuk/GANwriting","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"handwritten-word-generation","task_name":"Handwritten Word Generation"},{"task_slug":"image-generation","task_name":"Image Generation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2003.02567","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.02567"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/omni-us/research-GANwriting","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/hendraet/research-GANwriting","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/liviniuk/GANwriting","reach":{"status":"ok"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"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"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"e2529e07f0fa1a3f","entry":"calculate_activation_statistics","repo":"omni-us/research-GANwriting","repo_kind":"official","path":"fid_folder/fid_score_crop64x64.py","file_url":"https://github.com/omni-us/research-GANwriting/blob/HEAD/fid_folder/fid_score_crop64x64.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e2529e07f0fa1a3f"}},{"code_sha256_prefix":"0def50a351111624","entry":"calculate_frechet_distance","repo":"omni-us/research-GANwriting","repo_kind":"official","path":"fid_folder/fid_score_crop64x64.py","file_url":"https://github.com/omni-us/research-GANwriting/blob/HEAD/fid_folder/fid_score_crop64x64.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0def50a351111624"}},{"code_sha256_prefix":"a704852cbbe749cb","entry":"edits1","repo":"omni-us/research-GANwriting","repo_kind":"official","path":"load_data.py","file_url":"https://github.com/omni-us/research-GANwriting/blob/HEAD/load_data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a704852cbbe749cb"}},{"code_sha256_prefix":"ed365cf7d1f35687","entry":"fine","repo":"omni-us/research-GANwriting","repo_kind":"official","path":"loss_tro.py","file_url":"https://github.com/omni-us/research-GANwriting/blob/HEAD/loss_tro.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ed365cf7d1f35687"}},{"code_sha256_prefix":"376156fa11538683","entry":"get_activations","repo":"omni-us/research-GANwriting","repo_kind":"official","path":"fid_folder/fid_score_crop64x64.py","file_url":"https://github.com/omni-us/research-GANwriting/blob/HEAD/fid_folder/fid_score_crop64x64.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"376156fa11538683"}},{"code_sha256_prefix":"e950950a0e9b5f6a","entry":"get_num_adain_params","repo":"omni-us/research-GANwriting","repo_kind":"official","path":"modules_tro.py","file_url":"https://github.com/omni-us/research-GANwriting/blob/HEAD/modules_tro.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e950950a0e9b5f6a"}},{"code_sha256_prefix":"b12b8125be6b03f2","entry":"normalize","repo":"omni-us/research-GANwriting","repo_kind":"official","path":"modules_tro.py","file_url":"https://github.com/omni-us/research-GANwriting/blob/HEAD/modules_tro.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b12b8125be6b03f2"}},{"code_sha256_prefix":"22c6badd00548c71","entry":"recon_criterion","repo":"omni-us/research-GANwriting","repo_kind":"official","path":"loss_tro.py","file_url":"https://github.com/omni-us/research-GANwriting/blob/HEAD/loss_tro.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"22c6badd00548c71"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}