ruby-leonardoai 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d108ed0e36199b2e7841810b31b77e951b1173082f97aa75410de1050aaa6080
4
- data.tar.gz: c31edd35e33bc9c5a0c9ba2df992f8ce9b8f38698cdd9c48d0789a441f0eb8cd
3
+ metadata.gz: de55b3e839a008371101dab19fefc4157d9290c42a3e2de665493362648feea3
4
+ data.tar.gz: a6d79f4179c88c9c5cdede664203ea30cf5cb1e273e9c3dfb8f3f110384c37ed
5
5
  SHA512:
6
- metadata.gz: 9fce8ddb89a37f921531baecab3ee91d95314bc94757acdbab8d140c871b64caa65d961bb1c8929242c1e0d40e075cf64f088a81c73d8e6185969ae3e2ebb159
7
- data.tar.gz: 2acadd28592ca2cb8131892b853add8193afef93f22f74d00af9060df6c7cbeed8d11cfd761106ab2cb4677a4c2f6e12e552eae51086b97a1df2757d0a878375
6
+ metadata.gz: d5669c7773cf2df4e6a7c65309fe2631df857321535c7ee9e52bc361444c6e2606e0ed0960a4c920d0bee765dfea050137a45d5bbbf4f372fd8a910667df7d0e
7
+ data.tar.gz: b171eee19f9d2e9300b79c663ab7a5de9949834472039f40c46789536ff098678e8e4ca0633de3e330c54ca4ce1667010d375739d6ebadbb7d79b81acdcda41a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-leonardoai (0.1.3)
4
+ ruby-leonardoai (0.1.6)
5
5
  faraday (>= 1)
6
6
  faraday-multipart (>= 1)
7
7
 
data/README.md CHANGED
@@ -109,12 +109,40 @@ LeonardoAI.configure do |config|
109
109
  } # Optional
110
110
  end
111
111
  ```
112
+ ### Running in Console
113
+ Easily run tests in console with ```bin/console```
114
+
115
+ ```ruby
116
+ # Example
117
+
118
+ client = LeonardoAI::Client.new(access_token: "your-access-token-here")
119
+
120
+ params = {
121
+ :height=>1024,
122
+ :prompt=>"A ad flyer of a ninja cat, heavy texture, moonlit background, circle design, tshirt design, pen and ink style",
123
+ :width=>512, :num_images=>1,
124
+ :photoReal=>false,
125
+ :presetStyle=>"LEONARDO",
126
+ :promptMagic=>true,
127
+ :promptMagicVersion=>"v2",
128
+ :public=>false,
129
+ :init_strength=>0.4,
130
+ :sd_version=>"v2",
131
+ }
132
+
133
+ response = client.generations.generate(parameters: params)
134
+ puts response
135
+ ```
136
+
137
+
112
138
 
113
139
  ### Generation
114
140
 
115
141
  ChatGPT is a model that can be used to generate text in a conversational style. You can use it to [generate a response](https://platform.openai.com/docs/api-reference/chat/create) to a sequence of [messages](https://platform.openai.com/docs/guides/chat/introduction):
116
142
 
117
143
  ```ruby
