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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +84 -4
- data/lib/leonardoai/client.rb +12 -0
- data/lib/leonardoai/datasets.rb +32 -0
- data/lib/leonardoai/generations.rb +23 -7
- data/lib/leonardoai/models.rb +39 -0
- data/lib/leonardoai/variations.rb +21 -0
- data/lib/leonardoai/version.rb +1 -1
- data/lib/leonardoai.rb +3 -0
- metadata +5 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: de55b3e839a008371101dab19fefc4157d9290c42a3e2de665493362648feea3
|
|
4
|
+
data.tar.gz: a6d79f4179c88c9c5cdede664203ea30cf5cb1e273e9c3dfb8f3f110384c37ed
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d5669c7773cf2df4e6a7c65309fe2631df857321535c7ee9e52bc361444c6e2606e0ed0960a4c920d0bee765dfea050137a45d5bbbf4f372fd8a910667df7d0e
|
|
7
|
+
data.tar.gz: b171eee19f9d2e9300b79c663ab7a5de9949834472039f40c46789536ff098678e8e4ca0633de3e330c54ca4ce1667010d375739d6ebadbb7d79b81acdcda41a
|
data/Gemfile.lock
CHANGED
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
|
-
|
|
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
|
-
|
|
140
|
-
|
|
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
|
-
|
|
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
|
|
data/lib/leonardoai/client.rb
CHANGED
|
@@ -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
|
|
12
|
-
@client.
|
|
11
|
+
def get_generation(id:)
|
|
12
|
+
@client.get(path: "/generations/#{id}")
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
|
|
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
|
|
18
|
-
|
|
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
|
data/lib/leonardoai/version.rb
CHANGED
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
|
+
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
|
+
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
|