Skip to content

Latest commit

 

History

History
1328 lines (1059 loc) · 34.2 KB

File metadata and controls

1328 lines (1059 loc) · 34.2 KB

ComfyUI 自动化系统用户指南

版本: v3.3
更新日期: 2025-09-09
状态: Phase 3.3 完成,完整产品化系统全功能可用


📖 目录


1. 系统概述

🎯 核心功能

ComfyUI 自动化系统是一个完整的批量图像生成解决方案,主要特点:

  • 智能提示词生成: 从简单主题自动生成数百种变体组合
  • 批量任务处理: 支持大规模并发任务执行,实时进度监控
  • 稳健的ComfyUI集成: 自动启动、连接监控、异常恢复
  • 双存储系统: SQLite数据库 + JSON文件,确保数据安全
  • 实时监控: 吞吐量、ETA预估、系统资源监控
  • 交互式HTML画廊: 响应式图片浏览、筛选、评分、收藏系统
  • 智能数据分析: 提示词成功率分析、元素组合推荐、迭代优化

🏗️ 系统架构

ComfyUI 自动化系统 (v3.3)
├── 核心处理层
│   ├── BatchProcessor      # 批量处理器
│   ├── PromptGenerator     # 提示词生成器
│   ├── WorkflowManager     # 工作流管理器  
│   ├── ComfyUIClient       # ComfyUI客户端
│   ├── TaskQueue           # 任务队列管理
│   ├── ProgressMonitor     # 进度监控器
│   └── ResultManager       # 结果管理器
├── 用户界面层
│   ├── HTML Gallery        # 交互式画廊
│   ├── Gallery Scripts     # JavaScript功能
│   └── CSS Styles          # 响应式样式
├── 分析系统层
│   ├── PromptAnalyzer      # 提示词分析器
│   ├── RecommendationEngine # 推荐引擎
│   ├── ReportGenerator     # 报告生成器
│   ├── PromptOptimizer     # 迭代优化器
│   └── AnalysisManager     # 分析管理器
└── 命令行工具
    ├── analysis_cli.py     # 分析命令行
    └── test_system.py      # 系统测试

2. 快速开始

2.1 环境要求

  • Python: 3.11+
  • ComfyUI: 已安装并能正常运行
  • 内存: 8GB+ (推荐)
  • 存储: 根据生成图片数量确定

2.2 安装与配置

Step 1: 激活虚拟环境

cd D:/项目/comfyui_automation
venv\Scripts\activate  # Windows
# 或 source venv/bin/activate  # Linux/Mac

Step 2: 验证安装

python simple_test.py

期望输出:🎉 基础集成测试完全成功!

Step 3: 编辑配置(如需要)

编辑 src/config/settings.py 中的默认配置:

ComfyUIConfig:
    path: "D:/LM/ComfyUI"           # ComfyUI路径
    api_url: "http://127.0.0.1:8188" # API地址
    startup_mode: "auto"             # 启动模式

2.3 第一次使用

快速示例:生成森林小屋变体

from src.batch_processor import BatchProcessor
from pathlib import Path

# 初始化处理器
processor = BatchProcessor(
    output_directory=Path("./output"),
    database_path=Path("./data/database/tasks.db"),
    workflows_directory=Path("./workflows")
)

# 创建批量任务
task_ids = processor.create_batch_from_subject(
    subject="森林中的小木屋,冬天雪景",
    variation_count=10,
    workflow_type="txt2img"
)

print(f"已创建 {len(task_ids)} 个任务")

# 开始批量处理
success = processor.start_batch_processing()
print(f"批量处理结果: {success}")

3. 系统配置

3.1 ComfyUI配置

启动模式选择

  • auto: 自动启动ComfyUI(推荐)
  • manual: 手动启动,系统等待确认
  • check_only: 仅检查,不启动
# 在 settings.py 中配置
ComfyUIConfig(
    startup_mode="auto",        # 启动模式
    startup_timeout=120,        # 启动超时(秒)
    venv_python=""             # 自动推导路径
)

3.2 生成配置

GenerationConfig(
    default_resolution=(1024, 1024),  # 默认分辨率
    default_steps=20,                 # 默认步数
    max_concurrent_tasks=1,           # 最大并发数
    batch_size=1                      # 批次大小
)

3.3 输出配置

