nnInteractive module no longer segments properly

I have been using the nnInteractive module through MorphoCloud to segment CT scans of fish skulls, with a good bit of success. Now, however, the nnInteractive module no longer functions properly. The Configuration tab says that the server is reachable, but when placing the first positive point on one of the slices, it generates a cube that does not render in 3D space. Placing any additional points results in nothing happening. I have tried closing and reopening 3D Slicer, restarting the server in the terminal, changing the server port, deleting and reinstalling the nnInteractive server, logging in and out of MorphoCloud, shelving and unshelving the MorphoCloud Instance, and redoing my mrb file. Nothing fixes the issue. Even after updating the nnInteractive extension to the latest version, it still has the same issue.

3D Slicer - Log File:

[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - Session start time …: 20260125_213237
[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - Slicer version …: 5.10.0 (revision 34045 / a2b6d08) linux-amd64 - installed release
[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - Operating system …: Linux / 6.8.0-90-generic / #91~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 20 15:20:45 UTC 2 / UTF-8 - 64-bit
[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - Memory …: 60263 MB physical, 0 MB virtual
[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - CPU …: AuthenticAMD AMD EPYC-Milan Processor, 16 cores, 16 logical processors
[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - VTK configuration …: OpenGL2 rendering, TBB threading
[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - Qt configuration …: version 5.15.2, with SSL, requested OpenGL 3.2 (core profile)
[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - DCMTK configuration …: version 3.6.8, no SSL
[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - Internationalization …: disabled, language=
[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - Developer mode …: disabled
[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - Application path …: /media/volume/MyData/Slicer/bin
[DEBUG][Qt] 25.01.2026 21:32:37 (unknown:0) - Additional module paths ..: slicer.org/Extensions-34045/SegmentEditorExtraEffects/lib/Slicer-5.10/qt-loadable-modules, slicer.org/Extensions-34045/SegmentEditorExtraEffects/lib/Slicer-5.10/qt-scripted-modules, slicer.org/Extensions-34045/SurfaceMarkup/lib/Slicer-5.10/qt-loadable-modules, slicer.org/Extensions-34045/SlicerMorph/lib/Slicer-5.10/qt-scripted-modules, slicer.org/Extensions-34045/MarkupsToModel/lib/Slicer-5.10/qt-loadable-modules, slicer.org/Extensions-34045/SurfaceWrapSolidify/lib/Slicer-5.10/qt-scripted-modules, slicer.org/Extensions-34045/PyTorch/lib/Slicer-5.10/qt-scripted-modules, slicer.org/Extensions-34045/Photogrammetry/lib/Slicer-5.10/qt-scripted-modules, slicer.org/Extensions-34045/MorphoDepot/lib/Slicer-5.10/qt-scripted-modules, slicer.org/Extensions-34045/DenseCorrespondenceAnalysis/lib/Slicer-5.10/qt-scripted-modules, slicer.org/Extensions-34045/Sandbox/lib/Slicer-5.10/qt-loadable-modules, slicer.org/Extensions-34045/Sandbox/lib/Slicer-5.10/qt-scripted-modules, slicer.org/Extensions-34045/SlicerBiomech/lib/Slicer-5.10/qt-scripted-modules, slicer.org/Extensions-34045/ScriptEditor/lib/Slicer-5.10/qt-scripted-modules, slicer.org/Extensions-34045/ModelToModelDistance/lib/Slicer-5.10/cli-modules, slicer.org/Extensions-34045/NNInteractive/lib/Slicer-5.10/qt-scripted-modules
[INFO][Stream] 25.01.2026 21:32:37 (unknown:0) -
[WARNING][Qt] 25.01.2026 21:32:45 (unknown:0) - libpng warning: iCCP: profile ‘ICC Profile’: ‘CMYK’: invalid ICC profile color space
[DEBUG][Python] 25.01.2026 21:32:46 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/git/cmd.py:1253) - Popen([‘git’, ‘version’], cwd=/home/exouser, stdin=None, shell=False, universal_newlines=False)
[DEBUG][Python] 25.01.2026 21:32:46 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/git/cmd.py:1253) - Popen([‘git’, ‘version’], cwd=/home/exouser, stdin=None, shell=False, universal_newlines=False)
[WARNING][Qt] 25.01.2026 21:32:46 (unknown:0) - libpng warning: iCCP: known incorrect sRGB profile
[DEBUG][Python] 25.01.2026 21:32:47 [Python] (/media/volume/MyData/Slicer/lib/Slicer-5.10/qt-scripted-modules/SubjectHierarchyPlugins/AbstractScriptedSubjectHierarchyPlugin.py:40) - Scripted subject hierarchy plugin registered: SegmentEditor
[DEBUG][Python] 25.01.2026 21:32:47 [Python] (/media/volume/MyData/Slicer/lib/Slicer-5.10/qt-scripted-modules/SubjectHierarchyPlugins/AbstractScriptedSubjectHierarchyPlugin.py:40) - Scripted subject hierarchy plugin registered: SegmentStatistics
[DEBUG][Qt] 25.01.2026 21:32:47 (unknown:0) - Switch to module: “Welcome”
[DEBUG][Python] 25.01.2026 21:32:48 [Python] (/media/volume/MyData/Slicer/lib/Slicer-5.10/qt-scripted-modules/SubjectHierarchyPlugins/AbstractScriptedSubjectHierarchyPlugin.py:40) - Scripted subject hierarchy plugin registered: FormatMarkups
[INFO][Python] 25.01.2026 21:32:48 [Python] (:3) - Adding SlicerMorph Volume Rendering Presets
[DEBUG][Python] 25.01.2026 21:32:48 [Python] (/media/volume/MyData/Slicer/lib/Slicer-5.10/qt-scripted-modules/SubjectHierarchyPlugins/AbstractScriptedSubjectHierarchyPlugin.py:40) - Scripted subject hierarchy plugin registered: SavePyFile
[DEBUG][Qt] 25.01.2026 21:32:48 (unknown:0) - bool qSlicerSubjectHierarchyPluginHandler::registerPlugin(qSlicerSubjectHierarchyAbstractPlugin*) : SubjectHierarchy plugin “SavePyFile” is already registered
[DEBUG][Qt] 25.01.2026 21:35:39 (unknown:0) - Switch to module: “SlicerNNInteractive”
[WARNING][Qt] 25.01.2026 21:35:40 (unknown:0) - QLayout::addChildLayout: layout “” already has a parent
[WARNING][Qt] 25.01.2026 21:35:40 (unknown:0) - QLayout::addChildLayout: layout “” already has a parent
[DEBUG][Python] 25.01.2026 21:35:43 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:241) - Starting new HTTP connection (1): 0.0.0.0:1527
[DEBUG][Python] 25.01.2026 21:35:43 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:544) - http://0.0.0.0:1527 “GET / HTTP/1.1” 404 22
[DEBUG][Python] 25.01.2026 21:35:45 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:241) - Starting new HTTP connection (1): 0.0.0.0:1527
[DEBUG][Python] 25.01.2026 21:35:45 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:544) - http://0.0.0.0:1527 “GET / HTTP/1.1” 404 22
[ERROR][VTK] 25.01.2026 21:36:16 [vtkMRMLSliceNode (0x1998ce10)] (vtkMRMLSliceNode.cxx:357) - GetSliceOrientationPreset: invalid orientation preset name: Reformat
[ERROR][VTK] 25.01.2026 21:36:16 [vtkMRMLSliceNode (0x19842b90)] (vtkMRMLSliceNode.cxx:357) - GetSliceOrientationPreset: invalid orientation preset name: Reformat
[ERROR][VTK] 25.01.2026 21:36:16 [vtkMRMLSliceNode (0x1984df30)] (vtkMRMLSliceNode.cxx:357) - GetSliceOrientationPreset: invalid orientation preset name: Reformat
[DEBUG][Qt] 25.01.2026 21:36:18 (unknown:0) - “MRB Slicer Data Bundle” Reader has successfully read the file “/media/volume/MyData/Betta 3D Data/Betta-tomi_01_cas-su_69819/2026-01-22-Scene.mrb” “[11.10s]”
[WARNING][Qt] 25.01.2026 21:36:32 (unknown:0) - ctkSliderWidget::setSingleStep() 0 is out of bounds. 0 1 1
[DEBUG][Python] 25.01.2026 21:37:11 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:241) - Starting new HTTP connection (1): 0.0.0.0:1527
[DEBUG][Python] 25.01.2026 21:37:18 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:544) - http://0.0.0.0:1527 “POST /upload_image HTTP/1.1” 200 15
[DEBUG][Python] 25.01.2026 21:37:28 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:241) - Starting new HTTP connection (1): 0.0.0.0:1527
[DEBUG][Python] 25.01.2026 21:37:39 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:544) - http://0.0.0.0:1527 “POST /upload_segment HTTP/1.1” 200 15
[DEBUG][Python] 25.01.2026 21:37:39 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:241) - Starting new HTTP connection (1): 0.0.0.0:1527
[DEBUG][Python] 25.01.2026 21:37:53 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:544) - http://0.0.0.0:1527 “POST /add_point_interaction HTTP/1.1” 200 124096
[DEBUG][Python] 25.01.2026 21:38:24 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:241) - Starting new HTTP connection (1): 0.0.0.0:1527
[DEBUG][Python] 25.01.2026 21:38:29 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:544) - http://0.0.0.0:1527 “POST /upload_segment HTTP/1.1” 200 15
[DEBUG][Python] 25.01.2026 21:38:29 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:241) - Starting new HTTP connection (1): 0.0.0.0:1527
[DEBUG][Python] 25.01.2026 21:38:31 [Python] (/media/volume/MyData/Slicer/lib/Python/lib/python3.12/site-packages/urllib3/connectionpool.py:544) - http://0.0.0.0:1527 “POST /add_point_interaction HTTP/1.1” 200 155758
[DEBUG][Qt] 25.01.2026 22:12:07 (unknown:0) - Switch to module: “Reformat”
[INFO][Stream] 25.01.2026 22:12:10 (unknown:0) - onSliceVisibilityChanged
[INFO][Stream] 25.01.2026 22:12:14 (unknown:0) - onSliceVisibilityChanged
[DEBUG][Qt] 25.01.2026 22:12:16 (unknown:0) - Switch to module: “SlicerNNInteractive”

