Blazor Diffusion

<back to all web services

QueryGenerationModelSettings

import Foundation
import ServiceStack

public class QueryGenerationModelSettings : QueryDb<ProviderModelDefaults>
{
    public var id:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(String.self, forKey: .id)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
    }
}

public class ProviderModelDefaults : Codable
{
    public var id:String
    public var apiModels:[String:String] = [:]
    public var url:String
    public var quality:Double?
    public var aspectRatio:String
    public var cfgScale:Double?
    public var scheduler:String
    public var sampler:ComfySampler?
    public var width:Int?
    public var height:Int?
    public var steps:Int?
    public var negativePrompt:String
    public var modelType:ModelType?

    required public init(){}
}

public enum ComfySampler : String, Codable
{
    case euler
    case euler_cfg_pp
    case euler_ancestral
    case euler_ancestral_cfg_pp
    case huen
    case huenpp2
    case dpm_2
    case dpm_2_ancestral
    case lms
    case dpm_fast
    case dpm_adaptive
    case dpmpp_2s_ancestral
    case dpmpp_sde
    case dpmpp_sde_gpu
    case dpmpp_2m
    case dpmpp_2m_sde
    case dpmpp_2m_sde_gpu
    case dpmpp_3m_sde
    case dpmpp_3m_sde_gpu
    case ddpm
    case lcm
    case ddim
    case uni_pc
    case uni_pc_bh2
}

public enum ModelType : String, Codable
{
    case TextToImage
    case TextEncoder
    case ImageUpscale
    case TextToSpeech
    case TextToAudio
    case SpeechToText
    case ImageToText
    case ImageToImage
    case ImageWithMask
    case VAE
}

public class ArtifactResult : Artifact
{
    public var userPrompt:String
    public var artistNames:[String] = []
    public var modifierNames:[String] = []
    public var primaryArtifactId:Int?
    public var ownerRef:String
    public var similarity:Double?

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case userPrompt
        case artistNames
        case modifierNames
        case primaryArtifactId
        case ownerRef
        case similarity
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        userPrompt = try container.decodeIfPresent(String.self, forKey: .userPrompt)
        artistNames = try container.decodeIfPresent([String].self, forKey: .artistNames) ?? []
        modifierNames = try container.decodeIfPresent([String].self, forKey: .modifierNames) ?? []
        primaryArtifactId = try container.decodeIfPresent(Int.self, forKey: .primaryArtifactId)
        ownerRef = try container.decodeIfPresent(String.self, forKey: .ownerRef)
        similarity = try container.decodeIfPresent(Double.self, forKey: .similarity)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if userPrompt != nil { try container.encode(userPrompt, forKey: .userPrompt) }
        if artistNames.count > 0 { try container.encode(artistNames, forKey: .artistNames) }
        if modifierNames.count > 0 { try container.encode(modifierNames, forKey: .modifierNames) }
        if primaryArtifactId != nil { try container.encode(primaryArtifactId, forKey: .primaryArtifactId) }
        if ownerRef != nil { try container.encode(ownerRef, forKey: .ownerRef) }
        if similarity != nil { try container.encode(similarity, forKey: .similarity) }
    }
}

public class Artifact : AuditBase
{
    public var id:Int
    // @References(typeof(Creative))
    public var creativeId:Int

