Blazor Diffusion

<back to all web services

GetCreative

Creatives
import Foundation
import ServiceStack

public class GetCreative : IGet, Codable
{
    public var id:Int?
    public var artifactId:Int?

    required public init(){}
}

public class GetCreativeResponse : Codable
{
    public var result:Creative
    public var responseStatus:ResponseStatus

    required public init(){}
}

public class Creative : AuditBase
{
    public var id:Int
    public var userPrompt:String
    public var prompt:String
    public var images:Int
    public var width:Int
    public var height:Int
    public var steps:Int
    public var curatedArtifactId:Int?
    public var primaryArtifactId:Int?
    public var artistNames:[String] = []
    public var modifierNames:[String] = []
    public var artists:[CreativeArtist] = []
    public var modifiers:[CreativeModifier] = []
    public var artifacts:[Artifact] = []
    public var error:String
    public var ownerId:Int?
    public var ownerRef:String
    public var key:String
    public var curated:Bool
    public var rating:Int?
    public var `private`:Bool
    public var score:Int
    public var rank:Int
    public var refId:String
    public var requestId:String
    public var engineId:String

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

    private enum CodingKeys : String, CodingKey {
        case id
        case userPrompt
        case prompt
        case images
        case width
        case height
        case steps
        case curatedArtifactId
        case primaryArtifactId
        case artistNames
        case modifierNames
        case artists
        case modifiers
        case artifacts
        case error
        case ownerId
        case ownerRef
        case key
        case curated
        case rating
        case `private`
        case score
        case rank
        case refId
        case requestId
        case engineId
    }

    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)
        userPrompt = try container.decodeIfPresent(String.self, forKey: .userPrompt)
        prompt = try container.decodeIfPresent(String.self, forKey: .prompt)
        images = try container.decodeIfPresent(Int.self, forKey: .images)
        width = try container.decodeIfPresent(Int.self, forKey: .width)
        height = try container.decodeIfPresent(Int.self, forKey: .height)
        steps = try container.decodeIfPresent(Int.self, forKey: .steps)
        curatedArtifactId = try container.decodeIfPresent(Int.self, forKey: .curatedArtifactId)
        primaryArtifactId = try container.decodeIfPresent(Int.self, forKey: .primaryArtifactId)
        artistNames = try container.decodeIfPresent([String].self, forKey: .artistNames) ?? []
        modifierNames = try container.decodeIfPresent([String].self, forKey: .modifierNames) ?? []
        artists = try container.decodeIfPresent([CreativeArtist].self, forKey: .artists) ?? []
        modifiers = try container.decodeIfPresent([CreativeModifier].self, forKey: .modifiers) ?? []
        artifacts = try container.decodeIfPresent([Artifact].self, forKey: .artifacts) ?? []
        error = try container.decodeIfPresent(String.self, forKey: .error)
        ownerId = try container.decodeIfPresent(Int.self, forKey: .ownerId)
        ownerRef = try container.decodeIfPresent(String.self, forKey: .ownerRef)
        key = try container.decodeIfPresent(String.self, forKey: .key)
        curated = try container.decodeIfPresent(Bool.self, forKey: .curated)
        rating = try container.decodeIfPresent(Int.self, forKey: .rating)
        `private` = try container.decodeIfPresent(Bool.self, forKey: .`private`)
        score = try container.decodeIfPresent(Int.self, forKey: .score)
        rank = try container.decodeIfPresent(Int.self, forKey: .rank)
        refId = try container.decodeIfPresent(String.self, forKey: .refId)
        requestId = try container.decodeIfPresent(String.self, forKey: .requestId)
        engineId = try container.decodeIfPresent(String.self, forKey: .engineId)
    }

    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 userPrompt != nil { try container.encode(userPrompt, forKey: .userPrompt) }
        if prompt != nil { try container.encode(prompt, forKey: .prompt) }
        if images != nil { try container.encode(images, forKey: .images) }
        if width != nil { try container.encode(width, forKey: .width) }
        if height != nil { try container.encode(height, forKey: .height) }
        if steps != nil { try container.encode(steps, forKey: .steps) }
        if curatedArtifactId != nil { try container.encode(curatedArtifactId, forKey: .curatedArtifactId) }
        if primaryArtifactId != nil { try container.encode(primaryArtifactId, forKey: .primaryArtifactId) }
        if artistNames.count > 0 { try container.encode(artistNames, forKey: .artistNames) }
        if modifierNames.count > 0 { try container.encode(modifierNames, forKey: .modifierNames) }
        if artists.count > 0 { try container.encode(artists, forKey: .artists) }
        if modifiers.count > 0 { try container.encode(modifiers, forKey: .modifiers) }
        if artifacts.count > 0 { try container.encode(artifacts, forKey: .artifacts) }
        if error != nil { try container.encode(error, forKey: .error) }
        if ownerId != nil { try container.encode(ownerId, forKey: .ownerId) }
        if ownerRef != nil { try container.encode(ownerRef, forKey: .ownerRef) }
        if key != nil { try container.encode(key, forKey: .key) }
        if curated != nil { try container.encode(curated, forKey: .curated) }
        if rating != nil { try container.encode(rating, forKey: .rating) }
        if `private` != nil { try container.encode(`private`, forKey: .`private`) }
        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 requestId != nil { try container.encode(requestId, forKey: .requestId) }
        if engineId != nil { try container.encode(engineId, forKey: .engineId) }
    }
}