Looks like NNinteractive got some updates in the last month ( Commits · coendevente/SlicerNNInteractive · GitHub ) It appears there is a version update, but not clear if any of the code has changed.

To decouple this issue from a potential difference in the dataset, you might want to retry running your older datasets, and see if it still works like it did before, or you are seeing the the cube effect. If you see, probably best to open an issue on their github page documenting the difference.

Reopening my previously segmented skulls and adding additional segments results in the nnInteractive module functioning like it did previously.

Enabling developer mode and running “Reload and Test” on nnInteractive does not result in any errors, but the cube effect still appears when loading in my latest mrb and placing a positive point.

If you are getting good segmentations with your older dataset, this tells me this is more of a data/workflow issue then a change in NNInteractive (either on the server or the client side).

Is there anything different about this dataset compared to the others (e.g., perhaps the others were 8 bit and this is 16bit?). Is possible for you to share this?

if you put the prompt on other places, do you still see the block? What other prompts types did you use (scribble, ROI, point)?

There should be no difference in my mrb files other than the spacing (mm) when first entering the CT data via ImageStacks. The mrb files were created through 3D Slicer on my PC, then ported into the “MyData” folder on MorphoCloud.

The cube effect only seems to occur on my “Maxilla” segment, regardless of where I place the point (the slice and view don’t seem to matter), and seemingly only when it’s the first point placed. Placing more points on this segment can actually render something reasonable in 3D space, although the slices still only show the cube. Trying to place points on other segments produces mixed results. Sometimes it works properly and makes a fully segmented bone, other times it produces nothing. Going from segment to segment hides other bones from the 3D space and from the slices. It seems to behave differently each time I reopen the scene.

I have only been using the point prompts because the others (bounding box, scribble, lasso) either never produce anything, don’t function as well as the points, or the server/slicer would crash.

Additionally, sometimes, when closing and reopening the scene in slicer and restarting the nnInteractive server, selecting “point” generates a markup point rather than a point used for the nnInteractive segmenting. This was happening beforehand, but it can be fixed by reloading.

I am curious if creating a new MorphoCloud instance, reestablishing the nnInteractive server, and importing my mrb files again would resolve the issue.

Do you have the both failing and successfully running datasets on your MorphoCloud instance? I can hop into and look.

I currently have five mrb files in my “MyData” folder. The ones for Betta fusca, Betta picta, and Betta waseri all function properly with nnInteractive. The ones for Betta tomi and Betta pi do not. If you want to open my MorphoCloud instance and check them out, you can. The three skulls I have already finished are saved on my PC.

Can’t replicate your issue. The tool is segmenting as it is expected. Though I noticed a few things that might be causing problem and slowing you down.

  1. You are using MRBs, which itself is not a problem (beyond slowing you down quite a bit when saving or loading data). But NNInteractive creates these transient markups for following prompts that are saved in the scene. I am not familiar with internal workings of NNInteractive, but probably it doesn’t make much sense to keep this part of the MRB and it might be confusing the prompt. They should probably be deleted each time you load the data into Slicer and then before switching to NNinteractive (try that and see that helps).
  2. I noticed your dataset is 16 bit. But you have only bones and no contrast. 16bit is probably an overkill for that situation. I also noticed that you downsampled data in Z plane (possibly to make the data smaller?). Instead, I would suggest using 8 bit data (which will give you 50% reduction in file size), but keeping the Z resolution intact (as opposed to skipping a slice). The resultant file size will be the same, but you will have more spatial resolution. I wouldn’t make the changes for the ones you already segmented, but consider that option for your new data
  3. Not sure if there are benefits to creating all these empty segments with names. We do support the terminology use case (so you can simply select from a dropdown menu), but it is of course your call.

I tried deleting the transient markups from nnInteractive in the Data module before switching to the nnInteractive module, then starting the server in the terminal. I made sure to start on my first listed segment, and after placing the first point prompt it now seems to be functioning. Jumping to other segments also does not appear to cause any issue.

Restarting the scene and server then beginning on the “Maxilla” segment no longer results in the cube effect. Instead, nothing happens. It would appear beginning on the first segment is necessary, for whatever reason.

Perhaps the transient markups were confusing the prompt. I do not recall having to delete these for my three mrb files that worked previously, so maybe this was a result of the update for the module.

What I have done previously is create the list of empty segments with names first, as those are the bones I need to segment for my project. When I create my next mrb file, I will instead save it with no segments. I will make the segments once the file is uploaded into MorphoCloud. I will try and go one segment at a time with nnInteractive to see if that is more reliable. I can also try and make it 8 bit instead of 16 bit to see if that also helps. As I recall, I normally save them as 16 bit because the volume rendering does not appear properly when I try 8 bit.

These are not calibrated scans, so none of the Slicer presets will work as intended. However you can try 8bit mCT preset that should give you an ok starting point, from which you can use the shift sliders to control it.

image