diff --git a/swift/StableDiffusion/pipeline/DPMSolverMultistepScheduler.swift b/swift/StableDiffusion/pipeline/DPMSolverMultistepScheduler.swift index 3e8342c..97c8525 100644 --- a/swift/StableDiffusion/pipeline/DPMSolverMultistepScheduler.swift +++ b/swift/StableDiffusion/pipeline/DPMSolverMultistepScheduler.swift @@ -23,16 +23,12 @@ public final class DPMSolverMultistepScheduler: Scheduler { public let betas: [Float] public let alphas: [Float] public let alphasCumProd: [Float] - private let timeSteps: [Int] + public let timeSteps: [Int] public let alpha_t: [Float] public let sigma_t: [Float] public let lambda_t: [Float] - public var allTimeSteps: [Int] { - timeSteps - } - public let solverOrder = 2 private(set) var lowerOrderStepped = 0 @@ -183,4 +179,9 @@ public final class DPMSolverMultistepScheduler: Scheduler { return prevSample } + + /// This scheduler does not support image2image strength value. + public func calculateTimesteps(strength: Float?) -> [Int] { + timeSteps + } } diff --git a/swift/StableDiffusion/pipeline/Scheduler.swift b/swift/StableDiffusion/pipeline/Scheduler.swift index cfaa71c..d70a42d 100644 --- a/swift/StableDiffusion/pipeline/Scheduler.swift +++ b/swift/StableDiffusion/pipeline/Scheduler.swift @@ -12,7 +12,7 @@ public protocol Scheduler { var inferenceStepCount: Int { get } /// Training diffusion time steps index by inference time step - var allTimeSteps: [Int] { get } + var timeSteps: [Int] { get } /// Training diffusion time steps index by inference time step func calculateTimesteps(strength: Float?) -> [Int] @@ -94,9 +94,9 @@ public extension Scheduler { public extension Scheduler { func calculateTimesteps(strength: Float?) -> [Int] { - guard let strength else { return allTimeSteps.reversed() } + guard let strength else { return timeSteps.reversed() } let startStep = Int(Float(inferenceStepCount) * strength) - let acutalTimesteps = Array(allTimeSteps[0.. Bool = { _ in true } ) throws -> [CGImage?] { @@ -153,7 +154,7 @@ public struct StableDiffusionPipeline: ResourceManaging { /// Setup schedulers let scheduler: [Scheduler] = (0..