# Image_Super **Repository Path**: jinhuidong/Image_Super ## Basic Information - **Project Name**: Image_Super - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-09 - **Last Updated**: 2025-11-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于PASD的图像超分辨率系统 - README文档 ## 一、项目简介 本项目是一款基于 **Streamlit** 框架开发的Web端图像超分辨率工具,核心采用ModelScope社区的`PASD_v2`图像超分辨率模型,支持手动输入提示词与自动生成提示词两种模式,可灵活配置超分辨率倍数,同时提供历史交互记录展示与生成图像下载功能,适用于需要快速提升图像分辨率的场景(如照片优化、细节增强等)。 ## 二、项目结构 ``` Image_super/ ├─ Image_super/ # 核心代码目录 │ ├─ app.py # 前端UI与交互逻辑(Streamlit入口) │ ├─ model.py # PASD超分辨率模型调用逻辑 │ ├─ get_prompt.py # 自动提示词生成逻辑(基于图像描述模型) │ ├─ img.png # 测试用示例图像(可选) │ └─ result.png # 模型默认输出图像路径(可配置) └─ README.md # 项目说明文档 ``` ## 三、核心依赖 项目依赖Python环境(建议3.8-3.10版本),需安装以下核心库: | 依赖库 | 用途说明 | |-----------------------|-----------------------------------------| | streamlit | 快速构建Web交互界面 | | modelscope | 调用PASD超分辨率模型与自动提示词生成模型 | | opencv-python (cv2) | 图像读取与保存 | | torch | 模型运行依赖的深度学习框架 | | pillow (PIL) | 图像预处理(自动提示词生成模块用) | | requests | 网络请求(模型下载与交互用,按需安装) | **安装命令**: ```bash pip install streamlit modelscope opencv-python torch pillow requests ``` ## 四、功能说明 ### 1. 核心功能 | 功能模块 | 具体描述 | |-------------------------|--------------------------------------------------------------------------| | 图像上传与超分 | 支持PNG/JPG/JPEG格式图像上传,可配置超分辨率倍数(默认2倍,步长1) | | 提示词灵活配置 | - 手动模式:用户自定义提示词描述图像细节
- 自动模式:模型自动生成图像描述作为提示词 | | 历史交互记录 | 保存用户上传的图像/文本与模型生成的超分图像,页面刷新后不丢失 | | 生成图像下载 | 支持将当前超分结果以JPEG格式下载到本地 | | 历史记录清空 | 侧边栏提供“清空历史信息”按钮,一键重置交互记录 | ### 2. 关键模块逻辑 #### (1)前端交互(app.py) - **会话状态管理**:通过`st.session_state`存储历史记录(`history`)、提示词(`prompts`)、超分倍数(`upscale`)、自动提示词开关(`auto_prompts`)等关键参数,确保页面刷新后状态不丢失。 - **文件处理**:使用`tempfile`创建临时文件存储用户上传的图像,避免占用永久存储空间,处理完成后自动删除临时文件。 - **交互流程**: 1. 用户上传图像/输入文本 → 存储到历史记录 2. 模型根据配置(手动/自动提示词、超分倍数)处理图像 3. 展示超分结果 → 支持下载 → 更新历史记录 #### (2)超分辨率模型(model.py) 核心调用ModelScope的`PASD_v2_image_super_resolutions`模型,支持以下参数配置: | 参数名 | 类型 | 默认值 | 说明 | |---------------------|--------|--------------|----------------------------------------------------------------------| | input_location | str | ./img.png | 输入图像路径 | | prompt | str | "" | 提示词(为空时仅基于输入图像超分,不为空时结合提示词优化细节) | | output_image_path | str | result.png | 超分后图像保存路径 | | upscale | int | 5 | 超分辨率倍数(可通过前端UI调整,优先级高于默认值) | | fidelity_scale_fg | float | 1.0 | 前景保真度系数(控制生成细节与原图的一致性) | | fidelity_scale_bg | float | 1.0 | 背景保真度系数(同上,针对背景区域) | **模型输出**:返回超分后图像的保存路径,便于前端展示与下载。 #### (3)自动提示词生成(get_prompt.py) 基于ModelScope的`multi-modal_gemm-vit-large-patch14`模型,对输入图像进行自动描述生成: 1. 读取输入图像路径,通过`PIL.Image`加载图像 2. 初始化图像描述模型与pipeline 3. 调用模型生成图像的自然语言描述(如“一只黑色的猫坐在沙发上”) 4. 返回生成的描述作为超分模型的提示词 ## 五、快速启动 1. **进入项目目录**: ```bash cd F:\Image_super\Image_super ``` 2. **启动Streamlit服务**: ```bash streamlit run app.py ``` 3. **访问Web界面**: 命令执行后,终端会输出本地访问地址(默认`http://localhost:8501`),打开浏览器访问即可使用。 ## 六、使用步骤 1. **配置超分参数(侧边栏)**: - (可选)输入手动提示词(如“高清风景照,蓝天绿树,细节清晰”) - 勾选“是否自动生成提示词”(无需手动输入时启用) - 选择超分辨率倍数(如2倍、4倍,数值越大图像尺寸越大) 2. **上传图像**: - 在页面底部输入框左侧点击“浏览文件”,选择1张或多张PNG/JPG/JPEG图像 - 点击“发送”按钮,系统自动处理图像 3. **查看结果与下载**: - 模型处理完成后,页面会展示超分后的图像 - 若启用自动提示词,会同步显示模型生成的提示词 - 侧边栏点击“📥 下载当前显示的图片”,可将超分结果保存到本地 4. **管理历史记录**: - 页面会自动展示所有历史交互(用户上传的图像/文本、模型生成的超分图像) - 侧边栏点击“清空历史信息”,可删除所有历史记录 ## 七、注意事项 1. **模型下载**:首次运行时,ModelScope会自动下载`PASD_v2`与提示词生成模型(约数GB),需确保网络通畅,后续运行无需重复下载。 2. **超分倍数**:超分倍数越大,图像分辨率越高,但处理时间越长,建议根据实际需求选择(2-4倍为常用范围)。 3. **提示词优化**:若超分效果不佳,可手动输入更详细的提示词(如“人像照片,皮肤细腻,发丝清晰,光线自然”),帮助模型优化细节。 4. **临时文件**:用户上传的图像会以临时文件形式处理,处理完成后自动删除,无需担心隐私泄露。 5. **错误处理**:若出现“模型加载失败”“图像格式错误”等提示,可检查: - Python环境与依赖库版本是否匹配 - 输入图像格式是否为PNG/JPG/JPEG - 网络是否正常(确保模型能正常下载) ## 八、测试示例 1. 准备一张测试图像(如`img.png`),放置在`Image_super/Image_super`目录下。 2. 启动Streamlit服务,勾选“是否自动生成提示词”,选择超分倍数为2。 3. 上传测试图像,等待模型处理完成。 4. 查看超分结果,确认图像细节(如边缘、纹理)是否得到增强,同时可下载结果图像。