fc74c8f543c86cbb64d37d1b96130b98f5f43c09
Кадр — локальный 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)
Запуск
npm install
npm start
Docker
Образ собирается на базе node:22-bookworm-slim (Debian, glibc) — Codex CLI
распространяется как бинарник под glibc и не работает на Alpine/musl.
# сборка и запуск
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.
Description
Languages
JavaScript
85.9%
CSS
9.3%
HTML
4.2%
Dockerfile
0.6%