One node. Three formats. Zero compression. Zero compromise.
Designed for Flux2 native resolution workflows on high-end hardware.
What It Does
ComfyUI saves PNG in 8-bit by default. That's fine for web. It's not fine for print, stock, or HDR post-processing you lose half the tonal range the moment you click Save.
OrakulSVPNode plugs directly into your workflow after KSampler and silently exports master files in parallel:
Format
Bit depth
Use case
PNG
8-bit
Web, preview, stock upload (via Save Image)
TIFF
16-bit RAW
Print, Photoshop, Lightroom, Adobe Stock masters
EXR
32-bit float
HDR compositing, VFX, Nuke, DaVinci Resolve
All three simultaneously if you want. Or any combination. Your call.
Features
✅ TIFF 16-bit — uint16, zero compression (IMWRITE_TIFF_COMPRESSION = 1), full 0–65535 range
✅ EXR 32-bit float — true HDR, float32, full linear light data preserved
✅ Full batch support — every frame in the batch saved as individual file
Restart ComfyUI. Node appears in Orakul Studio category.
Usage
KSampler → OrakulSVPNode → Save Image
Simple and clean interface
Снимок экрана 2026-05-03 092559
Add OrakulSVPNode to your workflow
Connect IMAGE from KSampler (or any image source)
Connect output to standard Save Image node
Toggle save_tiff and save_exr as needed in the node UI
Run
Node inputs:
Input
Type
Default
Description
images
IMAGE
—
Image tensor from pipeline
save_tiff
BOOLEAN
True
Save 16-bit TIFF to temp_svp
save_exr
BOOLEAN
False
Save 32-bit EXR to temp_svp
Accumulation Mode
The node never deletes existing files. Each run continues numbering from where the last run stopped:
Run 1 (batch=2, TIFF+EXR): ORAKUL_RAW_0001.tif, ORAKUL_RAW_0001.exr
ORAKUL_RAW_0002.tif, ORAKUL_RAW_0002.exr
Run 2 (batch=1, TIFF only): ORAKUL_RAW_0003.tif
Run 3 (batch=1, EXR only): ORAKUL_RAW_0004.exr
To reset — manually clear output/temp_svp/.
Why Subprocess for EXR?
OpenCV requires OPENCV_IO_ENABLE_OPENEXR=1 to be set before the library is imported. ComfyUI imports cv2 at startup — long before your node runs. Setting the env variable at runtime has no effect.
The solution: write a tiny isolated Python script and execute it via subprocess.run() using ComfyUI's own interpreter (sys.executable). The subprocess starts fresh, sets the variable first, then writes the EXR. Temp script and temp .npy data file are removed immediately after.
No external dependencies. No monkey-patching. No hacks that break other nodes.
Профессиональный экспорт из ComfyUI — PNG + TIFF 16-bit + EXR 32-bit float
Одна нода. Три формата. Без сжатия. Без компромиссов.
Создано для Flux2 в нативном разрешении на серьёзном железе.
Что это делает
ComfyUI по умолчанию сохраняет PNG в 8 бит. Для веба нормально. Для печати, стока или HDR постобработки нет: теряется половина тонального диапазона сразу при сохранении.
OrakulSVPNode встаёт в пайплайн после KSampler и молча экспортирует мастер-файлы параллельно:
Формат
Битность
Применение
PNG
8-bit
Веб, превью, загрузка на сток (через Save Image)
TIFF
16-bit RAW
Печать, Photoshop, Lightroom, мастера для Adobe Stock
EXR
32-bit float
HDR-композитинг, VFX, Nuke, DaVinci Resolve
Все три одновременно если нужно. Или любая комбинация. Переключается в UI ноды.
Перезапустить ComfyUI. Нода появится в категории Orakul Studio.
Использование
KSampler → OrakulSVPNode → Save Image
Простой и чистый интерфейс
Снимок экрана 2026-05-03 092559
Добавить OrakulSVPNode в workflow
Подключить IMAGE от KSampler (или любого источника)
Выход ноды подключить к стандартному Save Image
Включить save_tiff и/или save_exr в UI ноды
Запустить генерацию
Входы ноды:
Вход
Тип
По умолчанию
Описание
images
IMAGE
—
Тензор изображения из пайплайна
save_tiff
BOOLEAN
True
Сохранить 16-bit TIFF в temp_svp
save_exr
BOOLEAN
False
Сохранить 32-bit EXR в temp_svp
Накопительный режим
Нода никогда не удаляет существующие файлы. Каждый прогон продолжает нумерацию с места остановки:
Прогон 1 (batch=2, TIFF+EXR): ORAKUL_RAW_0001.tif, ORAKUL_RAW_0001.exr
ORAKUL_RAW_0002.tif, ORAKUL_RAW_0002.exr
Прогон 2 (batch=1, только TIFF): ORAKUL_RAW_0003.tif
Прогон 3 (batch=1, только EXR): ORAKUL_RAW_0004.exr
Для сброса — вручную очистить папку output/temp_svp/.
Почему subprocess для EXR?
OpenCV требует установки OPENCV_IO_ENABLE_OPENEXR=1до импорта библиотеки. ComfyUI импортирует cv2 при запуске задолго до вызова вашей ноды. Установка переменной в runtime не имеет эффекта.
Решение: записать крохотный изолированный Python-скрипт и выполнить его через subprocess.run() с интерпретатором ComfyUI (sys.executable). Subprocess стартует чистым, устанавливает переменную первым делом, записывает EXR. Временный скрипт и временный .npy файл удаляются сразу после.
Никаких внешних зависимостей. Никакого monkey-patching. Никаких хаков ломающих другие ноды.