{"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/arxiv-2510-24012","title":"Training-Free Safe Text Embedding Guidance for Text-to-Image Diffusion Models","arxiv_id":"2510.24012","date":"2025-10-28","proceeding":"NeurIPS","authors":["Byeonghu Na","Mina Kang","Jiseok Kwak","Minsang Park","Jiwoo Shin","SeJoon Jun","Gayoung Lee","Jin-Hwa Kim","Il-Chul Moon"],"abstract":"Text-to-image models have recently made significant advances in generating realistic and semantically coherent images, driven by advanced diffusion models and large-scale web-crawled datasets. However, these datasets often contain inappropriate or biased content, raising concerns about the generation of harmful outputs when provided with malicious text prompts. We propose Safe Text embedding Guidance (STG), a training-free approach to improve the safety of diffusion models by guiding the text embeddings during sampling. STG adjusts the text embeddings based on a safety function evaluated on the expected final denoised image, allowing the model to generate safer outputs without additional training. Theoretically, we show that STG aligns the underlying model distribution with safety constraints, thereby achieving safer outputs while minimally affecting generation quality. Experiments on various safety scenarios, including nudity, violence, and artist-style removal, show that STG consistently outperforms both training-based and training-free baselines in removing unsafe content while preserving the core semantic intent of input prompts. Our code is available at https://github.com/aailab-kaist/STG.","url_abs":"https://arxiv.org/abs/2510.24012","url_pdf":"https://arxiv.org/pdf/2510.24012","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2510.24012","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2510.24012"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/aailab-kaist/STG","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_fixture":1,"ran_draft_wrong":2,"unverified":4},"by_repo_kind":{"found_in_text":{"samples":7,"ran":3,"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":"4cee7c1861294d59","entry":"calculate_frechet_distance","repo":"aailab-kaist/STG","repo_kind":"found_in_text","path":"evaluation/fid.py","file_url":"https://github.com/aailab-kaist/STG/blob/HEAD/evaluation/fid.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4cee7c1861294d59"}},{"code_sha256_prefix":"9855e54881af9165","entry":"rescale_noise_cfg","repo":"aailab-kaist/STG","repo_kind":"found_in_text","path":"pipelines/pipeline_stable_diffusion_stg.py","file_url":"https://github.com/aailab-kaist/STG/blob/HEAD/pipelines/pipeline_stable_diffusion_stg.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9855e54881af9165"}},{"code_sha256_prefix":"0b56680ee1708fee","entry":"retrieve_timesteps","repo":"aailab-kaist/STG","repo_kind":"found_in_text","path":"pipelines/pipeline_stable_diffusion_stg.py","file_url":"https://github.com/aailab-kaist/STG/blob/HEAD/pipelines/pipeline_stable_diffusion_stg.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0b56680ee1708fee"}},{"code_sha256_prefix":"1219a4fa399a055f","entry":"calculate_activation_statistics","repo":"aailab-kaist/STG","repo_kind":"found_in_text","path":"evaluation/fid.py","file_url":"https://github.com/aailab-kaist/STG/blob/HEAD/evaluation/fid.py","link_basis":"first_harvest_node","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":"1219a4fa399a055f"}},{"code_sha256_prefix":"03b3f3f10ba15af8","entry":"contains_nudity","repo":"aailab-kaist/STG","repo_kind":"found_in_text","path":"evaluation/nudity_detector.py","file_url":"https://github.com/aailab-kaist/STG/blob/HEAD/evaluation/nudity_detector.py","link_basis":"first_harvest_node","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":"03b3f3f10ba15af8"}},{"code_sha256_prefix":"dad85083840f8ed0","entry":"get_activations","repo":"aailab-kaist/STG","repo_kind":"found_in_text","path":"evaluation/fid.py","file_url":"https://github.com/aailab-kaist/STG/blob/HEAD/evaluation/fid.py","link_basis":"first_harvest_node","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":"dad85083840f8ed0"}},{"code_sha256_prefix":"a61a872ce7ab9d47","entry":"normalized","repo":"aailab-kaist/STG","repo_kind":"found_in_text","path":"evaluation/eval_clip_score.py","file_url":"https://github.com/aailab-kaist/STG/blob/HEAD/evaluation/eval_clip_score.py","link_basis":"first_harvest_node","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":"a61a872ce7ab9d47"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_api"},"syntology_extracted_results":null}