diff --git a/frontend/editor2d/src/KonvaApp/Engine.ts b/frontend/editor2d/src/KonvaApp/Engine.ts index 917b4fa183..f629c08018 100644 --- a/frontend/editor2d/src/KonvaApp/Engine.ts +++ b/frontend/editor2d/src/KonvaApp/Engine.ts @@ -338,8 +338,6 @@ export class Engine { }); uiEvents.toolbarMain.SAVE.onClick(async (/*event*/) => { - //document.location.href = "https://auth.openai.com/log-in"; - //console.log('save clicked'); //await this.realTimeDrawEngine.saveOutput(); // This works. await invoke("open_login_command"); }); diff --git a/frontend/editor2d/src/KonvaApp/RenderingPrimitives/RealTimeDrawEngine.ts b/frontend/editor2d/src/KonvaApp/RenderingPrimitives/RealTimeDrawEngine.ts index d644b54f17..501bc3993e 100644 --- a/frontend/editor2d/src/KonvaApp/RenderingPrimitives/RealTimeDrawEngine.ts +++ b/frontend/editor2d/src/KonvaApp/RenderingPrimitives/RealTimeDrawEngine.ts @@ -27,6 +27,7 @@ import { import { ensureBase64Prefix } from "../EngineUtitlities/Base64Helpers"; import { DecodeBase64ToImage } from "~/utilities/DecodeBase64ToImage.ts"; import { EncodeImageBitmapToBase64 } from "~/utilities/EncodeImageBitmapToBase64.ts"; +import { setCanvasRenderBitmap } from "~/signal/canvasRenderBitmap"; interface ServerSettings { model_path: string; @@ -789,6 +790,11 @@ export class RealTimeDrawEngine { const base64Bitmap = await this.imageBitmapToBase64( this.lastRenderedBitmap, ); + + const generateResponse = await invoke("image_generation_command", { + image: base64Bitmap, + prompt: this.currentPrompt, + }); } public async render() { @@ -822,18 +828,9 @@ export class RealTimeDrawEngine { this.lastRenderedBitmap = bitmap; + setCanvasRenderBitmap(bitmap); + try { - //const base64Bitmap = await this.imageBitmapToBase64(bitmap); - //const base64BitmapResponse = await invoke("image_generation_command", { - // image: base64Bitmap, - // prompt: this.currentPrompt, - //}); - ////console.log(base64BitmapResponse); - //const decoded = await DecodeBase64ToImage( - // base64BitmapResponse as string, - //); - //this.outputBitmap = decoded; - //this.previewCanvas.image(decoded); } catch (error) { console.error("Error during image processing:", error); } finally { diff --git a/frontend/editor2d/src/components/PromptBox.tsx b/frontend/editor2d/src/components/PromptBox.tsx index a3f28ed8cb..1826ae1c4e 100644 --- a/frontend/editor2d/src/components/PromptBox.tsx +++ b/frontend/editor2d/src/components/PromptBox.tsx @@ -1,4 +1,5 @@ import { useState, useRef, useEffect } from "react"; +import { invoke } from "@tauri-apps/api/core"; import { useSignals } from "@preact/signals-react/runtime"; import { UploaderStates, @@ -33,6 +34,8 @@ import { import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { PopoverItem } from "~/components/reusable/Popover"; +import { getCanvasRenderBitmap } from "~/signal/canvasRenderBitmap"; +import { EncodeImageBitmapToBase64 } from "~/utilities/EncodeImageBitmapToBase64"; interface ReferenceImage { id: string; @@ -48,6 +51,8 @@ interface ExtendedPopoverItem extends PopoverItem { export const PromptBox = () => { useSignals(); + //const { lastRenderedBitmap } = useCanvasSignal(); + const [prompt, setPrompt] = useState(""); const [isEnqueueing, setisEnqueueing] = useState(false); const [useSystemPrompt, setUseSystemPrompt] = useState(true); @@ -253,6 +258,20 @@ export const PromptBox = () => { "and reference images:", referenceImages, ); + + let image = getCanvasRenderBitmap(); + + if (image === undefined) { + return; + } + + const base64Bitmap = await EncodeImageBitmapToBase64(image); + + const generateResponse = await invoke("image_generation_command", { + image: base64Bitmap, + prompt: prompt, + }); + await new Promise((resolve) => setTimeout(resolve, 2000)); } finally { setisEnqueueing(false);