{"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/make-it-count-text-to-image-generation-with","title":"Make It Count: Text-to-Image Generation with an Accurate Number of Objects","arxiv_id":"2406.10210","date":"2024-06-14","proceeding":"CVPR 2025 1","authors":["Lital Binyamin","Yoad Tewel","Hilit Segev","Eran Hirsch","Royi Rassin","Gal Chechik"],"abstract":"Despite the unprecedented success of text-to-image diffusion models, controlling the number of depicted objects using text is surprisingly hard. This is important for various applications from technical documents, to children's books to illustrating cooking recipes. Generating object-correct counts is fundamentally challenging because the generative model needs to keep a sense of separate identity for every instance of the object, even if several objects look identical or overlap, and then carry out a global computation implicitly during generation. It is still unknown if such representations exist. To address count-correct generation, we first identify features within the diffusion model that can carry the object identity information. We then use them to separate and count instances of objects during the denoising process and detect over-generation and under-generation. We fix the latter by training a model that predicts both the shape and location of a missing object, based on the layout of existing ones, and show how it can be used to guide denoising with correct object count. Our approach, CountGen, does not depend on external source to determine object layout, but rather uses the prior from the diffusion model itself, creating prompt-dependent and seed-dependent layouts. Evaluated on two benchmark datasets, we find that CountGen strongly outperforms the count-accuracy of existing baselines.","url_abs":"https://arxiv.org/abs/2406.10210v1","url_pdf":"https://arxiv.org/pdf/2406.10210v1.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":"make-it-count-text-to-image-generation-with","repo_url":"https://github.com/litalby1/make-it-count","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"image-generation","task_name":"Image Generation"},{"task_slug":"object","task_name":"Object"},{"task_slug":"text-to-image-generation-1","task_name":"Text to Image Generation"},{"task_slug":"text-to-image-generation","task_name":"Text-to-Image Generation"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2406.10210","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.10210"}},"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/litalby1/make-it-count","reach":null}],"summary":{"ran_draft_wrong":3,"ran_fixture":1},"by_repo_kind":{"listed":{"samples":4,"ran":4,"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":4,"samples":[{"code_sha256_prefix":"be2845cb012d2dc3","entry":"analyze_image_name","repo":"litalby1/make-it-count","repo_kind":"listed","path":"evaluation_script.py","file_url":"https://github.com/litalby1/make-it-count/blob/HEAD/evaluation_script.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"be2845cb012d2dc3"}},{"code_sha256_prefix":"c0e76f02b56f9552","entry":"extract_image_paths","repo":"litalby1/make-it-count","repo_kind":"listed","path":"evaluation_script.py","file_url":"https://github.com/litalby1/make-it-count/blob/HEAD/evaluation_script.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c0e76f02b56f9552"}},{"code_sha256_prefix":"7d45026b475c7c59","entry":"read_yaml","repo":"litalby1/make-it-count","repo_kind":"listed","path":"pipeline/run_countgen.py","file_url":"https://github.com/litalby1/make-it-count/blob/HEAD/pipeline/run_countgen.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7d45026b475c7c59"}},{"code_sha256_prefix":"836510e9f9ae207c","entry":"run_counting_pipeline_corrected_masks","repo":"litalby1/make-it-count","repo_kind":"listed","path":"pipeline/run_countgen.py","file_url":"https://github.com/litalby1/make-it-count/blob/HEAD/pipeline/run_countgen.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"836510e9f9ae207c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}