Files
bridge-skills/gs1-flux/SKILL.md
T

86 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: gs1-flux
description: 调用 GS-1 (192.168.9.113) ComfyUI FLUX.1-dev 图像生成 — txt2img/img2img/填充。GGUF Q5_K_S 模型,V100 双卡。触发:FLUX 出图、高质量图片、复杂构图、产品图、图生图、局部重绘、inpaint。
version: 1.0.0
author: 9Webs
license: internal
platforms: [linux]
triggers:
- FLUX
- flux1
- 高质量出图
- ComfyUI
- inpaint
- 局部重绘
- 图生图
---
# GS-1 FLUX.1-dev 图像生成 (ComfyUI API)
用 GS-1 的 ComfyUI + FLUX.1-dev (GGUF Q5_K_S) 生成高质量图片。直连 `192.168.9.113:8188` 即可。
## 服务拓扑
| 项 | 值 |
|----|----|
| 节点 | GS-1 = 192.168.9.113 (2× Tesla V100-SXM2-16GB) |
| ComfyUI | `http://192.168.9.113:8188` (v0.25.0) |
| UNet | `flux1-dev-Q5_K_S.gguf` (GGUF, V100 无 bf16 用 Q5) |
| 填充模型 | `flux1-fill-dev-Q5_K_S.gguf` (inpaint/局部重绘) |
| CLIP | `t5-v1_1-xxl-encoder-Q5_K_M.gguf` + `clip_l.safetensors` (type=flux) |
| VAE | `ae.safetensors` |
## 调用方式 (ComfyUI REST API)
1. **POST `/prompt`** 提交 API 格式工作流 (见 workflows/flux_txt2img.json),返回 `prompt_id`
2. **轮询 `GET /history/{prompt_id}`** 直到 `status.completed == true`
3. **取图 `GET /view?filename=<name>&type=output`** 下载 PNG
### 参考参数 (已实测)
- **steps 20** (18-28 均可;GGUF 量化,步数低会糊)
- **cfg 1.0** (FLUX 用 cfg≈1 + guidance;标准 KSampler 下 cfg 1.0 即可)
- **1024×1024** (FLUX 原生;V100 16GB 上限约 1024,超高会 OOM)
- **sampler `euler` / scheduler `simple`**, seed 可固定
- **耗时约 100-120 秒/张** (V100 无 flash-attention;首次调用含模型加载更慢)
### 脚本 (scripts/flux_txt2img.py)
```bash
python3 ~/.hermes/skills/gs1-flux/scripts/flux_txt2img.py "prompt here" [--steps 20] [--seed -1]
# 输出: /tmp/flux_out/flux_*.png
```
## 健康检查
```bash
curl -s http://192.168.9.113:8188/system_stats | head -c 200 # 返回 JSON = 正常
curl -s http://192.168.9.113:8188/object_info/UnetLoaderGGUF | grep -o 'flux1[^"]*' # 模型在位
curl -s http://192.168.9.113:8188/queue | python3 -c "import json,sys; d=json.load(sys.stdin); print('running:', len(d['queue_running']), 'pending:', len(d['queue_pending']))"
```
## 排障
- **提交 400** → 工作流节点错误,读 `node_errors` 详情 (常见: CLIPTextEncodeFlux 需 clip_l/t5xxl/guidance 三个输入)
- **长时间不出图** → 查队列 `queue` 是否堆积;单实例顺序执行,批量任务排队
- **OOM** → 降到 768×768 或减少 batch
- **换风格/复杂提示** → FLUX 对提示词敏感,直接写详细英文描述;负向提示基本不需要
## 服务端排障
```bash
sshpass -p 'Tt123456!' ssh admin9webs@192.168.9.113 'systemctl --user status comfyui* --no-pager | head -20'
```
## 陷阱
1. **Q5_K_S 量化**:图片质量略低于 fp8/bf16,但 V100 无 bf16 只能跑 GGUF;复杂文字/人脸注意检查。
2. **每次约 2 分钟**:批量任务要轮询串行,不要并发提交同实例。
3. **图片在 ComfyUI output 目录** (`~/ComfyUI/output/`),推荐客户端用 /view 下载,不依赖服务端目录。
4. **Flux Fill** (flux1-fill-dev) 用于局部重绘/inpaint,需配合 mask 工作流。
## 相关
- SDXL 出图用 `gs2-sdxl` 技能 (GS-2 :7861/:7862,快但质量略低)
- 配图策略: 快速草图用 SDXL,最终成品/复杂构图用 FLUX