团队协作规范

本文档介绍ComfyUI团队协作的规范和最佳实践,包括工作流管理、版本控制、代码规范、文档规范等,帮助团队高效协作。

简介

协作规范概述

graph TD
    A[团队协作规范] --> B[工作流管理]
    A --> C[版本控制]
    A --> D[代码规范]
    A --> E[文档规范]
    A --> F[沟通协作]

    B --> B1[工作流命名]
    B --> B2[工作流分类]
    B --> B3[工作流共享]

    C --> C1[分支管理]
    C --> C2[提交规范]
    C --> C3[版本发布]

    D --> D1[命名规范]
    D --> D2[代码风格]
    D --> D3[注释规范]

    E --> E1[文档结构]
    E --> E2[文档格式]
    E --> E3[文档更新]

    F --> F1[沟通渠道]
    F --> F2[会议规范]
    F --> F3[问题处理]

    style A fill:#e1f5ff
    style B fill:#e1ffe1
    style C fill:#e1ffe1
    style D fill:#e1ffe1
    style E fill:#e1ffe1
    style F fill:#e1ffe1

工作流管理

1. 工作流命名

{
  "workflow_naming": {
    "pattern": "类型_功能_版本.json",
    "examples": [
      "t2i_portrait_v1.0.json",
      "i2i_style_transfer_v2.1.json",
      "batch_processing_v1.5.json"
    ],
    "types": {
      "t2i": "Text to Image",
      "i2i": "Image to Image",
      "batch": "Batch Processing",
      "custom": "Custom Workflow"
    }
  }
}
def validate_workflow_name(name):
    """验证工作流名称"""
    import re

    # 检查格式
    pattern = r'^[a-z]+_[a-z_]+_v\d+\.\d+\.json$'
    if not re.match(pattern, name):
        return False

    # 检查类型
    workflow_type = name.split('_')[0]
    valid_types = ['t2i', 'i2i', 'batch', 'custom']

    return workflow_type in valid_types

2. 工作流分类

graph TD
    A[工作流分类] --> B[按功能]
    A --> C[按复杂度]
    A --> D[按用途]

    B --> B1[文生图]
    B --> B2[图生图]
    B --> B3[批量处理]
    B --> B4[高级应用]

    C --> C1[基础]
    C --> C2[进阶]
    C --> C3[高级]

    D --> D1[生产环境]
    D --> D2[测试环境]
    D --> D3[开发环境]

    style A fill:#e1f5ff
    style B fill:#e1ffe1
    style C fill:#e1ffe1
    style D fill:#e1ffe1
workflows/
├── 01-基础/
│   ├── t2i_portrait_v1.0.json
│   └── i2i_enhance_v1.0.json
├── 02-进阶/
│   ├── t2i_lora_v1.0.json
│   └── i2i_controlnet_v1.0.json
├── 03-高级/
│   ├── multi_model_fusion_v1.0.json
│   └── smart_prompt_v1.0.json
└── 04-自定义/
    └── custom_workflow_v1.0.json

3. 工作流共享

{
  "workflow_sharing": {
    "metadata": {
      "name": "工作流名称",
      "version": "1.0.0",
      "author": "作者",
      "description": "工作流描述",
      "tags": ["tag1", "tag2"],
      "requirements": {
        "comfyui": ">=0.15.0",
        "models": ["model1.safetensors"],
        "plugins": ["plugin1"]
      }
    },
    "documentation": {
      "usage": "使用说明",
      "parameters": "参数说明",
      "examples": "使用示例"
    }
  }
}
graph TD
    A[创建工作流] --> B[添加元数据]
    B --> C[编写文档]
    C --> D[测试验证]
    D --> E[提交审核]
    E --> F{审核通过?}
    F -->|否| G[修改完善]
    G --> E
    F -->|是| H[发布共享]

    style A fill:#e1f5ff
    style B fill:#e1ffe1
    style C fill:#e1ffe1
    style D fill:#e1ffe1
    style E fill:#fff4e1
    style F fill:#fff4e1
    style H fill:#e1ffe1

版本控制

4. 分支管理

