Compare commits

..

No commits in common. "5e4e03c8ddce5b1313324e77ee5c473983a03601" and "ea4e566ccffa10f853ecc3f29e74b1820bc91beb" have entirely different histories.

7 changed files with 23 additions and 23 deletions

View File

@ -123,7 +123,7 @@ API and command-line option may change frequently.***
- Stable Diffusion v1.5 from https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5 - Stable Diffusion v1.5 from https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5
```sh ```sh
curl -L -O https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors curl -L -O https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors
``` ```
### Generate an image with just one command ### Generate an image with just one command

View File

@ -2,8 +2,8 @@
- download original weights(.ckpt or .safetensors). For example - download original weights(.ckpt or .safetensors). For example
- Stable Diffusion v1.4 from https://huggingface.co/CompVis/stable-diffusion-v-1-4-original - Stable Diffusion v1.4 from https://huggingface.co/CompVis/stable-diffusion-v-1-4-original
- Stable Diffusion v1.5 from https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5 - Stable Diffusion v1.5 from https://huggingface.co/runwayml/stable-diffusion-v1-5
- Stable Diffuison v2.1 from https://huggingface.co/Manojb/stable-diffusion-2-1-base - Stable Diffuison v2.1 from https://huggingface.co/stabilityai/stable-diffusion-2-1
- Stable Diffusion 3 2B from https://huggingface.co/stabilityai/stable-diffusion-3-medium - Stable Diffusion 3 2B from https://huggingface.co/stabilityai/stable-diffusion-3-medium
### txt2img example ### txt2img example

View File

