main
 1# frozen_string_literal: true
 2
 3require_relative "lib/elelem/diffusion/version"
 4
 5Gem::Specification.new do |spec|
 6  spec.name = "elelem-diffusion"
 7  spec.version = Elelem::Diffusion::VERSION
 8  spec.authors = ["mo khan"]
 9  spec.email = ["[email protected]"]
10
11  spec.summary = "Local diffusion-model tools for elelem."
12  spec.description = "Adds image, img2img, video, and upscale tools backed by an embedded stable-diffusion.cpp."
13  spec.homepage = "https://src.mokhan.ca/elelem/diffusion"
14  spec.license = "MIT"
15  spec.required_ruby_version = ">= 4.0.0"
16  spec.metadata["allowed_push_host"] = "https://rubygems.org"
17  spec.metadata["homepage_uri"] = spec.homepage
18  spec.metadata["source_code_uri"] = spec.homepage
19  spec.metadata["rubygems_mfa_required"] = "true"
20
21  spec.files = [
22    "LICENSE.txt",
23    "lib/elelem/diffusion.rb",
24    "lib/elelem/diffusion/version.rb",
25    "ext/elelem/diffusion/elelem.cpp",
26    "ext/elelem/diffusion/extconf.rb"
27  ]
28  # Only what extconf.rb's cmake build (SD_BUILD_EXAMPLES/WEBP/WEBM all OFF)
29  # actually needs to configure and compile. Applies to both stable-diffusion.cpp's
30  # own tree and its nested ggml submodule.
31  vendor_exclude = %r{/(examples|docs|tests|ci|assets|\.github|thirdparty/libwebp|thirdparty/libwebm)/}
32  spec.files += Dir["vendor/stable-diffusion.cpp/**/*"].select do |path|
33    File.file?(path) && path !~ vendor_exclude
34  end
35  spec.extensions = ["ext/elelem/diffusion/extconf.rb"]
36  spec.require_paths = ["lib"]
37
38  spec.add_dependency "elelem", "~> 0.12"
39  spec.add_dependency "fiddle", "~> 1.1"
40end