@@ -3455,7 +3455,9 @@ class StableDiffusionGGML {
34553455struct ggml_tensor * out = diffusion_model.forward (ctx, noised_input,NULL , context, t_emb);
34563456ggml_hold_dynamic_tensor (out);
34573457
3458- struct ggml_cgraph * diffusion_graph =ggml_build_forward_ctx (ctx, out);
3458+ struct ggml_cgraph * diffusion_graph =ggml_new_graph (ctx);
3459+ diffusion_graph->order = GGML_CGRAPH_EVAL_ORDER_RIGHT_TO_LEFT;
3460+ ggml_build_forward_expand (diffusion_graph, out);
34593461 cplan =ggml_graph_plan (diffusion_graph, n_threads);
34603462
34613463ggml_set_dynamic (ctx,false );
@@ -4012,7 +4014,10 @@ class StableDiffusionGGML {
40124014 }
40134015
40144016struct ggml_tensor * moments = first_stage_model.encode (ctx, x);
4015- struct ggml_cgraph * vae_graph =ggml_build_forward_ctx (ctx, moments);
4017+
4018+ struct ggml_cgraph * vae_graph =ggml_new_graph (ctx);
4019+ vae_graph->order = GGML_CGRAPH_EVAL_ORDER_RIGHT_TO_LEFT;
4020+ ggml_build_forward_expand (vae_graph, moments);
40164021
40174022int64_t t0 =ggml_time_ms ();
40184023ggml_graph_compute_with_ctx (ctx, vae_graph, n_threads);
@@ -4142,7 +4147,10 @@ class StableDiffusionGGML {
41424147 }
41434148
41444149struct ggml_tensor * img = first_stage_model.decode (ctx, z);
4145- struct ggml_cgraph * vae_graph =ggml_build_forward_ctx (ctx, img);
4150+
4151+ struct ggml_cgraph * vae_graph =ggml_new_graph (ctx);
4152+ vae_graph->order = GGML_CGRAPH_EVAL_ORDER_RIGHT_TO_LEFT;
4153+ ggml_build_forward_expand (vae_graph, img);
41464154
41474155int64_t t0 =ggml_time_ms ();
41484156ggml_graph_compute_with_ctx (ctx, vae_graph, n_threads);