@ -3309,7 +3309,7 @@ public:
class Identity : public UnaryBlock { class Identity : public UnaryBlock {
public: public:
ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) override { ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) {
return x; return x;
} }
}; };
@ -3368,7 +3368,7 @@ public:
force_prec_f32 = force_prec_f32_; force_prec_f32 = force_prec_f32_;
} }
ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) override { ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) {
ggml_tensor* w = params["weight"]; ggml_tensor* w = params["weight"];
ggml_tensor* b = nullptr; ggml_tensor* b = nullptr;
if (bias) { if (bias) {
@ -3422,7 +3422,7 @@ public:
} }
ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* forward(GGMLRunnerContext* ctx,
ggml_tensor* input_ids) override { ggml_tensor* input_ids) {
// input_ids: [N, n_token] // input_ids: [N, n_token]
auto weight = params["weight"]; auto weight = params["weight"];
@ -3482,11 +3482,11 @@ public:
scale = scale_value; scale = scale_value;
} }
std::string get_desc() override { std::string get_desc() {
return "Conv2d"; return "Conv2d";
} }
ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) override { ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) {
ggml_tensor* w = params["weight"]; ggml_tensor* w = params["weight"];
ggml_tensor* b = nullptr; ggml_tensor* b = nullptr;
if (bias) { if (bias) {
@ -3569,11 +3569,11 @@ public:
scale = scale_value; scale = scale_value;
} }
std::string get_desc() override { std::string get_desc() {
return "Conv2d_grouped"; return "Conv2d_grouped";
} }
ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) override { ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) {
ggml_tensor* w = params["weight"]; ggml_tensor* w = params["weight"];
ggml_tensor* b = nullptr; ggml_tensor* b = nullptr;
if (bias) { if (bias) {
@ -3725,7 +3725,7 @@ public:
bias(bias), bias(bias),
force_prec_f32(force_prec_f32) {} force_prec_f32(force_prec_f32) {}
ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) override { ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) {
ggml_tensor* w = params["weight"]; ggml_tensor* w = params["weight"];
ggml_tensor* b = nullptr; ggml_tensor* b = nullptr;
if (ctx->weight_adapter) { if (ctx->weight_adapter) {
@ -3778,7 +3778,7 @@ public:
elementwise_affine(elementwise_affine), elementwise_affine(elementwise_affine),
bias(bias) {} bias(bias) {}
ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) override { ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) {
ggml_tensor* w = nullptr; ggml_tensor* w = nullptr;
ggml_tensor* b = nullptr; ggml_tensor* b = nullptr;
@ -3865,7 +3865,7 @@ public:
: hidden_size(hidden_size), : hidden_size(hidden_size),
eps(eps) {} eps(eps) {}
ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) override { ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) {
ggml_tensor* w = params["weight"]; ggml_tensor* w = params["weight"];
if (ctx->weight_adapter) { if (ctx->weight_adapter) {
w = ctx->weight_adapter->patch_weight(ctx->ggml_ctx, ctx->backend, w, prefix + "weight"); w = ctx->weight_adapter->patch_weight(ctx->ggml_ctx, ctx->backend, w, prefix + "weight");

View File

@ -450,7 +450,7 @@ protected:
int64_t context_dim = 768; // hidden_size, 1024 for VERSION_SD2 int64_t context_dim = 768; // hidden_size, 1024 for VERSION_SD2
bool use_linear = false; bool use_linear = false;
void init_params(ggml_context* ctx, const String2TensorStorage& tensor_storage_map = {}, const std::string prefix = "") override { void init_params(ggml_context* ctx, const String2TensorStorage& tensor_storage_map = {}, const std::string prefix = "") {
auto iter = tensor_storage_map.find(prefix + "proj_out.weight"); auto iter = tensor_storage_map.find(prefix + "proj_out.weight");
if (iter != tensor_storage_map.end()) { if (iter != tensor_storage_map.end()) {
int64_t inner_dim = n_head * d_head; int64_t inner_dim = n_head * d_head;

View File

@ -285,7 +285,7 @@ namespace LLM {
bool add_unit_offset = false) bool add_unit_offset = false)
: hidden_size(hidden_size), eps(eps), add_unit_offset(add_unit_offset) {} : hidden_size(hidden_size), eps(eps), add_unit_offset(add_unit_offset) {}
ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) override { ggml_tensor* forward(GGMLRunnerContext* ctx, ggml_tensor* x) {
ggml_tensor* w = params["weight"]; ggml_tensor* w = params["weight"];
if (ctx->weight_adapter) { if (ctx->weight_adapter) {
w = ctx->weight_adapter->patch_weight(ctx->ggml_ctx, ctx->backend, w, prefix + "weight"); w = ctx->weight_adapter->patch_weight(ctx->ggml_ctx, ctx->backend, w, prefix + "weight");

View File

@ -21,7 +21,7 @@ bool write_gguf_file(const std::string& file_path,
class GGUFStreamingWriter : public StreamingModelWriter { class GGUFStreamingWriter : public StreamingModelWriter {
public: public:
GGUFStreamingWriter() = default; GGUFStreamingWriter() = default;
~GGUFStreamingWriter() override; ~GGUFStreamingWriter();
bool write_metadata(const std::string& file_path, bool write_metadata(const std::string& file_path,
const std::vector<TensorWritePlan>& tensors, const std::vector<TensorWritePlan>& tensors,

View File

@ -1153,7 +1153,7 @@ struct CompVisDenoiser : public Denoiser {
return {c_skip, c_out, c_in}; return {c_skip, c_out, c_in};
} }
sd::Tensor<float> noise_scaling(float sigma, virtual sd::Tensor<float> noise_scaling(float sigma,
const sd::Tensor<float>& noise, const sd::Tensor<float>& noise,
const sd::Tensor<float>& latent) override { const sd::Tensor<float>& latent) override {
GGML_ASSERT(noise.numel() == latent.numel()); GGML_ASSERT(noise.numel() == latent.numel());
@ -1165,7 +1165,7 @@ struct CompVisDenoiser : public Denoiser {
return latent; return latent;
} }
float noise_level_to_sigma(float noise_level) override { float noise_level_to_sigma(float noise_level) {
return noise_level / (1.0f - noise_level); return noise_level / (1.0f - noise_level);
} }
}; };
@ -1256,7 +1256,7 @@ struct DiscreteFlowDenoiser : public Denoiser {
return latent * (1.0f / (1.0f - sigma)); return latent * (1.0f / (1.0f - sigma));
} }
float noise_level_to_sigma(float noise_level) override { float noise_level_to_sigma(float noise_level) {
return noise_level; return noise_level;
} }
}; };
@ -1396,7 +1396,7 @@ struct MiniT2IFlowDenoiser : public Denoiser {
return latent; return latent;
} }
float noise_level_to_sigma(float noise_level) override { float noise_level_to_sigma(float noise_level) {
SD_UNUSED(noise_level); SD_UNUSED(noise_level);
return 1.0f; return 1.0f;
} }