From e088f8e4fd45693cf33a67169f2d00eeda7b466c Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 4 Mar 2025 15:13:55 -0500 Subject: [PATCH] send test event to javascript from tauri --- crates/desktop/src-tauri/src/endpoints/image_endpoint.rs | 7 +++++-- .../src/ml/stable_diffusion/stable_diffusion_pipeline.rs | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/crates/desktop/src-tauri/src/endpoints/image_endpoint.rs b/crates/desktop/src-tauri/src/endpoints/image_endpoint.rs index 1d436e2fb1..460c994a52 100644 --- a/crates/desktop/src-tauri/src/endpoints/image_endpoint.rs +++ b/crates/desktop/src-tauri/src/endpoints/image_endpoint.rs @@ -9,7 +9,7 @@ use image::{DynamicImage, ImageFormat, ImageReader}; use log::{error, info}; use std::io::Cursor; use std::path::PathBuf; -use tauri::State; +use tauri::{AppHandle, State}; const PROMPT_FILENAME : &str = "prompt.txt"; const PROMPT: &str = "A beautiful landscape with mountains and a lake"; @@ -26,6 +26,7 @@ pub fn infer_image( model_config: State, model_cache: State, prompt_cache: State, + app: AppHandle, ) -> Result { let prompt = get_prompt_or_fallback(prompt); @@ -36,7 +37,7 @@ pub fn infer_image( let image = hydrate_base64_image(image) .map_err(|err| format!("Couldn't hydrate image from base64: {}", err))?; - let result = do_infer_image(&prompt, image, strength, &model_config, &model_cache, prompt_cache); + let result = do_infer_image(&prompt, image, strength, &model_config, &model_cache, prompt_cache, app); if let Err(err) = result.as_deref() { error!("There was an error: {:?}", err); @@ -52,6 +53,7 @@ fn do_infer_image( config: &AppConfig, model_cache: &ModelCache, prompt_cache: State, + app: AppHandle, ) -> Result { println!("infer_image called; generating image with SDXL Turbo..."); @@ -65,6 +67,7 @@ fn do_infer_image( prompt_cache: &prompt_cache, i2i_strength: strength, cfg_scale: config.cfg_scale, + app: &app, }; match stable_diffusion_pipeline(args) { diff --git a/crates/desktop/src-tauri/src/ml/stable_diffusion/stable_diffusion_pipeline.rs b/crates/desktop/src-tauri/src/ml/stable_diffusion/stable_diffusion_pipeline.rs index 9cbdad1ef7..91d51a4bc8 100644 --- a/crates/desktop/src-tauri/src/ml/stable_diffusion/stable_diffusion_pipeline.rs +++ b/crates/desktop/src-tauri/src/ml/stable_diffusion/stable_diffusion_pipeline.rs @@ -14,6 +14,7 @@ use candle_transformers::models::stable_diffusion::vae::DiagonalGaussianDistribu use image::DynamicImage; use log::info; use rand::Rng; +use tauri::{AppHandle, Emitter}; pub struct Args<'a> { pub image: &'a DynamicImage, @@ -24,6 +25,7 @@ pub struct Args<'a> { pub configs: &'a AppConfig, pub model_cache: &'a ModelCache, pub prompt_cache: &'a PromptCache, + pub app: &'a AppHandle, } pub fn stable_diffusion_pipeline(args: Args<'_>) -> Result { @@ -67,6 +69,8 @@ pub fn stable_diffusion_pipeline(args: Args<'_>) -> Result { let mut text_embeddings = if let Some(tensor) = maybe_cached { tensor } else { + args.app.emit("event", "loading model"); + info!("Prompt is NOT cached! Calculating embedding..."); let tensor = infer_clip_text_embeddings( &args.prompt,