{"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/curriculum-direct-preference-optimization-for","title":"Curriculum Direct Preference Optimization for Diffusion and Consistency Models","arxiv_id":"2405.13637","date":"2024-05-22","proceeding":"CVPR 2025 1","authors":["Florinel-Alin Croitoru","Vlad Hondru","Radu Tudor Ionescu","Nicu Sebe","Mubarak Shah"],"abstract":"Direct Preference Optimization (DPO) has been proposed as an effective and efficient alternative to reinforcement learning from human feedback (RLHF). In this paper, we propose a novel and enhanced version of DPO based on curriculum learning for text-to-image generation. Our method is divided into two training stages. First, a ranking of the examples generated for each prompt is obtained by employing a reward model. Then, increasingly difficult pairs of examples are sampled and provided to a text-to-image generative (diffusion or consistency) model. Generated samples that are far apart in the ranking are considered to form easy pairs, while those that are close in the ranking form hard pairs. In other words, we use the rank difference between samples as a measure of difficulty. The sampled pairs are split into batches according to their difficulty levels, which are gradually used to train the generative model. Our approach, Curriculum DPO, is compared against state-of-the-art fine-tuning approaches on nine benchmarks, outperforming the competing methods in terms of text alignment, aesthetics and human preference. Our code is available at https://github.com/CroitoruAlin/Curriculum-DPO.","url_abs":"https://arxiv.org/abs/2405.13637v6","url_pdf":"https://arxiv.org/pdf/2405.13637v6.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":"curriculum-direct-preference-optimization-for","repo_url":"https://github.com/croitorualin/curriculum-dpo","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"image-generation","task_name":"Image Generation"},{"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":"dpo","method_name":"DPO"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/text-to-image-generation-on-drawbench","task":"Text-to-Image Generation","dataset":"DrawBench","model":"LCM (Curriculum DPO)","rank_in_archive_order":1,"of":8,"metrics":{"Aesthetics (Laion Aesthtetics Predictor)":"6.1829","Human Preference Alignement (HPSv2)":"0.2851","Text Alignement (SentenceBERT)":"0.5812"},"uses_additional_data":false},{"leaderboard":"/sota/text-to-image-generation-on-drawbench","task":"Text-to-Image Generation","dataset":"DrawBench","model":"Stable Diffusion 1.5 (Curriculum DPO)","rank_in_archive_order":5,"of":8,"metrics":{"Aesthetics (Laion Aesthtetics Predictor)":"5.7060","Human Preference Alignement (HPSv2)":"0.2681","Text Alignement (SentenceBERT)":"0.6234"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2405.13637","atlas_url":"https://app.syntology.ai/?focus=2405.13637","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.13637"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/croitorualin/curriculum-dpo","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":2,"ran_fixture":1,"unverified":5},"by_repo_kind":{"official":{"samples":8,"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":8,"samples":[{"code_sha256_prefix":"cde33670163c2e85","entry":"get_config","repo":"croitorualin/curriculum-dpo","repo_kind":"official","path":"config/args_sd.py","file_url":"https://github.com/croitorualin/curriculum-dpo/blob/HEAD/config/args_sd.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"cde33670163c2e85"}},{"code_sha256_prefix":"1be6fcb325dde58c","entry":"get_module_kohya_state_dict","repo":"croitorualin/curriculum-dpo","repo_kind":"official","path":"data_generators/generate_data_lcm.py","file_url":"https://github.com/croitorualin/curriculum-dpo/blob/HEAD/data_generators/generate_data_lcm.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"1be6fcb325dde58c"}},{"code_sha256_prefix":"f1b675952d115b7f","entry":"guidance_scale_embedding","repo":"croitorualin/curriculum-dpo","repo_kind":"official","path":"train_lcm.py","file_url":"https://github.com/croitorualin/curriculum-dpo/blob/HEAD/train_lcm.py","link_basis":"plan_row","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":"f1b675952d115b7f"}},{"code_sha256_prefix":"968a96d62e5fb816","entry":"collate_fn","repo":"croitorualin/curriculum-dpo","repo_kind":"official","path":"reward_models/compute_human_score.py","file_url":"https://github.com/croitorualin/curriculum-dpo/blob/HEAD/reward_models/compute_human_score.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"968a96d62e5fb816"}},{"code_sha256_prefix":"96b875ba49ec4098","entry":"collate_fn_pairs","repo":"croitorualin/curriculum-dpo","repo_kind":"official","path":"reward_models/compute_human_score.py","file_url":"https://github.com/croitorualin/curriculum-dpo/blob/HEAD/reward_models/compute_human_score.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"96b875ba49ec4098"}},{"code_sha256_prefix":"f1633432b4fbd0d6","entry":"get_config","repo":"croitorualin/curriculum-dpo","repo_kind":"official","path":"config/args_lcm.py","file_url":"https://github.com/croitorualin/curriculum-dpo/blob/HEAD/config/args_lcm.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"f1633432b4fbd0d6"}},{"code_sha256_prefix":"4c7c3edd706a5541","entry":"get_module_kohya_state_dict","repo":"croitorualin/curriculum-dpo","repo_kind":"official","path":"train_lcm.py","file_url":"https://github.com/croitorualin/curriculum-dpo/blob/HEAD/train_lcm.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4c7c3edd706a5541"}},{"code_sha256_prefix":"3a3852d78600db34","entry":"import_model_class_from_model_name_or_path","repo":"croitorualin/curriculum-dpo","repo_kind":"official","path":"train_stablediffusion.py","file_url":"https://github.com/croitorualin/curriculum-dpo/blob/HEAD/train_stablediffusion.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"3a3852d78600db34"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}