{"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-2608-02694","title":"Crayotter: Learning Long-Horizon Video Editing Agents via Group-Relative Preference Backpropagation","arxiv_id":"2608.02694","date":"2026-08-03","proceeding":null,"authors":["Lecheng Yan","Jianze Lin","Yichong Zhang","Ben Pan","Wenxi Li","Chenyang Lyu","Liting Zhou","Cathal Gurrin"],"abstract":"Long-horizon video editing agents receive final-product feedback only after many interdependent decisions. Yet editing quality is subjective, admits multiple valid solutions, and is not meaningfully calibrated across heterogeneous requests, making a global scalar objective both ambiguous and temporally uninformative. Our key observation is that fixing the request, materials, and production constraints converts this subjective objective into an ordinal comparison among directly comparable alternatives. We introduce Group-Relative Preference Backpropagation (GRPB), which transforms same-task rankings into zero-sum advantages and redistributes them as bounded credit over semantic editing segments. A lagged allocator and guarded transmission prevent current judgments or unreliable estimates from directly shaping the same rollout group. We manually construct a project-disjoint, horizon-stratified suite of realistic editing tasks for training and controlled evaluation. Across matched baselines, credit interventions, external benchmarking, and blinded human evaluation, GRPB improves both editing behavior and rendered products. The resulting 9B Crayotter model surpasses several proprietary systems on AgenticVBench, supporting task-local preference reduction as a practical approach to learning from subjective, delayed outcomes. Code and all supporting materials are publicly available at https://github.com/idwts/Crayotter.","url_abs":"https://arxiv.org/abs/2608.02694","url_pdf":"https://arxiv.org/pdf/2608.02694","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":{"syntology_url":"https://syntology.ai/paper/2608.02694","atlas_url":null,"mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2608.02694"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/idwts/Crayotter","reach":null}],"summary":{"ran":3,"ran_draft_wrong":8,"ran_violates":1,"ran_honours":5,"ran_fixture":1,"unverified":9},"by_repo_kind":{"found_in_text":{"samples":27,"ran":18,"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":27,"samples":[{"code_sha256_prefix":"a4dcb85fd45127af","entry":"OnlinePairwiseSegmentAllocator","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"a4dcb85fd45127af"}},{"code_sha256_prefix":"8ad00e12501b9987","entry":"_as_dict","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"8ad00e12501b9987"}},{"code_sha256_prefix":"b9b4b9c57246fdf2","entry":"_as_list","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"b9b4b9c57246fdf2"}},{"code_sha256_prefix":"5008331a13be8e52","entry":"_bounded_score_allocation","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"5008331a13be8e52"}},{"code_sha256_prefix":"2cb66fdef35b80c5","entry":"_build_training_pairs","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"2cb66fdef35b80c5"}},{"code_sha256_prefix":"c9dd31cad9a4a88c","entry":"_env_bool","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c9dd31cad9a4a88c"}},{"code_sha256_prefix":"2964df1defb79bf9","entry":"_env_float","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"2964df1defb79bf9"}},{"code_sha256_prefix":"fc086199cfe615d5","entry":"_env_int","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"fc086199cfe615d5"}},{"code_sha256_prefix":"d2ee2647e1faf2fc","entry":"_finite_float","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d2ee2647e1faf2fc"}},{"code_sha256_prefix":"9e41fe9e6babf5fe","entry":"_judge_score","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"9e41fe9e6babf5fe"}},{"code_sha256_prefix":"269774bb2e8abc2f","entry":"_mean_feature_maps","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"269774bb2e8abc2f"}},{"code_sha256_prefix":"294540df100bb4c8","entry":"_preference_variant","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"294540df100bb4c8"}},{"code_sha256_prefix":"b1a4832294d36972","entry":"_quantize_conserved_allocations","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"b1a4832294d36972"}},{"code_sha256_prefix":"405b8be3883c014d","entry":"_relative_rank_advantages","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"405b8be3883c014d"}},{"code_sha256_prefix":"d2c0413067caa0ce","entry":"_request_text","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d2c0413067caa0ce"}},{"code_sha256_prefix":"6abc17091e2a2540","entry":"_state_path","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"6abc17091e2a2540"}},{"code_sha256_prefix":"4a6b2cecd028ecad","entry":"_uncapped_score_allocation","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"4a6b2cecd028ecad"}},{"code_sha256_prefix":"cffe0640f6a1089a","entry":"_uniform_allocation","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"cffe0640f6a1089a"}},{"code_sha256_prefix":"869b027bbfbc7df4","entry":"_append_metrics","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"869b027bbfbc7df4"}},{"code_sha256_prefix":"6c5f592fc411a298","entry":"_apply_group_rank_advantage","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"6c5f592fc411a298"}},{"code_sha256_prefix":"aa2df9a4006be44b","entry":"_eligible_groups","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"aa2df9a4006be44b"}},{"code_sha256_prefix":"98d9325414243f55","entry":"_preference_segment_records","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"98d9325414243f55"}},{"code_sha256_prefix":"597d0a400721096e","entry":"_preference_training_feature_maps","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"597d0a400721096e"}},{"code_sha256_prefix":"2c0de219ed6d9350","entry":"_request_match","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"2c0de219ed6d9350"}},{"code_sha256_prefix":"8876f2da12b2b31a","entry":"_segment_features","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"8876f2da12b2b31a"}},{"code_sha256_prefix":"5feddaaf2924943b","entry":"_update_allocator_from_pairs","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"5feddaaf2924943b"}},{"code_sha256_prefix":"f858c5b08c6f3dd4","entry":"annotate_group_relative_preference_credit","repo":"idwts/Crayotter","repo_kind":"found_in_text","path":"phase3_rl/preference_credit.py","file_url":"https://github.com/idwts/Crayotter/blob/HEAD/phase3_rl/preference_credit.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":"f858c5b08c6f3dd4"}}]},"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_2026.jsonl"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":null,"prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 6,885 of the 9,623 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9623,"papers_checked":6885},"entries":[],"not_placed":{"boards":0,"rejected_by_independent_check":0,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}