版本: v3.3
更新日期: 2025-09-09
状态: Phase 3.3 完成,完整产品化系统全功能可用
- 1. 系统概述
- 2. 快速开始
- 3. 系统配置
- 4. 批量处理指南
- 5. 提示词管理
- 6. 工作流配置
- 7. 结果管理
- 8. HTML画廊系统
- 9. 数据分析与优化
- 10. 监控与调试
- 11. 常见问题
- 12. 性能优化
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 # 系统测试
- Python: 3.11+
- ComfyUI: 已安装并能正常运行
- 内存: 8GB+ (推荐)
- 存储: 根据生成图片数量确定
cd D:/项目/comfyui_automation
venv\Scripts\activate # Windows
# 或 source venv/bin/activate # Linux/Macpython simple_test.py期望输出:🎉 基础集成测试完全成功!
编辑 src/config/settings.py 中的默认配置:
ComfyUIConfig:
path: "D:/LM/ComfyUI" # ComfyUI路径
api_url: "http://127.0.0.1:8188" # API地址
startup_mode: "auto" # 启动模式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}")- auto: 自动启动ComfyUI(推荐)
- manual: 手动启动,系统等待确认
- check_only: 仅检查,不启动
# 在 settings.py 中配置
ComfyUIConfig(
startup_mode="auto", # 启动模式
startup_timeout=120, # 启动超时(秒)
venv_python="" # 自动推导路径
)GenerationConfig(
default_resolution=(1024, 1024), # 默认分辨率
default_steps=20, # 默认步数
max_concurrent_tasks=1, # 最大并发数
batch_size=1 # 批次大小
)OutputConfig(
base_directory="./output", # 输出根目录
organize_by="date", # 组织方式: date/subject/style
save_metadata=True, # 保存元数据
generate_gallery=True # 生成画廊页面
)# 从一个主题生成多个变体
task_ids = processor.create_batch_from_subject(
subject="春天的樱花树下,阳光透过花瓣",
variation_count=20,
workflow_type="txt2img"
)# 批量处理多个不同提示词
prompts = [
"夜晚的城市街道,霓虹灯闪烁",
"海边的灯塔,暴风雨前的宁静",
"山顶的古老寺庙,晨雾缭绕"
]
task_ids = processor.create_batch_from_prompts(
prompts=prompts,
workflow_type="txt2img"
)# 生成所有可能的主题和风格组合
subjects = ["森林小屋", "城市街道", "海边灯塔"]
styles = ["写实主义", "动漫风格", "水彩画"]
task_ids = processor.create_exhaustive_batch(
subjects=subjects,
styles=styles,
max_combinations=50,
workflow_type="txt2img"
)# 设置进度回调
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() # 停止处理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'])}")编辑 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: "完整描述模板"generator = PromptGenerator()
# 短主题 -> 元素组合
prompts1 = generator.generate_variations("森林小屋", variation_count=10)
# 完整描述 -> 增强变体
prompts2 = generator.generate_variations(
"春天的樱花树下,一位少女在读书,阳光透过花瓣洒在她身上",
variation_count=5
)- 权重: 控制元素选择概率(0.0-1.0)
- 冲突: 避免不兼容元素组合
- 标签: 用于分类和筛选
每个工作流包含两个文件:
workflows/txt2img/
├── config.yaml # 工作流配置
└── txt2img.json # ComfyUI工作流JSON
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"]系统会自动将任务参数映射到ComfyUI节点:
# 任务数据
task_data = {
'prompt': "森林小屋,冬天雪景",
'steps': 25,
'cfg_scale': 7.5
}
# 自动映射到工作流
workflow = workflow_manager.create_workflow_from_task("txt2img", task_data)系统使用双存储模式确保数据安全:
- 高性能查询和统计
- 事务支持和数据完整性
- 位置:
data/database/tasks.db
- 人类可读的备份格式
- 便于数据迁移和外部处理
- 位置:
output/metadata/
output/
├── 20250908_143022_batch_森林小屋/ # 批次目录
│ ├── task_001_completed.png # 生成图片
│ ├── task_002_completed.png
│ └── metadata/
│ ├── task_001.json # 任务元数据
│ └── task_002.json
└── metadata/
└── batch_20250908_143022.json # 批次元数据
每个任务的元数据包含:
{
"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
}# 获取统计信息
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")HTML画廊是一个现代化的Web界面,用于浏览、管理和分析生成的图片。
核心特性:
- 📱 响应式设计: 支持桌面、平板、手机
- 🔍 多维筛选: 日期、状态、质量、标签、提示词搜索
- ⭐ 评分收藏: 5星评分系统,收藏夹管理
- 📊 实时统计: 成功率、质量分布、数量统计
- 🎨 多种布局: 网格、列表、瀑布流视图
- 📥 批量操作: 全选、导出、删除
生成的画廊文件位于: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顶部导航栏:
- 系统标题和版本信息
- 实时统计数据(总图片数、已选择、成功率)
左侧控制面板:
- 搜索框:支持提示词关键词搜索
- 筛选选项:日期范围、任务状态、质量评分、标签
- 排序方式:时间、质量、名称排序
- 批量操作:全选、清空、导出、删除
- 收藏夹管理
- 统计信息卡片
主要画廊区域:
- 工具栏:视图切换、图片大小调节
- 图片网格:响应式布局展示
- 加载更多按钮:分页加载大量图片
- 无结果提示
// 搜索框支持关键词和短语
"森林小屋" // 精确匹配
"森林 AND 小屋" // 包含两个关键词
"写实 OR 动漫" // 包含任一关键词// 组合筛选示例
- 日期范围: 2025-09-01 到 2025-09-09
- 任务状态: ✓已完成 ✗失败
- 质量评分: ≥ 0.7
- 标签: 风景, 建筑
- 排序: 质量最高// 在图片详情模态框中添加标签
常用标签: 精品, 客户展示, 测试图, 废弃, 需修改
自定义标签: 春天, 城市, 人物肖像, 抽象艺术点击任意图片打开详情面板,包含:
- 基本信息: 任务ID、创建时间、生成时间、质量评分、文件大小、分辨率
- 提示词: 完整的生成提示词内容
- 标签系统: 查看和编辑图片标签
- 工作流参数: 查看生成参数配置
// 评分系统
⭐⭐⭐⭐⭐ 5星评分,支持点击评分
// 操作按钮
❤️ 收藏/取消收藏
📥 下载原图
📋 复制提示词到剪贴板// 选择方式
1. 单击图片左上角复选框
2. 使用Ctrl/Cmd + 点击多选
3. 使用"全选"按钮
4. 框选区域(计划功能)// 可用操作
📤 批量导出: 下载选中图片的ZIP文件
🗑️ 批量删除: 移除选中图片(谨慎使用)
🏷️ 批量标签: 为选中图片添加相同标签
⭐ 批量评分: 为选中图片设置相同评分画廊支持多种视觉主题:
/* 在 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 // 启用动画
};智能数据分析系统帮助用户深入理解提示词性能,优化生成策略。
核心分析模块:
- 提示词分析器: 元素成功率、时间趋势、相关性分析
- 推荐引擎: 元素组合推荐、协同效应识别、反模式检测
- 报告生成器: 交互式HTML报告、数据可视化
- 迭代优化器: 基于历史数据的智能提示词生成
# 分析所有历史数据
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生成的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天成功率趋势图
- 每日质量评分变化
- 生成速度趋势分析
1. 元素推荐
# 基于高效元素的建议
建议类型: element_recommendation
建议内容: 推荐使用高效元素 'masterpiece'
理由: 成功率 94.5%,平均质量 0.89
优先级: high2. 协同效应建议
# 基于元素协同的建议
建议类型: synergy_recommendation
建议内容: 组合使用 'portrait' 与 ['anime', 'detailed']
理由: 协同效应强度 0.87,质量提升 0.15
优先级: medium3. 反模式警告
# 基于冲突检测的建议
建议类型: anti_pattern_warning
建议内容: 避免同时使用 ['realistic', 'anime style']
理由: 检测到冲突模式,负面影响 0.76
优先级: high# 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_2from 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}")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 # 大量常规任务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)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}秒")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']}")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"A: 激活虚拟环境并安装依赖
venv\Scripts\activate
pip install -r requirements.txtA: 检查ComfyUI工作流和超时设置
# 调整超时时间
processor.task_executor.task_timeout = 600 # 10分钟
# 检查工作流有效性
workflow_data = processor.workflow_manager.validate_workflow("txt2img")
print(f"工作流有效: {workflow_data is not None}")A: 检查ComfyUI输出目录设置
# 检查默认输出目录
comfyui_output = Path("D:/LM/ComfyUI/output")
print(f"输出目录存在: {comfyui_output.exists()}")
print(f"最近文件: {sorted(comfyui_output.glob('*.png'))[-5:]}")A: 优化并发设置和批次延迟
# 增加并发数(小心显存)
processor.max_concurrent_tasks = 2
# 减少批次延迟
processor.batch_delay = 1.0
# 禁用详细日志
logging.getLogger().setLevel(logging.WARNING)A: 清理历史数据和限制缓存
# 清理进度历史
processor.progress_monitor.clear_history(keep_recent=50)
# 清理已完成任务
processor.task_queue.clear_completed_tasks()
# 手动垃圾回收
import gc
gc.collect()- 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
)# 在 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]# 大任务分成小批次
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 # 默认优先级
)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)如果遇到问题,请按以下顺序检查:
-
基础验证
# 运行系统测试 python simple_test.py # 检查分析系统 python test_analysis_system.py
-
配置检查
# 验证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()}")
-
服务状态
# 检查ComfyUI服务 curl http://127.0.0.1:8188/system_stats # 检查API响应 curl http://127.0.0.1:8188/queue
-
数据完整性
# 检查数据库 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 # 分析系统测试
- ✅ HTML画廊系统: 响应式界面、多维筛选、评分收藏
- ✅ 智能分析系统: 提示词分析、元素推荐、迭代优化
- ✅ 命令行工具: 完整的CLI界面,支持各种分析操作
- ✅ 系统集成: 所有模块完全集成,产品化完成
- ✅ 批量处理系统: 端到端流程、实时监控
- ✅ 工作流管理: 动态配置、参数映射
- ✅ 结果管理: 双存储模式、统计分析
- ✅ 提示词生成器: 智能组合、模板系统
- ✅ ComfyUI集成: 自动启动、稳健连接
# 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.py → start output/gallery.html → python analysis_cli.py dashboard 🎉