    public var fileName:String
    public var filePath:String
    public var contentType:String
    public var contentLength:Int
    public var width:Int
    public var height:Int
    public var seed:UInt64
    public var prompt:String
    public var nsfw:Bool?
    public var averageHash:Int?
    public var perceptualHash:Int?
    public var differenceHash:Int?
    public var background:String
    public var lqip:String
    public var quality:Int
    public var likesCount:Int
    public var albumsCount:Int
    public var downloadsCount:Int
    public var searchCount:Int
    public var temporalScore:Int
    public var score:Int
    public var rank:Int
    public var refId:String
    public var versions:[String:String] = [:]

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
        case creativeId
        case fileName
        case filePath
        case contentType
        case contentLength
        case width
        case height
        case seed
        case prompt
        case nsfw
        case averageHash
        case perceptualHash
        case differenceHash
        case background
        case lqip
        case quality
        case likesCount
        case albumsCount
        case downloadsCount
        case searchCount
        case temporalScore
        case score
        case rank
        case refId
        case versions
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(Int.self, forKey: .id)
        creativeId = try container.decodeIfPresent(Int.self, forKey: .creativeId)
        fileName = try container.decodeIfPresent(String.self, forKey: .fileName)
        filePath = try container.decodeIfPresent(String.self, forKey: .filePath)
        contentType = try container.decodeIfPresent(String.self, forKey: .contentType)
        contentLength = try container.decodeIfPresent(Int.self, forKey: .contentLength)
        width = try container.decodeIfPresent(Int.self, forKey: .width)
        height = try container.decodeIfPresent(Int.self, forKey: .height)
        seed = try container.decodeIfPresent(UInt64.self, forKey: .seed)
        prompt = try container.decodeIfPresent(String.self, forKey: .prompt)
        nsfw = try container.decodeIfPresent(Bool.self, forKey: .nsfw)
        averageHash = try container.decodeIfPresent(Int.self, forKey: .averageHash)
        perceptualHash = try container.decodeIfPresent(Int.self, forKey: .perceptualHash)
        differenceHash = try container.decodeIfPresent(Int.self, forKey: .differenceHash)
        background = try container.decodeIfPresent(String.self, forKey: .background)
        lqip = try container.decodeIfPresent(String.self, forKey: .lqip)
        quality = try container.decodeIfPresent(Int.self, forKey: .quality)
        likesCount = try container.decodeIfPresent(Int.self, forKey: .likesCount)
        albumsCount = try container.decodeIfPresent(Int.self, forKey: .albumsCount)
        downloadsCount = try container.decodeIfPresent(Int.self, forKey: .downloadsCount)
        searchCount = try container.decodeIfPresent(Int.self, forKey: .searchCount)
        temporalScore = try container.decodeIfPresent(Int.self, forKey: .temporalScore)
        score = try container.decodeIfPresent(Int.self, forKey: .score)
        rank = try container.decodeIfPresent(Int.self, forKey: .rank)
        refId = try container.decodeIfPresent(String.self, forKey: .refId)
        versions = try container.decodeIfPresent([String:String].self, forKey: .versions) ?? [:]
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
        if creativeId != nil { try container.encode(creativeId, forKey: .creativeId) }
        if fileName != nil { try container.encode(fileName, forKey: .fileName) }
        if filePath != nil { try container.encode(filePath, forKey: .filePath) }
        if contentType != nil { try container.encode(contentType, forKey: .contentType) }
        if contentLength != nil { try container.encode(contentLength, forKey: .contentLength) }
        if width != nil { try container.encode(width, forKey: .width) }
        if height != nil { try container.encode(height, forKey: .height) }
        if seed != nil { try container.encode(seed, forKey: .seed) }
        if prompt != nil { try container.encode(prompt, forKey: .prompt) }
        if nsfw != nil { try container.encode(nsfw, forKey: .nsfw) }
        if averageHash != nil { try container.encode(averageHash, forKey: .averageHash) }
        if perceptualHash != nil { try container.encode(perceptualHash, forKey: .perceptualHash) }
        if differenceHash != nil { try container.encode(differenceHash, forKey: .differenceHash) }
        if background != nil { try container.encode(background, forKey: .background) }
        if lqip != nil { try container.encode(lqip, forKey: .lqip) }
        if quality != nil { try container.encode(quality, forKey: .quality) }
        if likesCount != nil { try container.encode(likesCount, forKey: .likesCount) }
        if albumsCount != nil { try container.encode(albumsCount, forKey: .albumsCount) }
        if downloadsCount != nil { try container.encode(downloadsCount, forKey: .downloadsCount) }
        if searchCount != nil { try container.encode(searchCount, forKey: .searchCount) }
        if temporalScore != nil { try container.encode(temporalScore, forKey: .temporalScore) }
        if score != nil { try container.encode(score, forKey: .score) }
        if rank != nil { try container.encode(rank, forKey: .rank) }
        if refId != nil { try container.encode(refId, forKey: .refId) }
        if versions.count > 0 { try container.encode(versions, forKey: .versions) }
    }
}


Swift QueryGenerationModelSettings DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /xml/reply/QueryGenerationModelSettings HTTP/1.1 
Host: blazordiffusion.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<QueryGenerationModelSettings xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AiServer.ServiceModel">
  <Skip xmlns="http://schemas.servicestack.net/types">0</Skip>
  <Take xmlns="http://schemas.servicestack.net/types">0</Take>
  <OrderBy xmlns="http://schemas.servicestack.net/types">String</OrderBy>
  <OrderByDesc xmlns="http://schemas.servicestack.net/types">String</OrderByDesc>
  <Include xmlns="http://schemas.servicestack.net/types">String</Include>
  <Fields xmlns="http://schemas.servicestack.net/types">String</Fields>
  <Meta xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns="http://schemas.servicestack.net/types">
    <d2p1:KeyValueOfstringstring>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value>String</d2p1:Value>
    </d2p1:KeyValueOfstringstring>
  </Meta>
  <Id>String</Id>
</QueryGenerationModelSettings>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<QueryResponseOfProviderModelDefaultsHzAs4VeO xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
  <Offset>0</Offset>
  <Total>0</Total>
  <Results xmlns:d2p1="http://schemas.datacontract.org/2004/07/AiServer.ServiceModel.Types">
    <d2p1:ProviderModelDefaults>
      <d2p1:ApiModels xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:ApiModels>
      <d2p1:AspectRatio>String</d2p1:AspectRatio>
      <d2p1:CfgScale>0</d2p1:CfgScale>
      <d2p1:Height>0</d2p1:Height>
      <d2p1:Id>String</d2p1:Id>
      <d2p1:ModelType>TextToImage</d2p1:ModelType>
      <d2p1:NegativePrompt>String</d2p1:NegativePrompt>
      <d2p1:Quality>0</d2p1:Quality>
      <d2p1:Sampler>euler</d2p1:Sampler>
      <d2p1:Scheduler>String</d2p1:Scheduler>
      <d2p1:Steps>0</d2p1:Steps>
      <d2p1:Url>String</d2p1:Url>
      <d2p1:Width>0</d2p1:Width>
    </d2p1:ProviderModelDefaults>
  </Results>
  <Meta xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringstring>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value>String</d2p1:Value>
    </d2p1:KeyValueOfstringstring>
  </Meta>
  <ResponseStatus>
    <ErrorCode>String</ErrorCode>
    <Message>String</Message>
    <StackTrace>String</StackTrace>
    <Errors>
      <ResponseError>
        <ErrorCode>String</ErrorCode>
        <FieldName>String</FieldName>
        <Message>String</Message>
        <Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </Meta>
      </ResponseError>
    </Errors>
    <Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </Meta>
  </ResponseStatus>
</QueryResponseOfProviderModelDefaultsHzAs4VeO>