简介
协作规范概述
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 |
|---|---|---|
| 数据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": "评论时间"
}
]
}
}
}
团队协作最佳实践
协作检查清单
## 工作流管理
- [ ] 遵循命名规范
- [ ] 正确分类工作流
- [ ] 完善工作流文档
- [ ] 及时共享工作流
## 版本控制
- [ ] 遵循分支策略
- [ ] 规范提交信息
- [ ] 及时合并代码
- [ ] 定期发布版本
## 代码规范
- [ ] 遵循命名规范
- [ ] 统一代码风格
- [ ] 添加必要注释
- [ ] 进行代码审查
## 文档规范
- [ ] 完善文档结构
- [ ] 统一文档格式
- [ ] 及时更新文档
- [ ] 进行文档审查
## 沟通协作
- [ ] 及时响应消息
- [ ] 准时参加会议
- [ ] 积极参与讨论
- [ ] 记录重要决策
总结
团队协作规范是高效团队协作的基础。关键要点:
- 工作流管理: 规范工作流的命名、分类和共享
- 版本控制: 遵循Git分支和提交规范
- 代码规范: 统一命名、风格和注释规范
- 文档规范: 完善文档结构和更新流程
- 沟通协作: 建立有效的沟通和问题处理机制
通过遵循这些规范,团队可以高效协作,提高工作效率。