| --- |
| title: Jolia |
| emoji: 🫁 |
| colorFrom: red |
| colorTo: gray |
| sdk: gradio |
| sdk_version: 6.22.0 |
| app_file: app.py |
| short_description: Zero-shot CT findings with the Jolia 3D CT foundation model |
| python_version: "3.12" |
| startup_duration_timeout: 1h |
| pinned: false |
| license: other |
| --- |
| |
| # Jolia — zero-shot CT analysis |
|
|
| Demo of [`raidium/Jolia`](https://huggingface.co/raidium/Jolia), a 3D CT foundation model that |
| encodes a whole chest / abdominal CT volume into a global embedding **and** 102 named organ-query |
| embeddings, both aligned with radiology-report text. |
|
|
| Upload a NIfTI CT volume and: |
|
|
| - score free-text findings against the **whole volume** (global CLIP head), and |
| - route short findings phrases to a **single organ query** (ParallelOrganCLIP head, each organ with |
| its own trained temperature and bias). |
|
|
| The pipeline follows `example_zero_shot.py` from the model repo exactly: `JoliaPreprocessor` |
| (1.5 mm isotropic, 192³ centre crop, 11 CT windowing channels) for the image, and the paired |
| [`Qwen/Qwen3-Embedding-8B`](https://huggingface.co/Qwen/Qwen3-Embedding-8B) text encoder |
| (last-token pooling, context length 512) for the prompts. |
|
|
| > ⚠️ Research preview. Not a medical device; not for clinical use. |
|
|
| ## Example volumes |
|
|
| The bundled example CTs come from the **TotalSegmentator dataset** |
| (Wasserthal et al., [Zenodo record 10047292](https://zenodo.org/records/10047292), **CC-BY-4.0**), |
| downloaded via [`YongchengYAO/TotalSegmentator-CT-Lite`](https://huggingface.co/datasets/YongchengYAO/TotalSegmentator-CT-Lite). |
| File names carry that dataset's own study-type / pathology metadata. Attribution: |
|
|
| > Wasserthal, J. et al. *TotalSegmentator: Robust segmentation of 104 anatomic structures in CT |
| > images.* Radiology: Artificial Intelligence (2023). Dataset licensed CC-BY-4.0. |
|
|
| ## Notes |
|
|
| - Volumes are reoriented to the radiological axial layout (rows anterior→posterior, columns |
| right→left, slices inferior→superior) before `JoliaPreprocessor`, which then flips depth and |
| centre-crops. |
| - Probabilities are `sigmoid(calibrated logit)` — a per-pair "is this a match?" score, not a |
| softmax over prompts. |
| - DICOM series can be converted to NIfTI with `dcm2niix`. |
|
|