Skip to content

Commit 0756734

Browse files
authored
Merge branch 'main' into backport/main/pr-916
2 parents c94aecf + b5a85b3 commit 0756734

File tree

4 files changed

+45
-17
lines changed

4 files changed

+45
-17
lines changed

StabilityMatrix.Core/Models/Api/Comfy/Nodes/ComfyNodeBuilder.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,11 @@ public record LayeredDiffusionDecodeRgba : ComfyTypedNodeBase<ImageNodeConnectio
551551

552552
[TypedNodeOptions(
553553
Name = "UltralyticsDetectorProvider",
554-
RequiredExtensions = ["https://github.com/ltdrdata/ComfyUI-Impact-Pack"]
554+
RequiredExtensions =
555+
[
556+
"https://github.com/ltdrdata/ComfyUI-Impact-Pack",
557+
"https://github.com/ltdrdata/ComfyUI-Impact-Subpack"
558+
]
555559
)]
556560
public record UltralyticsDetectorProvider
557561
: ComfyTypedNodeBase<BboxDetectorNodeConnection, SegmDetectorNodeConnection>
@@ -561,7 +565,11 @@ public record UltralyticsDetectorProvider
561565

562566
[TypedNodeOptions(
563567
Name = "SAMLoader",
564-
RequiredExtensions = ["https://github.com/ltdrdata/ComfyUI-Impact-Pack"]
568+
RequiredExtensions =
569+
[
570+
"https://github.com/ltdrdata/ComfyUI-Impact-Pack",
571+
"https://github.com/ltdrdata/ComfyUI-Impact-Subpack"
572+
]
565573
)]
566574
public record SamLoader : ComfyTypedNodeBase<SamModelNodeConnection>
567575
{
@@ -575,7 +583,11 @@ public record SamLoader : ComfyTypedNodeBase<SamModelNodeConnection>
575583

576584
[TypedNodeOptions(
577585
Name = "FaceDetailer",
578-
RequiredExtensions = ["https://github.com/ltdrdata/ComfyUI-Impact-Pack"]
586+
RequiredExtensions =
587+
[
588+
"https://github.com/ltdrdata/ComfyUI-Impact-Pack",
589+
"https://github.com/ltdrdata/ComfyUI-Impact-Subpack"
590+
]
579591
)]
580592
public record FaceDetailer : ComfyTypedNodeBase<ImageNodeConnection>
581593
{

StabilityMatrix.Core/Models/Packages/ComfyUI.cs

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -499,16 +499,6 @@ public override async Task<IEnumerable<PackageExtension>> GetManifestExtensionsA
499499
.DownloadService.GetContentAsync(manifest.Uri.ToString(), cancellationToken)
500500
.ConfigureAwait(false);
501501

502-
// nf4 hack
503-
var nf4Extension = new PackageExtension
504-
{
505-
Author = "comfyanonymous",
506-
Files = [new Uri("https://github.com/comfyanonymous/ComfyUI_bitsandbytes_NF4")],
507-
Reference = new Uri("https://github.com/comfyanonymous/ComfyUI_bitsandbytes_NF4"),
508-
Title = "ComfyUI_bitsandbytes_NF4",
509-
InstallType = "git-clone"
510-
};
511-
512502
// Parse json
513503
var jsonManifest = JsonSerializer.Deserialize<ComfyExtensionManifest>(
514504
content,
@@ -519,13 +509,12 @@ public override async Task<IEnumerable<PackageExtension>> GetManifestExtensionsA
519509
return [];
520510

521511
var extensions = jsonManifest.GetPackageExtensions().ToList();
522-
extensions.Add(nf4Extension);
523512
return extensions;
524513
}
525514
catch (Exception e)
526515
{
527516
Logger.Error(e, "Failed to get package extensions");
528-
return Enumerable.Empty<PackageExtension>();
517+
return [];
529518
}
530519
}
531520

@@ -551,7 +540,13 @@ await base.UpdateExtensionAsync(
551540

552541
var installedDirs = installedExtension.Paths.OfType<DirectoryPath>().Where(dir => dir.Exists);
553542

554-
await PostInstallAsync(installedPackage, installedDirs, progress, cancellationToken)
543+
await PostInstallAsync(
544+
installedPackage,
545+
installedDirs,
546+
installedExtension.Definition!,
547+
progress,
548+
cancellationToken
549+
)
555550
.ConfigureAwait(false);
556551
}
557552

@@ -583,7 +578,7 @@ await base.InstallExtensionAsync(
583578
.Select(path => cloneRoot.JoinDir(path!))
584579
.Where(dir => dir.Exists);
585580

586-
await PostInstallAsync(installedPackage, installedDirs, progress, cancellationToken)
581+
await PostInstallAsync(installedPackage, installedDirs, extension, progress, cancellationToken)
587582
.ConfigureAwait(false);
588583
}
589584

@@ -593,10 +588,26 @@ await PostInstallAsync(installedPackage, installedDirs, progress, cancellationTo
593588
private async Task PostInstallAsync(
594589
InstalledPackage installedPackage,
595590
IEnumerable<DirectoryPath> installedDirs,
591+
PackageExtension extension,
596592
IProgress<ProgressReport>? progress = null,
597593
CancellationToken cancellationToken = default
598594
)
599595
{
596+
// do pip installs
597+
if (extension.Pip != null)
598+
{
599+
await using var venvRunner = await package
600+
.SetupVenvPure(installedPackage.FullPath!)
601+
.ConfigureAwait(false);
602+
603+
var pipArgs = new PipInstallArgs();
604+
pipArgs = extension.Pip.Aggregate(pipArgs, (current, pip) => current.AddArg(pip));
605+
606+
await venvRunner
607+
.PipInstall(pipArgs, progress?.AsProcessOutputHandler())
608+
.ConfigureAwait(false);
609+
}
610+
600611
foreach (var installedDir in installedDirs)
601612
{
602613
cancellationToken.ThrowIfCancellationRequested();

StabilityMatrix.Core/Models/Packages/Extensions/ComfyExtensionManifest.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public IEnumerable<PackageExtension> GetPackageExtensions()
1616
Title = x.Title,
1717
Reference = x.Reference,
1818
Files = x.Files,
19+
Pip = x.Pip,
1920
Description = x.Description,
2021
InstallType = x.InstallType
2122
}
@@ -32,6 +33,8 @@ public record ManifestEntry
3233

3334
public required IEnumerable<Uri> Files { get; init; }
3435

36+
public IEnumerable<string>? Pip { get; init; }
37+
3538
public string? Description { get; init; }
3639

3740
public string? InstallType { get; init; }

StabilityMatrix.Core/Models/Packages/Extensions/PackageExtension.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ public record PackageExtension
1010

1111
public required IEnumerable<Uri> Files { get; init; }
1212

13+
public IEnumerable<string>? Pip { get; init; }
14+
1315
public string? Description { get; init; }
1416

1517
public string? InstallType { get; init; }

0 commit comments

Comments
 (0)