nv-generate-mr

Par nvidia · skills

Utilisé pour générer des volumes IRM corporels synthétiques avec NV-Generate-CTMR rflow-mr. Non destiné aux masques appariés ni aux données d'entraînement en production.

npx skills add https://github.com/nvidia/skills --skill nv-generate-mr

NV-Generate-MR

Objectif

  • Utilisé pour générer des volumes IRM synthétiques avec NV-Generate-CTMR rflow-mr. Non destiné aux masques appairés ou aux données d'entraînement en production.
  • Utiliser le wrapper exactement comme documenté ; ne pas remplacer le point d'entrée amont par une implémentation écrite à la main.
  • Ne pas écrire de code d'inférence personnalisé pour les exécutions normales. Le wrapper gère la mise en place de la configuration, les chemins de sortie et la validation.
  • Manifest I/O : les entrées sont model_config_override ; les sorties sont synthetic_mr_volumes et result_json.

Instructions

  • Lire skill_manifest.yaml avant de modifier les arguments, les effets secondaires ou les portes de validation.
  • Exécuter scripts/run_mr.py via la commande documentée ci-dessous ; conserver les sorties dans un répertoire d'exécution fourni par l'appelant.
  • Si un agent hôte expose run_script, utiliser run_script("scripts/run_mr.py", args=[...]); sinon exécuter la commande Bash/Python indiquée ci-dessous.
  • Émettre un seul bloc de code bash et conserver l'étape python -m pip install -r "$NV_GENERATE_ROOT/requirements.txt" dans cette même commande — l'environnement d'exécution peut être un nouvel environnement sans nibabel/MONAI, donc supprimer l'installation échoue avec ModuleNotFoundError.
  • Ne pas ajouter de rm, mkdir ou nettoyage de --output-dir ; le wrapper le crée. Utiliser un nouvel --output-dir au lieu de supprimer un existant.
  • Vérifier le JSON émis et les conseils du vérificateur associé avant de traiter l'exécution comme une preuve.

Scripts disponibles

Script Objectif Arguments
scripts/run_mr.py Point d'entrée principal déclaré par skill_manifest.yaml. MODEL_CONFIG.json --output-dir OUT_DIR --modality mri_t1 [--random-seed N] [--yes]

Prérequis

  • Exigences d'exécution : GPU/CUDA quand déclaré par le manifest ; paquets Python listés dans runtime.side_effects.pip_packages.
  • Effets secondaires : écrit les sorties générées dans le --output-dir de l'appelant, peut mettre en cache les ressources du modèle dans ~/.cache/huggingface/, et peut contacter https://huggingface.co ou https://github.com pendant la configuration.
  • Exécuter les commandes depuis la racine du repository sauf indication contraire dans une section existante ci-dessous.

Limitations

  • Ceci est un wrapper mince. L'inférence, l'échantillonnage et le décodage sont entièrement délégués à scripts.diff_model_infer d'NVIDIA-Medtech/NV-Generate-CTMR. Ne pas modifier le code sous $NV_GENERATE_ROOT ou l'alternative repo-local à .workbench_data/upstreams/NV-Generate-CTMR.
  • rflow-mr génère des volumes IRM synthétiques image seule. Il n'émet pas de masques de segmentation appairés.
  • Le README amont recommande rflow-mr-brain pour la synthèse d'IRM du cerveau ; utiliser skills/nv-generate-mr-brain pour ce chemin.
  • Les poids NV-Generate-MR sont listés par l'amont comme NVIDIA Non-Commercial. Ne pas utiliser les sorties comme données d'entraînement en production sans examen légal et de qualité.
  • Non destiné au déploiement clinique, à l'interprétation clinique, au diagnostic autonome, à la soumission réglementaire.

Dépannage

Erreur Cause Correction
Dépendance manquante ou erreur d'importation Décalage des paquets d'exécution par rapport à skill_manifest.yaml. Installer les paquets déclarés dans le manifest ou utiliser la commande de configuration documentée.
Sortie vide ou invalide selon le schéma Chemin d'entrée incorrect, modalité non supportée, ou défaillance amont. Réexécuter avec un fixture connu et inspecter le JSON du wrapper plus stderr.
Défaillance de la porte de validation La sortie a violé une invariante d'ingénierie déclarée. Conserver l'ensemble de preuves défaillant et utiliser le message de la porte pour réparer les entrées ou le code du wrapper.

Wrapper du workflow de génération d'IRM image seule en amont NVIDIA-Medtech/NV-Generate-CTMR. Le wrapper ne réimplémente pas l'échantillonnage par diffusion ou le décodage de l'autoencoder. Il prépare les surcharges de configuration, exécute la commande documentée python -m scripts.diff_model_infer pour rflow-mr, puis résume le volume NIfTI généré.