144
+ # https://docs.leonardo.ai/reference/creategeneration
145
+
118
146
  params = {
119
147
  :height=>1024,
120
148
  :prompt=>"A ad flyer of a ninja cat, heavy texture, moonlit background, circle design, tshirt design, pen and ink style",
@@ -134,13 +162,65 @@ puts response.dig("sdGenerationJob", "generationId")
134
162
  ```
135
163
 
136
164
  ### Model
137
- UNDER CONSTRUCTION
165
+ ```ruby
166
+ # https://docs.leonardo.ai/reference/post_models-3d-upload
167
+
168
+ params = {
169
+ :modelExtension=>"this-is-an-example",
170
+ :name=>"some string"
171
+ }
138
172
 
139
- ### Unzoom
140
- UNDER CONSTRUCTION
173
+ response = client.models.upload_3d_model(parameters: params)
174
+ ```
175
+
176
+ ```ruby
177
+ # https://docs.leonardo.ai/reference/getmodelbyid
178
+
179
+ params = {
180
+ :modelExtension=>"this-is-an-example",
181
+ :name=>"some string"
182
+ }
183
+
184
+ response = client.models.get_custom_models_by_id(id: "your-custom-model-id-here")
185
+ ```
186
+
187
+ For more parameters, please check the API found [here](https://docs.leonardo.ai/reference/post_models-3d-upload)
188
+
189
+ ### Variation
190
+ ```ruby
191
+ # https://docs.leonardo.ai/reference/post_variations-unzoom
192
+
193
+ params = {
194
+ :id=>"this-is-some-id",
195
+ :isVariation=>"boolean: true|false"
196
+ }
197
+
198
+ response = client.variations.create_unzoom(parameters: params)
199
+ ```
200
+
201
+ ```ruby
202
+ # https://docs.leonardo.ai/reference/getvariationbyid
203
+
204
+ response = client.variations.get_variation_by_id(id: "your-variation-id-here")
205
+ ```
141
206
 
142
207
  ### Dataset
143
- UNDER CONSTRUCTION
208
+ ```ruby
209
+ # https://docs.leonardo.ai/reference/createdataset
210
+
211
+ params = {
212
+ :name=>"this-is-some-string-id",
213
+ :description=>"this-is-some-string"
214
+ }
215
+
216
+ response = client.datasets.create_dataset(parameters: params)
217
+ ```
218
+
219
+ ```ruby
220
+ # https://docs.leonardo.ai/reference/getdatasetbyid
221
+
222
+ response = client.datasets.get_dataset_by_id(id: "your-dataset-id-here")
223
+ ```
144
224
 
145
225
  ## Development
146
226
 
@@ -27,5 +27,17 @@ module LeonardoAI
27
27
  def generations
28
28
  @generations ||= LeonardoAI::Generations.new(client: self)
29
29
  end
30
+
31
+ def models
32
+ @models ||= LeonardoAI::Models.new(client: self)
33
+ end
34
+
35
+ def variations
36
+ @variations ||= LeonardoAI::Variations.new(client: self)
37
+ end
38
+
39
+ def datasets
40
+ @datasets ||= LeonardoAI::Datasets.new(client: self)
41
+ end
30
42
  end
31
43
  end
@@ -0,0 +1,32 @@
1
+ module LeonardoAI
2
+ class Datasets
3
+ def initialize(client: nil)
4
+ @client = client
5
+ end
6
+
7
+ # params: {name: string|null, description: string|null}
8
+ def create_dataset(parameters: {})
9
+ @client.json_post(path: "/datasets", parameters: parameters)
10
+ end
11
+
12
+ # id: string
13
+ def get_dataset_by_id(id:)
14
+ @client.get(path: "/datasets/#{id}")
15
+ end
16
+
17
+ # id: string
18
+ def delete_dataset(id:)
19
+ @client.delete(path: "/datasets/#{id}")
20
+ end
21
+
22
+ # dataset_id: string (req'd0, params: {extension: string|null}
23
+ def upload_dataset_image(dataset_id:, parameters: {})
24
+ @client.json_post(path: "/datasets/#{dataset_id}/upload", parameters: parameters)
25
+ end
26
+
27
+ # dataset_id: string (req'd0, params: {generatedImageId: string|null}
28
+ def upload_dataset_image(dataset_id:, parameters: {})
29
+ @client.json_post(path: "/datasets/#{dataset_id}/upload/gen", parameters: parameters)
30
+ end
31
+ end
32
+ end
@@ -8,16 +8,32 @@ module LeonardoAI
8
8
  @client.json_post(path: "/generations", parameters: parameters)
9
9
  end
10
10
 
11
- def edit(parameters: {})
12
- @client.multipart_post(path: "/edits", parameters: open_files(parameters))
11
+ def get_generation(id:)
12
+ @client.get(path: "/generations/#{id}")
13
13
  end
14
14
 
15
- private
15
+ def delete_generation(id:)
16
+ @client.delete(path: "/generations/#{id}")
17
+ end
18
+
19
+ def get_user_generations(user_id:)
20
+ @client.get(path: "/generations/user/#{user_id}")
21
+ end
22
+
23
+ def generate_texture_generation(parameters: {})
24
+ @client.json_post(path: "/generations-texture", parameters: parameters)
25
+ end
26
+
27
+ def get_texture_generation_by_model_id(model_id:)
28
+ @client.get(path: "/generations-texture/model/#{model_id}")
29
+ end
30
+
31
+ def get_texture_generation_by_id(id:)
32
+ @client.get(path: "/generations-texture/model/#{id}")
33
+ end
16
34
 
17
- def open_files(parameters)
18
- parameters = parameters.merge(image: File.open(parameters[:image]))
19
- parameters = parameters.merge(mask: File.open(parameters[:mask])) if parameters[:mask]
20
- parameters
35
+ def delete_texture_generation(id:)
36
+ @client.delete(path: "/generations-texture/#{id}")
21
37
  end
22
38
  end
23
39
  end
@@ -0,0 +1,39 @@
1
+ module LeonardoAI
2
+ class Models
3
+ def initialize(client: nil)
4
+ @client = client
5
+ end
6
+
7
+ def upload_3d_model(parameters: {})
8
+ @client.json_post(path: "/models-3d/upload", parameters: parameters)
9
+ end
10
+
11
+ def get_3d_models_by_user_id(user_id:, offset: 0, limit: 10)
12
+ @client.get(path: "/models-3d/user/#{user_id}?offset=#{offset}&limit=#{limit}")
13
+ end
14
+
15
+ def get_3d_models_by_id(id:, offset: 0, limit: 10)
16
+ @client.get(path: "/models-3d/#{id}?offset=#{offset}&limit=#{limit}")
17
+ end
18
+
19
+ def delete_3d_model(id:)
20
+ @client.delete(path: "/models-3d/#{id}")
21
+ end
22
+
23
+ def train(parameters: {})
24
+ @client.json_post(path: "/models", parameters: parameters)
25
+ end
26
+
27
+ def get_custom_models_by_id(id:)
28
+ @client.get(path: "/models/#{id}")
29
+ end
30
+
31
+ def delete_models_by_id(id:)
32
+ @client.delete(path: "/models/#{id}")
33
+ end
34
+
35
+ def get_platform_models(offset: 0, limit: 10)
36
+ @client.get(path: "/platformModels?offset=#{offset}&limit=#{limit}")
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,21 @@
1
+ module LeonardoAI
2
+ class Variations
3
+ def initialize(client: nil)
4
+ @client = client
5
+ end
6
+
7
+ # params: {id: string|null, isVariation: boolean|null}
8
+ def create_unzoom(parameters: {})
9
+ @client.json_post(path: "/variations/unzoom", parameters: parameters)
10
+ end
11
+
12
+ # params: {id: string|null}
13
+ def create_upscale(parameters: {})
14
+ @client.json_post(path: "/variations/upscale", parameters: parameters)
15
+ end
16
+
17
+ def get_variation_by_id(id:)
18
+ @client.get(path: "/variations/#{id}")
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module LeonardoAI
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.6"
3
3
  end
data/lib/leonardoai.rb CHANGED
@@ -3,6 +3,9 @@ require "faraday/multipart"
3
3
  require_relative "leonardoai/http"
4
4
  require_relative "leonardoai/client"
5
5
  require_relative "leonardoai/generations"
6
+ require_relative "leonardoai/models"
7
+ require_relative "leonardoai/variations"
8
+ require_relative "leonardoai/datasets"
6
9
  require_relative "leonardoai/version"
7
10
 
8
11
  module LeonardoAI
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-leonardoai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donald Lee
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-11 00:00:00.000000000 Z
11
+ date: 2023-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -58,8 +58,11 @@ files:
58
58
  - lib/leonardoai.rb
59
59
  - lib/leonardoai/client.rb
60
60
  - lib/leonardoai/compatibility.rb
61
+ - lib/leonardoai/datasets.rb
61
62
  - lib/leonardoai/generations.rb
62
63
  - lib/leonardoai/http.rb
64
+ - lib/leonardoai/models.rb
65
+ - lib/leonardoai/variations.rb
63
66
  - lib/leonardoai/version.rb
64
67
  - lib/ruby/leonardoai.rb
65
68
  - ruby-leonardoai.gemspec