File size: 7,826 Bytes
3ddc42e
e5f38d9
3ddc42e
 
 
 
42f1679
3ddc42e
 
 
42f1679
3ddc42e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
---
title: Qwen3 VL Image Description Generator
emoji: 🏆
colorFrom: blue
colorTo: gray
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
pinned: false
license: apache-2.0
short_description: We use the full power of Qwen-vl to create image description
---

# 🖼️ Генератор описаний изображений Qwen VL

Приложение для автоматической генерации описаний изображений с использованием моделей Qwen Vision Language (VL). Идеально подходит для создания описаний товаров для интернет-магазинов, каталогов и маркетплейсов.

## ✨ Возможности

- **Одиночная обработка**: Загрузите одно изображение и получите описание
- **Пакетная обработка**: Обработайте несколько изображений одновременно
- **Выбор моделей**: Поддержка моделей Qwen2-VL различных размеров
- **Расширенные параметры**:
  - Макс. количество новых токенов (1-4096)
  - Температура (0.1-2.0)
  - Top-p nucleus sampling (0.05-1.0)
  - Top-k (1-1000)
  - Seed для воспроизводимости результатов
- **Современный UI**: Интуитивный веб-интерфейс на базе Gradio

## 📋 Требования

- Python 3.8 или выше
- CUDA-совместимая GPU (рекомендуется, но не обязательно)
- Минимум 8GB RAM (16GB+ рекомендуется для больших моделей)

## 🚀 Установка

1. **Клонируйте репозиторий или создайте директорию проекта**:
```bash
mkdir qwen-vl-app
cd qwen-vl-app
```

2. **Создайте виртуальное окружение**:
```bash
python -m venv venv
```

3. **Активируйте виртуальное окружение**:
   - Windows:
     ```bash
     venv\Scripts\activate
     ```
   - Linux/Mac:
     ```bash
     source venv/bin/activate
     ```

4. **Установите зависимости**:
```bash
pip install -r requirements.txt
```

## 💻 Использование

### Запуск приложения

```bash
python app.py
```

Приложение запустится на `http://localhost:7860`

### Одиночная обработка

1. Перейдите на вкладку "📄 Одиночная обработка"
2. Загрузите изображение
3. Введите промт (например: "Создать описание тарелки арт:123 для онлайн магазина")
4. При необходимости настройте расширенные параметры
5. Нажмите "🚀 Генерировать описание"

### Пакетная обработка

1. Перейдите на вкладку "📚 Пакетная обработка"
2. Загрузите несколько изображений
3. Введите промты:
   - **Один промт для всех**: Введите один промт, он будет применен ко всем изображениям
   - **Индивидуальные промты**: Введите по одному промту на строку для каждого изображения
4. Нажмите "🚀 Обработать пакет"

## 🎯 Примеры промтов

- "Создать описание тарелки арт:123 для онлайн магазина"
- "Описать блюдо для меню ресторана с указанием ингредиентов"
- "Создать привлекательное описание продукта для маркетплейса"
- "Детально описать изображение для каталога товаров"
- "Написать SEO-оптимизированное описание товара"

## ⚙️ Параметры генерации

### Макс. количество токенов (1-4096)
Определяет максимальную длину генерируемого текста. Больше токенов = более длинное описание.

### Температура (0.1-2.0)
Контролирует "креативность" модели:
- **Низкая (0.1-0.5)**: Более предсказуемые и консервативные ответы
- **Средняя (0.6-0.8)**: Баланс между креативностью и точностью
- **Высокая (0.9-2.0)**: Более креативные и разнообразные ответы

### Top-p (0.05-1.0)
Nucleus sampling - ограничивает выбор токенов по кумулятивной вероятности.

### Top-k (1-1000)
Ограничивает выбор только k наиболее вероятными токенами.

### Seed
Для воспроизводимости результатов. Используйте одинаковый seed для получения идентичных результатов.

## 🤖 Доступные модели

- **Qwen/Qwen2-VL-2B-Instruct**: Легкая модель, быстрая генерация
- **Qwen/Qwen2-VL-8B-Instruct**: Более мощная модель с лучшим качеством

## 🔧 Логика работы с моделями

Приложение использует умную систему управления моделями:
- Модель загружается только один раз при первом использовании
- При переключении модели старая модель выгружается из памяти
- Одновременно в памяти находится только одна модель
- Это оптимизирует использование GPU/RAM

## 📝 Структура проекта

```
qwen-vl-app/
├── app.py              # Основной файл приложения
├── requirements.txt    # Зависимости Python
└── README.md          # Документация
```

## 🐛 Устранение неполадок

### Ошибка CUDA out of memory
- Используйте модель меньшего размера (2B вместо 7B)
- Уменьшите max_new_tokens
- Закройте другие приложения, использующие GPU

### Медленная генерация
- Убедитесь, что используется GPU (проверьте вывод при запуске)
- Используйте модель меньшего размера
- Уменьшите разрешение изображений

### Модель не загружается
- Проверьте подключение к интернету (модели загружаются из HuggingFace)
- Убедитесь, что достаточно места на диске
- Проверьте, что установлены все зависимости

## 📄 Лицензия

Этот проект использует модели Qwen, которые распространяются под лицензией Apache 2.0.

## 🤝 Поддержка

При возникновении проблем или вопросов создайте issue в репозитории проекта.

---

**Примечание**: Первый запуск может занять время, так как модели будут загружены из HuggingFace Hub.