一个基于Tkinter的独立图片描述生成工具,支持批量处理多种图片格式。
- ✅ 批量处理:支持单张或文件夹批量导入图片
- ✅ 实时预览:左侧显示缩略图预览
- ✅ 多种模型:支持本地测试、Hugging Face免费模型
- ✅ 风格选择:简洁、详细、场景化三种描述风格
- ✅ 进度显示:实时显示处理进度(如:3/10 处理中)
- ✅ 结果展示:图文并茂的标签页展示
- ✅ 编辑功能:支持编辑已生成的描述
- ✅ 导出功能:支持导出为TXT或JSON格式
- ✅ 复制功能:一键复制描述到剪贴板
┌─────────────────────────────────────────────────────────┐
│ 图片描述生成工具 │
├─────────────────────┬───────────────────────────────────┤
│ 控制面板 │ 生成结果 │
│ ┌─────────────┐ │ │
│ │ 图片上传 │ │ ┌─────────────────────────────┐ │
│ │ [选择图片] │ │ │ │ │
│ │ [选择文件夹] │ │ │ 图片显示区域 │ │
│ │ [清空] │ │ │ │ │
│ └─────────────┘ │ └─────────────────────────────┘ │
│ │ │
│ ┌─────────────┐ │ ┌─────────────────────────────┐ │
│ │ 图片预览 │ │ │ 生成的描述: │ │
│ │ [缩略图1] │ │ │ ┌─────────────────────────┐ │ │
│ │ [缩略图2] │ │ │ │ │ │ │
│ │ ... │ │ │ │ 可编辑文本区域 │ │ │
│ └─────────────┘ │ │ │ │ │ │
│ │ │ └─────────────────────────┘ │ │
│ ┌─────────────┐ │ │ [复制描述] [编辑描述] │ │
│ │ 模型选择 │ │ └─────────────────────────────┘ │
│ │ [下拉选择] │ │ │
│ └─────────────┘ │ │
│ │ ── 标签页分隔 ── │
│ ┌─────────────┐ │ │
│ │ 描述风格 │ │ ┌─────────────────────────────┐ │
│ │ ○ 简洁 │ │ │ ... │ │
│ │ ○ 详细 │ │ └─────────────────────────────┘ │
│ │ ○ 场景化 │ │ │
│ └─────────────┘ └───────────────────────────────────┤
│ │ │
│ [生成描述] │ │
│ ██████████████ │ │
│ 处理中: 3/10 │ │
└─────────────────────┴───────────────────────────────────┤
│ [导出所有描述] [复制当前描述] │
└─────────────────────────────────────────────────────────┘
pip3 install pillow requests
python3 image_caption_tool_simple.py
-
上传图片
- 点击"选择图片"选择单张或多张图片
- 或点击"选择文件夹"批量导入文件夹中的所有图片
- 支持的格式:JPG, JPEG, PNG, BMP, GIF
-
选择模型
- 本地测试模式:无需网络,使用模拟数据
- Hugging Face BLIP:需要网络连接,使用免费API
-
选择风格
- 简洁:50字以内的主要描述
- 详细:150字以内的详细描述
- 场景化:100字以内的场景化描述
-
生成描述
- 点击"生成描述"开始处理
- 进度条显示处理进度
- 结果在右侧标签页中显示
-
编辑和导出
- 可以直接编辑生成的描述
- 点击"复制描述"复制到剪贴板
- 点击"导出所有描述"保存为文件
image_caption_tool.py
- 完整版本(需要aiohttp等额外依赖)image_caption_tool_simple.py
- 简化版本(仅需pillow和requests)requirements.txt
- 完整版本的依赖列表
ImageDescription (数据类)
└─ 存储图片描述信息
ImageCaptionGenerator (生成器)
└─ 支持多种模型和风格
ImageCaptionApp (GUI应用)
└─ Tkinter界面实现
- 首次使用:建议先使用"本地测试模式"熟悉功能
- 网络连接:使用Hugging Face模型需要稳定的网络连接
- 图片大小:过大的图片会自动缩放以适应显示
- 批量处理:大量图片处理时请耐心等待
可以轻松扩展以支持:
- 更多AI模型(如OpenAI CLIP、百度AI等)
- 更多描述风格
- 图片批量重命名
- 描述翻译功能
- 图片分类功能
程序包含完善的错误处理机制:
- API调用失败时自动重试(最多3次)
- 网络超时处理
- 图片加载失败处理
- 详细的错误提示
- v1.0 - 初始版本,支持基本功能
- v1.1 - 添加进度显示和错误重试机制