Skip to content

Commit

Permalink
fix: sample_k_diffusion should be static
Browse files Browse the repository at this point in the history
  • Loading branch information
leejet committed Jun 10, 2024
1 parent 8d2050a commit f9f0d46
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions denoiser.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -263,14 +263,13 @@ struct CompVisVDenoiser : public Denoiser {

typedef std::function<ggml_tensor*(ggml_tensor*, float, int)> denoise_cb_t;


// k diffusion reverse ODE: dx = (x - D(x;\sigma)) / \sigma dt; \sigma(t) = t
void sample_k_diffusion(sample_method_t method,
denoise_cb_t model,
ggml_context* work_ctx,
ggml_tensor* x,
std::vector<float> sigmas,
std::shared_ptr<RNG> rng) {
static void sample_k_diffusion(sample_method_t method,
denoise_cb_t model,
ggml_context* work_ctx,
ggml_tensor* x,
std::vector<float> sigmas,
std::shared_ptr<RNG> rng) {
size_t steps = sigmas.size() - 1;
// sample_euler_ancestral
switch (method) {
Expand Down Expand Up @@ -401,7 +400,7 @@ void sample_k_diffusion(sample_method_t method,
}

ggml_tensor* denoised = model(x2, sigmas[i + 1], i + 1);
float* vec_denoised = (float*)denoised->data;
float* vec_denoised = (float*)denoised->data;
for (int j = 0; j < ggml_nelements(x); j++) {
float d2 = (vec_x2[j] - vec_denoised[j]) / sigmas[i + 1];
vec_d[j] = (vec_d[j] + d2) / 2;
Expand Down Expand Up @@ -453,7 +452,7 @@ void sample_k_diffusion(sample_method_t method,
}

ggml_tensor* denoised = model(x2, sigma_mid, i + 1);
float* vec_denoised = (float*)denoised->data;
float* vec_denoised = (float*)denoised->data;
for (int j = 0; j < ggml_nelements(x); j++) {
float d2 = (vec_x2[j] - vec_denoised[j]) / sigma_mid;
vec_x[j] = vec_x[j] + d2 * dt_2;
Expand Down

0 comments on commit f9f0d46

Please sign in to comment.