nv-generate / pipelines /mr_brain.py
zephyrie's picture
Initial commit: NV-Generate Gradio showcase
ab1db83
from __future__ import annotations
import time
from .base import GenerationRequest, GenerationResult
from . import _runner
CONTRAST_TO_MODALITY: dict[str, int] = {
"T1": 9,
"T2": 10,
"FLAIR": 11,
"SWI": 20,
"T1_skull_stripped": 29,
"T2_skull_stripped": 30,
"FLAIR_skull_stripped": 31,
"SWI_skull_stripped": 32,
}
def generate(req: GenerationRequest) -> GenerationResult:
"""MR Brain (rflow-mr-brain) — image-only multi-contrast brain MRI."""
contrast = req.contrast or "T1"
if contrast not in CONTRAST_TO_MODALITY:
raise ValueError(f"Unsupported contrast: {contrast}. Choose from {list(CONTRAST_TO_MODALITY)}")
modality = CONTRAST_TO_MODALITY[contrast]
t0 = time.time()
path = _runner.run_image_only(
version="rflow-mr-brain",
output_size=req.output_size,
spacing=req.spacing,
modality=modality,
seed=req.seed,
num_inference_steps=req.num_steps,
cfg_guidance_scale=req.cfg_guidance_scale or 10.0,
)
return GenerationResult(
volume_path=str(path),
runtime_seconds=time.time() - t0,
seed=req.seed,
modality=modality,
)