stability_sdk 0.3.2 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -4
- data/exe/stability-client +3 -2
- data/lib/generation_pb.rb +79 -0
- data/lib/stability_sdk/cli.rb +10 -0
- data/lib/stability_sdk/client.rb +6 -5
- data/lib/stability_sdk/version.rb +1 -1
- data/stability_sdk.gemspec +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9514ef57fb6cd45f5b02713f17ebed4401c260a883192c722a24c5ba4d0a7b41
|
4
|
+
data.tar.gz: 70f866ca076fcfb3000e880e5a08a127627acf7a611c61efb33dc511b20985e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '090226b360d62ed7f17480fad67a5c1f5bbec11f27c3823056c8b3ad71cb279ba0c7b9394cec003fa4f9821efea8a884a3ede0c6e82bd3331e94dedb48a62f41'
|
7
|
+
data.tar.gz: 2897854946800c939ed67cbb4f3e718e5d8fb94b97e7e06204d35cea3c2ec899962891366a33052e150e5d9dd4a82e18b120491d1b99bafbd4d17aa67b01f692
|
data/README.md
CHANGED
@@ -50,13 +50,13 @@ Options:
|
|
50
50
|
-H, --height=VAL height of image in pixel. default 512
|
51
51
|
-W, --width=VAL width of image in pixel. default 512
|
52
52
|
-C, --cfg_scale=VAL CFG scale factor. default 7.0
|
53
|
-
-A, --sampler=VAL ddim, plms, k_euler, k_euler_ancestral, k_heun, k_dpm_2, k_dpm_2_ancestral, k_lms. default
|
54
|
-
-s, --steps=VAL number of steps. default
|
53
|
+
-A, --sampler=VAL ddim, plms, k_euler, k_euler_ancestral, k_heun, k_dpm_2, k_dpm_2_ancestral, k_lms, k_dpmpp_2s_ancestral, k_dpmpp_2m, k_dpmpp_sde. default auto-select
|
54
|
+
-s, --steps=VAL number of steps. default auto-select
|
55
55
|
-S, --seed=VAL random seed to use in integer
|
56
56
|
-p, --prefix=VAL output prefixes for artifacts. default `generation`
|
57
57
|
--no-store do not write out artifacts
|
58
|
-
-n, --num_samples=VAL number of samples to generate
|
59
|
-
-e, --engine=VAL engine to use for inference. default `stable-diffusion-v1`
|
58
|
+
-n, --num_samples=VAL number of samples to generate. default 1
|
59
|
+
-e, --engine=VAL engine to use for inference. default `stable-diffusion-xl-1024-v1-0`
|
60
60
|
-i, --init_image=VAL path to init image
|
61
61
|
-m, --mask_image=VAL path to mask image
|
62
62
|
--start_schedule=VAL start schedule for init image (must be greater than 0, 1 is full strength text prompt, no trace of image). default 1.0
|
@@ -66,6 +66,7 @@ Options:
|
|
66
66
|
--guidance_strength=VAL Strength of the guidance. We recommend values in range [0.0,1.0]. A good default is 0.25. default nil
|
67
67
|
--guidance_prompt=VAL Prompt to use for guidance, defaults to `YOUR_PROMPT_TEXT` argument (above) if not specified.
|
68
68
|
--guidance_models=VAL Models to use for guidance. default nil
|
69
|
+
-t, --artifact_types=VAL filter artifacts by type (ARTIFACT_IMAGE, ARTIFACT_TEXT, ARTIFACT_CLASSIFICATIONS, etc)
|
69
70
|
-v, --verbose
|
70
71
|
```
|
71
72
|
|
data/exe/stability-client
CHANGED
@@ -21,8 +21,8 @@ opt.on("--api_key=VAL", "api key of DreamStudio account. You can also specify by
|
|
21
21
|
opt.on("-H", "--height=VAL", Integer, "height of image in pixel. default 512") {|v| options[:height] = v }
|
22
22
|
opt.on("-W", "--width=VAL", Integer, "width of image in pixel. default 512") {|v| options[:width] = v }
|
23
23
|
opt.on("-C", "--cfg_scale=VAL", Float, "CFG scale factor. default 7.0") {|v| options[:cfg_scale] = v }
|
24
|
-
opt.on("-A", "--sampler=VAL", String, "ddim, plms, k_euler, k_euler_ancestral, k_heun, k_dpm_2, k_dpm_2_ancestral, k_lms. default
|
25
|
-
opt.on("-s", "--steps=VAL", Integer, "number of steps. default
|
24
|
+
opt.on("-A", "--sampler=VAL", String, "ddim, plms, k_euler, k_euler_ancestral, k_heun, k_dpm_2, k_dpm_2_ancestral, k_lms, k_dpmpp_2s_ancestral, k_dpmpp_2m, k_dpmpp_sde. default auto-select") {|v| options[:sampler] = v }
|
25
|
+
opt.on("-s", "--steps=VAL", Integer, "number of steps. default auto-select") {|v| options[:steps] = v }
|
26
26
|
opt.on("-S", "--seed=VAL", Integer, "random seed to use in integer") {|v| options[:seed] = v }
|
27
27
|
opt.on("-p", "--prefix=VAL", String, "output prefixes for artifacts. default `generation`") {|v| options[:prefix] = v }
|
28
28
|
opt.on("--no-store", "do not write out artifacts") {|v| options[:no_store] = v }
|
@@ -37,6 +37,7 @@ opt.on("--guidance_cuts=VAL", Integer, "Number of cuts to use for guidance. defa
|
|
37
37
|
opt.on("--guidance_strength=VAL", Float, "Strength of the guidance. We recommend values in range [0.0,1.0]. A good default is 0.25. default nil") {|v| options[:guidance_strength] = v }
|
38
38
|
opt.on("--guidance_prompt=VAL", String, "Prompt to use for guidance, defaults to `YOUR_PROMPT_TEXT` argument (above) if not specified.") {|v| options[:guidance_prompt] = v }
|
39
39
|
opt.on("--guidance_models=VAL", Array, "Models to use for guidance. default nil") {|v| options[:guidance_models] = v }
|
40
|
+
opt.on("-t", "--artifact_types=VAL", Array, "filter artifacts by type (ARTIFACT_IMAGE, ARTIFACT_TEXT, ARTIFACT_CLASSIFICATIONS, etc)") {|v| options[:artifact_types] = v }
|
40
41
|
opt.on("-v", "--verbose") { logger.level = Logger::DEBUG }
|
41
42
|
opt.parse!(ARGV)
|
42
43
|
|
data/lib/generation_pb.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
|
4
4
|
require 'google/protobuf'
|
5
5
|
|
6
|
+
require 'google/protobuf/struct_pb'
|
6
7
|
require 'tensors_pb'
|
7
8
|
|
8
9
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
@@ -52,6 +53,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
52
53
|
proto3_optional :downsampling_factor, :uint64, 4
|
53
54
|
proto3_optional :cfg_scale, :float, 5
|
54
55
|
proto3_optional :init_noise_scale, :float, 6
|
56
|
+
proto3_optional :step_noise_scale, :float, 7
|
55
57
|
end
|
56
58
|
add_message "gooseai.ConditionerParameters" do
|
57
59
|
proto3_optional :vector_adjust_prior, :string, 1
|
@@ -114,6 +116,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
114
116
|
repeated :parameters, :message, 7, "gooseai.StepParameter"
|
115
117
|
proto3_optional :masked_area_init, :enum, 8, "gooseai.MaskedAreaInit"
|
116
118
|
proto3_optional :weight_method, :enum, 9, "gooseai.WeightMethod"
|
119
|
+
proto3_optional :quantize, :bool, 10
|
117
120
|
end
|
118
121
|
add_message "gooseai.ClassifierConcept" do
|
119
122
|
optional :concept, :string, 1
|
@@ -131,6 +134,49 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
131
134
|
repeated :exceeds, :message, 2, "gooseai.ClassifierCategory"
|
132
135
|
proto3_optional :realized_action, :enum, 3, "gooseai.Action"
|
133
136
|
end
|
137
|
+
add_message "gooseai.InterpolateParameters" do
|
138
|
+
repeated :ratios, :float, 1
|
139
|
+
proto3_optional :mode, :enum, 2, "gooseai.InterpolateMode"
|
140
|
+
end
|
141
|
+
add_message "gooseai.TransformBlend" do
|
142
|
+
optional :amount, :float, 1
|
143
|
+
optional :target, :message, 2, "gooseai.Artifact"
|
144
|
+
end
|
145
|
+
add_message "gooseai.TransformColorAdjust" do
|
146
|
+
proto3_optional :brightness, :float, 1
|
147
|
+
proto3_optional :contrast, :float, 2
|
148
|
+
proto3_optional :hue, :float, 3
|
149
|
+
proto3_optional :saturation, :float, 4
|
150
|
+
proto3_optional :lightness, :float, 5
|
151
|
+
end
|
152
|
+
add_message "gooseai.TransformColorMatch" do
|
153
|
+
optional :color_mode, :enum, 1, "gooseai.ColorMatchMode"
|
154
|
+
optional :image, :message, 2, "gooseai.Artifact"
|
155
|
+
end
|
156
|
+
add_message "gooseai.TransformDepthCalc" do
|
157
|
+
proto3_optional :blend_weight, :float, 1
|
158
|
+
proto3_optional :blur_radius, :uint32, 2
|
159
|
+
proto3_optional :reverse, :bool, 3
|
160
|
+
end
|
161
|
+
add_message "gooseai.TransformMatrix" do
|
162
|
+
repeated :data, :float, 1
|
163
|
+
end
|
164
|
+
add_message "gooseai.TransformResample" do
|
165
|
+
optional :border_mode, :enum, 1, "gooseai.BorderMode"
|
166
|
+
optional :transform, :message, 2, "gooseai.TransformMatrix"
|
167
|
+
proto3_optional :prev_transform, :message, 3, "gooseai.TransformMatrix"
|
168
|
+
proto3_optional :depth_warp, :float, 4
|
169
|
+
proto3_optional :export_mask, :bool, 5
|
170
|
+
end
|
171
|
+
add_message "gooseai.TransformParameters" do
|
172
|
+
oneof :transform do
|
173
|
+
optional :blend, :message, 1, "gooseai.TransformBlend"
|
174
|
+
optional :color_adjust, :message, 2, "gooseai.TransformColorAdjust"
|
175
|
+
optional :color_match, :message, 3, "gooseai.TransformColorMatch"
|
176
|
+
optional :depth_calc, :message, 4, "gooseai.TransformDepthCalc"
|
177
|
+
optional :resample, :message, 5, "gooseai.TransformResample"
|
178
|
+
end
|
179
|
+
end
|
134
180
|
add_message "gooseai.AssetParameters" do
|
135
181
|
optional :action, :enum, 1, "gooseai.AssetAction"
|
136
182
|
optional :project_id, :string, 2
|
@@ -156,10 +202,13 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
156
202
|
optional :requested_type, :enum, 3, "gooseai.ArtifactType"
|
157
203
|
repeated :prompt, :message, 4, "gooseai.Prompt"
|
158
204
|
proto3_optional :conditioner, :message, 6, "gooseai.ConditionerParameters"
|
205
|
+
proto3_optional :extras, :message, 2047, "google.protobuf.Struct"
|
159
206
|
oneof :params do
|
160
207
|
optional :image, :message, 5, "gooseai.ImageParameters"
|
161
208
|
optional :classifier, :message, 7, "gooseai.ClassifierParameters"
|
162
209
|
optional :asset, :message, 8, "gooseai.AssetParameters"
|
210
|
+
optional :interpolate, :message, 11, "gooseai.InterpolateParameters"
|
211
|
+
optional :transform, :message, 12, "gooseai.TransformParameters"
|
163
212
|
end
|
164
213
|
end
|
165
214
|
add_message "gooseai.OnStatus" do
|
@@ -194,6 +243,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
194
243
|
value :ARTIFACT_MASK, 7
|
195
244
|
value :ARTIFACT_LATENT, 8
|
196
245
|
value :ARTIFACT_TENSOR, 9
|
246
|
+
value :ARTIFACT_DEPTH, 10
|
197
247
|
end
|
198
248
|
add_enum "gooseai.MaskedAreaInit" do
|
199
249
|
value :MASKED_AREA_INIT_ZERO, 0
|
@@ -215,6 +265,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
215
265
|
value :SAMPLER_K_LMS, 7
|
216
266
|
value :SAMPLER_K_DPMPP_2S_ANCESTRAL, 8
|
217
267
|
value :SAMPLER_K_DPMPP_2M, 9
|
268
|
+
value :SAMPLER_K_DPMPP_SDE, 10
|
218
269
|
end
|
219
270
|
add_enum "gooseai.Upscaler" do
|
220
271
|
value :UPSCALER_RGB, 0
|
@@ -248,6 +299,23 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
248
299
|
value :CLSFR_MODE_ZEROSHOT, 0
|
249
300
|
value :CLSFR_MODE_MULTICLASS, 1
|
250
301
|
end
|
302
|
+
add_enum "gooseai.InterpolateMode" do
|
303
|
+
value :INTERPOLATE_LINEAR, 0
|
304
|
+
value :INTERPOLATE_RIFE, 1
|
305
|
+
value :INTERPOLATE_VAE_LINEAR, 2
|
306
|
+
value :INTERPOLATE_VAE_SLERP, 3
|
307
|
+
end
|
308
|
+
add_enum "gooseai.BorderMode" do
|
309
|
+
value :BORDER_REFLECT, 0
|
310
|
+
value :BORDER_REPLICATE, 1
|
311
|
+
value :BORDER_WRAP, 2
|
312
|
+
value :BORDER_ZERO, 3
|
313
|
+
end
|
314
|
+
add_enum "gooseai.ColorMatchMode" do
|
315
|
+
value :COLOR_MATCH_HSV, 0
|
316
|
+
value :COLOR_MATCH_LAB, 1
|
317
|
+
value :COLOR_MATCH_RGB, 2
|
318
|
+
end
|
251
319
|
add_enum "gooseai.AssetAction" do
|
252
320
|
value :ASSET_PUT, 0
|
253
321
|
value :ASSET_GET, 1
|
@@ -288,6 +356,14 @@ module Gooseai
|
|
288
356
|
ClassifierConcept = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.ClassifierConcept").msgclass
|
289
357
|
ClassifierCategory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.ClassifierCategory").msgclass
|
290
358
|
ClassifierParameters = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.ClassifierParameters").msgclass
|
359
|
+
InterpolateParameters = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.InterpolateParameters").msgclass
|
360
|
+
TransformBlend = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.TransformBlend").msgclass
|
361
|
+
TransformColorAdjust = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.TransformColorAdjust").msgclass
|
362
|
+
TransformColorMatch = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.TransformColorMatch").msgclass
|
363
|
+
TransformDepthCalc = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.TransformDepthCalc").msgclass
|
364
|
+
TransformMatrix = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.TransformMatrix").msgclass
|
365
|
+
TransformResample = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.TransformResample").msgclass
|
366
|
+
TransformParameters = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.TransformParameters").msgclass
|
291
367
|
AssetParameters = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.AssetParameters").msgclass
|
292
368
|
AnswerMeta = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.AnswerMeta").msgclass
|
293
369
|
Answer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.Answer").msgclass
|
@@ -305,6 +381,9 @@ module Gooseai
|
|
305
381
|
ModelArchitecture = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.ModelArchitecture").enummodule
|
306
382
|
Action = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.Action").enummodule
|
307
383
|
ClassifierMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.ClassifierMode").enummodule
|
384
|
+
InterpolateMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.InterpolateMode").enummodule
|
385
|
+
BorderMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.BorderMode").enummodule
|
386
|
+
ColorMatchMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.ColorMatchMode").enummodule
|
308
387
|
AssetAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.AssetAction").enummodule
|
309
388
|
AssetUse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.AssetUse").enummodule
|
310
389
|
StageAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gooseai.StageAction").enummodule
|
data/lib/stability_sdk/cli.rb
CHANGED
@@ -4,12 +4,22 @@ module StabilitySDK
|
|
4
4
|
logger.debug "received answer: #{answer}"
|
5
5
|
return if options[:no_store]
|
6
6
|
|
7
|
+
allowed_artifact_types = []
|
8
|
+
if options.has_key?(:artifact_types)
|
9
|
+
allowed_artifact_types = options[:artifact_types].map(&:to_sym)
|
10
|
+
end
|
11
|
+
|
7
12
|
answer.artifacts.each_with_index do |artifact, idx|
|
8
13
|
filename_base = "#{options[:prefix] || "generation"}-#{answer.request_id}-#{answer.answer_id}-#{idx}"
|
9
14
|
|
10
15
|
filename = ""
|
11
16
|
contents = ""
|
12
17
|
|
18
|
+
if allowed_artifact_types.size > 0 && !allowed_artifact_types.include?(artifact.type)
|
19
|
+
logger.info "skipping #{artifact.type} due to artifact type filter"
|
20
|
+
next
|
21
|
+
end
|
22
|
+
|
13
23
|
case artifact.type
|
14
24
|
when :ARTIFACT_IMAGE
|
15
25
|
ext = MIME::Types[artifact.mime].first.preferred_extension
|
data/lib/stability_sdk/client.rb
CHANGED
@@ -8,10 +8,8 @@ module StabilitySDK
|
|
8
8
|
DEFAULT_IMAGE_WIDTH = 512
|
9
9
|
DEFAULT_IMAGE_HEIGHT = 512
|
10
10
|
DEFAULT_SAMPLE_SIZE = 1
|
11
|
-
|
12
|
-
DEFAULT_ENGINE_ID = "stable-diffusion-v1-5"
|
11
|
+
DEFAULT_ENGINE_ID = "stable-diffusion-xl-1024-v1-0"
|
13
12
|
DEFAULT_CFG_SCALE = 7.0
|
14
|
-
DEFAULT_SAMPLER_ALGORITHM = Gooseai::DiffusionSampler::SAMPLER_K_LMS
|
15
13
|
DEFAULT_START_SCHEDULE = 1.0
|
16
14
|
DEFAULT_END_SCHEDULE = 0.01
|
17
15
|
|
@@ -24,6 +22,9 @@ module StabilitySDK
|
|
24
22
|
"k_dpm_2": Gooseai::DiffusionSampler::SAMPLER_K_DPM_2,
|
25
23
|
"k_dpm_2_ancestral": Gooseai::DiffusionSampler::SAMPLER_K_DPM_2_ANCESTRAL,
|
26
24
|
"k_lms": Gooseai::DiffusionSampler::SAMPLER_K_LMS,
|
25
|
+
"k_dpmpp_2s_ancestral": Gooseai::DiffusionSampler::SAMPLER_K_DPMPP_2S_ANCESTRAL,
|
26
|
+
"k_dpmpp_2m": Gooseai::DiffusionSampler::SAMPLER_K_DPMPP_2M,
|
27
|
+
"k_dpmpp_sde": Gooseai::DiffusionSampler::SAMPLER_K_DPMPP_SDE,
|
27
28
|
}
|
28
29
|
|
29
30
|
def initialize(options={})
|
@@ -57,10 +58,10 @@ module StabilitySDK
|
|
57
58
|
end
|
58
59
|
|
59
60
|
samples = options.has_key?(:num_samples) ? options[:num_samples] : DEFAULT_SAMPLE_SIZE
|
60
|
-
steps = options.has_key?(:steps) ? options[:steps] :
|
61
|
+
steps = options.has_key?(:steps) ? options[:steps] : nil
|
61
62
|
seed = options.has_key?(:seed) ? [options[:seed]] : [rand(4294967295)]
|
62
63
|
transform = Gooseai::TransformType.new(
|
63
|
-
diffusion: options.has_key?(:sampler) ? SAMPLER_ALGORITHMS[options[:sampler].to_sym] :
|
64
|
+
diffusion: options.has_key?(:sampler) ? SAMPLER_ALGORITHMS[options[:sampler].to_sym] : nil,
|
64
65
|
)
|
65
66
|
step_parameter = Gooseai::StepParameter.new(
|
66
67
|
scaled_step: 0,
|
data/stability_sdk.gemspec
CHANGED
@@ -15,6 +15,7 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.metadata["homepage_uri"] = spec.homepage
|
16
16
|
spec.metadata["source_code_uri"] = "https://github.com/cou929/stability-sdk-ruby"
|
17
17
|
spec.metadata["changelog_uri"] = "https://github.com/cou929/stability-sdk-ruby"
|
18
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
18
19
|
|
19
20
|
# Specify which files should be added to the gem when it is released.
|
20
21
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stability_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kosei Moriyama
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: grpc
|
@@ -125,6 +125,7 @@ metadata:
|
|
125
125
|
homepage_uri: https://github.com/cou929/stability-sdk-ruby
|
126
126
|
source_code_uri: https://github.com/cou929/stability-sdk-ruby
|
127
127
|
changelog_uri: https://github.com/cou929/stability-sdk-ruby
|
128
|
+
rubygems_mfa_required: 'true'
|
128
129
|
post_install_message:
|
129
130
|
rdoc_options: []
|
130
131
|
require_paths:
|