---
title: Img-ZIP
canonical_url: "https://www.modelscope.cn/models/ericsjq/Img-ZIP"
md_url: "https://www.modelscope.cn/models/ericsjq/Img-ZIP.md"
repository: ericsjq/Img-ZIP
chinese_name: "芥象"
last_updated: 2025-09-02
pipeline_tag: multi-modal-embedding
tasks:
  - multi-modal-embedding
downloads: 19
stars: 2
---

# Img-ZIP

> Img-ZIP - ericsjq 在 ModelScope 开源的模型。芥象（Img-ZIP）是一种基于深度学习图像超压缩模型，可将任意分辨率的图像进行有损压缩，压缩后体积仅为原图未压缩体积的1.04%或更低。该种模型可以用于极低网络带宽下的低质量图像数据传输，也可用于提取图像特征映射至token，从而使任何语言模型具有非原生的多模态视觉能力。

- **Repository**: ericsjq/Img-ZIP
- **Tasks**: multi-modal-embedding
- **Downloads**: 19
- **Stars**: 2
- **Last updated**: 2025-09-02

Source: https://www.modelscope.cn/models/ericsjq/Img-ZIP

---

# 芥象（Img-ZIP）图像超压缩模型

```
⚠️ 重要提示：  
由于本模型的任务类型特殊（特征压缩表征），不支持ModelScope Pipeline调用。  
请通过官方库进行调用：`pip install xiaothink`
```

---

### 模型描述
芥象（Img-ZIP）是基于深度学习的**分块式图像超压缩模型**，可将任意分辨率图像智能分割为80×80区块，将每块像素压缩为固定长度的整数序列（范围：-40~40）。在保持重建质量（PSNR>=30dB）的前提下：

 **对于100维版本：**
- **基础压缩率**：约1%（100维整数版本）
- **7z二次压缩后**：可达0.41%（100维版本）
- **极限压缩率**：16维版本压缩率≈0.15%（色彩还原能力减弱）

> **技术本质**：将视觉信息转换为为离散符号表征，实现"芥子纳须弥"级压缩效果

---

### 模型测评结果

** 经过测试，JPG与WEBP压缩算法经过7z二次压缩后文件无法再次缩小，所以对比中不添加 JPG+7z与WEBP+7z **

![结果1](same_quality_compression_ratios.png)
![结果2](same_quality_psnr_comparison.png)
![结果3](same_quality_ssim_verification.png)


### 模型命名规范
```markdown
best_{结构版本}_{压缩出的数值个数}c.keras
```
- **版本说明**：
  - `pro2/pro2.1/pro2.2`：漫画优化（9万张漫画训练）
  - `pro2.2_all`：通用优化（9万张漫画预训练+7k真实图像微调）
- **数值个数**：
  - 每80×80×3区块输出的整数数量
  - 值↑ → 质量↑ → 压缩率↓


---

### 可用模型列表
| 模型文件 | 区块维度 | 适用领域 | 特性 |
|----------|----------|----------|------|
| `best_pro2.2_16c.keras` | 16维 | 极低网络的黑白图像传输 | 极限压缩，输出接近黑白图像 |
| `best_pro2.2_36c.keras` | 36维 | 粗略漫画/简单图像的传输 | 平衡压缩率与质量 |
| `best_pro2.2_100c.keras` | 100维 | 漫画/插画的较高质量传输和用于微调纯语言模型添加视觉能力 | 相对较高保真漫画还原 |
| `best_pro2.2_all_100c.keras` | 100维 | **通用图像**的传输和用于微调纯语言模型添加视觉能力 | 真实场景色彩增强 |
| `best_pro2_64c.keras` | 64维 | 漫画 | Pro2架构基础版 |
| `best_pro2_96c.keras` | 96维 | 漫画 | Pro2架构高质量版 |

> 色彩还原能力：`pro2.2_all_100c` > `pro2.2_100c` > `pro2_96c`

---

### 使用限制
1. **仅支持Xiaothink库调用**（不兼容Transformers/HuggingFace）
2. 输出为整数数组（无Token映射接口）
3. 二次压缩需手动进行：`.npy → .7z`

---

### 调用方法

#### 1. 基础图像压缩
```python
# 注意，ImgZip的位置为：xiaothink.llm.img_zip.img_zip
from xiaothink.llm.img_zip.img_zip import ImgZip


# 初始化（选择100维通用版）
model = ImgZip(model_path="best_pro2.2_all_100c.keras")

# 兼容的旧版接口：压缩图像（自动分块）
compressed = model.compress_image(
    img_path="input.jpg",
    save_path="compressed_data"  # 生成.npy+.shape
)


# 新版接口：压缩图像
compressed = model.compress_image(
    img_path='input.jpg',
    patch=True,  # 是否使用分块处理
    save_path='result/compressed_img'  # 保存路径前缀（如果不传入该参数则默认直接返回压缩结果）
    ability=0.02,# v1.2.5新特性：设置自定义压缩率为0.02（当ability为0时代表不使用自定义压缩率），算法将计算并压缩至接近的大小（理论计算与实际大小存在误差）
)



# 解压图像
model.decompress_image(
    compressed_input="compressed_data",
    save_path="restored.jpg"
)
```

#### 2. 赋能纯文本LLM实现思路（伪代码）
```python
# 步骤1：压缩图像问答数据集
qa_pairs = []
for img_path, answer in dataset:
    # 获取整数数组 [a1, a2, ..., a100]
    tokens = model.compress_image(img_path)
    qa_pairs.append(f"IMAGE[{','.join(map(str, tokens))}] {answer}")

# 步骤2：映射为唯一Token（示例）
token_mapping = {f"IMG{i}": i for i in range(-40, 41)}
for tokens in qa_pairs:
    # 将数字序列替换为映射Token
    processed = re.sub(r"-?\d+", lambda m: token_mapping[int(float(m.group()))], tokens)

# 步骤3：微调文本LLM
train_llm_on_custom_dataset(processed_data)
```

#### 3. 视频流压缩（即将停止支持）
```python
# 压缩视频（1分钟1080P→约3MB）
model.compress_video(
    video_path="input.mp4",
    output_dir="compressed_video"
)

# 解压视频（保留原分辨率/帧率）
model.decompress_video(
    compressed_dir="compressed_video",
    output_path="restored.mp4"
)
```

---

### 最佳实践指南
| 场景 | 推荐模型 | 预期效果 |
|------|----------|----------|
| 边缘设备传输 | `pro2.2_36c` | 压缩为极少数据 |
| 多模态扩展 | `pro2.2_all_100c` | 最佳色彩还原 |
| 漫画资源库 | `pro2_96c` | 原画级细节 |
| 安防监控 | `pro2.2_all_100c`且较高自定义压缩率 | 人脸/车牌可识别 |

---

### 补充
1. **压缩率计算方法**：
   ```python
   原始体积 = 80*80*3 = 19,200字节
   100维压缩 = 100*4 = 400字节（32位整型）
   → 压缩率 = 400/19200 ≈ 2.08%
   → +7z压缩 → 可达0.41%
   ```
2. **色彩警告**：
   - 16维版本≈黑白
   - 36维以上基本支持全彩

> 注："芥象"名称取自佛典"芥子纳须弥"，喻小数据容大千图像

~~本算法目前存在 压缩率 和 质量不能自由设定 等缺陷，我们将在未来进一步优化改进。~~ -> 本算法目前已支持自定义压缩率（xiaothink库1.2.6版本及以上）！
