Bits & Flames bitsandflames/fyron

Fyron Curate

Fyron Curate is a local image cohort review app for quickly separating useful images from rejected ones. It is designed for folder-based screening before downstream analysis, figure preparation, model QA, or manual dataset cleanup.

Curate is a beta application. It runs locally through Docker Compose, stores review metadata in PostgreSQL, and keeps original uploaded files unchanged. The default export workflow creates a clean folder with accepted images instead of deleting source data.

Curate is built around a fast gallery view. After adding a cohort, images appear as compact thumbnails that can be reviewed by mouse or keyboard. Click a thumbnail to toggle accepted/rejected state, use search and filters to narrow the view, and adjust thumbnail size or spacing when you need either a dense overview or a closer visual check.

DICOM folders are shown as study cards with one thumbnail per series. This makes it possible to select the relevant series first, then export a clean folder that keeps the selected DICOM source files traceable.

Install

Install Fyron with the Curate extra:

bash
uv add "fyron[curate]"

Docker Desktop or another Docker Compose runtime must be installed and running.

Start Curate

Start the local app with the Fyron CLI:

bash
fyron curate

By default, this starts the Curate frontend, backend, and PostgreSQL services with Docker Compose. Open the app at:

text
http://localhost:5174/

Useful startup options:

bash
fyron curate --open
fyron curate --no-build
fyron curate --foreground
fyron curate --app-dir apps/image-curator

Use --open to launch the browser automatically. Use --foreground when you want to see Docker logs directly in the terminal.

Review Workflow

Curate starts on the cohort dashboard.

  1. Create a cohort.
  2. Give the cohort a name.
  3. Drop a folder of images into the dialog.
  4. Review the gallery.
  5. Click images to mark them accepted or rejected.
  6. Create a clean folder when review is finished.

The clean export preserves relative folder structure and copies only accepted images. For accepted DICOM series thumbnails, Curate also copies the original selected series files into dicom_series/ inside the export. The uploaded cohort remains immutable, so accidental rejects can be corrected before export.

Data You Can Drop Into Curate

Curate accepts ordinary image folders and DICOM folders.

FormatUse
PNGpreferred for CT/MRI preview slices and screenshots
JPEG/JPGcamera images, compressed clinical exports, thumbnails
WebPmodern web image exports
GIFsimple animated or static image previews where browser-supported
BMPlegacy image exports
TIFF/TIFsupported when browser previewing is available
DICOMstudy folders; readable series are shown as selectable thumbnails

Unknown files are ignored during indexing. For best results with ordinary images, use PNG or JPEG folders.

Curate preserves relative paths from the dropped folder. This means nested folders such as patient_001/axial.png and patient_001/coronal.png remain traceable in the clean export.

CT, MRI, X-Ray, And Topogram Data

Curate can read DICOM directories directly. When you drop a DICOM folder, the app groups files by study and series, then shows each study as a card with one thumbnail per series. Selecting a series uses the same accepted/rejected review state as the image gallery.

The direct DICOM reader is intended for common uncompressed CT, MRI, X-ray, scout, and topogram exports. If a vendor export uses compressed transfer syntaxes that the browser preview service cannot decode, prepare PNG previews first with Fyron's preview command:

bash
uv add "fyron[visualization,curate]"

fyron dataset-curate-previews \
  --input-dir ct_or_mri_exports/ \
  --output-dir curate_previews/

Then drop curate_previews/ into Curate.

For three-dimensional CT/MRI volumes and DICOM series, the preview command produces:

  • middle axial PNG
  • middle coronal PNG
  • middle sagittal PNG

Two-dimensional images such as X-rays, scout views, and topograms produce one PNG preview.

The preview command also writes a manifest.csv so you can trace each generated PNG back to the source file or DICOM series.

Persistent Data

The Docker Compose app uses persistent volumes for:

VolumeContent
PostgreSQLcohorts, image metadata, review state, settings, exports
uploadsimmutable uploaded cohort files
exportsclean accepted-image folders

Stopping the containers does not delete reviewed cohorts. Removing Docker volumes will remove local Curate data.