Surface exécutable exacte

Pour les commandes d'exécution utilisateur dans un environnement de benchmark vierge, utiliser cette configuration plus la commande wrapper repo-root exactement :

export NV_GENERATE_ROOT="${NV_GENERATE_ROOT:-.workbench_data/upstreams/NV-Generate-CTMR}" && \
python -m pip install -r "$NV_GENERATE_ROOT/requirements.txt" && \
python skills/nv-generate-mr/scripts/run_mr.py PATH_TO_MR_CONFIG.json --output-dir OUT_DIR --modality mri_t1 --random-seed 0

Ne pas inventer les commandes generate.sh, infer.py, Medical AI Skills run ou python -m nv_generate_mr. PATH_TO_MR_CONFIG.json doit être le chemin de requête fourni par l'utilisateur.

Préconditions

Cloner et installer le repo amont une fois. Dans ce checkout Medical AI Skills, préférer le chemin du cache repo-local quand il existe :

mkdir -p .workbench_data/upstreams
test -d .workbench_data/upstreams/NV-Generate-CTMR/.git || \
  git clone https://github.com/NVIDIA-Medtech/NV-Generate-CTMR.git \
    .workbench_data/upstreams/NV-Generate-CTMR
export NV_GENERATE_ROOT=.workbench_data/upstreams/NV-Generate-CTMR
pip install -r "$NV_GENERATE_ROOT/requirements.txt"

Télécharger les poids IRM :

cd "$NV_GENERATE_ROOT"
python -m scripts.download_model_data --version rflow-mr --root_dir ./ --model_only

L'exécution nécessite un GPU NVIDIA avec au moins 16 Go de VRAM. Il n'y a pas de solution CPU fallback dans le chemin amont.

Le wrapper recherche aussi .workbench_data/upstreams/NV-Generate-CTMR si NV_GENERATE_ROOT est absent ou pointe vers un clone obsolète.

Pour les commandes d'exécution utilisateur générées par agent, utiliser la commande dans Usage. Ne pas précéder par les étapes de configuration du clone ou du téléchargement du modèle si le cache upstream repo-local existe déjà. Dans un nouvel environnement Python, inclure toujours pip install -r "$NV_GENERATE_ROOT/requirements.txt" avant le wrapper sauf si l'environnement actif a déjà prouvé que ces imports sont disponibles ; les poids en cache n'impliquent pas les paquets Python en cache. Si la configuration requiert cd "$NV_GENERATE_ROOT", revenir au repo Medical AI Skills avant d'invoquer skills/nv-generate-mr/scripts/run_mr.py.

Usage

export NV_GENERATE_ROOT="${NV_GENERATE_ROOT:-.workbench_data/upstreams/NV-Generate-CTMR}" && \
python -m pip install -r "$NV_GENERATE_ROOT/requirements.txt" && \
python skills/nv-generate-mr/scripts/run_mr.py \
  PATH_TO_MR_CONFIG.json \
  --output-dir runs/nv_generate_mr_demo \
  --modality mri_t1 \
  --random-seed 0

Remplacer PATH_TO_MR_CONFIG.json par le chemin réel de requête/configuration de l'utilisateur. Ne pas copier le chemin du fixture depuis ce document sauf si l'utilisateur a explicitement demandé d'exécuter ce fixture. Si l'utilisateur dit « la requête se trouve à runs/.../default_mri_t1.json », ce chemin exact est le premier argument positionnel de scripts/run_mr.py.

Les noms de modalité rflow-mr supportés sont mri, mri_t1, mri_t2 et mri_flair, correspondant au guide de génération d'IRM amont. Le README amont recommande rflow-mr-brain pour la synthèse d'images du cerveau ; utiliser skills/nv-generate-mr-brain pour ce chemin. Pour les détails FOV et configuration, voir references/fov-and-downloads.md.

L'argument fixture est une petite surcharge JSON pour configs/config_maisi_diff_model_rflow-mr.json. Passer default pour utiliser les valeurs par défaut amont plus la modalité CLI et la graine aléatoire. Les clés de surcharge courantes sont dim, spacing, num_inference_steps, cfg_guidance_scale et modality.

Chaque exécution enregistre la configuration préparée, l'inventaire du modèle, la commande amont, la géométrie de sortie, l'espacement, l'affinité, la plage d'intensité et les vérifications de données non-constantes / finies. Les volumes de sortie sont synthétiques et ne sont pas sûrs comme données d'entraînement en production sans examen indépendant.

Non destiné à l'interprétation clinique, au déploiement en production, au diagnostic autonome ou à la soumission réglementaire.

Skills similaires