OutputConfig(
    base_directory="./output",    # 输出根目录
    organize_by="date",          # 组织方式: date/subject/style
    save_metadata=True,          # 保存元数据
    generate_gallery=True        # 生成画廊页面
)

4. 批量处理指南

4.1 三种批量模式

模式1: 单主题变体生成

# 从一个主题生成多个变体
task_ids = processor.create_batch_from_subject(
    subject="春天的樱花树下,阳光透过花瓣",
    variation_count=20,
    workflow_type="txt2img"
)

模式2: 提示词列表批处理

# 批量处理多个不同提示词
prompts = [
    "夜晚的城市街道,霓虹灯闪烁",
    "海边的灯塔,暴风雨前的宁静",
    "山顶的古老寺庙,晨雾缭绕"
]

task_ids = processor.create_batch_from_prompts(
    prompts=prompts,
    workflow_type="txt2img"
)

模式3: 穷举式组合生成

# 生成所有可能的主题和风格组合
subjects = ["森林小屋", "城市街道", "海边灯塔"]
styles = ["写实主义", "动漫风格", "水彩画"]

task_ids = processor.create_exhaustive_batch(
    subjects=subjects,
    styles=styles,
    max_combinations=50,
    workflow_type="txt2img"
)

4.2 批量处理控制

启动处理

# 设置进度回调
def progress_callback(snapshot):
    progress = (snapshot.completed_tasks + snapshot.failed_tasks) / snapshot.total_tasks * 100
    print(f"进度: {progress:.1f}% | 完成: {snapshot.completed_tasks} | 失败: {snapshot.failed_tasks}")

processor.add_progress_callback(progress_callback)

# 开始处理
success = processor.start_batch_processing(
    max_concurrent=1,      # 并发数
    console_output=True    # 控制台输出
)

暂停与恢复

processor.pause_processing()   # 暂停处理
processor.resume_processing()  # 恢复处理
processor.stop_processing()    # 停止处理

4.3 状态监控

获取处理状态

status = processor.get_processing_status()
print(f"运行状态: {status['is_running']}")
print(f"队列状态: {status['queue_status']}")
print(f"性能指标: {status['performance_metrics']}")

获取批量结果

results = processor.get_batch_results()
print(f"成功任务: {results['summary']['total_completed']}")
print(f"失败任务: {results['summary']['total_failed']}")
print(f"输出文件: {len(results['output_files'])}")

5. 提示词管理

5.1 提示词元素配置

编辑 data/prompt_elements.yaml 来自定义元素库:

elements:
  subjects:
    - name: "森林小屋"
      weight: 1.0
      tags: ["建筑", "自然"]
    - name: "城市街道"
      weight: 0.8
      tags: ["城市", "现代"]

  styles:
    - name: "写实主义"
      weight: 1.0
      conflicts: ["动漫风格"]
    - name: "动漫风格"
      weight: 0.9
      conflicts: ["写实主义"]

  camera_angles:
    - name: "wide shot"
      weight: 0.8
    - name: "close-up"
      weight: 0.6

templates:
  - pattern: "{camera_angles} of {subjects}, {styles} style, {lighting}"
    weight: 0.3
    description: "完整描述模板"

5.2 提示词生成策略

智能识别模式

generator = PromptGenerator()

# 短主题 -> 元素组合
prompts1 = generator.generate_variations("森林小屋", variation_count=10)

# 完整描述 -> 增强变体  
prompts2 = generator.generate_variations(
    "春天的樱花树下,一位少女在读书,阳光透过花瓣洒在她身上", 
    variation_count=5
)

5.3 权重与冲突系统

  • 权重: 控制元素选择概率(0.0-1.0)
  • 冲突: 避免不兼容元素组合
  • 标签: 用于分类和筛选

6. 工作流配置

6.1 工作流结构

每个工作流包含两个文件:

workflows/txt2img/
├── config.yaml          # 工作流配置
└── txt2img.json         # ComfyUI工作流JSON

6.2 配置文件格式

config.yaml 示例:

name: "txt2img"
version: "1.0.0"
description: "基础文本到图像生成工作流"

parameters:
  prompt:
    node_id: "6"
    field: "text"
    type: "string"
    required: true
    
  steps:
    node_id: "3"
    field: "steps"
    type: "int"
    default: 20
    
  cfg_scale:
    node_id: "3"
    field: "cfg"
    type: "float"
    default: 8.0

validation:
  required_nodes: ["3", "6", "8"]
  output_nodes: ["9"]