graph TD
    A[main] --> B[develop]
    B --> C[feature/workflow1]
    B --> D[feature/workflow2]
    C --> E[合并到develop]
    D --> E
    E --> F[release/v1.0]
    F --> G[合并到main]

    style A fill:#e1ffe1
    style B fill:#fff4e1
    style C fill:#ffe1e1
    style D fill:#ffe1e1
    style E fill:#e1ffe1
    style F fill:#fff4e1
    style G fill:#e1ffe1
{
  "branch_naming": {
    "patterns": {
      "feature": "feature/功能描述",
      "bugfix": "bugfix/问题描述",
      "hotfix": "hotfix/紧急修复",
      "release": "release/版本号"
    },
    "examples": [
      "feature/add-lora-workflow",
      "bugfix/fix-image-loading",
      "hotfix/critical-memory-leak",
      "release/v1.0.0"
    ]
  }
}

5. 提交规范

{
  "commit_message": {
    "format": "类型(范围): 简短描述",
    "types": {
      "feat": "新功能",
      "fix": "修复bug",
      "docs": "文档更新",
      "style": "代码格式",
      "refactor": "重构",
      "test": "测试",
      "chore": "构建/工具"
    },
    "examples": [
      "feat(workflow): add new LoRA workflow",
      "fix(model): fix model loading issue",
      "docs(readme): update installation guide"
    ]
  }
}
## 提交前检查
- [ ] 代码通过测试
- [ ] 文档已更新
- [ ] 提交信息符合规范
- [ ] 无敏感信息
- [ ] 代码已格式化

6. 版本发布

{
  "versioning": {
    "format": "MAJOR.MINOR.PATCH",
    "rules": {
      "MAJOR": "不兼容的API变更",
      "MINOR": "向后兼容的功能新增",
      "PATCH": "向后兼容的问题修复"
    },
    "examples": [
      "1.0.0 - 初始版本",
      "1.1.0 - 新增LoRA支持",
      "1.1.1 - 修复内存泄漏",
      "2.0.0 - 重大架构变更"
    ]
  }
}
graph TD
    A[准备发布] --> B[创建发布分支]
    B --> C[更新版本号]
    C --> D[更新CHANGELOG]
    D --> E[运行测试]
    E --> F{测试通过?}
    F -->|否| G[修复问题]
    G --> E
    F -->|是| H[合并到main]
    H --> I[打标签]
    I --> J[发布版本]

    style A fill:#e1f5ff
    style B fill:#e1ffe1
    style C fill:#e1ffe1
    style D fill:#e1ffe1
    style E fill:#fff4e1
    style F fill:#fff4e1
    style H fill:#e1ffe1
    style I fill:#e1ffe1
    style J fill:#e1ffe1

代码规范

7. 命名规范

# 文件名:小写,下划线分隔
workflow_manager.py
image_processor.py

# 类名:大驼峰
class WorkflowManager:
    pass

class ImageProcessor:
    pass

# 函数名:小写,下划线分隔
def load_workflow(path):
    pass

def process_image(image):
    pass

# 变量名:小写,下划线分隔
workflow_name = "portrait"
image_path = "/path/to/image"

# 常量:大写,下划线分隔
MAX_STEPS = 50
DEFAULT_CFG = 7.0
{
  "workflow": {
    "node_id": "1",
    "class_type": "KSampler",
    "inputs": {
      "seed": 123456789,
      "steps": 30,
      "cfg": 7.0
    }
  }
}

8. 代码风格

# 遵循PEP 8规范
import json
from typing import Dict, List, Optional


class WorkflowProcessor:
    """工作流处理器"""

    def __init__(self, config: Dict):
        """初始化处理器

        Args:
            config: 配置字典
        """
        self.config = config
        self.workflows = {}

    def load_workflow(self, path: str) -> Dict:
        """加载工作流

        Args:
            path: 工作流文件路径

        Returns:
            工作流字典
        """
        with open(path, 'r') as f:
            return json.load(f)

    def process_workflow(self, workflow: Dict) -> Optional[Dict]:
        """处理工作流

        Args:
            workflow: 工作流字典

        Returns:
            处理结果,失败返回None
        """
        try:
            # 处理逻辑
            result = self._execute_workflow(workflow)
            return result
        except Exception as e:
            print(f"Error processing workflow: {e}")
            return None

    def _execute_workflow(self, workflow: Dict) -> Dict:
        """执行工作流(内部方法)"""
        # 执行逻辑
        pass
{
  "workflow": {
    "metadata": {
      "name": "Portrait Generator",
      "version": "1.0.0",
      "author": "Team Name"
    },
    "nodes": {
      "1": {
        "class_type": "CheckpointLoaderSimple",
        "inputs": {
          "ckpt_name": "model.safetensors"
        }
      },
      "2": {
        "class_type": "KSampler",
        "inputs": {
          "seed": 123456789,
          "steps": 30,
          "cfg": 7.0,
          "sampler_name": "dpmpp_2m",
          "scheduler": "karras",
          "denoise": 1.0,
          "model": ["1", 0],
          "positive": ["3", 0],
          "negative": ["4", 0],
          "latent_image": ["5", 0]
        }
      }
    }
  }
}

