Class: OxAiWorkers::Models::StabilityImages

Inherits:
ImagesBase
  • Object
show all
Defined in:
lib/oxaiworkers/models/stability_images.rb

Instance Attribute Summary

Attributes inherited from ImagesBase

#client, #options, #qualities, #result, #sizes

Instance Method Summary collapse

Constructor Details

#initialize(api_key: nil, timeout: 300, options: {}) ⇒ StabilityImages

Returns a new instance of StabilityImages.



4
5
6
7
8
9
10
11
# File 'lib/oxaiworkers/models/stability_images.rb', line 4

def initialize(api_key: nil, timeout: 300, options: {})
  @sizes = %w[auto]
  @qualities = %w[auto]
  api_key ||= OxAiWorkers.configuration.access_token_stability

  @client = StabilitySDK::Client.new(api_key:, timeout:)
  super(options:)
end

Instance Method Details

#generate(prompt:, size: nil, quality: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/oxaiworkers/models/stability_images.rb', line 13

def generate(prompt:, size: nil, quality: nil)
  puts "StabilityImages: #{prompt}"
  options = {
    engine_id: 'stable-diffusion-xl-1024-v1-0'
  }
  options.merge!(@options)
  binary = nil
  @client.generate(prompt, options) do |answer|
    answer.artifacts.each do |artifact|
      next unless artifact.type == :ARTIFACT_IMAGE

      binary = artifact.binary
    end
  end

  binary
end