6.3 参数映射

系统会自动将任务参数映射到ComfyUI节点:

# 任务数据
task_data = {
    'prompt': "森林小屋,冬天雪景",
    'steps': 25,
    'cfg_scale': 7.5
}

# 自动映射到工作流
workflow = workflow_manager.create_workflow_from_task("txt2img", task_data)

7. 结果管理

7.1 双存储系统

系统使用双存储模式确保数据安全:

SQLite数据库

  • 高性能查询和统计
  • 事务支持和数据完整性
  • 位置: data/database/tasks.db

JSON元数据文件

  • 人类可读的备份格式
  • 便于数据迁移和外部处理
  • 位置: output/metadata/

7.2 文件组织结构

output/
├── 20250908_143022_batch_森林小屋/     # 批次目录
│   ├── task_001_completed.png         # 生成图片
│   ├── task_002_completed.png
│   └── metadata/
│       ├── task_001.json              # 任务元数据
│       └── task_002.json
└── metadata/
    └── batch_20250908_143022.json     # 批次元数据

7.3 元数据内容

每个任务的元数据包含:

{
  "task_id": "task_20250908_143022_001",
  "prompt": "wide shot of 森林小屋, 写实主义 style, natural lighting",
  "workflow_type": "txt2img",
  "status": "completed",
  "created_at": "2025-09-08T14:30:22",
  "started_at": "2025-09-08T14:30:25",
  "completed_at": "2025-09-08T14:31:45",
  "generation_time": 80.5,
  "quality_score": 0.85,
  "tags": ["森林", "建筑", "写实"],
  "workflow_params": {...},
  "output_files": ["task_001_completed.png"],
  "file_size": 2048576
}

7.4 结果查询与统计

# 获取统计信息
stats = processor.result_manager.get_statistics()
print(f"总任务数: {stats['total_tasks']}")
print(f"成功率: {stats['success_rate']:.1%}")
print(f"平均生成时间: {stats['avg_generation_time']:.1f}秒")

# 查询特定任务
task = processor.result_manager.get_task("task_001")
result = processor.result_manager.get_result("task_001")

# 批量查询
completed_tasks = processor.result_manager.get_tasks_by_status("completed")
failed_tasks = processor.result_manager.get_tasks_by_status("failed")

8. HTML画廊系统

8.1 画廊概述

HTML画廊是一个现代化的Web界面,用于浏览、管理和分析生成的图片。

核心特性:

  • 📱 响应式设计: 支持桌面、平板、手机
  • 🔍 多维筛选: 日期、状态、质量、标签、提示词搜索
  • 评分收藏: 5星评分系统,收藏夹管理
  • 📊 实时统计: 成功率、质量分布、数量统计
  • 🎨 多种布局: 网格、列表、瀑布流视图
  • 📥 批量操作: 全选、导出、删除

8.2 画廊界面使用

访问画廊

生成的画廊文件位于:output/gallery.html

# 方式1: 直接打开HTML文件
start output/gallery.html  # Windows
open output/gallery.html   # macOS

# 方式2: 本地HTTP服务器(推荐)
cd output
python -m http.server 8080
# 然后访问: http://localhost:8080/gallery.html

主要功能区域

顶部导航栏:

  • 系统标题和版本信息
  • 实时统计数据(总图片数、已选择、成功率)

左侧控制面板:

  • 搜索框:支持提示词关键词搜索
  • 筛选选项:日期范围、任务状态、质量评分、标签
  • 排序方式:时间、质量、名称排序
  • 批量操作:全选、清空、导出、删除
  • 收藏夹管理
  • 统计信息卡片

主要画廊区域:

  • 工具栏:视图切换、图片大小调节
  • 图片网格:响应式布局展示
  • 加载更多按钮:分页加载大量图片
  • 无结果提示

8.3 筛选与搜索

提示词搜索

// 搜索框支持关键词和短语
"森林小屋"          // 精确匹配
"森林 AND 小屋"     // 包含两个关键词
"写实 OR 动漫"      // 包含任一关键词

高级筛选

// 组合筛选示例
- 日期范围: 2025-09-01  2025-09-09
- 任务状态: ✓已完成 ✗失败
- 质量评分:  0.7
- 标签: 风景, 建筑
- 排序: 质量最高

自定义标签

// 在图片详情模态框中添加标签
常用标签: 精品, 客户展示, 测试图, 废弃, 需修改
自定义标签: 春天, 城市, 人物肖像, 抽象艺术

