Class: GenerateImage::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/generate_image/client.rb

Defined Under Namespace

Classes: KeyOverride

Constant Summary collapse

DEPRECATE_GENERATE_IMAGE_MSG =
"[DEPRECATION] GenerateImage::Client#generate_image is deprecated; use #generate instead."

Instance Method Summary collapse

Constructor Details

#initialize(api_key = nil) ⇒ Client

Returns a new instance of Client.



10
11
12
# File 'lib/generate_image/client.rb', line 10

def initialize(api_key = nil)
  @api_key_override = api_key
end

Instance Method Details

#edit(image:, prompt:, **opts) ⇒ Object

Raises:



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/generate_image/client.rb', line 25

def edit(image:, prompt:, **opts)
  raise ValidationError, "prompt must be a non-empty String" unless prompt.is_a?(String) && !prompt.strip.empty?
  raise ValidationError, "image is required" if image.nil?

  model = (opts[:model] || configuration.default_model).to_s
  validate_edit_model!(model)

  fields = build_edit_fields(model, prompt, opts)
  files = { "image" => image }
  files["mask"] = opts[:mask] if opts[:mask]

  parsed = http.post_multipart("/v1/images/edits", fields, files)
  Response.new(parsed, model: model)
end

#generate(prompt, **opts) ⇒ Object

Raises:



14
15
16
17
18
19
20
21
22
23
# File 'lib/generate_image/client.rb', line 14

def generate(prompt, **opts)
  raise ValidationError, "prompt must be a non-empty String" unless prompt.is_a?(String) && !prompt.strip.empty?

  model = (opts[:model] || configuration.default_model).to_s
  validate_generation_model!(model)

  body = build_generation_body(prompt, model, opts)
  parsed = http.post_json("/v1/images/generations", body)
  Response.new(parsed, model: model)
end

#generate_image(text, options = {}) ⇒ Object



40
41
42
43
# File 'lib/generate_image/client.rb', line 40

def generate_image(text, options = {})
  warn "#{DEPRECATE_GENERATE_IMAGE_MSG}\n"
  generate(text, **legacy_options_to_new(options)).to_h
end