{"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/diffusion-self-guidance-for-controllable-1","title":"Diffusion Self-Guidance for Controllable Image Generation","arxiv_id":"2306.00986","date":"2023-06-01","proceeding":"NeurIPS 2023 11","authors":["Dave Epstein","Allan Jabri","Ben Poole","Alexei A. Efros","Aleksander Holynski"],"abstract":"Large-scale generative models are capable of producing high-quality images from detailed text descriptions. However, many aspects of an image are difficult or impossible to convey through text. We introduce self-guidance, a method that provides greater control over generated images by guiding the internal representations of diffusion models. We demonstrate that properties such as the shape, location, and appearance of objects can be extracted from these representations and used to steer sampling. Self-guidance works similarly to classifier guidance, but uses signals present in the pretrained model itself, requiring no additional models or training. We show how a simple set of properties can be composed to perform challenging image manipulations, such as modifying the position or size of objects, merging the appearance of objects in one image with the layout of another, composing objects from many images into one, and more. We also show that self-guidance can be used to edit real images. For results and an interactive demo, see our project page at https://dave.ml/selfguidance/","url_abs":"https://arxiv.org/abs/2306.00986v3","url_pdf":"https://arxiv.org/pdf/2306.00986v3.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":"diffusion-self-guidance-for-controllable-1","repo_url":"https://github.com/Sainzerjj/Free-Guidance-Diffusion","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-generation","task_name":"Image Generation"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2306.00986","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.00986"}},"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/Sainzerjj/Free-Guidance-Diffusion","reach":null}],"summary":{"unverified":3},"by_repo_kind":{"listed":{"samples":3,"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":"f5883886f2babf56","entry":"get_shape","repo":"Sainzerjj/Free-Guidance-Diffusion","repo_kind":"listed","path":"utils/guidance_functions.py","file_url":"https://github.com/Sainzerjj/Free-Guidance-Diffusion/blob/HEAD/utils/guidance_functions.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":"f5883886f2babf56"}},{"code_sha256_prefix":"afd3e9be256ce75a","entry":"get_size","repo":"Sainzerjj/Free-Guidance-Diffusion","repo_kind":"listed","path":"utils/guidance_functions.py","file_url":"https://github.com/Sainzerjj/Free-Guidance-Diffusion/blob/HEAD/utils/guidance_functions.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":"afd3e9be256ce75a"}},{"code_sha256_prefix":"7a16faaad5124a04","entry":"threshold_attention","repo":"Sainzerjj/Free-Guidance-Diffusion","repo_kind":"listed","path":"utils/guidance_functions.py","file_url":"https://github.com/Sainzerjj/Free-Guidance-Diffusion/blob/HEAD/utils/guidance_functions.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":"7a16faaad5124a04"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}