8.4 图片详情与管理

详情模态框

点击任意图片打开详情面板,包含:

  • 基本信息: 任务ID、创建时间、生成时间、质量评分、文件大小、分辨率
  • 提示词: 完整的生成提示词内容
  • 标签系统: 查看和编辑图片标签
  • 工作流参数: 查看生成参数配置

交互操作

// 评分系统
⭐⭐⭐⭐⭐ 5星评分,支持点击评分

// 操作按钮
❤️  收藏/取消收藏
📥 下载原图
📋 复制提示词到剪贴板

8.5 批量管理

多选操作

// 选择方式
1. 单击图片左上角复选框
2. 使用Ctrl/Cmd + 点击多选
3. 使用"全选"按钮
4. 框选区域(计划功能)

批量操作

// 可用操作
📤 批量导出: 下载选中图片的ZIP文件
🗑️  批量删除: 移除选中图片(谨慎使用)
🏷️  批量标签: 为选中图片添加相同标签
 批量评分: 为选中图片设置相同评分

8.6 画廊自定义

主题配置

画廊支持多种视觉主题:

/* 在 static/css/gallery.css 中自定义 */
:root {
  --primary-color: #007bff;     /* 主色调 */
  --background-color: #f8f9fa;  /* 背景色 */
  --card-background: #ffffff;   /* 卡片背景 */
  --text-color: #333333;        /* 文本颜色 */
  --grid-gap: 20px;            /* 网格间距 */
}

布局配置

// 在 static/js/gallery.js 中自定义
const galleryConfig = {
    imagesPerPage: 24,        // 每页图片数
    defaultImageSize: 250,    // 默认图片大小
    autoRefresh: false,       // 自动刷新
    showMetadata: true,       // 显示元数据
    enableAnimations: true    // 启用动画
};

9. 数据分析与优化

9.1 分析系统概述

智能数据分析系统帮助用户深入理解提示词性能,优化生成策略。

核心分析模块:

  • 提示词分析器: 元素成功率、时间趋势、相关性分析
  • 推荐引擎: 元素组合推荐、协同效应识别、反模式检测
  • 报告生成器: 交互式HTML报告、数据可视化
  • 迭代优化器: 基于历史数据的智能提示词生成

9.2 命令行分析工具

运行完整分析

# 分析所有历史数据
python analysis_cli.py analyze

# 指定输出目录
python analysis_cli.py analyze --output-dir output/my_analysis

# 使用JSON数据源
python analysis_cli.py analyze --data-source json

生成优化提示词

# 生成50个优化提示词
python analysis_cli.py optimize --count 50

# 基于现有提示词优化
python analysis_cli.py optimize --base-prompts "portraits,anime,detailed"

# 从文件读取基础提示词
echo -e "森林小屋,冬天\n海边灯塔,夜晚\n城市街道,雨夜" > base_prompts.txt
python analysis_cli.py optimize --base-prompts base_prompts.txt --count 30

# 保存优化结果
python analysis_cli.py optimize --count 20 --output-prompts optimized_prompts.txt

元素性能分析

# 分析特定元素
python analysis_cli.py element "detailed"
python analysis_cli.py element "anime style"
python analysis_cli.py element "masterpiece"

生成仪表板数据

# 生成仪表板JSON数据
python analysis_cli.py dashboard --output-json dashboard_data.json

# 查看简要统计
python analysis_cli.py dashboard

生成分析报告

# 生成HTML交互报告
python analysis_cli.py report --format html --output analysis_report.html

# 生成JSON数据报告
python analysis_cli.py report --format json --output analysis_data.json

9.3 分析报告解读

HTML交互报告

生成的HTML报告包含多个分析维度:

1. 总体性能指标

📊 基础统计
- 总任务数: 156
- 成功率: 87.2%
- 平均质量评分: 0.76
- 平均生成时间: 32.5秒
- 高质量图片数: 89 (质量≥0.8)

2. 元素性能排行

🏆 顶级表现元素
1. masterpiece - 成功率: 94.5% | 平均质量: 0.89
2. highly detailed - 成功率: 91.2% | 平均质量: 0.82
3. beautiful - 成功率: 89.7% | 平均质量: 0.78

⚠️  问题元素
1. low quality - 成功率: 23.1% | 平均质量: 0.31
2. blurry - 成功率: 34.6% | 平均质量: 0.42