// @ValidateRequest(Validator="HasRole(`Moderator`)")
public class CreativeArtist : Codable
{
    public var id:Int
    // @References(typeof(Creative))
    public var creativeId:Int

    // @References(typeof(Artist))
    public var artistId:Int

    public var artist:Artist

    required public init(){}
}

public class Artist : AuditBase
{
    public var id:Int
    public var firstName:String
    public var lastName:String
    public var yearDied:Int?
    public var type:[String]
    public var score:Int
    public var rank:Int

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

    private enum CodingKeys : String, CodingKey {
        case id
        case firstName
        case lastName
        case yearDied
        case type
        case score
        case rank
    }

    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)
        firstName = try container.decodeIfPresent(String.self, forKey: .firstName)
        lastName = try container.decodeIfPresent(String.self, forKey: .lastName)
        yearDied = try container.decodeIfPresent(Int.self, forKey: .yearDied)
        type = try container.decodeIfPresent([String].self, forKey: .type) ?? []
        score = try container.decodeIfPresent(Int.self, forKey: .score)
        rank = try container.decodeIfPresent(Int.self, forKey: .rank)
    }

    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 firstName != nil { try container.encode(firstName, forKey: .firstName) }
        if lastName != nil { try container.encode(lastName, forKey: .lastName) }
        if yearDied != nil { try container.encode(yearDied, forKey: .yearDied) }
        if type != nil { try container.encode(type, forKey: .type) }
        if score != nil { try container.encode(score, forKey: .score) }
        if rank != nil { try container.encode(rank, forKey: .rank) }
    }
}

public class CreativeModifier : Codable
{
    public var id:Int
    // @References(typeof(Creative))
    public var creativeId:Int

    // @References(typeof(Modifier))
    public var modifierId:Int

    public var modifier:Modifier

    required public init(){}
}

public class Modifier : AuditBase
{
    public var id:Int
    public var name:String
    public var category:String
    public var Description:String
    public var score:Int
    public var rank:Int

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

    private enum CodingKeys : String, CodingKey {
        case id
        case name
        case category
        case Description
        case score
        case rank
    }

    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)
        name = try container.decodeIfPresent(String.self, forKey: .name)
        category = try container.decodeIfPresent(String.self, forKey: .category)
        Description = try container.decodeIfPresent(String.self, forKey: .Description)
        score = try container.decodeIfPresent(Int.self, forKey: .score)
        rank = try container.decodeIfPresent(Int.self, forKey: .rank)
    }

    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 name != nil { try container.encode(name, forKey: .name) }
        if category != nil { try container.encode(category, forKey: .category) }
        if Description != nil { try container.encode(Description, forKey: .Description) }
        if score != nil { try container.encode(score, forKey: .score) }
        if rank != nil { try container.encode(rank, forKey: .rank) }
    }
}

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 GetCreative 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/GetCreative HTTP/1.1 
Host: blazordiffusion.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<GetCreative xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BlazorDiffusion.ServiceModel">
  <ArtifactId>0</ArtifactId>
  <Id>0</Id>
