diff --git a/Text2Image/assets/img/text2img_init.png b/Text2Image/assets/img/text2img_init.png
new file mode 100644
index 0000000000..4b96c6656b
Binary files /dev/null and b/Text2Image/assets/img/text2img_init.png differ
diff --git a/Text2Image/assets/img/text2img_response.png b/Text2Image/assets/img/text2img_response.png
new file mode 100644
index 0000000000..7d61c4860f
Binary files /dev/null and b/Text2Image/assets/img/text2img_response.png differ
diff --git a/Text2Image/ui/docker/Dockerfile b/Text2Image/ui/docker/Dockerfile
new file mode 100644
index 0000000000..ac2bb7da31
--- /dev/null
+++ b/Text2Image/ui/docker/Dockerfile
@@ -0,0 +1,26 @@
+# Copyright (C) 2024 Intel Corporation
+# SPDX-License-Identifier: Apache-2.0
+
+# Use node 20.11.1 as the base image
+FROM node:20.11.1
+
+# Update package manager and install Git
+RUN apt-get update -y && apt-get install -y git
+
+# Copy the front-end code repository
+COPY svelte /home/user/svelte
+
+# Set the working directory
+WORKDIR /home/user/svelte
+
+# Install front-end dependencies
+RUN npm install
+
+# Build the front-end application
+RUN npm run build
+
+# Expose the port of the front-end application
+EXPOSE 5173
+
+# Run the front-end application in preview mode
+CMD ["npm", "run", "preview", "--", "--port", "5173", "--host", "0.0.0.0"]
\ No newline at end of file
diff --git a/Text2Image/ui/svelte/.editorconfig b/Text2Image/ui/svelte/.editorconfig
new file mode 100644
index 0000000000..2b7a6637f7
--- /dev/null
+++ b/Text2Image/ui/svelte/.editorconfig
@@ -0,0 +1,10 @@
+[*]
+indent_style = tab
+
+[package.json]
+indent_style = space
+indent_size = 2
+
+[*.md]
+indent_style = space
+indent_size = 2
diff --git a/Text2Image/ui/svelte/.env b/Text2Image/ui/svelte/.env
new file mode 100644
index 0000000000..7ca6806494
--- /dev/null
+++ b/Text2Image/ui/svelte/.env
@@ -0,0 +1,2 @@
+BASE_URL = '/v1/text2image'
+
diff --git a/Text2Image/ui/svelte/.eslintignore b/Text2Image/ui/svelte/.eslintignore
new file mode 100644
index 0000000000..38972655fa
--- /dev/null
+++ b/Text2Image/ui/svelte/.eslintignore
@@ -0,0 +1,13 @@
+.DS_Store
+node_modules
+/build
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+
+# Ignore files for PNPM, NPM and YARN
+pnpm-lock.yaml
+package-lock.json
+yarn.lock
diff --git a/Text2Image/ui/svelte/.eslintrc.cjs b/Text2Image/ui/svelte/.eslintrc.cjs
new file mode 100644
index 0000000000..a6592d11f7
--- /dev/null
+++ b/Text2Image/ui/svelte/.eslintrc.cjs
@@ -0,0 +1,34 @@
+// Copyright (c) 2024 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+module.exports = {
+ root: true,
+ parser: "@typescript-eslint/parser",
+ extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"],
+ plugins: ["svelte3", "@typescript-eslint", "neverthrow"],
+ ignorePatterns: ["*.cjs"],
+ overrides: [{ files: ["*.svelte"], processor: "svelte3/svelte3" }],
+ settings: {
+ "svelte3/typescript": () => require("typescript"),
+ },
+ parserOptions: {
+ sourceType: "module",
+ ecmaVersion: 2020,
+ },
+ env: {
+ browser: true,
+ es2017: true,
+ node: true,
+ },
+};
diff --git a/Text2Image/ui/svelte/.prettierignore b/Text2Image/ui/svelte/.prettierignore
new file mode 100644
index 0000000000..38972655fa
--- /dev/null
+++ b/Text2Image/ui/svelte/.prettierignore
@@ -0,0 +1,13 @@
+.DS_Store
+node_modules
+/build
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+
+# Ignore files for PNPM, NPM and YARN
+pnpm-lock.yaml
+package-lock.json
+yarn.lock
diff --git a/Text2Image/ui/svelte/.prettierrc b/Text2Image/ui/svelte/.prettierrc
new file mode 100644
index 0000000000..c932dd178f
--- /dev/null
+++ b/Text2Image/ui/svelte/.prettierrc
@@ -0,0 +1 @@
+{"pluginSearchDirs": ["."], "overrides": [{"files": "*.svelte", "options": {"parser": "svelte"}}]}
diff --git a/Text2Image/ui/svelte/README.md b/Text2Image/ui/svelte/README.md
new file mode 100644
index 0000000000..296f7945b7
--- /dev/null
+++ b/Text2Image/ui/svelte/README.md
@@ -0,0 +1,29 @@
+# Text2Image Customized UI
+
+## 📸 Project Screenshots
+
+![project-screenshot](../../assets/img/text2img_init.png)
+![project-screenshot](../../assets/img/text2img_response.png)
+
+## 🧐 Features
+
+Here're some of the project's features:
+
+- Generate Images from Text: Enter the image description and the desired number of images, then wait for them to be generated.
+
+## 🛠️ Get it Running
+
+1. Clone the repo.
+
+2. cd command to the current folder.
+
+3. Modify the required .env variables.
+
+ ```
+ BACKEND_BASE_URL = ''
+
+ ```
+
+4. Execute `npm install` to install the corresponding dependencies.
+
+5. Execute `npm run dev` in both environments
diff --git a/Text2Image/ui/svelte/package.json b/Text2Image/ui/svelte/package.json
new file mode 100644
index 0000000000..158764a9ba
--- /dev/null
+++ b/Text2Image/ui/svelte/package.json
@@ -0,0 +1,61 @@
+{
+ "name": "sveltekit-auth-example",
+ "version": "0.0.1",
+ "private": true,
+ "scripts": {
+ "dev": "vite dev",
+ "build": "vite build",
+ "preview": "vite preview",
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
+ "lint": "prettier --check . && eslint .",
+ "format": "prettier --write ."
+ },
+ "devDependencies": {
+ "@fortawesome/free-solid-svg-icons": "6.2.0",
+ "@playwright/test": "^1.48.0",
+ "@sveltejs/adapter-auto": "1.0.0-next.75",
+ "@sveltejs/adapter-static": "^3.0.0",
+ "@sveltejs/kit": "^2.0.0",
+ "@tailwindcss/typography": "0.5.7",
+ "@types/debug": "4.1.7",
+ "@types/node": "^20.12.13",
+ "@typescript-eslint/eslint-plugin": "^5.27.0",
+ "@typescript-eslint/parser": "^5.27.0",
+ "autoprefixer": "^10.4.7",
+ "daisyui": "3.5.1",
+ "date-picker-svelte": "^2.6.0",
+ "debug": "4.3.4",
+ "eslint": "^8.16.0",
+ "eslint-config-prettier": "^8.3.0",
+ "eslint-plugin-neverthrow": "1.1.4",
+ "postcss": "^8.4.31",
+ "postcss-load-config": "^4.0.1",
+ "postcss-preset-env": "^8.3.2",
+ "prettier": "^2.8.8",
+ "prettier-plugin-svelte": "^2.7.0",
+ "prettier-plugin-tailwindcss": "^0.3.0",
+ "svelte": "^4.0.0",
+ "svelte-check": "^3.0.0",
+ "svelte-fa": "3.0.3",
+ "svelte-preprocess": "^6.0.2",
+ "tailwindcss": "^3.1.5",
+ "tslib": "^2.3.1",
+ "typescript": "^5.0.0",
+ "vite": "^5.0.0"
+ },
+ "type": "module",
+ "dependencies": {
+ "date-fns": "^2.30.0",
+ "driver.js": "^1.3.0",
+ "flowbite-svelte": "^0.38.5",
+ "flowbite-svelte-icons": "^1.4.0",
+ "fuse.js": "^6.6.2",
+ "lodash": "^4.17.21",
+ "playwright": "^1.44.0",
+ "ramda": "^0.29.0",
+ "sse.js": "^0.6.1",
+ "svelte-notifications": "^0.9.98",
+ "svrollbar": "^0.12.0"
+ }
+}
diff --git a/Text2Image/ui/svelte/playwright.config.ts b/Text2Image/ui/svelte/playwright.config.ts
new file mode 100644
index 0000000000..bd88ef1f5f
--- /dev/null
+++ b/Text2Image/ui/svelte/playwright.config.ts
@@ -0,0 +1,54 @@
+// Copyright (C) 2024 Intel Corporation
+// SPDX-License-Identifier: Apache-2.0
+
+import { defineConfig, devices } from "@playwright/test";
+
+/**
+ * Read environment variables from file.
+ * https://github.com/motdotla/dotenv
+ */
+// require('dotenv').config();
+
+/**
+ * See https://playwright.dev/docs/test-configuration.
+ */
+export default defineConfig({
+ testDir: "./tests",
+ /* Maximum time one test can run for. */
+ timeout: 10 * 60 * 1000,
+ expect: {
+ /**
+ * Maximum time expect() should wait for the condition to be met.
+ * For example in `await expect(locator).toHaveText();`
+ */
+ timeout: 5000,
+ },
+ /* Run tests in files in parallel */
+ fullyParallel: true,
+ /* Fail the build on CI if you accidentally left test.only in the source code. */
+ forbidOnly: !!process.env.CI,
+ /* Retry on CI only */
+ retries: process.env.CI ? 2 : 0,
+ /* Opt out of parallel tests on CI. */
+ workers: process.env.CI ? 1 : undefined,
+ /* Reporter to use. See https://playwright.dev/docs/test-reporters */
+ reporter: [["html", { open: "never" }]],
+ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
+ use: {
+ /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
+ actionTimeout: 0,
+ /* Base URL to use in actions like `await page.goto('/')`. */
+ baseURL: "http://localhost:5173",
+
+ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
+ trace: "on-first-retry",
+ },
+
+ /* Configure projects for major browsers */
+ projects: [
+ {
+ name: "webkit",
+ use: { ...devices["Desktop Safari"] },
+ },
+ ],
+});
diff --git a/Text2Image/ui/svelte/postcss.config.cjs b/Text2Image/ui/svelte/postcss.config.cjs
new file mode 100644
index 0000000000..b384b43ebe
--- /dev/null
+++ b/Text2Image/ui/svelte/postcss.config.cjs
@@ -0,0 +1,27 @@
+// Copyright (c) 2024 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+const tailwindcss = require("tailwindcss");
+const autoprefixer = require("autoprefixer");
+
+const config = {
+ plugins: [
+ //Some plugins, like tailwindcss/nesting, need to run before Tailwind,
+ tailwindcss(),
+ //But others, like autoprefixer, need to run after,
+ autoprefixer,
+ ],
+};
+
+module.exports = config;
diff --git a/Text2Image/ui/svelte/src/app.d.ts b/Text2Image/ui/svelte/src/app.d.ts
new file mode 100644
index 0000000000..7e27c57aee
--- /dev/null
+++ b/Text2Image/ui/svelte/src/app.d.ts
@@ -0,0 +1,16 @@
+// Copyright (c) 2024 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// See: https://kit.svelte.dev/docs/types#app
+// import { Result} from "neverthrow";
diff --git a/Text2Image/ui/svelte/src/app.html b/Text2Image/ui/svelte/src/app.html
new file mode 100644
index 0000000000..db69926ea8
--- /dev/null
+++ b/Text2Image/ui/svelte/src/app.html
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/Text2Image/ui/svelte/src/lib/network/Network.ts b/Text2Image/ui/svelte/src/lib/network/Network.ts
new file mode 100644
index 0000000000..1b770763b7
--- /dev/null
+++ b/Text2Image/ui/svelte/src/lib/network/Network.ts
@@ -0,0 +1,39 @@
+// Copyright (c) 2024 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+import { env } from "$env/dynamic/public";
+
+const BACKEND_BASE_URL = env.BASE_URL;
+
+export async function fetchImgList(query: string, img_num: number) {
+ const url = `${BACKEND_BASE_URL}`;
+ const data = {
+ prompt: query,
+ num_images_per_prompt: img_num,
+ };
+ const init: RequestInit = {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify(data),
+ };
+
+ try {
+ const response = await fetch(url, init);
+ if (!response.ok) throw response.status;
+ return await response.json();
+ } catch (error) {
+ console.error("network error: ", error);
+ return undefined;
+ }
+}
diff --git a/Text2Image/ui/svelte/src/lib/shared/components/header/header.svelte b/Text2Image/ui/svelte/src/lib/shared/components/header/header.svelte
new file mode 100644
index 0000000000..a5d5ca668c
--- /dev/null
+++ b/Text2Image/ui/svelte/src/lib/shared/components/header/header.svelte
@@ -0,0 +1,33 @@
+
+
+
+
+
+
diff --git a/Text2Image/ui/svelte/src/lib/shared/components/loading/Loading.svelte b/Text2Image/ui/svelte/src/lib/shared/components/loading/Loading.svelte
new file mode 100644
index 0000000000..51e89cfe7e
--- /dev/null
+++ b/Text2Image/ui/svelte/src/lib/shared/components/loading/Loading.svelte
@@ -0,0 +1,48 @@
+
+
+
+
+
+
diff --git a/Text2Image/ui/svelte/src/lib/shared/stores/common/Store.ts b/Text2Image/ui/svelte/src/lib/shared/stores/common/Store.ts
new file mode 100644
index 0000000000..fd5b2cf6b5
--- /dev/null
+++ b/Text2Image/ui/svelte/src/lib/shared/stores/common/Store.ts
@@ -0,0 +1,17 @@
+// Copyright (c) 2024 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+import { writable } from "svelte/store";
+
+export let imgList = writable([]);
diff --git a/Text2Image/ui/svelte/src/routes/+layout.svelte b/Text2Image/ui/svelte/src/routes/+layout.svelte
new file mode 100644
index 0000000000..e0206206e7
--- /dev/null
+++ b/Text2Image/ui/svelte/src/routes/+layout.svelte
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
diff --git a/Text2Image/ui/svelte/src/routes/+page.ts b/Text2Image/ui/svelte/src/routes/+page.ts
new file mode 100644
index 0000000000..174376ecaf
--- /dev/null
+++ b/Text2Image/ui/svelte/src/routes/+page.ts
@@ -0,0 +1,13 @@
+// Copyright (c) 2024 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
diff --git a/Text2Image/ui/svelte/static/favicon.png b/Text2Image/ui/svelte/static/favicon.png
new file mode 100644
index 0000000000..75b997f815
Binary files /dev/null and b/Text2Image/ui/svelte/static/favicon.png differ
diff --git a/Text2Image/ui/svelte/svelte.config.js b/Text2Image/ui/svelte/svelte.config.js
new file mode 100644
index 0000000000..0f2977ecce
--- /dev/null
+++ b/Text2Image/ui/svelte/svelte.config.js
@@ -0,0 +1,38 @@
+// Copyright (c) 2024 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+import adapter from "@sveltejs/adapter-auto";
+import preprocess from "svelte-preprocess";
+import postcssPresetEnv from "postcss-preset-env";
+
+/** @type {import('@sveltejs/kit').Config} */
+const config = {
+ // Consult https://github.com/sveltejs/svelte-preprocess
+ // for more information about preprocessors
+ preprocess: preprocess({
+ sourceMap: true,
+ postcss: {
+ plugins: [postcssPresetEnv({ features: { "nesting-rules": true } })],
+ },
+ }),
+
+ kit: {
+ adapter: adapter(),
+ env: {
+ publicPrefix: "",
+ },
+ },
+};
+
+export default config;
diff --git a/Text2Image/ui/svelte/tailwind.config.cjs b/Text2Image/ui/svelte/tailwind.config.cjs
new file mode 100644
index 0000000000..6cc3a8b951
--- /dev/null
+++ b/Text2Image/ui/svelte/tailwind.config.cjs
@@ -0,0 +1,43 @@
+// Copyright (c) 2024 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+const config = {
+ content: ["./src/**/*.{html,js,svelte,ts}", "./node_modules/flowbite-svelte/**/*.{html,js,svelte,ts}"],
+
+ plugins: [require("flowbite/plugin")],
+
+ darkMode: "class",
+
+ theme: {
+ extend: {
+ colors: {
+ // flowbite-svelte
+ primary: {
+ 50: "#FFF5F2",
+ 100: "#FFF1EE",
+ 200: "#FFE4DE",
+ 300: "#FFD5CC",
+ 400: "#FFBCAD",
+ 500: "#FE795D",
+ 600: "#EF562F",
+ 700: "#EB4F27",
+ 800: "#CC4522",
+ 900: "#A5371B",
+ },
+ },
+ },
+ },
+};
+
+module.exports = config;
diff --git a/Text2Image/ui/svelte/tests/txt2Img.spec.ts b/Text2Image/ui/svelte/tests/txt2Img.spec.ts
new file mode 100644
index 0000000000..ee1035de1a
--- /dev/null
+++ b/Text2Image/ui/svelte/tests/txt2Img.spec.ts
@@ -0,0 +1,28 @@
+// Copyright (C) 2024 Intel Corporation
+// SPDX-License-Identifier: Apache-2.0
+
+import { test, expect, type Page } from "@playwright/test";
+
+// Initialization before each test
+test.beforeEach(async ({ page }) => {
+ await page.goto("/");
+});
+
+// Constants definition
+const CHAT_ITEMS = ["An astronaut riding a green horse"];
+
+// Helper function: Enter message to chat
+async function enterMessageToChat(page: Page, message: string) {
+ await page.getByTestId("img-input").click();
+ await page.getByTestId("img-input").fill(message);
+ await page.waitForTimeout(1000);
+ await page.getByTestId("img-gen").click();
+}
+
+// Test description: New Chat
+test.describe("New Image", () => {
+ // Test: Enter message to generate new images
+ test("should enter message to generate new images", async ({ page }) => {
+ await enterMessageToChat(page, CHAT_ITEMS[0]);
+ });
+});
diff --git a/Text2Image/ui/svelte/tsconfig.json b/Text2Image/ui/svelte/tsconfig.json
new file mode 100644
index 0000000000..0f47472f79
--- /dev/null
+++ b/Text2Image/ui/svelte/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "extends": "./.svelte-kit/tsconfig.json",
+ "compilerOptions": {
+ "allowJs": true,
+ "checkJs": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "sourceMap": true,
+ "strict": true
+ }
+}
diff --git a/Text2Image/ui/svelte/vite.config.ts b/Text2Image/ui/svelte/vite.config.ts
new file mode 100644
index 0000000000..26a821a147
--- /dev/null
+++ b/Text2Image/ui/svelte/vite.config.ts
@@ -0,0 +1,26 @@
+// Copyright (c) 2024 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+import { sveltekit } from "@sveltejs/kit/vite";
+import type { UserConfig } from "vite";
+
+const config: UserConfig = {
+ plugins: [sveltekit()],
+ server: {
+ host: "0.0.0.0",
+ port: 5173,
+ },
+};
+
+export default config;