Restore compatibility with Xcode 14.3/macOS SDK 13.4 (#208)
This commit is contained in:
@@ -5,6 +5,7 @@ import Foundation
|
||||
import NaturalLanguage
|
||||
import CoreML
|
||||
|
||||
#if canImport(NaturalLanguage.NLContextualEmbedding)
|
||||
@available(iOS 17.0, macOS 14.0, *)
|
||||
public struct MultilingualTextEncoder: TextEncoderModel {
|
||||
let adapter: ManagedMLModel?
|
||||
@@ -174,11 +175,13 @@ extension MultilingualTextEncoder {
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@available(iOS 16.2, macOS 13.1, *)
|
||||
public enum Script: String {
|
||||
case latin, cyrillic, cjk
|
||||
|
||||
#if canImport(NaturalLanguage.NLScript)
|
||||
@available(iOS 17.0, macOS 14.0, *)
|
||||
var asNLScript: NLScript {
|
||||
switch self {
|
||||
@@ -187,4 +190,5 @@ public enum Script: String {
|
||||
case .cjk: return .simplifiedChinese
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -69,6 +69,8 @@ public extension StableDiffusionPipeline {
|
||||
/// Expect URL of each resource
|
||||
let urls = ResourceURLs(resourcesAt: baseURL)
|
||||
let textEncoder: TextEncoderModel
|
||||
|
||||
#if canImport(NaturalLanguage.NLScript)
|
||||
if useMultilingualTextEncoder {
|
||||
guard #available(macOS 14.0, iOS 17.0, *) else { throw Error.unsupportedOSVersion }
|
||||
textEncoder = MultilingualTextEncoder(
|
||||
@@ -80,6 +82,10 @@ public extension StableDiffusionPipeline {
|
||||
let tokenizer = try BPETokenizer(mergesAt: urls.mergesURL, vocabularyAt: urls.vocabURL)
|
||||
textEncoder = TextEncoder(tokenizer: tokenizer, modelAt: urls.textEncoderURL, configuration: config)
|
||||
}
|
||||
#else
|
||||
let tokenizer = try BPETokenizer(mergesAt: urls.mergesURL, vocabularyAt: urls.vocabURL)
|
||||
textEncoder = TextEncoder(tokenizer: tokenizer, modelAt: urls.textEncoderURL, configuration: config)
|
||||
#endif
|
||||
|
||||
// ControlNet model
|
||||
var controlNet: ControlNet? = nil
|
||||
|
||||
Reference in New Issue
Block a user