</GetCreative>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<GetCreativeResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BlazorDiffusion.ServiceModel">
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1: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>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1: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>
    </d2p1:Meta>
  </ResponseStatus>
  <Result>
    <CreatedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</CreatedDate>
    <CreatedBy xmlns="http://schemas.servicestack.net/types">String</CreatedBy>
    <ModifiedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</ModifiedDate>
    <ModifiedBy xmlns="http://schemas.servicestack.net/types">String</ModifiedBy>
    <DeletedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</DeletedDate>
    <DeletedBy xmlns="http://schemas.servicestack.net/types">String</DeletedBy>
    <Artifacts>
      <Artifact>
        <CreatedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</CreatedDate>
        <CreatedBy xmlns="http://schemas.servicestack.net/types">String</CreatedBy>
        <ModifiedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</ModifiedDate>
        <ModifiedBy xmlns="http://schemas.servicestack.net/types">String</ModifiedBy>
        <DeletedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</DeletedDate>
        <DeletedBy xmlns="http://schemas.servicestack.net/types">String</DeletedBy>
        <AlbumsCount>0</AlbumsCount>
        <AverageHash>0</AverageHash>
        <Background>String</Background>
        <ContentLength>0</ContentLength>
        <ContentType>String</ContentType>
        <CreativeId>0</CreativeId>
        <DifferenceHash>0</DifferenceHash>
        <DownloadsCount>0</DownloadsCount>
        <FileName>String</FileName>
        <FilePath>String</FilePath>
        <Height>0</Height>
        <Id>0</Id>
        <LikesCount>0</LikesCount>
        <Lqip>String</Lqip>
        <Nsfw>false</Nsfw>
        <PerceptualHash>0</PerceptualHash>
        <Prompt>String</Prompt>
        <Quality>0</Quality>
        <Rank>0</Rank>
        <RefId>String</RefId>
        <Score>0</Score>
        <SearchCount>0</SearchCount>
        <Seed>0</Seed>
        <TemporalScore>0</TemporalScore>
        <Versions xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </Versions>
        <Width>0</Width>
      </Artifact>
    </Artifacts>
    <ArtistNames xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:string>String</d3p1:string>
    </ArtistNames>
    <Artists>
      <CreativeArtist>
        <Artist>
          <CreatedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</CreatedDate>
          <CreatedBy xmlns="http://schemas.servicestack.net/types">String</CreatedBy>
          <ModifiedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</ModifiedDate>
          <ModifiedBy xmlns="http://schemas.servicestack.net/types">String</ModifiedBy>
          <DeletedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</DeletedDate>
          <DeletedBy xmlns="http://schemas.servicestack.net/types">String</DeletedBy>
          <FirstName>String</FirstName>
          <Id>0</Id>
          <LastName>String</LastName>
          <Rank>0</Rank>
          <Score>0</Score>
          <Type xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:string>String</d6p1:string>
          </Type>
          <YearDied>0</YearDied>
        </Artist>
        <ArtistId>0</ArtistId>
        <CreativeId>0</CreativeId>
        <Id>0</Id>
      </CreativeArtist>
    </Artists>
    <Curated>false</Curated>
    <CuratedArtifactId>0</CuratedArtifactId>
    <EngineId>String</EngineId>
    <Error>String</Error>
    <Height>0</Height>
    <Id>0</Id>
    <Images>0</Images>
    <Key>String</Key>
    <ModifierNames xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:string>String</d3p1:string>
    </ModifierNames>
    <Modifiers>
      <CreativeModifier>
        <CreativeId>0</CreativeId>
        <Id>0</Id>
        <Modifier>
          <CreatedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</CreatedDate>
          <CreatedBy xmlns="http://schemas.servicestack.net/types">String</CreatedBy>
          <ModifiedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</ModifiedDate>
          <ModifiedBy xmlns="http://schemas.servicestack.net/types">String</ModifiedBy>
          <DeletedDate xmlns="http://schemas.servicestack.net/types">0001-01-01T00:00:00</DeletedDate>
          <DeletedBy xmlns="http://schemas.servicestack.net/types">String</DeletedBy>
          <Category>String</Category>
          <Description>String</Description>
          <Id>0</Id>
          <Name>String</Name>
          <Rank>0</Rank>
          <Score>0</Score>
        </Modifier>
        <ModifierId>0</ModifierId>
      </CreativeModifier>
    </Modifiers>
    <OwnerId>0</OwnerId>
    <OwnerRef>String</OwnerRef>
    <PrimaryArtifactId>0</PrimaryArtifactId>
    <Private>false</Private>
    <Prompt>String</Prompt>
    <Rank>0</Rank>
    <Rating>0</Rating>
    <RefId>String</RefId>
    <RequestId>String</RequestId>
    <Score>0</Score>
    <Steps>0</Steps>
    <UserPrompt>String</UserPrompt>
    <Width>0</Width>
  </Result>
</GetCreativeResponse>