9. 注释规范

class WorkflowManager:
    """工作流管理器

    负责管理工作流的加载、保存和执行。
    支持多种工作流格式和版本。

    Attributes:
        config: 配置字典
        workflows: 工作流缓存
    """

    def __init__(self, config: Dict):
        """初始化工作流管理器

        Args:
            config: 包含工作流目录、缓存大小等配置
        """
        self.config = config
        self.workflows = {}

    def load_workflow(self, path: str) -> Dict:
        """从文件加载工作流

        支持JSON格式的ComfyUI工作流文件。
        自动验证工作流格式和版本兼容性。

        Args:
            path: 工作流文件的绝对路径

        Returns:
            工作流字典,包含所有节点和连接信息

        Raises:
            FileNotFoundError: 文件不存在
            ValueError: 工作流格式无效

        Examples:
            >>> manager = WorkflowManager({})
            >>> workflow = manager.load_workflow('/path/to/workflow.json')
        """
        if not os.path.exists(path):
            raise FileNotFoundError(f"Workflow file not found: {path}")

        with open(path, 'r') as f:
            workflow = json.load(f)

        self._validate_workflow(workflow)
        return workflow
{
  "_comment": "ComfyUI工作流配置",
  "metadata": {
    "_comment": "工作流元数据",
    "name": "Portrait Generator",
    "version": "1.0.0",
    "author": "Team Name"
  },
  "nodes": {
    "1": {
      "_comment": "模型加载节点",
      "class_type": "CheckpointLoaderSimple",
      "inputs": {
        "ckpt_name": "model.safetensors"
      }
    }
  }
}

文档规范

10. 文档结构

# 文档标题

## 概述
简要描述文档内容和目的

## 前置条件
使用本文档需要满足的条件

## 核心内容
详细的技术内容

### 子章节1
章节内容

### 子章节2
章节内容

## 使用示例
具体的使用示例

## 注意事项
使用时的注意事项

## 常见问题
常见问题和解答

## 参考资源
相关资源链接

11. 文档格式

# 一级标题
## 二级标题
### 三级标题

**粗体文本**
*斜体文本*
`代码文本`

```python
代码块
列1 列2 列3
数据1 数据2 数据3

链接文本

引用文本


### 12. 文档更新

#### 文档更新流程
```mermaid
graph TD
    A[文档需求] --> B[编写文档]
    B --> C[内部审核]
    C --> D{审核通过?}
    D -->|否| E[修改完善]
    E --> C
    D -->|是| F[发布文档]
    F --> G[收集反馈]
    G --> H[定期更新]

    style A fill:#e1f5ff
    style B fill:#e1ffe1
    style C fill:#fff4e1
    style D fill:#fff4e1
    style F fill:#e1ffe1
    style G fill:#e1ffe1
    style H fill:#e1ffe1
{
  "document_versioning": {
    "format": "vX.Y.Z",
    "changelog": [
      {
        "version": "1.0.0",
        "date": "2024-01-27",
        "changes": [
          "初始版本发布",
          "包含基础工作流文档"
        ]
      },
      {
        "version": "1.1.0",
        "date": "2024-02-15",
        "changes": [
          "新增高级工作流文档",
          "更新API文档"
        ]
      }
    ]
  }
}

沟通协作

13. 沟通渠道

{
  "communication_channels": {
    "即时通讯": {
      "tool": "Slack/Discord",
      "purpose": "日常沟通、快速讨论",
      "response_time": "工作时间内1小时内"
    },
    "项目管理": {
      "tool": "Jira/Trello",
      "purpose": "任务跟踪、进度管理",
      "update_frequency": "每日更新"
    },
    "代码协作": {
      "tool": "GitHub/GitLab",
      "purpose": "代码审查、版本控制",
      "review_time": "24小时内"
    },
    "文档协作": {
      "tool": "Notion/Confluence",
      "purpose": "文档编写、知识共享",
      "review_time": "48小时内"
    }
  }
}
## 沟通原则
- 及时响应:工作时间内及时回复消息
- 清晰表达:使用清晰简洁的语言
- 尊重他人:保持专业和礼貌
- 记录决策:重要决策要有记录

