{"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/image-generation-from-scene-graphs","title":"Image Generation from Scene Graphs","arxiv_id":"1804.01622","date":"2018-04-04","proceeding":"CVPR 2018 6","authors":["Justin Johnson","Agrim Gupta","Li Fei-Fei"],"abstract":"To truly understand the visual world our models should be able not only to\nrecognize images but also generate them. To this end, there has been exciting\nrecent progress on generating images from natural language descriptions. These\nmethods give stunning results on limited domains such as descriptions of birds\nor flowers, but struggle to faithfully reproduce complex sentences with many\nobjects and relationships. To overcome this limitation we propose a method for\ngenerating images from scene graphs, enabling explicitly reasoning about\nobjects and their relationships. Our model uses graph convolution to process\ninput graphs, computes a scene layout by predicting bounding boxes and\nsegmentation masks for objects, and converts the layout to an image with a\ncascaded refinement network. The network is trained adversarially against a\npair of discriminators to ensure realistic outputs. We validate our approach on\nVisual Genome and COCO-Stuff, where qualitative results, ablations, and user\nstudies demonstrate our method's ability to generate complex images with\nmultiple objects.","url_abs":"http://arxiv.org/abs/1804.01622v1","url_pdf":"http://arxiv.org/pdf/1804.01622v1.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":"image-generation-from-scene-graphs","repo_url":"https://github.com/cjpurackal/sg2im-tf","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"image-generation-from-scene-graphs","repo_url":"https://github.com/google/sg2im","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"image-generation-from-scene-graphs","repo_url":"https://github.com/roeiherz/AG2Video","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"image-generation-from-scene-graphs","repo_url":"https://github.com/roeiherz/CanonicalSg2Im","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"image-generation","task_name":"Image Generation"},{"task_slug":"image-generation-from-scene-graphs","task_name":"Image Generation from Scene Graphs"},{"task_slug":"layout-to-image-generation","task_name":"Layout-to-Image Generation"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/layout-to-image-generation-on-coco-stuff-2","task":"Layout-to-Image Generation","dataset":"COCO-Stuff 64x64","model":"SG2Im","rank_in_archive_order":5,"of":5,"metrics":{"FID":"67.96","Inception Score":"7.3"},"uses_additional_data":false},{"leaderboard":"/sota/layout-to-image-generation-on-visual-genome-2","task":"Layout-to-Image Generation","dataset":"Visual Genome 64x64","model":"SG2Im","rank_in_archive_order":4,"of":4,"metrics":{"FID":"74.61","Inception Score":"6.3"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1804.01622","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1804.01622"}},"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/roeiherz/CanonicalSg2Im","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/google/sg2im","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cjpurackal/sg2im-tf","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/roeiherz/AG2Video","reach":null}],"summary":{"unverified":21},"by_repo_kind":{"listed":{"samples":21,"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":"bbfc6fccb2deb17b","entry":"apply_box_transform","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/box_utils.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/box_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bbfc6fccb2deb17b"}},{"code_sha256_prefix":"ae92b5ed5c527664","entry":"bce_loss","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/losses.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/losses.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ae92b5ed5c527664"}},{"code_sha256_prefix":"f37f84bce6a380cf","entry":"boxes_to_layout","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/layout.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/layout.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f37f84bce6a380cf"}},{"code_sha256_prefix":"be7d98c8795b76d3","entry":"build_cnn","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/layers.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/layers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"be7d98c8795b76d3"}},{"code_sha256_prefix":"e511231aa813e416","entry":"centers_to_extents","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/box_utils.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/box_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e511231aa813e416"}},{"code_sha256_prefix":"c8692f8992a3674d","entry":"crop_bbox","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/bilinear.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/bilinear.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c8692f8992a3674d"}},{"code_sha256_prefix":"8688d7053f5c0967","entry":"crop_bbox_batch","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/bilinear.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/bilinear.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8688d7053f5c0967"}},{"code_sha256_prefix":"7e52be356aeb8407","entry":"crop_bbox_batch_cudnn","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/bilinear.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/bilinear.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7e52be356aeb8407"}},{"code_sha256_prefix":"08c9ee87b8be3253","entry":"draw_scene_graph","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/vis.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/vis.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"08c9ee87b8be3253"}},{"code_sha256_prefix":"5e3086197586c014","entry":"float_tuple","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/utils.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5e3086197586c014"}},{"code_sha256_prefix":"bea7eab39b0f3e75","entry":"gan_g_loss","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/losses.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/losses.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bea7eab39b0f3e75"}},{"code_sha256_prefix":"fa5f35b7c26dbe12","entry":"get_activation","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/layers.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/layers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fa5f35b7c26dbe12"}},{"code_sha256_prefix":"ee94d6adfea70511","entry":"get_gan_losses","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/losses.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/losses.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ee94d6adfea70511"}},{"code_sha256_prefix":"481b0a0e44bbea29","entry":"get_normalization_2d","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/layers.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/layers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"481b0a0e44bbea29"}},{"code_sha256_prefix":"86ef0f4c4c0c2702","entry":"get_total_norm","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/metrics.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/metrics.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"86ef0f4c4c0c2702"}},{"code_sha256_prefix":"c7a0b110ef7c5e03","entry":"int_tuple","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/utils.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c7a0b110ef7c5e03"}},{"code_sha256_prefix":"6d89e132179f2fbd","entry":"intersection","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/metrics.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/metrics.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6d89e132179f2fbd"}},{"code_sha256_prefix":"fc8f66fb9b6df96b","entry":"invert_box_transform","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/box_utils.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/box_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fc8f66fb9b6df96b"}},{"code_sha256_prefix":"08186282213c3ffd","entry":"jaccard","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/metrics.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/metrics.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"08186282213c3ffd"}},{"code_sha256_prefix":"9aaef561ce9bb1be","entry":"masks_to_layout","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/layout.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/layout.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9aaef561ce9bb1be"}},{"code_sha256_prefix":"ec5493a698745a69","entry":"str_tuple","repo":"google/sg2im","repo_kind":"listed","path":"sg2im/utils.py","file_url":"https://github.com/google/sg2im/blob/HEAD/sg2im/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ec5493a698745a69"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}