3. 元素组合推荐

🤝 协同效应组合
- "portrait" + "anime" + "detailed": 效果评分 0.87
- "landscape" + "natural lighting" + "4k": 效果评分 0.85
- "masterpiece" + "highly detailed" + "best quality": 效果评分 0.92

🚫 避免的组合(反模式)
- "realistic" + "anime style": 冲突系数 0.76
- "photorealistic" + "sketch": 冲突系数 0.69

4. 时间趋势分析

  • 最近7天成功率趋势图
  • 每日质量评分变化
  • 生成速度趋势分析

9.4 智能优化建议

优化建议类型

1. 元素推荐

# 基于高效元素的建议
建议类型: element_recommendation
建议内容: 推荐使用高效元素 'masterpiece'
理由: 成功率 94.5%平均质量 0.89
优先级: high

2. 协同效应建议

# 基于元素协同的建议
建议类型: synergy_recommendation  
建议内容: 组合使用 'portrait'  ['anime', 'detailed']
理由: 协同效应强度 0.87质量提升 0.15
优先级: medium

3. 反模式警告

# 基于冲突检测的建议
建议类型: anti_pattern_warning
建议内容: 避免同时使用 ['realistic', 'anime style']
理由: 检测到冲突模式负面影响 0.76
优先级: high

9.5 迭代优化流程

第一轮:基础数据分析

# 1. 运行完整分析
python analysis_cli.py analyze

# 2. 查看分析报告
start output/analysis/analysis_report_20250909_143022.html

# 3. 识别问题元素和高效组合

第二轮:生成优化提示词

# 基于分析结果生成优化版本
python analysis_cli.py optimize --count 50 --output-prompts iteration_2_prompts.txt

# 使用优化提示词创建新批次
python create_batch_from_file.py iteration_2_prompts.txt

第三轮:效果验证

# 处理新批次后再次分析
python analysis_cli.py analyze --output-dir output/iteration_2_analysis

# 比较两轮结果
python compare_iterations.py iteration_1 iteration_2

9.6 高级分析功能

Python API使用

from src.analysis_integration import AnalysisManager

# 初始化分析管理器
manager = AnalysisManager("output/custom_analysis")

# 运行完整分析
results = manager.run_complete_analysis()

# 获取仪表板数据
dashboard_data = manager.get_analysis_dashboard_data()

# 分析特定元素
element_data = manager.analyze_element_performance("detailed")

# 生成优化迭代
optimization_results = manager.generate_optimization_iteration(
    base_prompts=["portrait, anime", "landscape, realistic"],
    iteration_size=30
)

自定义分析脚本

# 自定义分析示例
from src.utils.prompt_analyzer import PromptAnalyzer
from src.utils.result_manager import ResultManager

# 加载数据
result_manager = ResultManager()
tasks, results = result_manager.load_all_tasks_and_results()

# 创建分析器
analyzer = PromptAnalyzer()

# 分析特定时间段
from datetime import datetime, timedelta
recent_tasks = [t for t in tasks if t.created_at > datetime.now() - timedelta(days=7)]
trends = analyzer.analyze_temporal_trends(recent_tasks, days=7)

print(f"最近7天成功率: {trends['avg_success_rate']:.1%}")
print(f"最近7天平均质量: {trends['avg_quality']:.2f}")

9.7 性能优化策略

基于数据的优化建议

1. 提示词优化

# 移除低效元素
低效元素 = ["blurry", "low quality", "bad anatomy"]
# 当前成功率 < 50% 的元素应考虑移除

# 添加高效元素
高效元素 = ["masterpiece", "highly detailed", "best quality"]
# 成功率 > 90% 的元素建议多使用

# 使用协同组合
推荐组合 = [
    ["portrait", "anime", "detailed"],
    ["landscape", "realistic", "natural lighting"],
    ["masterpiece", "highly detailed", "4k"]
]

2. 工作流参数优化

# 基于质量评分数据调整参数
if 平均质量评分 < 0.6:
    cfg_scale += 1.0        # 增强提示词遵循度
    steps += 5              # 增加生成步数
    
if 平均生成时间 > 60:
    steps = min(steps, 25)  # 减少步数提高速度
    resolution = (768, 768) # 降低分辨率

3. 批次策略优化

# 智能批次大小
if 成功率 > 0.9:
    batch_size *= 1.5       # 增加批次大小
