{"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/doracycle-domain-oriented-adaptation-of","title":"DoraCycle: Domain-Oriented Adaptation of Unified Generative Model in Multimodal Cycles","arxiv_id":"2503.03651","date":"2025-03-05","proceeding":"CVPR 2025 1","authors":["Rui Zhao","Weijia Mao","Mike Zheng Shou"],"abstract":"Adapting generative models to specific domains presents an effective solution for satisfying specialized requirements. However, adapting to some complex domains remains challenging, especially when these domains require substantial paired data to capture the targeted distributions. Since unpaired data from a single modality, such as vision or language, is more readily available, we utilize the bidirectional mappings between vision and language learned by the unified generative model to enable training on unpaired data for domain adaptation. Specifically, we propose DoraCycle, which integrates two multimodal cycles: text-to-image-to-text and image-to-text-to-image. The model is optimized through cross-entropy loss computed at the cycle endpoints, where both endpoints share the same modality. This facilitates self-evolution of the model without reliance on annotated text-image pairs. Experimental results demonstrate that for tasks independent of paired knowledge, such as stylization, DoraCycle can effectively adapt the unified model using only unpaired data. For tasks involving new paired knowledge, such as specific identities, a combination of a small set of paired image-text examples and larger-scale unpaired data is sufficient for effective domain-oriented adaptation. The code will be released at https://github.com/showlab/DoraCycle.","url_abs":"https://arxiv.org/abs/2503.03651v1","url_pdf":"https://arxiv.org/pdf/2503.03651v1.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":"doracycle-domain-oriented-adaptation-of","repo_url":"https://github.com/showlab/doracycle","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":"image-to-text","task_name":"Image to text"}],"methods":[{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2503.03651","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2503.03651"}},"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":"deterministic:regex_extraction","url":"https://github.com/showlab/DoraCycle","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":2,"ran":6,"unverified":5},"by_repo_kind":{"official":{"samples":13,"ran":8,"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":"c3a6b977022957cb","entry":"Normalize","repo":"showlab/DoraCycle","repo_kind":"official","path":"models/common_modules.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/models/common_modules.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":"c3a6b977022957cb"}},{"code_sha256_prefix":"1f6ae43d06c76ba5","entry":"broadcast","repo":"showlab/DoraCycle","repo_kind":"official","path":"models/misc.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/models/misc.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1f6ae43d06c76ba5"}},{"code_sha256_prefix":"a8366f238618edad","entry":"get_constant_schedule","repo":"showlab/DoraCycle","repo_kind":"official","path":"models/lr_schedulers.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/models/lr_schedulers.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a8366f238618edad"}},{"code_sha256_prefix":"11f07821d1b2286b","entry":"get_constant_schedule_with_warmup","repo":"showlab/DoraCycle","repo_kind":"official","path":"models/lr_schedulers.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/models/lr_schedulers.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"11f07821d1b2286b"}},{"code_sha256_prefix":"1975e0c51e6f5753","entry":"get_linear_schedule_with_warmup","repo":"showlab/DoraCycle","repo_kind":"official","path":"models/lr_schedulers.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/models/lr_schedulers.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1975e0c51e6f5753"}},{"code_sha256_prefix":"3137073275f8c21a","entry":"nonlinearity","repo":"showlab/DoraCycle","repo_kind":"official","path":"models/common_modules.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/models/common_modules.py","link_basis":"harvester_set","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":"3137073275f8c21a"}},{"code_sha256_prefix":"0e7f77d6003e2412","entry":"parse_structured","repo":"showlab/DoraCycle","repo_kind":"official","path":"models/misc.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/models/misc.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0e7f77d6003e2412"}},{"code_sha256_prefix":"2d82abbef2c4addb","entry":"unpack_time","repo":"showlab/DoraCycle","repo_kind":"official","path":"models/common_modules.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/models/common_modules.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2d82abbef2c4addb"}},{"code_sha256_prefix":"02554d5db4e2113c","entry":"find_first_consecutive_repetition","repo":"showlab/DoraCycle","repo_kind":"official","path":"training/train_doracycle.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/training/train_doracycle.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":"02554d5db4e2113c"}},{"code_sha256_prefix":"87b4fce7f46f7561","entry":"find_linear_layers","repo":"showlab/DoraCycle","repo_kind":"official","path":"inference_t2i_lora.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/inference_t2i_lora.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":"87b4fce7f46f7561"}},{"code_sha256_prefix":"376bf22d5737fc2a","entry":"get_logger","repo":"showlab/DoraCycle","repo_kind":"official","path":"models/logging.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/models/logging.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":"376bf22d5737fc2a"}},{"code_sha256_prefix":"2210d299c0546b2e","entry":"nonlinearity","repo":"showlab/DoraCycle","repo_kind":"official","path":"models/common_modules_magvitv2.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/models/common_modules_magvitv2.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":"2210d299c0546b2e"}},{"code_sha256_prefix":"e512481f18876aef","entry":"pcgrad","repo":"showlab/DoraCycle","repo_kind":"official","path":"training/train_doracycle.py","file_url":"https://github.com/showlab/DoraCycle/blob/HEAD/training/train_doracycle.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":"e512481f18876aef"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}