generate_image 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/generate_image/version.rb +1 -1
- data/lib/generate_image.rb +41 -21
- metadata +24 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e0cf6f92bb8a3dc9f268736bc22cae4cfec8cd0af5a4e193e383feb156a1d2ac
|
4
|
+
data.tar.gz: 78735582f957597a69428939cc39f9a857583443c6f903927b4b449a3e7427b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25a102011cffbda0cec595234e51bccfc9593022362ae0d9d1cd44f0744ac1aed1c0d591921abe8270f7e655899e289fc2c7dae2cb0c03a548db35223fcc9ec2
|
7
|
+
data.tar.gz: 2bab3bbcd46182d4f2487a6a13f7fe5d74537b512b036ab958ac1d648a2190219c35129f1bc3df005ed9e56506bf345083c3f7925a6781116174a9a1d3977ae1
|
data/lib/generate_image.rb
CHANGED
@@ -1,36 +1,56 @@
|
|
1
1
|
require 'net/http'
|
2
|
-
require 'json'
|
3
2
|
|
4
3
|
module GenerateImage
|
5
|
-
class RequestFailed < StandardError
|
4
|
+
class RequestFailed < StandardError
|
5
|
+
def initialize(message = "Request failed")
|
6
|
+
super(message)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
class MissingApiKey < RequestFailed
|
11
|
+
def initialize(message = "API key not set")
|
12
|
+
super(message)
|
13
|
+
end
|
14
|
+
end
|
6
15
|
|
7
16
|
class << self
|
8
17
|
API_ENDPOINT = 'https://api.openai.com/v1/images/generations'
|
9
|
-
IMAGE_MODEL_NAME = 'image-alpha-001'
|
10
|
-
TEXT_MODEL_NAME = 'text-davinci-002'
|
11
18
|
API_KEY = ENV['DALL_E_API_KEY']
|
19
|
+
DEFAULT_OPTIONS = {
|
20
|
+
model: 'image-alpha-001',
|
21
|
+
num_images: 1,
|
22
|
+
size: '1024x1024',
|
23
|
+
response_format: 'url',
|
24
|
+
style: nil,
|
25
|
+
scale: 1,
|
26
|
+
seed: nil,
|
27
|
+
quality: 100,
|
28
|
+
text_model: 'text-davinci-002',
|
29
|
+
text_prompt: nil,
|
30
|
+
text_length: nil
|
31
|
+
}
|
12
32
|
|
13
33
|
def generate_image(text, options = {})
|
14
|
-
|
15
|
-
|
16
|
-
|
34
|
+
options = DEFAULT_OPTIONS.merge(options)
|
35
|
+
raise MissingApiKey if API_KEY.nil?
|
36
|
+
|
17
37
|
uri = URI(API_ENDPOINT)
|
18
38
|
request = Net::HTTP::Post.new(uri)
|
19
39
|
request['Content-Type'] = 'application/json'
|
20
40
|
request['Authorization'] = "Bearer #{API_KEY}"
|
21
41
|
request.body = {
|
22
|
-
model: options[:model]
|
42
|
+
model: options[:model],
|
23
43
|
prompt: text,
|
24
|
-
num_images: options[:num_images]
|
25
|
-
size: options[:size]
|
26
|
-
response_format: options[:response_format]
|
27
|
-
style: options[:style]
|
28
|
-
scale: options[:scale]
|
29
|
-
seed: options[:seed]
|
30
|
-
quality: options[:quality]
|
31
|
-
text_model: options[:text_model]
|
32
|
-
text_prompt: options[:text_prompt]
|
33
|
-
text_length: options[:text_length]
|
44
|
+
num_images: options[:num_images],
|
45
|
+
size: options[:size],
|
46
|
+
response_format: options[:response_format],
|
47
|
+
style: options[:style],
|
48
|
+
scale: options[:scale],
|
49
|
+
seed: options[:seed],
|
50
|
+
quality: options[:quality],
|
51
|
+
text_model: options[:text_model],
|
52
|
+
text_prompt: options[:text_prompt],
|
53
|
+
text_length: options[:text_length]
|
34
54
|
}.to_json
|
35
55
|
|
36
56
|
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
|
@@ -40,13 +60,13 @@ module GenerateImage
|
|
40
60
|
if response.code == '200'
|
41
61
|
if options[:response_format] == 'base64'
|
42
62
|
image_base64 = JSON.parse(response.body)['data'][0]['base64']
|
43
|
-
|
63
|
+
{ image_base64: image_base64 }
|
44
64
|
else
|
45
65
|
image_url = JSON.parse(response.body)['data'][0]['url']
|
46
|
-
|
66
|
+
{ image_url: image_url }
|
47
67
|
end
|
48
68
|
else
|
49
|
-
raise RequestFailed
|
69
|
+
raise RequestFailed.new("Failed to generate image. Response code: #{response.code}. Response body: #{response.body}")
|
50
70
|
end
|
51
71
|
end
|
52
72
|
end
|
metadata
CHANGED
@@ -1,77 +1,78 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: generate_image
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AMQOR Merouane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-http
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.3.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.3.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sinatra
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 3.0.5
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 3.0.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: json
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 2.6.3
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 2.6.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: openai
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 0.3.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
description:
|
70
|
-
|
71
|
-
|
72
|
-
|
68
|
+
version: 0.3.0
|
69
|
+
description: The 'generate_image' gem provides a simple and easy-to-use interface
|
70
|
+
for generating images using the powerful DALL-E API from OpenAI. This Ruby gem can
|
71
|
+
be used in Ruby on Rails projects or any other Ruby projects to create stunning
|
72
|
+
images based on the text you provide. Unleash your imagination and generate images
|
73
|
+
for any use case, from social media posts to marketing materials and beyond.
|
73
74
|
email:
|
74
|
-
- marouane.
|
75
|
+
- marouane.amqor@gmail.com
|
75
76
|
executables:
|
76
77
|
- console
|
77
78
|
- setup
|