## 沟通场景
- 日常讨论:使用即时通讯工具
- 技术讨论:使用代码审查平台
- 项目汇报:使用项目管理工具
- 文档共享:使用文档协作平台

14. 会议规范

{
  "meeting_types": {
    "daily_standup": {
      "frequency": "每日",
      "duration": "15分钟",
      "participants": "全体成员",
      "agenda": [
        "昨天完成的工作",
        "今天的计划",
        "遇到的问题"
      ]
    },
    "sprint_planning": {
      "frequency": "每两周",
      "duration": "1-2小时",
      "participants": "全体成员",
      "agenda": [
        "回顾上期工作",
        "规划本期任务",
        "分配任务"
      ]
    },
    "technical_review": {
      "frequency": "按需",
      "duration": "1小时",
      "participants": "技术团队",
      "agenda": [
        "技术方案讨论",
        "代码审查",
        "问题解决"
      ]
    }
  }
}
## 会议前准备
- [ ] 确定会议目标和议程
- [ ] 准备相关材料
- [ ] 邀请相关人员
- [ ] 发送会议邀请

## 会议中规范
- [ ] 准时参加会议
- [ ] 遵守会议议程
- [ ] 积极参与讨论
- [ ] 记录会议要点

## 会议后跟进
- [ ] 整理会议纪要
- [ ] 分配行动项
- [ ] 跟踪执行进度
- [ ] 及时反馈结果

15. 问题处理

graph TD
    A[发现问题] --> B[记录问题]
    B --> C[分析问题]
    C --> D{问题类型?}

    D -->|技术问题| E[技术团队处理]
    D -->|流程问题| F[管理团队处理]
    D -->|协作问题| G[团队讨论解决]

    E --> H[制定解决方案]
    F --> H
    G --> H

    H --> I[实施解决方案]
    I --> J[验证效果]
    J --> K{问题解决?}
    K -->|否| L[调整方案]
    L --> I
    K -->|是| M[总结经验]
    M --> N[更新文档]

    style A fill:#ffe1e1
    style B fill:#e1ffe1
    style C fill:#e1ffe1
    style H fill:#e1ffe1
    style M fill:#e1ffe1
    style N fill:#e1ffe1
{
  "issue_tracking": {
    "template": {
      "title": "问题标题",
      "description": "问题描述",
      "priority": "高/中/低",
      "status": "待处理/处理中/已解决",
      "assignee": "负责人",
      "reporter": "报告人",
      "created_at": "创建时间",
      "updated_at": "更新时间",
      "labels": ["标签1", "标签2"],
      "comments": [
        {
          "author": "评论人",
          "content": "评论内容",
          "created_at": "评论时间"
        }
      ]
    }
  }
}

团队协作最佳实践

协作检查清单

## 工作流管理
- [ ] 遵循命名规范
- [ ] 正确分类工作流
- [ ] 完善工作流文档
- [ ] 及时共享工作流

## 版本控制
- [ ] 遵循分支策略
- [ ] 规范提交信息
- [ ] 及时合并代码
- [ ] 定期发布版本

## 代码规范
- [ ] 遵循命名规范
- [ ] 统一代码风格
- [ ] 添加必要注释
- [ ] 进行代码审查

## 文档规范
- [ ] 完善文档结构
- [ ] 统一文档格式
- [ ] 及时更新文档
- [ ] 进行文档审查

## 沟通协作
- [ ] 及时响应消息
- [ ] 准时参加会议
- [ ] 积极参与讨论
- [ ] 记录重要决策

总结

团队协作规范是高效团队协作的基础。关键要点:

  1. 工作流管理: 规范工作流的命名、分类和共享
  2. 版本控制: 遵循Git分支和提交规范
  3. 代码规范: 统一命名、风格和注释规范
  4. 文档规范: 完善文档结构和更新流程
  5. 沟通协作: 建立有效的沟通和问题处理机制

通过遵循这些规范,团队可以高效协作,提高工作效率。