diff --git a/packages/components/src/api/image_generation/EnqueueImageGen.ts b/packages/components/src/api/image_generation/EnqueueImageGen.ts index b3400df405..b3859b6741 100644 --- a/packages/components/src/api/image_generation/EnqueueImageGen.ts +++ b/packages/components/src/api/image_generation/EnqueueImageGen.ts @@ -2,7 +2,7 @@ import { ApiConfig } from "../ApiConfig"; export interface EnqueueImageGenRequest { uuid_idempotency_token: string; - maybe_sd_model_token: string | undefined; + maybe_sd_model_token: string | null; maybe_lora_model_token: string | null; maybe_prompt: string; maybe_n_prompt: string; diff --git a/packages/fakeyou.com/public/locales/bn/VideoWorkflow.json b/packages/fakeyou.com/public/locales/bn/VideoWorkflow.json index f61101a8dd..b17021e096 100644 --- a/packages/fakeyou.com/public/locales/bn/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/bn/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "আসল", "preview": "পূর্বরূপ", "upload": "আপলোড করুন" + }, + "video": { + "instruction": "লাইব্রেরি থেকে একটি ভিডিও আপলোড করুন বা নির্বাচন করুন, তারপর আমাদের ওয়ার্কফ্লো কন্ট্রোল প্যানেলের সাথে ফিল্টারিং ওয়ার্কফ্লো সেটআপ করুন৷" } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/de/VideoWorkflow.json b/packages/fakeyou.com/public/locales/de/VideoWorkflow.json index 190b4464c3..2848ab2d2a 100644 --- a/packages/fakeyou.com/public/locales/de/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/de/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "Original", "preview": "Vorschau", "upload": "Hochladen" + }, + "video": { + "instruction": "Laden Sie ein Video hoch oder wählen Sie es aus der Bibliothek aus und richten Sie dann den Filter-Workflow mit unserem Workflow-Kontrollfeld ein." } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/en/VideoWorkflow.json b/packages/fakeyou.com/public/locales/en/VideoWorkflow.json index c122b84d74..e29100c294 100644 --- a/packages/fakeyou.com/public/locales/en/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/en/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "Original", "preview": "Preview", "upload": "Upload" + }, + "video": { + "instruction": "Upload or select a video from the library, then setup the filtering workflow with our workflow control panel." } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/es/VideoWorkflow.json b/packages/fakeyou.com/public/locales/es/VideoWorkflow.json index aa3ba37a45..078ab9901f 100644 --- a/packages/fakeyou.com/public/locales/es/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/es/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "Original", "preview": "Avance", "upload": "Subir" + }, + "video": { + "instruction": "Cargue o seleccione un video de la biblioteca, luego configure el flujo de trabajo de filtrado con nuestro panel de control de flujo de trabajo." } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/fr/VideoWorkflow.json b/packages/fakeyou.com/public/locales/fr/VideoWorkflow.json index e9e6610999..773654d902 100644 --- a/packages/fakeyou.com/public/locales/fr/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/fr/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "Original", "preview": "Aperçu", "upload": "Télécharger" + }, + "video": { + "instruction": "Téléchargez ou sélectionnez une vidéo dans la bibliothèque, puis configurez le flux de travail de filtrage avec notre panneau de contrôle de flux de travail." } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/hi/VideoWorkflow.json b/packages/fakeyou.com/public/locales/hi/VideoWorkflow.json index 09ee3cb6ce..22da58b6ca 100644 --- a/packages/fakeyou.com/public/locales/hi/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/hi/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "मूल", "preview": "पूर्व दर्शन", "upload": "डालना" + }, + "video": { + "instruction": "लाइब्रेरी से एक वीडियो अपलोड करें या चुनें, फिर हमारे वर्कफ़्लो नियंत्रण कक्ष के साथ फ़िल्टरिंग वर्कफ़्लो सेटअप करें।" } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/id/VideoWorkflow.json b/packages/fakeyou.com/public/locales/id/VideoWorkflow.json index 8c83da8a8c..849e796b84 100644 --- a/packages/fakeyou.com/public/locales/id/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/id/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "Asli", "preview": "Pratinjau", "upload": "Mengunggah" + }, + "video": { + "instruction": "Unggah atau pilih video dari perpustakaan, lalu atur alur kerja pemfilteran dengan panel kontrol alur kerja kami." } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/it/VideoWorkflow.json b/packages/fakeyou.com/public/locales/it/VideoWorkflow.json index 48d5cd2aa7..8c27772a8c 100644 --- a/packages/fakeyou.com/public/locales/it/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/it/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "Originale", "preview": "Anteprima", "upload": "Caricamento" + }, + "video": { + "instruction": "Carica o seleziona un video dalla libreria, quindi imposta il flusso di lavoro di filtraggio con il nostro pannello di controllo del flusso di lavoro." } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/ja/VideoWorkflow.json b/packages/fakeyou.com/public/locales/ja/VideoWorkflow.json index 94ea98f253..f5e2a6181b 100644 --- a/packages/fakeyou.com/public/locales/ja/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/ja/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "オリジナル", "preview": "プレビュー", "upload": "アップロード" + }, + "video": { + "instruction": "ライブラリからビデオをアップロードまたは選択し、ワークフロー コントロール パネルでフィルタリング ワークフローをセットアップします。" } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/ko/VideoWorkflow.json b/packages/fakeyou.com/public/locales/ko/VideoWorkflow.json index 4f701c91c4..1cc835c566 100644 --- a/packages/fakeyou.com/public/locales/ko/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/ko/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "원래의", "preview": "시사", "upload": "업로드" + }, + "video": { + "instruction": "라이브러리에서 비디오를 업로드하거나 선택한 다음 워크플로 제어판을 사용하여 필터링 워크플로를 설정하세요." } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/pt/VideoWorkflow.json b/packages/fakeyou.com/public/locales/pt/VideoWorkflow.json index 92c9b62175..07405a63b5 100644 --- a/packages/fakeyou.com/public/locales/pt/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/pt/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "Original", "preview": "Visualização", "upload": "Carregar" + }, + "video": { + "instruction": "Carregue ou selecione um vídeo da biblioteca e configure o fluxo de trabalho de filtragem com nosso painel de controle de fluxo de trabalho." } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/ru/VideoWorkflow.json b/packages/fakeyou.com/public/locales/ru/VideoWorkflow.json index ea1841334a..274c5a82d5 100644 --- a/packages/fakeyou.com/public/locales/ru/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/ru/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "Оригинал", "preview": "Предварительный просмотр", "upload": "Загрузить" + }, + "video": { + "instruction": "Загрузите или выберите видео из библиотеки, а затем настройте процесс фильтрации с помощью нашей панели управления рабочим процессом." } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/th/VideoWorkflow.json b/packages/fakeyou.com/public/locales/th/VideoWorkflow.json index e3be0e04ad..70f029db12 100644 --- a/packages/fakeyou.com/public/locales/th/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/th/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "ต้นฉบับ", "preview": "ดูตัวอย่าง", "upload": "ที่อัพโหลด" + }, + "video": { + "instruction": "อัปโหลดหรือเลือกวิดีโอจากไลบรารี จากนั้นตั้งค่าเวิร์กโฟลว์การกรองด้วยแผงควบคุมเวิร์กโฟลว์ของเรา" } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/tr/VideoWorkflow.json b/packages/fakeyou.com/public/locales/tr/VideoWorkflow.json index 179969385f..89a805b6b0 100644 --- a/packages/fakeyou.com/public/locales/tr/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/tr/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "Orijinal", "preview": "Ön izleme", "upload": "Yüklemek" + }, + "video": { + "instruction": "Kitaplıktan bir video yükleyin veya seçin, ardından iş akışı kontrol panelimizle filtreleme iş akışını ayarlayın." } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/vi/VideoWorkflow.json b/packages/fakeyou.com/public/locales/vi/VideoWorkflow.json index f32b38e7a3..77994ad5b7 100644 --- a/packages/fakeyou.com/public/locales/vi/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/vi/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "Nguyên bản", "preview": "Xem trước", "upload": "Tải lên" + }, + "video": { + "instruction": "Tải lên hoặc chọn video từ thư viện, sau đó thiết lập quy trình lọc bằng bảng điều khiển quy trình làm việc của chúng tôi." } } \ No newline at end of file diff --git a/packages/fakeyou.com/public/locales/zh-Hans/VideoWorkflow.json b/packages/fakeyou.com/public/locales/zh-Hans/VideoWorkflow.json index 364843e107..5a091f3c2c 100644 --- a/packages/fakeyou.com/public/locales/zh-Hans/VideoWorkflow.json +++ b/packages/fakeyou.com/public/locales/zh-Hans/VideoWorkflow.json @@ -17,5 +17,8 @@ "original": "原来的", "preview": "预览", "upload": "上传" + }, + "video": { + "instruction": "从库中上传或选择视频,然后使用我们的工作流程控制面板设置过滤工作流程。" } } \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/common/SelectModal/SelectModal.tsx b/packages/fakeyou.com/src/components/common/SelectModal/SelectModal.tsx index c13a9d193c..0824caa530 100644 --- a/packages/fakeyou.com/src/components/common/SelectModal/SelectModal.tsx +++ b/packages/fakeyou.com/src/components/common/SelectModal/SelectModal.tsx @@ -46,8 +46,6 @@ const SelectModal = memo( activeTab: tabs[0].tabKey, valueType: tabs[0].typeFilter || "all", }); - console.log("🔫", tabs, activeTab, valueType); - // Update mediaType when activeTab changes useEffect(() => { const currentTab = tabs.find(tab => tab.tabKey === activeTab); diff --git a/packages/fakeyou.com/src/components/layout/TopNav/TopNav.tsx b/packages/fakeyou.com/src/components/layout/TopNav/TopNav.tsx index 706773e978..93011ebe2a 100644 --- a/packages/fakeyou.com/src/components/layout/TopNav/TopNav.tsx +++ b/packages/fakeyou.com/src/components/layout/TopNav/TopNav.tsx @@ -15,7 +15,7 @@ import React, { useEffect, useState } from "react"; import { Link, useHistory } from "react-router-dom"; import { SessionWrapper } from "@storyteller/components/src/session/SessionWrapper"; import { Logout } from "@storyteller/components/src/api/session/Logout"; -import { useModal } from "hooks"; +import { useModal, useSession } from "hooks"; import { InferenceJobsModal } from "components/modals"; import { useDomainConfig } from "context/DomainConfigContext"; import NavItem from "../../common/NavItem/NavItem"; @@ -112,12 +112,14 @@ export default function TopNav({ let profileDropdown = <>; + const { user } = useSession(); + if (sessionWrapper.isLoggedIn()) { - let displayName = sessionWrapper.getDisplayName(); - let username = sessionWrapper.getUsername(); - let emailHash = sessionWrapper.getEmailGravatarHash(); - let avatarIndex = 0; //temporary - let backgroundColorIndex = 0; //temporary + let displayName = user.display_name; + let username = user.username; + let emailHash = user.email_gravatar_hash; + let avatarIndex = user.core_info.default_avatar.image_index; + let backgroundColorIndex = user.core_info.default_avatar.color_index; profileDropdown = ( (); const bookmarks = useBookmarks(); const ratings = useRatings(); - const { media: mediaFile, remove, status } = useMedia({ + const { + media: mediaFile, + remove, + status, + } = useMedia({ mediaToken: token, onSuccess: (res: any) => { ratings.gather({ res, key: "token" }); @@ -52,8 +56,6 @@ export default function MediaPage() { const dateCreated = moment(mediaFile?.created_at || "").format("LLL"); const [buttonLabel, setButtonLabel] = useState("Copy"); - - const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); const closeDeleteModal = () => setIsDeleteModalOpen(false); @@ -296,7 +298,7 @@ export default function MediaPage() { break; default: mediaDetails = defaultDetails; - break + break; } let modMediaDetails = undefined; @@ -370,7 +372,14 @@ export default function MediaPage() {
- +
{subtitleDivider} @@ -424,7 +433,7 @@ export default function MediaPage() {
- { mediaFile?.media_type === MediaFileType.Audio ? ( + {mediaFile?.media_type === MediaFileType.Audio ? (
)} @@ -639,7 +650,7 @@ export default function MediaPage() { handleClose={closeDeleteModal} title="Delete Media" content={() => ( - <>{`Are you sure you want to delete this media file? This action cannot be undone.`} // replace w/ dynamic later -V + <>{`Are you sure you want to delete this media file? This action cannot be undone.`} // replace w/ dynamic later -V // <>{`Are you sure you want to delete "${title}"? This action cannot be undone.`} )} onConfirm={deleteMedia} diff --git a/packages/fakeyou.com/src/v2/view/pages/video_workflow/components/pageVideoProvision.tsx b/packages/fakeyou.com/src/v2/view/pages/video_workflow/components/pageVideoProvision.tsx index beda21b06b..efef21ed86 100644 --- a/packages/fakeyou.com/src/v2/view/pages/video_workflow/components/pageVideoProvision.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/video_workflow/components/pageVideoProvision.tsx @@ -46,7 +46,7 @@ export default function PageVideoProvision({
diff --git a/packages/fakeyou.com/src/v2/view/pages/weight/WeightPage.tsx b/packages/fakeyou.com/src/v2/view/pages/weight/WeightPage.tsx index dd1d7f65f1..c4f67d179a 100644 --- a/packages/fakeyou.com/src/v2/view/pages/weight/WeightPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/weight/WeightPage.tsx @@ -110,6 +110,7 @@ export default function WeightPage({ const deleteWeight = () => remove(!!user?.can_ban_users); + //Studio Access feature flag switch (weight?.weight_type) { case WeightType.SD_15: case WeightType.SDXL: @@ -119,6 +120,34 @@ export default function WeightPage({ } } + //Image generation panel if it's a lora weight or sd weight + let imageGenPanel = <>; + switch (weight?.weight_type) { + case WeightType.SD_15: + case WeightType.SDXL: + imageGenPanel = ( + + ); + break; + case WeightType.LORA: + imageGenPanel = ( + + ); + break; + } + function renderWeightComponent(weight: Weight) { switch (weight.weight_category) { case WeightCategory.TTS: @@ -168,12 +197,7 @@ export default function WeightPage({ return (
- + {imageGenPanel}
); default: diff --git a/packages/fakeyou.com/src/v2/view/pages/weight/inference_panels/SdInferencePanel.tsx b/packages/fakeyou.com/src/v2/view/pages/weight/inference_panels/SdInferencePanel.tsx index e81515fde9..309b6ce077 100644 --- a/packages/fakeyou.com/src/v2/view/pages/weight/inference_panels/SdInferencePanel.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/weight/inference_panels/SdInferencePanel.tsx @@ -1,4 +1,4 @@ -import React, { useRef, useState, memo } from "react"; +import React, { useRef, useState, memo, useEffect } from "react"; import { Accordion, Button, @@ -18,7 +18,6 @@ import { faRectangleLandscape, faRectanglePortrait, faSquare, - faUpload, } from "@fortawesome/pro-solid-svg-icons"; import { v4 as uuidv4 } from "uuid"; import { @@ -34,30 +33,43 @@ import { SessionSubscriptionsWrapper } from "@storyteller/components/src/session import PremiumLock from "components/PremiumLock"; import InferenceJobsList from "components/layout/InferenceJobsList"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { Link } from "react-router-dom"; interface SdInferencePanelProps { inferenceJobs: Array; sessionSubscriptionsWrapper: SessionSubscriptionsWrapper; - sd_model_token?: string; + weight_token?: string; enqueueInferenceJob: ( jobToken: string, frontendInferenceJobType: FrontendInferenceJobType ) => void; isStandalone?: boolean; + weightPageType?: "lora" | "sd"; } function SdInferencePanel({ enqueueInferenceJob, - sd_model_token, + weight_token, sessionSubscriptionsWrapper, isStandalone = false, inferenceJobs, + weightPageType = "sd", }: SdInferencePanelProps) { const [loraToken, setLoraToken] = useState(null); - const [weightToken, setWeightToken] = useState(sd_model_token); + const [sdToken, setSdToken] = useState(null); + + useEffect(() => { + if (weightPageType === "sd") { + setSdToken(weight_token || null); + setLoraToken(null); + } else if (weightPageType === "lora") { + setLoraToken(weight_token || null); + setSdToken(null); + } + }, [weightPageType, weight_token]); const handleOnWeightSelect = (data: { token: string; title: string }) => { - setWeightToken(data.token); + setSdToken(data.token); }; const handleOnSelect = (data: { token: string; title: string }) => { setLoraToken(data.token); @@ -243,7 +255,7 @@ function SdInferencePanel({ ) => { ev.preventDefault(); - if (!prompt || weightToken === undefined) { + if (!prompt || sdToken === undefined) { return false; } @@ -258,10 +270,12 @@ function SdInferencePanel({ internalSeed.current = generateRandomSeed(); } + console.log(sdToken); + const request = { uuid_idempotency_token: uuidv4(), - maybe_sd_model_token: isStandalone ? weightToken : sd_model_token, - maybe_lora_model_token: loraToken, + maybe_sd_model_token: sdToken || null, + maybe_lora_model_token: loraToken || null, maybe_prompt: prompt, maybe_n_prompt: negativePrompt, maybe_seed: internalSeed.current, @@ -305,29 +319,16 @@ function SdInferencePanel({
-
-

Generate an Image

- {isStandalone && ( -
-
- )} -
+

Generate an Image

- {isStandalone && ( + {(isStandalone || weightPageType === "lora") && ( - + {weightPageType === "sd" && ( + + )}