if 成功率 < 0.7:
    batch_size = max(1, batch_size // 2)  # 减少批次大小
    
# 优先级调度
高质量任务优先级 = 10    # 已验证的高质量提示词
实验性任务优先级 = 5     # 新组合测试
批量生成任务优先级 = 1   # 大量常规任务

10. 监控与调试

10.1 实时进度监控

进度快照信息

snapshot = processor.progress_monitor.get_latest_snapshot()
print(f"总任务: {snapshot.total_tasks}")
print(f"完成: {snapshot.completed_tasks}")
print(f"运行中: {snapshot.running_tasks}")
print(f"成功率: {snapshot.success_rate:.1%}")
print(f"吞吐量: {snapshot.throughput_tasks_per_minute:.1f} 任务/分钟")
print(f"预计剩余: {snapshot.estimated_remaining_time/60:.1f} 分钟")

自定义进度回调

def detailed_progress_callback(snapshot):
    # 进度条显示
    progress = (snapshot.completed_tasks + snapshot.failed_tasks) / snapshot.total_tasks * 100
    bar = "█" * int(progress / 5) + "░" * (20 - int(progress / 5))
    
    print(f"\r[{bar}] {progress:.1f}% | "
          f"完成: {snapshot.completed_tasks} | "
          f"失败: {snapshot.failed_tasks} | "
          f"速度: {snapshot.throughput_tasks_per_minute:.1f}/min", 
          end="", flush=True)

processor.add_progress_callback(detailed_progress_callback)

10.2 性能指标

系统资源监控

performance = processor.progress_monitor.get_performance_metrics()
print(f"平均吞吐量: {performance['average_throughput']:.1f} 任务/分钟")
print(f"峰值吞吐量: {performance['peak_throughput']:.1f} 任务/分钟")
print(f"平均内存使用: {performance['average_memory_usage_mb']:.0f} MB")
print(f"峰值内存使用: {performance['peak_memory_usage_mb']:.0f} MB")

任务处理统计

task_stats = performance['task_time_statistics']
print(f"最快任务: {task_stats['min_time']:.1f}秒")
print(f"最慢任务: {task_stats['max_time']:.1f}秒")
print(f"平均时间: {task_stats['avg_time']:.1f}秒")

10.3 日志与调试

日志级别配置

import logging
logging.basicConfig(
    level=logging.DEBUG,  # DEBUG, INFO, WARNING, ERROR
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)

常用调试信息

# ComfyUI连接状态
health = processor.comfyui_client.health_check()
print(f"服务运行: {health['service_running']}")
print(f"API可访问: {health['api_accessible']}")
print(f"进程存活: {health['process_alive']}")

# 队列状态详情
queue_stats = processor.task_queue.get_queue_statistics()
print(f"优先级分布: {queue_stats['priority_distribution']}")
print(f"重试统计: {queue_stats['retry_statistics']}")

11. 常见问题

11.1 启动问题

Q: ComfyUI无法自动启动

A: 检查配置路径和虚拟环境设置

# 验证路径
comfyui_path = Path("D:/LM/ComfyUI")
print(f"ComfyUI路径存在: {comfyui_path.exists()}")

venv_python = comfyui_path / "venv" / "Scripts" / "python.exe"
print(f"虚拟环境Python存在: {venv_python.exists()}")

# 手动模式测试
settings_obj.comfyui.startup_mode = "manual"

Q: 依赖包缺失错误

A: 激活虚拟环境并安装依赖

venv\Scripts\activate
pip install -r requirements.txt

11.2 任务执行问题

Q: 任务一直处于运行状态

A: 检查ComfyUI工作流和超时设置

# 调整超时时间
processor.task_executor.task_timeout = 600  # 10分钟

# 检查工作流有效性
workflow_data = processor.workflow_manager.validate_workflow("txt2img")
print(f"工作流有效: {workflow_data is not None}")

Q: 生成图片找不到

A: 检查ComfyUI输出目录设置

# 检查默认输出目录
comfyui_output = Path("D:/LM/ComfyUI/output")
print(f"输出目录存在: {comfyui_output.exists()}")
print(f"最近文件: {sorted(comfyui_output.glob('*.png'))[-5:]}")

11.3 性能问题

Q: 处理速度太慢

A: 优化并发设置和批次延迟

# 增加并发数(小心显存)
processor.max_concurrent_tasks = 2

# 减少批次延迟
processor.batch_delay = 1.0

# 禁用详细日志
logging.getLogger().setLevel(logging.WARNING)

Q: 内存占用过高

A: 清理历史数据和限制缓存

# 清理进度历史
processor.progress_monitor.clear_history(keep_recent=50)

# 清理已完成任务
processor.task_queue.clear_completed_tasks()

# 手动垃圾回收
import gc
gc.collect()

12. 性能优化

12.1 系统配置优化

硬件建议

  • GPU显存: 8GB+ (推荐12GB+)
  • 系统内存: 16GB+ (大批量任务)
  • SSD存储: 加速文件IO操作

软件优化

# 优化批处理器设置
processor = BatchProcessor(
    max_concurrent_tasks=2,        # 根据显存调整
    task_timeout=300,              # 5分钟超时
    batch_delay=1.0,               # 减少延迟
    enable_database=True,          # 数据库查询更快
    enable_json_metadata=False     # 大批量时禁用JSON
)

12.2 提示词优化

减少无效组合

# 在 prompt_elements.yaml 中添加冲突规则
elements:
  styles:
    - name: "写实主义"
      conflicts: ["动漫风格", "抽象艺术"]
    - name: "动漫风格" 
      conflicts: ["写实主义", "古典绘画"]

提高成功率

# 使用验证过的元素组合
validated_elements = generator.validate_element_combinations()

# 过滤低质量提示词
high_quality_prompts = [p for p in prompts if p.quality_score > 0.7]

12.3 批处理策略

分批处理

# 大任务分成小批次
large_prompts = ["prompt1", "prompt2", ...] * 100  # 大量提示词

batch_size = 20
for i in range(0, len(large_prompts), batch_size):
    batch = large_prompts[i:i+batch_size]
    
    task_ids = processor.create_batch_from_prompts(batch)
    success = processor.start_batch_processing()
    
    if success:
        print(f"批次 {i//batch_size + 1} 完成")

优先级调度

# 重要任务设置高优先级
urgent_tasks = processor.create_batch_from_subject(
    subject="紧急任务:客户展示图",
    priority=10  # 高优先级
)

# 普通任务设置默认优先级
normal_tasks = processor.create_batch_from_subject(
    subject="常规测试图",
    priority=0   # 默认优先级
)

12.4 监控与诊断

性能基准测试

import time

start_time = time.time()
task_ids = processor.create_batch_from_subject("测试主题", variation_count=10)
creation_time = time.time() - start_time

start_processing = time.time()
success = processor.start_batch_processing()
processing_time = time.time() - start_processing

print(f"任务创建耗时: {creation_time:.2f}秒")
print(f"批量处理耗时: {processing_time:.2f}秒")
print(f"平均单任务时间: {processing_time/len(task_ids):.2f}秒")

内存监控

import psutil

def monitor_memory():
    process = psutil.Process()
    memory_mb = process.memory_info().rss / (1024 * 1024)
    cpu_percent = process.cpu_percent()
    return memory_mb, cpu_percent

# 在处理过程中定期监控
def memory_callback(snapshot):
    memory_mb, cpu_percent = monitor_memory()
    if memory_mb > 2000:  # 超过2GB警告
        print(f"⚠️ 内存使用过高: {memory_mb:.0f}MB")

processor.add_progress_callback(memory_callback)

📞 技术支持与快速参考

故障排查检查清单

如果遇到问题,请按以下顺序检查:

  1. 基础验证

    # 运行系统测试
    python simple_test.py
    
    # 检查分析系统
    python test_analysis_system.py
  2. 配置检查

    # 验证ComfyUI路径
    import pathlib
    comfyui_path = pathlib.Path("D:/LM/ComfyUI")
    print(f"ComfyUI存在: {comfyui_path.exists()}")
    
    # 验证虚拟环境
    python_exe = comfyui_path / "venv/Scripts/python.exe"
    print(f"Python环境: {python_exe.exists()}")
  3. 服务状态

    # 检查ComfyUI服务
    curl http://127.0.0.1:8188/system_stats
    
    # 检查API响应
    curl http://127.0.0.1:8188/queue
  4. 数据完整性

    # 检查数据库
    python -c "from src.utils.result_manager import ResultManager; rm=ResultManager(); print(rm.get_statistics())"
    
    # 检查画廊数据
    ls output/gallery.html output/static/

常用命令速查

批量处理

# 创建并执行批次
python simple_test.py                    # 基础测试
python -c "from src.batch_processor import BatchProcessor; bp=BatchProcessor(); bp.create_batch_from_subject('森林小屋', 10); bp.start_batch_processing()"

数据分析

# 完整分析流程
python analysis_cli.py analyze           # 运行分析
python analysis_cli.py optimize --count 50  # 生成优化提示词
python analysis_cli.py dashboard         # 查看统计
python analysis_cli.py report --format html  # 生成报告

画廊管理

# 启动本地服务器查看画廊
cd output && python -m http.server 8080
# 访问: http://localhost:8080/gallery.html

性能调优建议

系统配置

# 高性能配置示例
processor = BatchProcessor(
    max_concurrent_tasks=2,        # 根据GPU显存调整
    task_timeout=300,              # 5分钟超时
    batch_delay=0.5,               # 减少批次延迟
    enable_database=True,          # 启用数据库加速查询
    enable_json_metadata=False     # 大批量时禁用JSON
)

提示词优化

# 基于分析数据优化
python analysis_cli.py element "your_element"  # 分析特定元素
python analysis_cli.py optimize --base-prompts "high_success_elements"

系统文件结构

comfyui_automation/
├── 🔧 核心系统
│   ├── src/batch_processor/         # 批量处理器
│   ├── src/prompt_generator/        # 提示词生成器  
│   ├── src/comfyui_client/         # ComfyUI客户端
│   ├── src/workflow_manager/        # 工作流管理
│   └── src/utils/                   # 工具模块
├── 🎨 用户界面
│   ├── output/gallery.html          # HTML画廊
│   └── output/static/               # CSS/JS资源
├── 📊 分析系统
│   ├── src/analysis_integration.py  # 分析集成
│   ├── analysis_cli.py              # 命令行工具
│   └── src/utils/prompt_analyzer.py # 分析引擎
├── ⚙️ 配置文件
│   ├── data/prompt_elements.yaml    # 提示词元素库
│   ├── workflows/                   # 工作流配置
│   └── src/config/settings.py       # 系统配置
├── 📁 数据存储
│   ├── data/database/               # SQLite数据库
│   └── output/metadata/             # JSON元数据
└── 🧪 测试工具
    ├── simple_test.py               # 基础功能测试
    └── test_analysis_system.py      # 分析系统测试

版本更新说明

v3.3 (2025-09-09) - 完整产品化

  • HTML画廊系统: 响应式界面、多维筛选、评分收藏
  • 智能分析系统: 提示词分析、元素推荐、迭代优化
  • 命令行工具: 完整的CLI界面,支持各种分析操作
  • 系统集成: 所有模块完全集成,产品化完成

v2.3 (2025-09-08) - 批量处理完成

  • 批量处理系统: 端到端流程、实时监控
  • 工作流管理: 动态配置、参数映射
  • 结果管理: 双存储模式、统计分析

v1.0 (2025-09-07) - 核心功能

  • 提示词生成器: 智能组合、模板系统
  • ComfyUI集成: 自动启动、稳健连接

🚀 快速开始总结

新用户5分钟上手

# 1. 激活环境
venv\Scripts\activate

# 2. 基础测试
python simple_test.py

# 3. 创建第一个批次
python -c "
from src.batch_processor import BatchProcessor
bp = BatchProcessor()
bp.create_batch_from_subject('春天的樱花', 5)
bp.start_batch_processing()
"

# 4. 查看结果
start output/gallery.html

高级用户工作流

# 1. 分析历史数据
python analysis_cli.py analyze

# 2. 基于分析优化
python analysis_cli.py optimize --count 30

# 3. 创建优化批次
python analysis_cli.py optimize --count 50 --output-prompts new_batch.txt

# 4. 执行并监控
# (使用生成的提示词文件创建新批次)

# 5. 生成报告
python analysis_cli.py report --format html

文档版本: v3.3
最后更新: 2025-09-09
系统状态: Phase 3.3 完成,完整产品化系统全功能可用 ✅

核心功能概览:

  • 🎯 智能提示词生成与批量处理
  • 🖼️ 交互式HTML画廊与图片管理
  • 📊 数据分析与迭代优化系统
  • 🔧 稳健的ComfyUI集成与监控
  • 💾 双存储系统确保数据安全
  • 🚀 完整的CLI工具链

立即开始: python simple_test.pystart output/gallery.htmlpython analysis_cli.py dashboard 🎉