Files
photo-editor/README.md

71 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Кадр — локальный AI-фоторедактор
Веб-приложение редактирует фотографии по текстовому промпту (через локальный
Codex CLI) и увеличивает разрешение через домашний сервер ComfyUI.
Поддерживаются фотографии JPEG, PNG, WebP и HEIC/HEIF. Файлы HEIC/HEIF
преобразуются на сервере в JPEG с помощью `heic-convert` до передачи в ComfyUI
или Codex.
## Как это работает
- **История версий**: каждая загрузка и каждый результат (редактирование или
апскейл) сохраняется в папке `history/` как отдельная версия. Можно вернуться
к любой версии кликом по ней в ленте «История версий» и продолжить правки
именно с неё — например, отредактировать фото, а затем увеличить разрешение
уже отредактированного варианта. История переживает перезапуск сервера и
обновление страницы; хранится последние 50 версий.
- **Редактирование**: сервер передаёт выбранную версию и промпт агенту Codex
CLI (`codex exec`). Агент редактирует изображение и сохраняет результат.
Обработка обычно занимает 1–3 минуты.
- **Увеличение разрешения**: 4× upscale через ComfyUI моделью
`RealESRGAN_x4plus.safetensors` — применяется к выбранной (в том числе
отредактированной) версии.
## Требования
- Node.js 20 или новее
- Локальный Codex CLI (`codex`) с выполненным входом в аккаунт OpenAI
- Доступ к ComfyUI: `http://192.168.31.240:8188`
- Checkpoint: `sdxl_turbo.safetensors`
- Upscale-модель: `RealESRGAN_x4plus.safetensors`
- Установленные зависимости проекта, включая `heic-convert` (ставится
командой `npm install`)
## Запуск
```powershell
npm install
npm start
```
## Docker
Образ собирается на базе `node:22-bookworm-slim` (Debian, glibc) — Codex CLI
распространяется как бинарник под glibc и не работает на Alpine/musl.
```powershell
# сборка и запуск
docker compose up -d --build
# или вручную:
docker build -t kadr-photo-editor .
docker run -d --name kadr-photo-editor -p 3000:3000 ^
-v "$env:USERPROFILE\.codex:/root/.codex" ^
-v "${PWD}\history:/app/history" ^
-e COMFY_URL=http://192.168.31.240:8188 ^
kadr-photo-editor
```
Что важно знать:
- **Авторизация Codex**: контейнер монтирует `~/.codex` хоста в `/root/.codex`
(auth + config + навыки). Альтернатива — переменная окружения
`OPENAI_API_KEY`.
- **История версий**: каталог `history/` смонтирован томом, версии переживают
пересоздание контейнера.
- **ComfyUI**: задаётся через `COMFY_URL` (по умолчанию
`http://192.168.31.240:8188`); из контейнера адрес доступен как исходящий
адрес локальной сети.
- **Порт**: по умолчанию 3000, меняется через `PORT`.