From 7b61182c97945c6e0277233c9054558d4d4f9357 Mon Sep 17 00:00:00 2001 From: Victor Date: Thu, 14 Dec 2023 13:37:39 -0500 Subject: [PATCH 1/4] password reset page bug fix, now redirects if not logged in --- .../src/v2/view/pages/password_reset/PasswordResetEmailPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/fakeyou.com/src/v2/view/pages/password_reset/PasswordResetEmailPage.tsx b/packages/fakeyou.com/src/v2/view/pages/password_reset/PasswordResetEmailPage.tsx index d2e2e57236..34fc6ee371 100644 --- a/packages/fakeyou.com/src/v2/view/pages/password_reset/PasswordResetEmailPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/password_reset/PasswordResetEmailPage.tsx @@ -26,7 +26,7 @@ function PasswordResetEmailPage(props: Props) { const [emailOrUsername, setEmailOrUsername] = useState(""); const [isSent, setIsSent] = useState(false); - if (!user) { history.push("/"); } + if (user) { history.push("/"); } const handleChange = ( ev: React.FormEvent From 955d581bfaba32425d9ffb1eb58a5b4721aaf7a7 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 19 Dec 2023 02:11:49 -0500 Subject: [PATCH 2/4] theme dev browser, use random profile dir --- launch_dev_browser.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/launch_dev_browser.sh b/launch_dev_browser.sh index 634738d7a9..8062afa856 100755 --- a/launch_dev_browser.sh +++ b/launch_dev_browser.sh @@ -1,6 +1,9 @@ #!/bin/bash -declare -r CHROME_DIR="${HOME}/.chromeDevTemp" +declare -r entropy=$(xxd -l16 -ps /dev/urandom) + +#declare -r CHROME_DIR="${HOME}/.chromeDevTemp" +declare -r chrome_dir="/tmp/chrome/${entropy}" # NB: Creating the directory first seems to block process start. # Perhaps this is the wrong chmod ownership flags. @@ -10,7 +13,8 @@ launch_linux() { chromium \ --disable-web-security \ --ignore-certificate-errors \ - --user-data-dir="${CHROME_DIR}" \ + --user-data-dir="${chrome_dir}" \ + --install-autogenerated-theme="255,0,255" \ http://dev.fakeyou.com:7000 } @@ -24,7 +28,8 @@ launch_mac() { --disable-web-security \ --ignore-certificate-errors \ --unsafely-treat-insecure-origin-as-secure="http://dev.fakeyou.com:7001" \ - --user-data-dir="${CHROME_DIR}" \ + --user-data-dir="${chrome_dir}" \ + --install-autogenerated-theme="255,0,255" \ http://dev.fakeyou.com:7001 } From 17e4268f01624fcbebd72b3e68de9f648be9a769 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 19 Dec 2023 02:16:05 -0500 Subject: [PATCH 3/4] share flags on linux/mac --- launch_dev_browser.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/launch_dev_browser.sh b/launch_dev_browser.sh index 8062afa856..b82a2e4ea9 100755 --- a/launch_dev_browser.sh +++ b/launch_dev_browser.sh @@ -11,10 +11,12 @@ declare -r chrome_dir="/tmp/chrome/${entropy}" launch_linux() { chromium \ + --disable-site-isolation-trials \ --disable-web-security \ --ignore-certificate-errors \ + --install-autogenerated-theme="100,150,255" \ + --unsafely-treat-insecure-origin-as-secure="http://dev.fakeyou.com:7000" \ --user-data-dir="${chrome_dir}" \ - --install-autogenerated-theme="255,0,255" \ http://dev.fakeyou.com:7000 } @@ -27,9 +29,9 @@ launch_mac() { --disable-site-isolation-trials \ --disable-web-security \ --ignore-certificate-errors \ + --install-autogenerated-theme="100,150,255" \ --unsafely-treat-insecure-origin-as-secure="http://dev.fakeyou.com:7001" \ --user-data-dir="${chrome_dir}" \ - --install-autogenerated-theme="255,0,255" \ http://dev.fakeyou.com:7001 } From 0823b66135e6c450374936e272d8f2f032fe11c2 Mon Sep 17 00:00:00 2001 From: Michael Huynh Date: Wed, 20 Dec 2023 17:45:14 -0500 Subject: [PATCH 4/4] data bind weights page --- packages/components/src/api/ApiConfig.ts | 10 + .../common/Card/AudioCard/AudioCard.tsx | 4 +- .../common/Card/ImageCard/ImageCard.tsx | 2 +- .../profile/profile_view/tabs/WeightsTab.tsx | 179 +++++++++++++++++- .../src/v2/view/pages/weight/WeightPage.tsx | 65 ++++++- 5 files changed, 247 insertions(+), 13 deletions(-) diff --git a/packages/components/src/api/ApiConfig.ts b/packages/components/src/api/ApiConfig.ts index d548b60bd9..f336c75d63 100644 --- a/packages/components/src/api/ApiConfig.ts +++ b/packages/components/src/api/ApiConfig.ts @@ -433,6 +433,16 @@ class ApiConfig { return `${this.getApiOrigin()}/v1/media_files/file/${mediaFileToken}`; } + // =============== Weights Files =============== + + getWeights(params: string): string { + return `${this.getApiOrigin()}/v1/weights/list${params}`; + } + + getWeight(params: string): string { + return `${this.getApiOrigin()}/v1/weights/weight/${params}`; + } + // =============== File Uploads =============== uploadAudio(): string { diff --git a/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx b/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx index 4323584c40..6719f658fe 100644 --- a/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx +++ b/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx @@ -20,7 +20,7 @@ export default function AudioCard({ data, type }: AudioCardProps) { if (type === "media") { history.push(`/media/${data.token}`); } else if (type === "weights") { - history.push(`/weights/${data.token}`); + history.push(`/weight/${data.token}`); } }; @@ -30,7 +30,7 @@ export default function AudioCard({ data, type }: AudioCardProps) { const handleUseModel = () => { if (type === "weights") { - history.push(`/weights/${data.token}`); + history.push(`/weight/${data.token}`); } }; diff --git a/packages/fakeyou.com/src/components/common/Card/ImageCard/ImageCard.tsx b/packages/fakeyou.com/src/components/common/Card/ImageCard/ImageCard.tsx index 4bda2d687c..fa855ce3be 100644 --- a/packages/fakeyou.com/src/components/common/Card/ImageCard/ImageCard.tsx +++ b/packages/fakeyou.com/src/components/common/Card/ImageCard/ImageCard.tsx @@ -19,7 +19,7 @@ export default function ImageCard({ data, type }: ImageCardProps) { if (type === "media") { history.push(`/media/${data.token}`); } else if (type === "weights") { - history.push(`/weights/${data.token}`); + history.push(`/weight/${data.token}`); } }; diff --git a/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/tabs/WeightsTab.tsx b/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/tabs/WeightsTab.tsx index 8d258e6e13..fd8cfa9e23 100644 --- a/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/tabs/WeightsTab.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/tabs/WeightsTab.tsx @@ -1,6 +1,8 @@ -import React, { useRef, useState } from "react"; +// @ts-nocheck +import React, { useRef, useState, useEffect } from "react"; import MasonryGrid from "components/common/MasonryGrid/MasonryGrid"; import mockWeightsData from "./mockWeightsData"; +import { ApiConfig } from "@storyteller/components"; import AudioCard from "components/common/Card/AudioCard"; import ImageCard from "components/common/Card/ImageCard"; import VideoCard from "components/common/Card/VideoCard"; @@ -12,14 +14,91 @@ import { import SkeletonCard from "components/common/Card/SkeletonCard"; import Pagination from "components/common/Pagination"; +interface IWeighttModelData { + token: string; + weight_name: string; + public_bucket_path: string; + likes: Number; + isLiked: boolean; + created_at: string; +} + export default function WeightsTab() { const gridContainerRef = useRef(null); - const [data] = useState(mockWeightsData); + const [data, setData] = useState(mockWeightsData); const [isLoading] = useState(false); const [selectedFilter, setSelectedFilter] = useState("all"); const [currentPage, setCurrentPage] = useState(0); const itemsPerPage = 10; + useEffect(() => { + const api = new ApiConfig(); + const endpointUrl = api.getWeights("?page_size=1000&page_index=0"); + let weightsData = []; + + fetch(endpointUrl, { + method: "GET", + headers: { + Accept: "application/json", + }, + credentials: "include", + }) + .then(res => res.json()) + .then(res => { + if (!res.success) { + return; + } + console.log(res); + res.weights?.forEach((l: any) => { + weightsData.push({ + token: l?.weight_token, + weight_name: l?.title, + media_type: "image", + public_bucket_path: "/images/dummy-image.jpg", + likes: l?.likes, + isLiked: l?.bookmarks, + created_at: l?.created_at, + }); + }); + setData(weightsData); + }) + .catch(e => {}); + }, []); + + const updateRequest = (params: any) => { + const api = new ApiConfig(); + const endpointUrl = api.getWeights("?page_size=1000&page_index=0" + params); + let weightsData = []; + + fetch(endpointUrl, { + method: "GET", + headers: { + Accept: "application/json", + }, + credentials: "include", + }) + .then(res => res.json()) + .then(res => { + if (!res.success) { + return; + } + console.log(res); + res.weights?.forEach((l: any) => { + weightsData.push({ + token: l?.weight_token, + weight_name: l?.title, + media_type: "image", + public_bucket_path: "/images/dummy-image.jpg", + likes: l?.likes, + isLiked: l?.bookmarks, + created_at: l?.created_at, + }); + }); + setData(weightsData); + }) + .catch(e => {}); + }; + const handlePageClick = (selectedItem: { selected: number }) => { setCurrentPage(selectedItem.selected); }; @@ -63,6 +142,98 @@ export default function WeightsTab() { const handleFilterChange = (option: any) => { const selectedOption = option as { value: string; label: string }; setSelectedFilter(selectedOption.value); + + switch (selectedOption.value) { + case "all": + updateRequest(""); + break; + case "tts": + updateRequest("&weights_category=text_to_speech"); + break; + case "vc": + updateRequest("&weights_category=voice_conversion"); + break; + case "sd": + updateRequest("&weights_category=image_generation"); + break; + default: + updateRequest(""); + } + }; + + const handleOrderChange = (option: any) => { + const selectedOption = option as { value: string; label: string }; + + switch (selectedOption.value) { + case "oldest": + updateRequest("&sort_ascending=true"); + break; + case "newest": + updateRequest("&sort_ascending=false"); + break; + case "mostliked": + updateRequest("&sort_ascending=false"); + break; + default: + updateRequest("&sort_ascending=false"); + } + }; + + const handleTtsChange = (option: any) => { + const selectedOption = option as { value: string; label: string }; + + switch (selectedOption.value) { + case "all": + updateRequest("&weights_category=text_to_speech"); + break; + case "tt2": + updateRequest("&weights_type=hifigan_tt2"); + break; + default: + updateRequest("&weights_category=text_to_speec"); + } + }; + + const handleVcChange = (option: any) => { + const selectedOption = option as { value: string; label: string }; + + switch (selectedOption.value) { + case "all": + updateRequest("&weights_category=voice_conversion"); + break; + case "rvc": + updateRequest("&weights_type=rvc_v2"); + break; + case "svc": + console.log(selectedOption.value); + updateRequest("&weights_type=so_vits_svc"); + break; + default: + updateRequest("&weights_category=voice_conversion"); + } + }; + + const handleSdChange = (option: any) => { + const selectedOption = option as { value: string; label: string }; + + switch (selectedOption.value) { + case "all": + updateRequest("&weights_category=image_generation"); + break; + case "lora": + updateRequest("&weights_type=loRA"); + break; + case "SD15": + console.log(selectedOption.value); + updateRequest("&weights_type=sd_1.5"); + break; + case "SDXL": + console.log(selectedOption.value); + updateRequest("&weights_type=sdxl"); + break; + default: + updateRequest("&weights_category=image_generation"); + } }; return ( @@ -74,6 +245,7 @@ export default function WeightsTab() { options={sortOptions} defaultValue={sortOptions[0]} isSearchable={false} + onChange={handleOrderChange} />