Class: LLM::DeepInfra::Images
- Inherits:
-
Object
- Object
- LLM::DeepInfra::Images
- Defined in:
- lib/llm/providers/deepinfra/images.rb
Overview
The LLM::DeepInfra::Images class provides an interface for DeepInfra's images API. DeepInfra returns base64-encoded image data.
Instance Method Summary collapse
-
#create(prompt:, model: "black-forest-labs/FLUX-2-klein-4b", size: "1024x1024", n: 1, response_format: "b64_json", quality: nil, style: nil) ⇒ LLM::Response<LLM::OpenAI::ResponseAdapter::Image>
Returns a response.
-
#edit(image:, prompt:, model: "black-forest-labs/FLUX-2-klein-4b", size: "1024x1024", n: 1, response_format: "b64_json", **params) ⇒ LLM::Response<LLM::OpenAI::ResponseAdapter::Image>
Returns a response.
- #initialize(provider) ⇒ LLM::DeepInfra::Images constructor
Constructor Details
#initialize(provider) ⇒ LLM::DeepInfra::Images
20 21 22 |
# File 'lib/llm/providers/deepinfra/images.rb', line 20 def initialize(provider) @provider = provider end |
Instance Method Details
#create(prompt:, model: "black-forest-labs/FLUX-2-klein-4b", size: "1024x1024", n: 1, response_format: "b64_json", quality: nil, style: nil) ⇒ LLM::Response<LLM::OpenAI::ResponseAdapter::Image>
Returns a response
43 44 45 46 47 48 49 50 51 |
# File 'lib/llm/providers/deepinfra/images.rb', line 43 def create(prompt:, model: "black-forest-labs/FLUX-2-klein-4b", size: "1024x1024", n: 1, response_format: "b64_json", quality: nil, style: nil) req = LLM::Transport::Request.post(path("/images/generations"), headers) params = {prompt:, model:, size:, n:, response_format:, quality:, style:}.compact req.body = LLM.json.dump(params) res, span, tracer = execute(request: req, operation: "request") res = LLM::OpenAI::ResponseAdapter.adapt(res, type: :image) tracer.on_request_finish(operation: "request", model:, res:, span:) res end |
#edit(image:, prompt:, model: "black-forest-labs/FLUX-2-klein-4b", size: "1024x1024", n: 1, response_format: "b64_json", **params) ⇒ LLM::Response<LLM::OpenAI::ResponseAdapter::Image>
Returns a response
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/llm/providers/deepinfra/images.rb', line 71 def edit(image:, prompt:, model: "black-forest-labs/FLUX-2-klein-4b", size: "1024x1024", n: 1, response_format: "b64_json", **params) params = params.merge!(image: LLM.File(image), prompt:, model:, size:, n:, response_format:) params[:mask] = LLM.File(params[:mask]) if params[:mask] multi = LLM::Multipart.new(params) req = LLM::Transport::Request.post(path("/images/edits"), headers) req["content-type"] = multi.content_type transport.set_body_stream(req, multi.body) res, span, tracer = execute(request: req, operation: "request") res = LLM::OpenAI::ResponseAdapter.adapt(res, type: :image) tracer.on_request_finish(operation: "request", model:, res:, span:) res end |