Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c43905f
feat: add comfyui model downloader
CiCi503 Dec 27, 2025
ce32c6a
add more models
CiCi503 Dec 27, 2025
581f129
add more models
CiCi503 Mar 9, 2026
514ca1e
add script
CiCi503 Mar 9, 2026
a4b806a
debug
CiCi503 Mar 9, 2026
37cf289
debug
CiCi503 Mar 9, 2026
605ddeb
debug
CiCi503 Mar 9, 2026
4d52d90
debug
CiCi503 Mar 9, 2026
415f5f5
dbg
CiCi503 Mar 11, 2026
4d1b015
debug
CiCi503 Mar 12, 2026
e7ce337
add semir models
CiCi503 Apr 3, 2026
1d8e12c
add skill
CiCi503 Apr 3, 2026
78ed21f
update checksum
CiCi503 Apr 3, 2026
7d6e353
add-model-0414
CiCi503 Apr 14, 2026
44ecff4
feat: add model qwen_3_4b_fp4_flux2.safetensors; update add-comfyui-m…
CiCi503 Apr 14, 2026
f0a6458
feat: add clip_vision_vit_h, Wan2.2-Lightning I2V lora, FastWan T2V l…
CiCi503 Apr 15, 2026
838c5d6
feat: update add-comfyui-model skill with checksum and prod sync steps
CiCi503 Apr 16, 2026
06f5cee
feat: add 7 models - qwen_3_8b, flux-turbo-alpha, FLUX-ControlNet-Uni…
CiCi503 Apr 16, 2026
ddaf913
fix: remove Florence-2-base-ft from models json, requires full repo d…
CiCi503 Apr 16, 2026
8c1039a
dbg
CiCi503 Apr 16, 2026
829f724
feat: add models uso-flux1-projector-v1 and uso-flux1-dit-lora-v1
CiCi503 Apr 20, 2026
c1bdf2f
feat: add models qwen_image_edit_2511_bf16, Qwen-Image-Edit-2511-Ligh…
CiCi503 Apr 22, 2026
776b2a0
feat: add 33 models batch - qwen-image series, flux variants, sdxl ch…
CiCi503 Apr 26, 2026
0e2c510
feat: add 87 models from ComfyUI v0.19.4 workflow templates (comfyui-…
CiCi503 Apr 26, 2026
36443fc
feat: add svdq-int4_r32-qwen-image-lightningv1.1-8steps and flux-2-kl…
CiCi503 May 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions .cursor/commands/pr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# 提交 PR

当用户执行此命令时,请按以下流程操作:

## 第一步:分析当前更改

并行执行以下命令获取完整信息:
- `git status` - 查看所有未跟踪和已修改的文件
- `git diff HEAD` - 查看所有更改的具体内容(包括已暂存和未暂存)
- `git log --oneline -5` - 查看最近的 commit 记录
- `git branch --show-current` - 获取当前分支名

## 第二步:智能生成 Commit Message

根据更改内容,生成一个精简的 commit message:

### 判断类型规则:
- **feat:** 新增功能、新增文件、添加新特性
- **fix:** 修复 bug、错误处理、问题修复
- **docs:** 仅文档更改
- **refactor:** 重构代码但不改变功能
- **test:** 添加或修改测试
- **chore:** 配置文件、依赖更新等

### Message 格式要求:
- 使用中文描述
- 简洁明了,一句话概括核心变更
- 如果有多个文件/模块的更改,概括主要目的
- 示例:
- `feat: 添加快照管理器功能`
- `fix: 修复任务队列满时的错误处理`
- `refactor: 重构 serverless handler 架构`

## 第三步:执行 Git 操作

按顺序执行:

1. **暂存所有更改**:
```bash
git add .
```

2. **提交更改**(使用 HEREDOC 格式):
```bash
git commit -m "$(cat <<'EOF'
[生成的 commit message]
EOF
)"
```

3. **Push 到远程分支**:
```bash
git push -u origin HEAD
```

## 第四步:创建 Pull Request

使用 `gh` CLI 创建 PR:

```bash
gh pr create --title "[生成的 commit message]" --body "$(cat <<'EOF'
## 变更摘要
[根据 git diff 生成 2-3 个要点]

## 变更类型
- [ ] 新功能
- [ ] Bug 修复
- [ ] 重构
- [ ] 文档更新
- [ ] 其他

## 测试
- [ ] 已通过本地测试
- [ ] 已验证功能正常

EOF
)"
```

## 第五步:返回结果

从 `gh pr create` 命令的输出中提取 PR URL(通常在命令执行成功后会返回 PR 链接)。

向用户清晰展示:

```
✅ PR 创建成功!

📝 Commit Message: [生成的 commit message]

🔗 PR 链接: [从 gh pr create 输出中提取的完整 URL]

分支: [当前分支名] → main
```

**重要提示**:
- 必须显示完整的 PR URL(例如:https://github.com/devsapp/cap-comfyui/pull/123)
- PR URL 应该是可点击的链接
- 如果 gh 命令返回错误,清晰报告给用户

## 注意事项

- 如果当前没有任何更改(git status clean),提示用户没有可提交的内容
- 如果 git push 失败,提示用户检查远程分支权限
- 如果 gh 命令不可用,提示用户安装 GitHub CLI
- 如果当前分支是 main/master,警告用户不应直接提交到主分支
- 所有错误都应清晰地报告给用户
93 changes: 93 additions & 0 deletions .cursor/skills/add-comfyui-model/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
name: add-comfyui-model
description: 为 ComfyUI 托管平台新增共享模型。创建增量模型列表文件并提示后续下载步骤。当用户说"新增模型"、"添加模型"、"add model",或提供模型文件名和下载链接时使用。
---

# 新增 ComfyUI 共享模型

## 工作步骤

### 第 1 步:创建增量模型列表文件

在 `src/code/comfyui/models/` 目录下创建 `models_YYYYMMDD.json`(日期取今天)。

文件格式:

```json
{
"模型文件名.safetensors": {
"url": "https://huggingface.co/xxx/resolve/main/xxx.safetensors",
"directory": "diffusion_models"
}
}
```

`directory` 常见取值:`checkpoints`、`diffusion_models`、`unet`、`loras`、`clip`、`vae`

### 第 2 步:将改动 push 到 origin

文件创建完成后,将改动提交并推送到远端:

```bash
git add src/code/comfyui/models/models_YYYYMMDD.json
git commit -m "feat: add model qwen_3_4b_fp4_flux2.safetensors"
git push origin HEAD
```

> 提交信息中的模型名替换为实际添加的模型文件名。

### 第 3 步:提示用户后续操作

push 完成后,**必须**输出以下提示:

---

**下一步:登录线上机器完成以下操作**

账号:`fc-ide-staging`
函数计算控制台:https://fcnext.console.aliyun.com/cn-hangzhou/functions/art-funart-model-pusher-rp8y?tab=detail&section=logging

**① 下载模型**

```bash
apt-get install tmux
cd /mnt/art-funart-model-pusher-rp8y/cap-comfyui/src/code/comfyui/models
git pull
tmux new-session -s model "bash -c 'export HF_ENDPOINT=https://hf-mirror.com && ./scripts/download_models.sh models_YYYYMMDD.json /mnt/funart-dev/models --use-mirror; exec bash'"
```

**② 校验 checksum**

下载完成后,验证文件完整性:

```bash
cd /mnt/art-funart-model-pusher-rp8y/cap-comfyui/src/code/comfyui/models
export HF_ENDPOINT="https://hf-mirror.com"
python3 scripts/cal_checksum.py /mnt/funart-dev/models models_YYYYMMDD.json --json-only
```

确认所有模型 SHA256 ✅ 一致后,再进行同步。

**③ 同步模型到 prod**

先 dry-run 确认将执行的命令:

```bash
make sync-models-to-prod-dry-run
```

确认无误后,正式同步:

```bash
make sync-models-to-prod
```

> 将 `models_YYYYMMDD.json` 替换为刚创建的文件名。

---

## 注意事项

- 如果同一天已有 `models_YYYYMMDD.json`,直接向该文件追加模型,不要新建
- URL 使用 `resolve/main/` 路径(不用 `blob/main/`),确保可直接下载
- 完整工作流(下载→验证→同步到 prod→合并)参见 `src/code/comfyui/models/README.md`
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@
**/dist
.DS_Store
.vscode/settings.json
reference
1 change: 1 addition & 0 deletions src/code/agent/services/model/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
提供模型链接和监听功能
"""


48 changes: 47 additions & 1 deletion src/code/comfyui/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ COMFYUI_IMAGE = registry.$(REGION).aliyuncs.com/ohyee/fc-demo:cap-comfyui
OSS_BUCKET ?= dipper-cache-$(REGION)
OSS_COMFYUI_BASE_DIR = base/comfyui/v0.3.10-beta

# 模型同步:dev OSS <-> prod OSS
DEV_MOUNT ?= /mnt/funart-dev/models
PROD_MOUNT ?= /mnt/funart-prod/models
DEV_OSS_BUCKET ?= dipper-cache-$(REGION)-dev
PROD_OSS_BUCKET ?= dipper-cache-$(REGION)

.PHONY: upgrade
upgrade: build upload-base

Expand Down Expand Up @@ -94,4 +100,44 @@ build-from-snapshot:
-t $(COMFYUI_IMAGE_PROD) .

@rm -rf tmp
@echo "Build completed successfully"
@echo "Build completed successfully"

# ===== 模型管理 =====

# 将 models_xxx.json 融入 models.json(主模型列表),已存在的模型不覆盖
# 用法: make merge-models MODELS_JSON=models/models_20260308.json
MODELS_JSON ?=
.PHONY: merge-models
merge-models:
@if [ -z "$(MODELS_JSON)" ]; then \
echo "错误: 请指定 MODELS_JSON"; \
echo "用法: make merge-models MODELS_JSON=models/models_20260308.json"; \
exit 1; \
fi
@python3 models/scripts/merge_models.py $(MODELS_JSON) models/models.json

# 列出 dev 有但 prod 没有的模型,生成 diff_YYYYMMDD.json
# 输出文件位于 models/ 目录下
.PHONY: diff-models
diff-models:
@DEV_MOUNT=$(DEV_MOUNT) \
PROD_MOUNT=$(PROD_MOUNT) \
bash models/scripts/sync_dev_to_prod.sh --diff-only

# 将 dev 有但 prod 没有的模型同步到 prod OSS
.PHONY: sync-models-to-prod
sync-models-to-prod:
@DEV_MOUNT=$(DEV_MOUNT) \
PROD_MOUNT=$(PROD_MOUNT) \
DEV_OSS_BUCKET=$(DEV_OSS_BUCKET) \
PROD_OSS_BUCKET=$(PROD_OSS_BUCKET) \
bash models/scripts/sync_dev_to_prod.sh

# 打印将要执行的 ossutil 同步命令(不实际执行)
.PHONY: sync-models-to-prod-dry-run
sync-models-to-prod-dry-run:
@DEV_MOUNT=$(DEV_MOUNT) \
PROD_MOUNT=$(PROD_MOUNT) \
DEV_OSS_BUCKET=$(DEV_OSS_BUCKET) \
PROD_OSS_BUCKET=$(PROD_OSS_BUCKET) \
bash models/scripts/sync_dev_to_prod.sh --dry-run
Loading