HunyuanVideo社区贡献者指南:代码提交与PR流程

HunyuanVideo社区贡献者指南:代码提交与PR流程

【免费下载链接】HunyuanVideo-PromptRewrite HunyuanVideo: A Systematic Framework For Large Video Generation Model Training 【免费下载链接】HunyuanVideo-PromptRewrite 项目地址: https://ai.gitcode.com/tencent_hunyuan/HunyuanVideo-PromptRewrite

HunyuanVideo作为开源视频生成领域的领先项目,其130亿参数规模的模型架构(README.md)为开发者提供了广阔的创新空间。本指南将系统讲解从环境配置到代码合入的全流程,帮助社区贡献者高效参与项目迭代。无论你是修复modeling_hunyuan.py中的潜在bug,还是优化configuration_hunyuan.py的参数逻辑,遵循标准化流程都是贡献成功的关键。

贡献准备与环境配置

在提交代码前,需完成基础环境搭建与贡献协议签署。HunyuanVideo采用Tencent Hunyuan Community License(LICENSE),所有贡献者需确保提交内容符合开源协议要求。开发环境需满足Python 3.8+及PyTorch 1.10+,建议使用conda创建独立虚拟环境:

conda create -n hunyuan-video python=3.9
conda activate hunyuan-video
pip install -r requirements.txt  # 需从主项目仓库获取依赖文件

代码仓库采用Git版本控制,贡献者需通过以下命令克隆仓库:

git clone https://gitcode.com/tencent_hunyuan/HunyuanVideo-PromptRewrite.git
cd HunyuanVideo-PromptRewrite

分支管理策略

HunyuanVideo遵循Git Flow分支模型,主要分支包括:

  • main:稳定发布分支,仅通过PR从release分支合并
  • develop:开发主分支,包含最新开发特性
  • feature/*:功能开发分支,从develop创建,完成后合并回develop
  • hotfix/*:紧急修复分支,从main创建,修复后同步至main和develop

贡献者应基于最新develop分支创建功能分支:

git checkout develop
git pull origin develop
git checkout -b feature/prompt-rewrite-optimization

代码开发规范

编码标准

项目采用PEP 8规范(Python代码),关键模块如modeling_hunyuan.py的Transformer实现需遵循以下原则:

  1. 类名使用CamelCase,函数名使用snake_case
  2. 每个函数/类需包含Google风格文档字符串
  3. 代码行长度控制在120字符以内
  4. 使用类型注解明确函数参数与返回值类型

示例代码:

def rewrite_prompt(
    original_prompt: str, 
    mode: str = "normal"  # "normal" or "master"
) -> str:
    """优化用户输入提示词以适配模型偏好
    
    Args:
        original_prompt: 用户原始输入文本
        mode: 重写模式,normal模式注重语义准确性,master模式增强视觉描述
        
    Returns:
        优化后的提示词字符串
    """
    if mode not in ["normal", "master"]:
        raise ValueError(f"不支持的模式: {mode}")
    # 实现逻辑...

文件组织结构

新增代码应遵循现有项目结构:

HunyuanVideo-PromptRewrite/
├── configuration_hunyuan.py  # 模型配置类
├── modeling_hunyuan.py       # 核心模型实现
├── tokenization_hy.py        # 分词器实现
├── test4consistent.py        # 一致性测试脚本
└── hy.tiktoken               # 分词器词表

测试与验证

所有代码提交前必须通过单元测试与一致性测试。项目提供test4consistent.py脚本用于验证关键功能一致性:

python test4consistent.py --mode prompt_rewrite

测试覆盖率需达到80%以上,新增功能需补充相应测试用例。对于prompt rewrite模块的修改,建议验证以下场景:

  1. 短提示词扩展(Normal模式)
  2. 专业摄影术语处理(Master模式)
  3. 多语言提示词兼容性

提交与PR流程

代码提交规范

提交信息需遵循Conventional Commits规范,格式如下:

<type>(<scope>): <description>

[可选正文]

[可选脚注]

类型(type)包括:

  • feat: 新功能
  • fix: 错误修复
  • docs: 文档更新
  • style: 代码格式调整
  • refactor: 代码重构
  • test: 测试相关
  • chore: 构建/依赖管理

示例:

feat(prompt): 添加多语言提示词重写支持

支持中英双语提示词优化,在Normal模式下保持语义准确性,
Master模式下增强光影描述。

Closes #123

PR创建流程

完成代码开发后,通过以下步骤提交PR:

  1. 推送分支至远程仓库
git push origin feature/prompt-rewrite-optimization
  1. 在GitCode平台创建Pull Request,目标分支选择develop
  2. 填写PR描述,包含:
    • 功能/修复说明
    • 实现思路
    • 测试结果
    • 相关Issue链接

PR评审标准

PR需通过至少2名核心开发者评审,评审重点包括:

  • 代码质量:是否符合项目编码规范
  • 功能完整性:是否实现预期功能
  • 测试覆盖:是否包含充分测试用例
  • 性能影响:对模型推理/训练性能的影响
  • 兼容性:是否保持向下兼容

贡献者权益与社区互动

成功合入PR的贡献者将被添加到项目致谢名单(README.md的Acknowledgements部分)。活跃贡献者可申请成为项目维护者,参与代码评审与 roadmap 规划。社区定期举办线上研讨会,讨论generation_config.json等关键配置的优化方向,欢迎通过项目Issue区提出建议。

常见问题解决

大文件处理

项目包含80个模型权重文件(如pytorch_model-00001-of-00080.bin),提交代码时需注意:

  • 不要将权重文件纳入PR
  • 使用Git LFS管理大型二进制文件

冲突解决

当本地分支与develop产生冲突时:

git checkout feature/your-feature
git fetch origin develop
git rebase origin/develop
# 解决冲突后
git push --force-with-lease origin feature/your-feature

CI/CD失败处理

PR提交后将自动触发CI流程,若检查失败:

  1. 查看CI日志定位错误(如测试失败、代码格式问题)
  2. 在本地修复后使用git commit --amend更新提交
  3. 强制推送更新后的分支

贡献流程总结

mermaid

通过遵循以上流程,社区贡献者可以高效参与HunyuanVideo项目迭代。无论是优化tokenization_hy.py的分词逻辑,还是改进configuration_hunyuan.py的超参数设计,每一份贡献都将推动开源视频生成技术的发展。期待你的PR能够成为项目的重要组成部分!

【免费下载链接】HunyuanVideo-PromptRewrite HunyuanVideo: A Systematic Framework For Large Video Generation Model Training 【免费下载链接】HunyuanVideo-PromptRewrite 项目地址: https://ai.gitcode.com/tencent_hunyuan/HunyuanVideo-PromptRewrite

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值