Spaces:
Running
Running
Upload 4 files
Browse files- INSTALACAO.md +369 -0
- MANUAL_DE_USO.md +287 -0
- app.log +28 -0
- requirements.txt +42 -0
INSTALACAO.md
ADDED
|
@@ -0,0 +1,369 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🛠️ Guia de Instalação - LoRA Trainer Funcional
|
| 2 |
+
|
| 3 |
+
## 📋 Pré-requisitos
|
| 4 |
+
|
| 5 |
+
### Sistema Operacional
|
| 6 |
+
- **Linux**: Ubuntu 20.04+ (recomendado)
|
| 7 |
+
- **Windows**: Windows 10/11 com WSL2
|
| 8 |
+
- **macOS**: macOS 12+ (limitado, sem GPU)
|
| 9 |
+
|
| 10 |
+
### Hardware
|
| 11 |
+
- **GPU**: NVIDIA com 6GB+ VRAM (obrigatório)
|
| 12 |
+
- **RAM**: 16GB+ (recomendado)
|
| 13 |
+
- **Armazenamento**: 20GB+ livres
|
| 14 |
+
- **CPU**: Qualquer CPU moderno
|
| 15 |
+
|
| 16 |
+
### Software
|
| 17 |
+
- **Python**: 3.8 a 3.11
|
| 18 |
+
- **CUDA**: 11.8 ou 12.1
|
| 19 |
+
- **Git**: Para clonar repositórios
|
| 20 |
+
|
| 21 |
+
## 🚀 Instalação Local
|
| 22 |
+
|
| 23 |
+
### Método 1: Instalação Completa
|
| 24 |
+
|
| 25 |
+
```bash
|
| 26 |
+
# 1. Clone o repositório
|
| 27 |
+
git clone <repository-url>
|
| 28 |
+
cd lora_trainer_hf
|
| 29 |
+
|
| 30 |
+
# 2. Crie ambiente virtual
|
| 31 |
+
python -m venv venv
|
| 32 |
+
source venv/bin/activate # Linux/Mac
|
| 33 |
+
# ou
|
| 34 |
+
venv\Scripts\activate # Windows
|
| 35 |
+
|
| 36 |
+
# 3. Instale dependências
|
| 37 |
+
pip install -r requirements.txt
|
| 38 |
+
|
| 39 |
+
# 4. Execute a aplicação
|
| 40 |
+
python app.py
|
| 41 |
+
```
|
| 42 |
+
|
| 43 |
+
### Método 2: Instalação com Conda
|
| 44 |
+
|
| 45 |
+
```bash
|
| 46 |
+
# 1. Crie ambiente conda
|
| 47 |
+
conda create -n lora_trainer python=3.10
|
| 48 |
+
conda activate lora_trainer
|
| 49 |
+
|
| 50 |
+
# 2. Instale PyTorch com CUDA
|
| 51 |
+
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
|
| 52 |
+
|
| 53 |
+
# 3. Clone e instale
|
| 54 |
+
git clone <repository-url>
|
| 55 |
+
cd lora_trainer_hf
|
| 56 |
+
pip install -r requirements.txt
|
| 57 |
+
|
| 58 |
+
# 4. Execute
|
| 59 |
+
python app.py
|
| 60 |
+
```
|
| 61 |
+
|
| 62 |
+
## 🐳 Instalação com Docker
|
| 63 |
+
|
| 64 |
+
### Dockerfile Incluído
|
| 65 |
+
|
| 66 |
+
```bash
|
| 67 |
+
# 1. Build da imagem
|
| 68 |
+
docker build -t lora-trainer .
|
| 69 |
+
|
| 70 |
+
# 2. Execute o container
|
| 71 |
+
docker run -p 7860:7860 --gpus all lora-trainer
|
| 72 |
+
```
|
| 73 |
+
|
| 74 |
+
### Docker Compose
|
| 75 |
+
|
| 76 |
+
```yaml
|
| 77 |
+
version: '3.8'
|
| 78 |
+
services:
|
| 79 |
+
lora-trainer:
|
| 80 |
+
build: .
|
| 81 |
+
ports:
|
| 82 |
+
- "7860:7860"
|
| 83 |
+
volumes:
|
| 84 |
+
- ./data:/tmp/lora_training
|
| 85 |
+
deploy:
|
| 86 |
+
resources:
|
| 87 |
+
reservations:
|
| 88 |
+
devices:
|
| 89 |
+
- driver: nvidia
|
| 90 |
+
count: 1
|
| 91 |
+
capabilities: [gpu]
|
| 92 |
+
```
|
| 93 |
+
|
| 94 |
+
## ☁️ Deploy no Hugging Face Spaces
|
| 95 |
+
|
| 96 |
+
### Configuração do Space
|
| 97 |
+
|
| 98 |
+
1. **Crie um novo Space**:
|
| 99 |
+
- Vá para [huggingface.co/new-space](https://huggingface.co/new-space)
|
| 100 |
+
- Escolha "Gradio" como SDK
|
| 101 |
+
- Selecione hardware com GPU
|
| 102 |
+
|
| 103 |
+
2. **Configure o Space**:
|
| 104 |
+
```yaml
|
| 105 |
+
# space_config.yml
|
| 106 |
+
title: LoRA Trainer Funcional
|
| 107 |
+
emoji: 🎨
|
| 108 |
+
colorFrom: blue
|
| 109 |
+
colorTo: purple
|
| 110 |
+
sdk: gradio
|
| 111 |
+
sdk_version: 4.0.0
|
| 112 |
+
app_file: app.py
|
| 113 |
+
pinned: false
|
| 114 |
+
hardware: t4-medium # ou a100-large
|
| 115 |
+
```
|
| 116 |
+
|
| 117 |
+
3. **Upload dos arquivos**:
|
| 118 |
+
- `app.py`
|
| 119 |
+
- `requirements.txt`
|
| 120 |
+
- `README.md`
|
| 121 |
+
- Pasta `sd-scripts/`
|
| 122 |
+
|
| 123 |
+
### Configuração de Hardware
|
| 124 |
+
|
| 125 |
+
| Hardware | VRAM | RAM | Recomendado Para |
|
| 126 |
+
|----------|------|-----|------------------|
|
| 127 |
+
| CPU Basic | 0GB | 16GB | Apenas teste |
|
| 128 |
+
| T4 Small | 16GB | 15GB | Projetos pequenos |
|
| 129 |
+
| T4 Medium | 16GB | 30GB | Projetos médios |
|
| 130 |
+
| A10G Small | 24GB | 30GB | Projetos grandes |
|
| 131 |
+
| A100 Large | 40GB | 80GB | Projetos profissionais |
|
| 132 |
+
|
| 133 |
+
## 🔧 Configuração de Dependências
|
| 134 |
+
|
| 135 |
+
### Dependências Principais
|
| 136 |
+
|
| 137 |
+
```txt
|
| 138 |
+
# Core ML
|
| 139 |
+
torch>=2.0.0
|
| 140 |
+
torchvision>=0.15.0
|
| 141 |
+
diffusers>=0.21.0
|
| 142 |
+
transformers>=4.25.0
|
| 143 |
+
accelerate>=0.20.0
|
| 144 |
+
|
| 145 |
+
# LoRA Training
|
| 146 |
+
safetensors>=0.3.0
|
| 147 |
+
huggingface-hub>=0.16.0
|
| 148 |
+
xformers>=0.0.20
|
| 149 |
+
bitsandbytes>=0.41.0
|
| 150 |
+
|
| 151 |
+
# Interface
|
| 152 |
+
gradio>=4.0.0
|
| 153 |
+
|
| 154 |
+
# Utilities
|
| 155 |
+
Pillow>=9.0.0
|
| 156 |
+
opencv-python>=4.7.0
|
| 157 |
+
numpy>=1.21.0
|
| 158 |
+
toml>=0.10.0
|
| 159 |
+
tqdm>=4.64.0
|
| 160 |
+
```
|
| 161 |
+
|
| 162 |
+
### Instalação Manual de Dependências
|
| 163 |
+
|
| 164 |
+
```bash
|
| 165 |
+
# PyTorch (ajuste para sua versão CUDA)
|
| 166 |
+
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
|
| 167 |
+
|
| 168 |
+
# Diffusers e Transformers
|
| 169 |
+
pip install diffusers transformers accelerate
|
| 170 |
+
|
| 171 |
+
# Otimização
|
| 172 |
+
pip install xformers bitsandbytes
|
| 173 |
+
|
| 174 |
+
# Interface
|
| 175 |
+
pip install gradio
|
| 176 |
+
|
| 177 |
+
# Utilitários
|
| 178 |
+
pip install safetensors huggingface-hub Pillow opencv-python numpy toml tqdm
|
| 179 |
+
```
|
| 180 |
+
|
| 181 |
+
## 🐛 Solução de Problemas de Instalação
|
| 182 |
+
|
| 183 |
+
### Erro: CUDA não encontrado
|
| 184 |
+
|
| 185 |
+
```bash
|
| 186 |
+
# Verifique instalação CUDA
|
| 187 |
+
nvidia-smi
|
| 188 |
+
nvcc --version
|
| 189 |
+
|
| 190 |
+
# Reinstale PyTorch com CUDA
|
| 191 |
+
pip uninstall torch torchvision torchaudio
|
| 192 |
+
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
|
| 193 |
+
```
|
| 194 |
+
|
| 195 |
+
### Erro: xFormers não compatível
|
| 196 |
+
|
| 197 |
+
```bash
|
| 198 |
+
# Instale versão específica
|
| 199 |
+
pip install xformers==0.0.20
|
| 200 |
+
|
| 201 |
+
# Ou compile do código fonte
|
| 202 |
+
pip install -U xformers --index-url https://download.pytorch.org/whl/cu118
|
| 203 |
+
```
|
| 204 |
+
|
| 205 |
+
### Erro: Memória insuficiente
|
| 206 |
+
|
| 207 |
+
```bash
|
| 208 |
+
# Aumente swap (Linux)
|
| 209 |
+
sudo fallocate -l 8G /swapfile
|
| 210 |
+
sudo chmod 600 /swapfile
|
| 211 |
+
sudo mkswap /swapfile
|
| 212 |
+
sudo swapon /swapfile
|
| 213 |
+
|
| 214 |
+
# Configure variáveis de ambiente
|
| 215 |
+
export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
|
| 216 |
+
```
|
| 217 |
+
|
| 218 |
+
### Erro: Dependências conflitantes
|
| 219 |
+
|
| 220 |
+
```bash
|
| 221 |
+
# Limpe cache pip
|
| 222 |
+
pip cache purge
|
| 223 |
+
|
| 224 |
+
# Crie ambiente limpo
|
| 225 |
+
python -m venv fresh_env
|
| 226 |
+
source fresh_env/bin/activate
|
| 227 |
+
pip install --upgrade pip
|
| 228 |
+
pip install -r requirements.txt
|
| 229 |
+
```
|
| 230 |
+
|
| 231 |
+
## 🔒 Configuração de Segurança
|
| 232 |
+
|
| 233 |
+
### Variáveis de Ambiente
|
| 234 |
+
|
| 235 |
+
```bash
|
| 236 |
+
# .env
|
| 237 |
+
HUGGINGFACE_TOKEN=your_token_here
|
| 238 |
+
WANDB_API_KEY=your_wandb_key
|
| 239 |
+
CUDA_VISIBLE_DEVICES=0
|
| 240 |
+
PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
|
| 241 |
+
```
|
| 242 |
+
|
| 243 |
+
### Limitações de Recursos
|
| 244 |
+
|
| 245 |
+
```python
|
| 246 |
+
# No app.py
|
| 247 |
+
import resource
|
| 248 |
+
|
| 249 |
+
# Limite de memória (8GB)
|
| 250 |
+
resource.setrlimit(resource.RLIMIT_AS, (8*1024*1024*1024, -1))
|
| 251 |
+
|
| 252 |
+
# Limite de processos
|
| 253 |
+
resource.setrlimit(resource.RLIMIT_NPROC, (100, -1))
|
| 254 |
+
```
|
| 255 |
+
|
| 256 |
+
## 📊 Verificação da Instalação
|
| 257 |
+
|
| 258 |
+
### Script de Teste
|
| 259 |
+
|
| 260 |
+
```python
|
| 261 |
+
# test_installation.py
|
| 262 |
+
import torch
|
| 263 |
+
import diffusers
|
| 264 |
+
import transformers
|
| 265 |
+
import gradio as gr
|
| 266 |
+
import safetensors
|
| 267 |
+
|
| 268 |
+
print("✅ Verificando instalação...")
|
| 269 |
+
print(f"Python: {sys.version}")
|
| 270 |
+
print(f"PyTorch: {torch.__version__}")
|
| 271 |
+
print(f"CUDA disponível: {torch.cuda.is_available()}")
|
| 272 |
+
print(f"GPU: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'Não disponível'}")
|
| 273 |
+
print(f"Diffusers: {diffusers.__version__}")
|
| 274 |
+
print(f"Transformers: {transformers.__version__}")
|
| 275 |
+
print(f"Gradio: {gr.__version__}")
|
| 276 |
+
print("✅ Instalação verificada!")
|
| 277 |
+
```
|
| 278 |
+
|
| 279 |
+
### Teste de GPU
|
| 280 |
+
|
| 281 |
+
```python
|
| 282 |
+
# test_gpu.py
|
| 283 |
+
import torch
|
| 284 |
+
|
| 285 |
+
if torch.cuda.is_available():
|
| 286 |
+
device = torch.device("cuda")
|
| 287 |
+
x = torch.randn(1000, 1000).to(device)
|
| 288 |
+
y = torch.randn(1000, 1000).to(device)
|
| 289 |
+
z = torch.mm(x, y)
|
| 290 |
+
print(f"✅ GPU funcionando: {torch.cuda.get_device_name(0)}")
|
| 291 |
+
print(f"VRAM total: {torch.cuda.get_device_properties(0).total_memory / 1024**3:.1f} GB")
|
| 292 |
+
print(f"VRAM livre: {torch.cuda.memory_reserved(0) / 1024**3:.1f} GB")
|
| 293 |
+
else:
|
| 294 |
+
print("❌ GPU não disponível")
|
| 295 |
+
```
|
| 296 |
+
|
| 297 |
+
## 🚀 Otimização de Performance
|
| 298 |
+
|
| 299 |
+
### Configurações de Sistema
|
| 300 |
+
|
| 301 |
+
```bash
|
| 302 |
+
# Aumentar limites de arquivo
|
| 303 |
+
echo "* soft nofile 65536" >> /etc/security/limits.conf
|
| 304 |
+
echo "* hard nofile 65536" >> /etc/security/limits.conf
|
| 305 |
+
|
| 306 |
+
# Otimizar scheduler
|
| 307 |
+
echo "performance" > /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
| 308 |
+
```
|
| 309 |
+
|
| 310 |
+
### Configurações PyTorch
|
| 311 |
+
|
| 312 |
+
```python
|
| 313 |
+
# No início do app.py
|
| 314 |
+
import torch
|
| 315 |
+
torch.backends.cudnn.benchmark = True
|
| 316 |
+
torch.backends.cuda.matmul.allow_tf32 = True
|
| 317 |
+
torch.backends.cudnn.allow_tf32 = True
|
| 318 |
+
```
|
| 319 |
+
|
| 320 |
+
## 📝 Logs e Monitoramento
|
| 321 |
+
|
| 322 |
+
### Configuração de Logs
|
| 323 |
+
|
| 324 |
+
```python
|
| 325 |
+
import logging
|
| 326 |
+
logging.basicConfig(
|
| 327 |
+
level=logging.INFO,
|
| 328 |
+
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
| 329 |
+
handlers=[
|
| 330 |
+
logging.FileHandler('lora_trainer.log'),
|
| 331 |
+
logging.StreamHandler()
|
| 332 |
+
]
|
| 333 |
+
)
|
| 334 |
+
```
|
| 335 |
+
|
| 336 |
+
### Monitoramento de Recursos
|
| 337 |
+
|
| 338 |
+
```bash
|
| 339 |
+
# Instalar htop e nvidia-ml-py
|
| 340 |
+
pip install nvidia-ml-py3 psutil
|
| 341 |
+
|
| 342 |
+
# Monitorar em tempo real
|
| 343 |
+
watch -n 1 nvidia-smi
|
| 344 |
+
```
|
| 345 |
+
|
| 346 |
+
## 🔄 Atualizações
|
| 347 |
+
|
| 348 |
+
### Atualizar Dependências
|
| 349 |
+
|
| 350 |
+
```bash
|
| 351 |
+
# Atualizar requirements
|
| 352 |
+
pip install --upgrade -r requirements.txt
|
| 353 |
+
|
| 354 |
+
# Atualizar kohya-ss
|
| 355 |
+
cd sd-scripts
|
| 356 |
+
git pull origin main
|
| 357 |
+
```
|
| 358 |
+
|
| 359 |
+
### Backup de Configurações
|
| 360 |
+
|
| 361 |
+
```bash
|
| 362 |
+
# Backup de modelos e configurações
|
| 363 |
+
tar -czf backup_$(date +%Y%m%d).tar.gz /tmp/lora_training/
|
| 364 |
+
```
|
| 365 |
+
|
| 366 |
+
---
|
| 367 |
+
|
| 368 |
+
**Nota**: Para suporte adicional, consulte a documentação oficial do kohya-ss e a comunidade Hugging Face.
|
| 369 |
+
|
MANUAL_DE_USO.md
ADDED
|
@@ -0,0 +1,287 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 📖 Manual de Uso - LoRA Trainer Funcional
|
| 2 |
+
|
| 3 |
+
## 🎯 Visão Geral
|
| 4 |
+
|
| 5 |
+
Este LoRA Trainer é uma ferramenta **100% funcional** baseada no kohya-ss sd-scripts que permite treinar modelos LoRA reais para Stable Diffusion. A ferramenta foi desenvolvida especificamente para funcionar no Hugging Face Spaces e oferece todas as funcionalidades necessárias para um treinamento profissional.
|
| 6 |
+
|
| 7 |
+
## 🚀 Início Rápido
|
| 8 |
+
|
| 9 |
+
### Passo 1: Instalação das Dependências
|
| 10 |
+
1. Acesse a aba "🔧 Instalação"
|
| 11 |
+
2. Clique em "📦 Instalar Dependências"
|
| 12 |
+
3. Aguarde a instalação completa (pode levar alguns minutos)
|
| 13 |
+
|
| 14 |
+
### Passo 2: Configuração do Projeto
|
| 15 |
+
1. Vá para a aba "📁 Configuração do Projeto"
|
| 16 |
+
2. Digite um nome único para seu projeto (ex: "meu_lora_anime")
|
| 17 |
+
3. Escolha um modelo base ou insira uma URL personalizada
|
| 18 |
+
4. Clique em "📥 Baixar Modelo"
|
| 19 |
+
|
| 20 |
+
### Passo 3: Preparação do Dataset
|
| 21 |
+
1. Organize suas imagens em uma pasta local
|
| 22 |
+
2. Para cada imagem, crie um arquivo .txt com o mesmo nome
|
| 23 |
+
3. Compacte tudo em um arquivo ZIP
|
| 24 |
+
4. Faça upload na seção "📊 Upload do Dataset"
|
| 25 |
+
5. Clique em "📊 Processar Dataset"
|
| 26 |
+
|
| 27 |
+
### Passo 4: Configuração dos Parâmetros
|
| 28 |
+
1. Acesse a aba "⚙️ Parâmetros de Treinamento"
|
| 29 |
+
2. Ajuste os parâmetros conforme sua necessidade
|
| 30 |
+
3. Use as configurações recomendadas como ponto de partida
|
| 31 |
+
|
| 32 |
+
### Passo 5: Treinamento
|
| 33 |
+
1. Vá para a aba "🚀 Treinamento"
|
| 34 |
+
2. Clique em "📝 Criar Configuração de Treinamento"
|
| 35 |
+
3. Clique em "🎯 Iniciar Treinamento"
|
| 36 |
+
4. Acompanhe o progresso em tempo real
|
| 37 |
+
|
| 38 |
+
### Passo 6: Download dos Resultados
|
| 39 |
+
1. Acesse a aba "📥 Download dos Resultados"
|
| 40 |
+
2. Clique em "🔄 Atualizar Lista de Arquivos"
|
| 41 |
+
3. Selecione e baixe seu LoRA treinado
|
| 42 |
+
|
| 43 |
+
## 📋 Requisitos do Sistema
|
| 44 |
+
|
| 45 |
+
### Mínimos
|
| 46 |
+
- **GPU**: NVIDIA com 6GB VRAM
|
| 47 |
+
- **RAM**: 8GB
|
| 48 |
+
- **Espaço**: 5GB livres
|
| 49 |
+
|
| 50 |
+
### Recomendados
|
| 51 |
+
- **GPU**: NVIDIA com 12GB+ VRAM
|
| 52 |
+
- **RAM**: 16GB+
|
| 53 |
+
- **Espaço**: 20GB+ livres
|
| 54 |
+
|
| 55 |
+
## 🎨 Preparação do Dataset
|
| 56 |
+
|
| 57 |
+
### Estrutura Recomendada
|
| 58 |
+
```
|
| 59 |
+
meu_dataset/
|
| 60 |
+
├── imagem001.jpg
|
| 61 |
+
├── imagem001.txt
|
| 62 |
+
├── imagem002.png
|
| 63 |
+
├── imagem002.txt
|
| 64 |
+
├── imagem003.webp
|
| 65 |
+
├── imagem003.txt
|
| 66 |
+
└── ...
|
| 67 |
+
```
|
| 68 |
+
|
| 69 |
+
### Formatos Suportados
|
| 70 |
+
- **Imagens**: JPG, PNG, WEBP, BMP, TIFF
|
| 71 |
+
- **Captions**: TXT (UTF-8)
|
| 72 |
+
|
| 73 |
+
### Exemplo de Caption
|
| 74 |
+
```
|
| 75 |
+
1girl, long hair, blue eyes, school uniform, smile, outdoors, cherry blossoms, anime style, high quality
|
| 76 |
+
```
|
| 77 |
+
|
| 78 |
+
### Dicas para Captions
|
| 79 |
+
- Use vírgulas para separar tags
|
| 80 |
+
- Coloque tags importantes no início
|
| 81 |
+
- Seja específico mas conciso
|
| 82 |
+
- Use tags consistentes em todo o dataset
|
| 83 |
+
|
| 84 |
+
## ⚙️ Configuração de Parâmetros
|
| 85 |
+
|
| 86 |
+
### Parâmetros Básicos
|
| 87 |
+
|
| 88 |
+
#### Resolução
|
| 89 |
+
- **512px**: Padrão, mais rápido, menor uso de memória
|
| 90 |
+
- **768px**: Melhor qualidade, moderado
|
| 91 |
+
- **1024px**: Máxima qualidade, mais lento
|
| 92 |
+
|
| 93 |
+
#### Batch Size
|
| 94 |
+
- **1**: Menor uso de memória, mais lento
|
| 95 |
+
- **2-4**: Equilibrado (recomendado)
|
| 96 |
+
- **8+**: Apenas para GPUs potentes
|
| 97 |
+
|
| 98 |
+
#### Épocas
|
| 99 |
+
- **5-10**: Para datasets grandes (50+ imagens)
|
| 100 |
+
- **10-20**: Para datasets médios (20-50 imagens)
|
| 101 |
+
- **20-30**: Para datasets pequenos (10-20 imagens)
|
| 102 |
+
|
| 103 |
+
### Parâmetros Avançados
|
| 104 |
+
|
| 105 |
+
#### Learning Rate
|
| 106 |
+
- **1e-3**: Muito alto, pode causar instabilidade
|
| 107 |
+
- **5e-4**: Padrão, bom para a maioria dos casos
|
| 108 |
+
- **1e-4**: Conservador, para datasets grandes
|
| 109 |
+
- **5e-5**: Muito baixo, treinamento lento
|
| 110 |
+
|
| 111 |
+
#### Network Dimension
|
| 112 |
+
- **8-16**: LoRAs pequenos, menos detalhes
|
| 113 |
+
- **32**: Padrão, bom equilíbrio
|
| 114 |
+
- **64-128**: Mais detalhes, arquivos maiores
|
| 115 |
+
|
| 116 |
+
#### Network Alpha
|
| 117 |
+
- Geralmente metade do Network Dimension
|
| 118 |
+
- Controla a força do LoRA
|
| 119 |
+
- Valores menores = efeito mais sutil
|
| 120 |
+
|
| 121 |
+
### Tipos de LoRA
|
| 122 |
+
|
| 123 |
+
#### LoRA Clássico
|
| 124 |
+
- Menor tamanho de arquivo
|
| 125 |
+
- Bom para uso geral
|
| 126 |
+
- Mais rápido para treinar
|
| 127 |
+
|
| 128 |
+
#### LoCon
|
| 129 |
+
- Melhor para estilos artísticos
|
| 130 |
+
- Mais camadas de aprendizado
|
| 131 |
+
- Arquivos maiores
|
| 132 |
+
|
| 133 |
+
## 🎯 Configurações por Tipo de Projeto
|
| 134 |
+
|
| 135 |
+
### Para Personagens/Pessoas
|
| 136 |
+
```
|
| 137 |
+
Imagens: 15-30 variadas
|
| 138 |
+
Network Dim: 32
|
| 139 |
+
Network Alpha: 16
|
| 140 |
+
Learning Rate: 1e-4
|
| 141 |
+
Épocas: 10-15
|
| 142 |
+
Batch Size: 2
|
| 143 |
+
```
|
| 144 |
+
|
| 145 |
+
### Para Estilos Artísticos
|
| 146 |
+
```
|
| 147 |
+
Imagens: 30-50 do estilo
|
| 148 |
+
Tipo: LoCon
|
| 149 |
+
Network Dim: 64
|
| 150 |
+
Network Alpha: 32
|
| 151 |
+
Learning Rate: 5e-5
|
| 152 |
+
Épocas: 15-25
|
| 153 |
+
Batch Size: 1-2
|
| 154 |
+
```
|
| 155 |
+
|
| 156 |
+
### Para Objetos/Conceitos
|
| 157 |
+
```
|
| 158 |
+
Imagens: 10-25
|
| 159 |
+
Network Dim: 16
|
| 160 |
+
Network Alpha: 8
|
| 161 |
+
Learning Rate: 5e-4
|
| 162 |
+
Épocas: 8-12
|
| 163 |
+
Batch Size: 2-4
|
| 164 |
+
```
|
| 165 |
+
|
| 166 |
+
## 🔧 Solução de Problemas
|
| 167 |
+
|
| 168 |
+
### Erro de Memória (CUDA OOM)
|
| 169 |
+
**Sintomas**: "CUDA out of memory"
|
| 170 |
+
**Soluções**:
|
| 171 |
+
- Reduza o batch size para 1
|
| 172 |
+
- Diminua a resolução para 512px
|
| 173 |
+
- Use mixed precision fp16
|
| 174 |
+
|
| 175 |
+
### Treinamento Muito Lento
|
| 176 |
+
**Sintomas**: Progresso muito lento
|
| 177 |
+
**Soluções**:
|
| 178 |
+
- Aumente o batch size (se possível)
|
| 179 |
+
- Use resolução menor
|
| 180 |
+
- Verifique se xFormers está ativo
|
| 181 |
+
|
| 182 |
+
### Resultados Ruins/Overfitting
|
| 183 |
+
**Sintomas**: LoRA não funciona ou muito forte
|
| 184 |
+
**Soluções**:
|
| 185 |
+
- Reduza o learning rate
|
| 186 |
+
- Diminua o número de épocas
|
| 187 |
+
- Use mais imagens variadas
|
| 188 |
+
- Ajuste network alpha
|
| 189 |
+
|
| 190 |
+
### Erro de Configuração
|
| 191 |
+
**Sintomas**: Falha ao criar configuração
|
| 192 |
+
**Soluções**:
|
| 193 |
+
- Verifique se o modelo foi baixado
|
| 194 |
+
- Confirme que o dataset foi processado
|
| 195 |
+
- Reinicie a aplicação
|
| 196 |
+
|
| 197 |
+
## 📊 Monitoramento do Treinamento
|
| 198 |
+
|
| 199 |
+
### Métricas Importantes
|
| 200 |
+
- **Loss**: Deve diminuir gradualmente
|
| 201 |
+
- **Learning Rate**: Varia conforme scheduler
|
| 202 |
+
- **Tempo por Época**: Depende do hardware
|
| 203 |
+
|
| 204 |
+
### Sinais de Bom Treinamento
|
| 205 |
+
- Loss diminui consistentemente
|
| 206 |
+
- Sem erros de memória
|
| 207 |
+
- Progresso estável
|
| 208 |
+
|
| 209 |
+
### Sinais de Problemas
|
| 210 |
+
- Loss oscila muito
|
| 211 |
+
- Erros frequentes
|
| 212 |
+
- Progresso muito lento
|
| 213 |
+
|
| 214 |
+
## 💾 Gerenciamento de Arquivos
|
| 215 |
+
|
| 216 |
+
### Estrutura de Saída
|
| 217 |
+
```
|
| 218 |
+
/tmp/lora_training/projects/meu_projeto/
|
| 219 |
+
├── dataset/ # Imagens processadas
|
| 220 |
+
├── output/ # LoRAs gerados
|
| 221 |
+
├── logs/ # Logs do treinamento
|
| 222 |
+
├── dataset_config.toml
|
| 223 |
+
└── training_config.toml
|
| 224 |
+
```
|
| 225 |
+
|
| 226 |
+
### Arquivos Gerados
|
| 227 |
+
- **projeto_epoch_0001.safetensors**: LoRA da época 1
|
| 228 |
+
- **projeto_epoch_0010.safetensors**: LoRA da época 10
|
| 229 |
+
- **logs/**: Logs detalhados do TensorBoard
|
| 230 |
+
|
| 231 |
+
## 🎨 Uso dos LoRAs Treinados
|
| 232 |
+
|
| 233 |
+
### No Automatic1111
|
| 234 |
+
1. Copie o arquivo .safetensors para `models/Lora/`
|
| 235 |
+
2. Use na prompt: `<lora:nome_do_arquivo:0.8>`
|
| 236 |
+
3. Ajuste o peso (0.1 a 1.5)
|
| 237 |
+
|
| 238 |
+
### No ComfyUI
|
| 239 |
+
1. Coloque o arquivo em `models/loras/`
|
| 240 |
+
2. Use o nó "Load LoRA"
|
| 241 |
+
3. Conecte ao modelo
|
| 242 |
+
|
| 243 |
+
### Pesos Recomendados
|
| 244 |
+
- **0.3-0.6**: Efeito sutil
|
| 245 |
+
- **0.7-1.0**: Efeito padrão
|
| 246 |
+
- **1.1-1.5**: Efeito forte
|
| 247 |
+
|
| 248 |
+
## 🔄 Melhores Práticas
|
| 249 |
+
|
| 250 |
+
### Antes do Treinamento
|
| 251 |
+
1. **Qualidade sobre Quantidade**: 20 imagens boas > 100 ruins
|
| 252 |
+
2. **Variedade**: Use ângulos, poses e cenários diferentes
|
| 253 |
+
3. **Consistência**: Mantenha estilo consistente nas captions
|
| 254 |
+
4. **Backup**: Salve configurações que funcionaram
|
| 255 |
+
|
| 256 |
+
### Durante o Treinamento
|
| 257 |
+
1. **Monitore**: Acompanhe o progresso regularmente
|
| 258 |
+
2. **Paciência**: Não interrompa sem necessidade
|
| 259 |
+
3. **Recursos**: Monitore uso de GPU/RAM
|
| 260 |
+
|
| 261 |
+
### Após o Treinamento
|
| 262 |
+
1. **Teste**: Experimente diferentes pesos
|
| 263 |
+
2. **Compare**: Teste épocas diferentes
|
| 264 |
+
3. **Documente**: Anote configurações que funcionaram
|
| 265 |
+
4. **Compartilhe**: Considere compartilhar bons resultados
|
| 266 |
+
|
| 267 |
+
## 🆘 Suporte e Recursos
|
| 268 |
+
|
| 269 |
+
### Documentação Adicional
|
| 270 |
+
- [Guia Oficial kohya-ss](https://github.com/kohya-ss/sd-scripts)
|
| 271 |
+
- [Documentação Diffusers](https://huggingface.co/docs/diffusers)
|
| 272 |
+
- [Comunidade Stable Diffusion](https://discord.gg/stable-diffusion)
|
| 273 |
+
|
| 274 |
+
### Logs e Debug
|
| 275 |
+
- Verifique os logs em `/tmp/lora_training/projects/seu_projeto/logs/`
|
| 276 |
+
- Use TensorBoard para visualizar métricas
|
| 277 |
+
- Salve configurações que funcionaram bem
|
| 278 |
+
|
| 279 |
+
### Limitações Conhecidas
|
| 280 |
+
- Requer GPU NVIDIA com CUDA
|
| 281 |
+
- Modelos grandes podem precisar de mais memória
|
| 282 |
+
- Treinamento pode ser lento em hardware limitado
|
| 283 |
+
|
| 284 |
+
---
|
| 285 |
+
|
| 286 |
+
**Nota**: Esta ferramenta é para fins educacionais e de pesquisa. Use responsavelmente e respeite direitos autorais das imagens utilizadas.
|
| 287 |
+
|
app.log
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
nohup: ignoring input
|
| 2 |
+
2025-09-18 00:04:04,545 - INFO - HTTP Request: GET http://localhost:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
|
| 3 |
+
2025-09-18 00:04:04,552 - INFO - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
|
| 4 |
+
2025-09-18 00:04:04,567 - INFO - HTTP Request: HEAD http://localhost:7860/ "HTTP/1.1 200 OK"
|
| 5 |
+
2025-09-18 00:04:24,666 - INFO - Failed to extract font properties from /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf: Can not load face (unknown file format; error code 0x2)
|
| 6 |
+
2025-09-18 00:04:27,411 - INFO - generated new fontManager
|
| 7 |
+
2025-09-18 00:04:28,054 - INFO - Instalando dependências...
|
| 8 |
+
2025-09-18 00:04:31,066 - INFO - ✓ torch>=2.0.0 instalado
|
| 9 |
+
2025-09-18 00:04:33,208 - INFO - ✓ torchvision>=0.15.0 instalado
|
| 10 |
+
2025-09-18 00:04:39,480 - INFO - ✓ diffusers>=0.21.0 instalado
|
| 11 |
+
2025-09-18 00:04:49,889 - INFO - ✓ transformers>=4.25.0 instalado
|
| 12 |
+
2025-09-18 00:04:53,676 - INFO - ✓ accelerate>=0.20.0 instalado
|
| 13 |
+
2025-09-18 00:04:56,344 - INFO - ✓ safetensors>=0.3.0 instalado
|
| 14 |
+
2025-09-18 00:04:59,020 - INFO - ✓ huggingface-hub>=0.16.0 instalado
|
| 15 |
+
2025-09-18 00:05:07,028 - INFO - ✓ xformers>=0.0.20 instalado
|
| 16 |
+
2025-09-18 00:05:12,484 - INFO - ✓ bitsandbytes>=0.41.0 instalado
|
| 17 |
+
2025-09-18 00:05:21,248 - INFO - ✓ opencv-python>=4.7.0 instalado
|
| 18 |
+
2025-09-18 00:05:23,918 - INFO - ✓ Pillow>=9.0.0 instalado
|
| 19 |
+
2025-09-18 00:05:26,657 - INFO - ✓ numpy>=1.21.0 instalado
|
| 20 |
+
2025-09-18 00:05:29,418 - INFO - ✓ tqdm>=4.64.0 instalado
|
| 21 |
+
2025-09-18 00:05:32,208 - INFO - ✓ toml>=0.10.0 instalado
|
| 22 |
+
2025-09-18 00:05:38,213 - INFO - ✓ tensorboard>=2.13.0 instalado
|
| 23 |
+
2025-09-18 00:05:44,404 - INFO - ✓ wandb>=0.15.0 instalado
|
| 24 |
+
2025-09-18 00:05:53,254 - INFO - ✓ scipy>=1.9.0 instalado
|
| 25 |
+
2025-09-18 00:05:56,225 - INFO - ✓ matplotlib>=3.5.0 instalado
|
| 26 |
+
2025-09-18 00:06:06,615 - INFO - ✓ datasets>=2.14.0 instalado
|
| 27 |
+
2025-09-18 00:06:10,447 - INFO - ✓ peft>=0.5.0 instalado
|
| 28 |
+
2025-09-18 00:06:14,753 - INFO - ✓ omegaconf>=2.3.0 instalado
|
requirements.txt
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Core ML libraries
|
| 2 |
+
torch>=2.0.0
|
| 3 |
+
torchvision>=0.15.0
|
| 4 |
+
torchaudio>=2.0.0
|
| 5 |
+
|
| 6 |
+
# Diffusion and transformers
|
| 7 |
+
diffusers>=0.21.0
|
| 8 |
+
transformers>=4.25.0
|
| 9 |
+
accelerate>=0.20.0
|
| 10 |
+
safetensors>=0.3.0
|
| 11 |
+
huggingface-hub>=0.16.0
|
| 12 |
+
|
| 13 |
+
# Optimization
|
| 14 |
+
xformers>=0.0.20
|
| 15 |
+
bitsandbytes>=0.41.0
|
| 16 |
+
|
| 17 |
+
# Data processing
|
| 18 |
+
Pillow>=9.0.0
|
| 19 |
+
opencv-python>=4.7.0
|
| 20 |
+
numpy>=1.21.0
|
| 21 |
+
scipy>=1.9.0
|
| 22 |
+
|
| 23 |
+
# Configuration and utilities
|
| 24 |
+
toml>=0.10.0
|
| 25 |
+
omegaconf>=2.3.0
|
| 26 |
+
tqdm>=4.64.0
|
| 27 |
+
|
| 28 |
+
# Logging and monitoring
|
| 29 |
+
tensorboard>=2.13.0
|
| 30 |
+
wandb>=0.15.0
|
| 31 |
+
|
| 32 |
+
# Web interface
|
| 33 |
+
gradio>=4.0.0
|
| 34 |
+
|
| 35 |
+
# Additional utilities
|
| 36 |
+
matplotlib>=3.5.0
|
| 37 |
+
datasets>=2.14.0
|
| 38 |
+
peft>=0.5.0
|
| 39 |
+
|
| 40 |
+
# System utilities
|
| 41 |
+
psutil>=5.9.0
|
| 42 |
+
|