Skip to content

lvheguo5-hub/git

Repository files navigation

图片描述生成工具

一个基于Tkinter的独立图片描述生成工具,支持批量处理多种图片格式。

功能特点

  • 批量处理:支持单张或文件夹批量导入图片
  • 实时预览:左侧显示缩略图预览
  • 多种模型:支持本地测试、Hugging Face免费模型
  • 风格选择:简洁、详细、场景化三种描述风格
  • 进度显示:实时显示处理进度(如:3/10 处理中)
  • 结果展示:图文并茂的标签页展示
  • 编辑功能:支持编辑已生成的描述
  • 导出功能:支持导出为TXT或JSON格式
  • 复制功能:一键复制描述到剪贴板

界面布局

┌─────────────────────────────────────────────────────────┐
│                    图片描述生成工具                        │
├─────────────────────┬───────────────────────────────────┤
│    控制面板         │          生成结果                   │
│  ┌─────────────┐   │                                   │
│  │ 图片上传     │   │  ┌─────────────────────────────┐  │
│  │ [选择图片]   │   │  │                             │  │
│  │ [选择文件夹] │   │  │      图片显示区域            │  │
│  │ [清空]       │   │  │                             │  │
│  └─────────────┘   │  └─────────────────────────────┘  │
│                     │                                   │
│  ┌─────────────┐   │  ┌─────────────────────────────┐  │
│  │ 图片预览     │   │  │ 生成的描述:                 │  │
│  │ [缩略图1]    │   │  │ ┌─────────────────────────┐ │  │
│  │ [缩略图2]    │   │  │ │                         │ │  │
│  │ ...         │   │  │ │    可编辑文本区域        │ │  │
│  └─────────────┘   │  │ │                         │ │  │
│                     │  │ └─────────────────────────┘ │  │
│  ┌─────────────┐   │  │ [复制描述] [编辑描述]       │  │
│  │ 模型选择     │   │  └─────────────────────────────┘  │
│  │ [下拉选择]   │   │                                   │
│  └─────────────┘   │                                   │
│                     │    ── 标签页分隔 ──              │
│  ┌─────────────┐   │                                   │
│  │ 描述风格     │   │  ┌─────────────────────────────┐  │
│  │ ○ 简洁      │   │  │           ...               │  │
│  │ ○ 详细      │   │  └─────────────────────────────┘  │
│  │ ○ 场景化    │   │                                   │
│  └─────────────┘   └───────────────────────────────────┤
│                     │                                   │
│  [生成描述]         │                                   │
│  ██████████████     │                                   │
│  处理中: 3/10      │                                   │
└─────────────────────┴───────────────────────────────────┤
│              [导出所有描述] [复制当前描述]                │
└─────────────────────────────────────────────────────────┘

使用方法

1. 安装依赖

pip3 install pillow requests

2. 运行程序

python3 image_caption_tool_simple.py

3. 操作步骤

  1. 上传图片

    • 点击"选择图片"选择单张或多张图片
    • 或点击"选择文件夹"批量导入文件夹中的所有图片
    • 支持的格式:JPG, JPEG, PNG, BMP, GIF
  2. 选择模型

    • 本地测试模式:无需网络,使用模拟数据
    • Hugging Face BLIP:需要网络连接,使用免费API
  3. 选择风格

    • 简洁:50字以内的主要描述
    • 详细:150字以内的详细描述
    • 场景化:100字以内的场景化描述
  4. 生成描述

    • 点击"生成描述"开始处理
    • 进度条显示处理进度
    • 结果在右侧标签页中显示
  5. 编辑和导出

    • 可以直接编辑生成的描述
    • 点击"复制描述"复制到剪贴板
    • 点击"导出所有描述"保存为文件

文件说明

  • image_caption_tool.py - 完整版本(需要aiohttp等额外依赖)
  • image_caption_tool_simple.py - 简化版本(仅需pillow和requests)
  • requirements.txt - 完整版本的依赖列表

代码结构

ImageDescription (数据类)
    └─ 存储图片描述信息
ImageCaptionGenerator (生成器)
    └─ 支持多种模型和风格
ImageCaptionApp (GUI应用)
    └─ Tkinter界面实现

注意事项

  1. 首次使用:建议先使用"本地测试模式"熟悉功能
  2. 网络连接:使用Hugging Face模型需要稳定的网络连接
  3. 图片大小:过大的图片会自动缩放以适应显示
  4. 批量处理:大量图片处理时请耐心等待

扩展功能

可以轻松扩展以支持:

  • 更多AI模型(如OpenAI CLIP、百度AI等)
  • 更多描述风格
  • 图片批量重命名
  • 描述翻译功能
  • 图片分类功能

错误处理

程序包含完善的错误处理机制:

  • API调用失败时自动重试(最多3次)
  • 网络超时处理
  • 图片加载失败处理
  • 详细的错误提示

版本历史

  • v1.0 - 初始版本,支持基本功能
  • v1.1 - 添加进度显示和错误重试机制

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages