@@ -50,6 +50,7 @@ await pyInstallationManager.GetInstallationAsync(pyVersion).ConfigureAwait(false
5050 10 => "cp310" ,
5151 11 => "cp311" ,
5252 12 => "cp312" ,
53+ 13 => "cp313" ,
5354 _ => throw new ArgumentOutOfRangeException ( "Invalid Python version" ) ,
5455 } ;
5556 var platform = Compat . IsWindows ? "win_amd64" : "linux_x86_64" ;
@@ -65,13 +66,13 @@ var v when v.StartsWith("2.5") => "2.5",
6566 var v when v . StartsWith ( "2.6" ) => "2.6" ,
6667 var v when v . StartsWith ( "2.7" ) => "2.7" ,
6768 var v when v . StartsWith ( "2.8" ) => "2.8" ,
69+ var v when v . StartsWith ( "2.10" ) => "2.10" ,
6870 _ => throw new InvalidOperationException (
6971 "No compatible torch version found in the virtual environment."
7072 ) ,
7173 } ;
72-
7374 var downloadUrl =
74- $ "https://github.com/mit-han-lab /nunchaku/releases/download/v0.3 .1/nunchaku-0.3 .1+torch{ torchVersion } -{ shortPythonVersionString } -{ shortPythonVersionString } -{ platform } .whl";
75+ $ "https://github.com/nunchaku-tech /nunchaku/releases/download/v1.0 .1/nunchaku-1.0 .1+torch{ torchVersion } -{ shortPythonVersionString } -{ shortPythonVersionString } -{ platform } .whl";
7576 progress ? . Report (
7677 new ProgressReport ( - 1f , message : "Installing Nunchaku backend" , isIndeterminate : true )
7778 ) ;
@@ -82,31 +83,43 @@ var v when v.StartsWith("2.8") => "2.8",
8283 new ProgressReport ( 1f , message : "Nunchaku backend installed successfully" , isIndeterminate : false )
8384 ) ;
8485
85- var nunchakuNodePath = WorkingDirectory . JoinDir ( "custom_nodes" , "ComfyUI-nunchaku" ) ;
86- if ( nunchakuNodePath . Exists )
87- {
88- progress ? . Report (
89- new ProgressReport (
90- 1f ,
91- message : "Nunchaku extension installed successfully." ,
92- isIndeterminate : false
93- )
94- ) ;
95- return ;
96- }
97-
9886 var extensions = await ComfyExtensionManager
9987 . GetManifestExtensionsAsync ( ComfyExtensionManager . DefaultManifests )
10088 . ConfigureAwait ( false ) ;
10189 var nunchakuExtension = extensions . FirstOrDefault ( e =>
10290 e . Title . Equals ( "ComfyUI-nunchaku" , StringComparison . OrdinalIgnoreCase )
10391 ) ;
92+
10493 if ( nunchakuExtension is null )
10594 return ;
10695
107- await ComfyExtensionManager
108- . InstallExtensionAsync ( nunchakuExtension , InstalledPackage , null , progress )
96+ var installedExtensions = await ComfyExtensionManager
97+ . GetInstalledExtensionsLiteAsync ( InstalledPackage )
10998 . ConfigureAwait ( false ) ;
99+ var installedNunchakuExtension = installedExtensions . FirstOrDefault ( e =>
100+ e . Title . Equals ( "ComfyUI-nunchaku" , StringComparison . OrdinalIgnoreCase )
101+ ) ;
102+
103+ if ( installedNunchakuExtension is not null )
104+ {
105+ var installedNunchakuExtensionWithVersion = await ComfyExtensionManager
106+ . GetInstalledExtensionInfoAsync ( installedNunchakuExtension )
107+ . ConfigureAwait ( false ) ;
108+ installedNunchakuExtensionWithVersion = installedNunchakuExtensionWithVersion with
109+ {
110+ Definition = nunchakuExtension ,
111+ } ;
112+
113+ await ComfyExtensionManager
114+ . UpdateExtensionAsync ( installedNunchakuExtensionWithVersion , InstalledPackage , null , progress )
115+ . ConfigureAwait ( false ) ;
116+ }
117+ else
118+ {
119+ await ComfyExtensionManager
120+ . InstallExtensionAsync ( nunchakuExtension , InstalledPackage , null , progress )
121+ . ConfigureAwait ( false ) ;
122+ }
110123
111124 progress ? . Report (
112125 new ProgressReport (
0 commit comments