Revert "framer motion animation"

This reverts commit fffb8af7c4.
This commit is contained in:
Brandon Thomas committed 2022-07-26 22:03:35 -04:00
1 parent cb3870c53b
commit 09080dc7ab
6 files changed
+380 -521

No files matched your search

-1
View File
@@ -26,7 +26,6 @@
"bulma": "^0.9.0",
"craco": "^0.0.3",
"date-fns": "^2.22.1",
"framer-motion": "^6.5.1",
"howler": "^2.2.0",
"i18next": "^21.6.11",
"js-cookie": "^3.0.1",
+7 -11
View File
@@ -169,20 +169,20 @@ class App extends React.Component<Props, State> {
componentWillMount() {
// Handle redesign
console.log("componentWillMount", "useRefresh?", USE_REFRESH);
console.log('componentWillMount', 'useRefresh?', USE_REFRESH);
if (USE_REFRESH) {
// Redesign-specific CSS
// NB(echelon): Despite the branches here, scss is all combined together at compile time
// in staging and production (not development). To handle those environments, styles are
// additionally applied based on the root "fakeyou-refresh" class, which may have changed
// NB(echelon): Despite the branches here, scss is all combined together at compile time
// in staging and production (not development). To handle those environments, styles are
// additionally applied based on the root "fakeyou-refresh" class, which may have changed
// some of the specificity rules of Bootstrap.
require("./AppNew.scss");
} else {
// Old design CSS
// NB(echelon): Despite the branches here, scss is all combined together at compile time
// in staging and production (not development). To handle those environments, styles are
// additionally applied based on the root "fakeyou-old" class, which may have changed some
// in staging and production (not development). To handle those environments, styles are
// additionally applied based on the root "fakeyou-old" class, which may have changed some
// of the specificity rules of Bulma.
require("./AppOld.scss");
require("./v2/view/_css/footer.scss");
@@ -542,11 +542,7 @@ class App extends React.Component<Props, State> {
let mainClassNames = USE_REFRESH ? "bg-gradient" : "";
let particlesBg = <></>;
if (USE_REFRESH) {
particlesBg = (
<>
<ParticlesBG></ParticlesBG>
</>
);
particlesBg = <><ParticlesBG></ParticlesBG></>
}
return (
-25
View File
@@ -8,28 +8,3 @@ export const duration = "400";
export const pricing1 = "0";
export const pricing2 = "100";
export const pricing3 = "200";
export const container = {
visible: {
opacity: 1,
transition: {
staggerChildren: 0.05,
},
},
hidden: { opacity: 0 },
};
export const item = {
visible: { opacity: 1, y: 0 },
hidden: { opacity: 0, y: 50 },
};
export const image = {
visible: { opacity: 1, x: 0, transition: { delay: 0.1 } },
hidden: { opacity: 0, x: 100 },
};
export const panel = {
visible: { opacity: 1, y: 0, transition: { delay: 0.25 } },
hidden: { opacity: 0, y: 50 },
};
@@ -1,8 +1,8 @@
import React from "react";
import { Link } from "react-router-dom";
import { container, item, image, panel } from "../../../../data/animation";
import { motion } from "framer-motion";
import { distance, delay, delay2, duration } from "../../../../data/animation";
import { USE_REFRESH } from "../../../../Refresh";
const Fade = require("react-reveal/Fade");
interface Props {}
@@ -272,289 +272,291 @@ function AboutPage(props: Props) {
}
return (
<motion.div initial="hidden" animate="visible" variants={container}>
<div>
<div className="container mb-4">
<div className="row gx-3 flex-lg-row-reverse align-items-center">
<div className="col-lg-6">
<div className="d-flex justify-content-center">
<motion.img
src="/mascot/kitsune_pose3.webp"
className="img-fluid"
width="520"
alt="FakeYou Kitsune Mascot!"
variants={image}
/>
<Fade right distance={distance} delay={delay} duration={duration}>
<img
src="/mascot/kitsune_pose3.webp"
className="img-fluid"
width="520"
alt="FakeYou Kitsune Mascot!"
/>
</Fade>
</div>
</div>
<div className="col-lg-6 px-md-2 ps-lg-5 ps-xl-2">
<div className="text-center text-lg-start">
<div>
<motion.h1
className="display-5 fw-bold lh-1 mb-4"
variants={item}
>
A Glimpse of the Future
</motion.h1>
<Fade bottom cascade duration={duration} distance={distance}>
<div className="text-center text-lg-start">
<div>
<h1 className="display-5 fw-bold lh-1 mb-4">
A Glimpse of the Future
</h1>
</div>
<div>
<p className="lead">
We're building FakeYou as just one component of a broad set
of production and creative tooling.
</p>
</div>
</div>
<div>
<motion.p className="lead" variants={item}>
We're building FakeYou as just one component of a broad set of
production and creative tooling.
</motion.p>
</div>
</div>
</Fade>
</div>
</div>
</div>
<motion.div className="container-panel pt-4 pb-5" variants={panel}>
<div className="panel p-3 p-lg-4 load-hidden mt-5 mt-lg-0">
<h1 className="panel-title fw-bold">About FakeYou</h1>
<div className="py-6 d-flex flex-column gap-4">
<p>
Your brain was already capable of imagining things spoken in other
people's voices. This is a demonstration of how far computers have
caught up. One day computers will be able to bring all of the rich
and vivid imagery of your hopes and dreams to life. There's never
been a better time throughout all history to be a creative than
now.
</p>
<div>
<h2 className="mb-4">Technology disclosure</h2>
<div className="container-panel pt-4 pb-5">
<Fade bottom distance={distance} delay={delay2} duration={duration}>
<div className="panel p-3 p-lg-4 load-hidden mt-5 mt-lg-0">
<h1 className="panel-title fw-bold">About FakeYou</h1>
<div className="py-6 d-flex flex-column gap-4">
<p>
<em>
We'll be happy to remove any of the voices featured here for
any reason. See our <Link to="/terms">terms page</Link> for
more info.
</em>
Your brain was already capable of imagining things spoken in
other people's voices. This is a demonstration of how far
computers have caught up. One day computers will be able to
bring all of the rich and vivid imagery of your hopes and dreams
to life. There's never been a better time throughout all history
to be a creative than now.
</p>
<br />
<p>
&rdquo;Deep fakes&rdquo; are kind of like Photoshop when it
first came out. They're impressive, maybe a little bit scary,
but they're about to become the new norm. People will become
accustomed to the technology, and the results will be used
mostly for creative good, unlocking previously costly and
unattainable high production values for individual creators.
It's our belief that the next Hollywood will be <em>you</em>.
</p>
<br />
<p>
The technology to clone voices is already out in the open, and
the voices here are built by a community of contributors. We're
not the only website doing this, and plenty of people are
producing these same results on their own at home, independent
of our work. You can see thousands of examples on YouTube and
social media.
</p>
<br />
<p>
Even if the United States chooses to ban this technology,
institutions in China, Japan, Canada, and other countries all
over the world are rapidly conducting and publishing research on
this topic. People everywhere have access to this easy-to-use
technology. State actors probably have even more sophisiticated
versions available.
</p>
<br />
<p>
As an interesting point, most if not all of the voices produced
by this website are actually
<em> Linda Johnson</em> with a little bit layered on top.
</p>
<p>
<a
href="https://github.com/NVIDIA/tacotron2"
target="_blank"
rel="noopener noreferrer"
>
NVIDIA makes these tools publicly available for you to make
your own voice models
</a>
. Check it out!
</p>
</div>
<div>
<h2 className="mb-4">FakeYou was previously Vocodes</h2>
<p>
FakeYou.com was previously known as{" "}
<strong>https://vo.codes</strong>, but has been rebranded to
better reflect its purpose and direction. (Not many people know
what a <em>vocoder</em> is anyway, so it didn't make sense to
keep the name.)
</p>
</div>
<div>
<h2 className="mb-4">Thanks</h2>
<p>
Thanks to the following individuals (in no particular order) for
help with data gathering and annotation, Discord moderation, ML
advice, etc.
</p>
<br />
<p>
Vegito1089, Shin, Ashurath, MakaveliGH, Blutarch Mann, Yahia,
Tim Squid, Seuneramet, Matt, Seth, CookiePPP,{" "}
<a
href="https://twitter.com/r9y9/"
target="_blank"
rel="noopener noreferrer"
>
@r9y9
</a>
, BFlat, Raisin.
</p>
<br />
<p>
The following papers, models, and resources were used:
<div>
<h2 className="mb-4">Technology disclosure</h2>
<p>
<em>
We'll be happy to remove any of the voices featured here for
any reason. See our <Link to="/terms">terms page</Link> for
more info.
</em>
</p>
<br />
<p>
&rdquo;Deep fakes&rdquo; are kind of like Photoshop when it
first came out. They're impressive, maybe a little bit scary,
but they're about to become the new norm. People will become
accustomed to the technology, and the results will be used
mostly for creative good, unlocking previously costly and
unattainable high production values for individual creators.
It's our belief that the next Hollywood will be <em>you</em>.
</p>
<br />
<a
href="https://github.com/NVIDIA/tacotron2"
target="_blank"
rel="noopener noreferrer"
>
Tacotron2
</a>{" "}
(BSD-3 license),{" "}
<a
href="https://github.com/jaywalnut310/glow-tts"
target="_blank"
rel="noopener noreferrer"
>
glow-tts
</a>{" "}
(MIT license), {/* MIT */}
<a
href="https://github.com/seungwonpark/melgan"
target="_blank"
rel="noopener noreferrer"
>
MelGAN
</a>{" "}
(BSD-3 license), {/* BSD3 */}
<a
href="https://arxiv.org/pdf/2005.05106.pdf"
target="_blank"
rel="noopener noreferrer"
>
Multi-band MelGAN
</a>{" "}
(paper),{" "}
<a
href="https://arxiv.org/abs/2010.05646"
target="_blank"
rel="noopener noreferrer"
>
HiFi-GAN
</a>{" "}
(paper),{" "}
<a
href="https://github.com/Rudrabha/Wav2Lip"
target="_blank"
rel="noopener noreferrer"
>
Wav2Lip
</a>{" "}
(MIT license), {/* Non-commercial */}
<a
href="http://www.speech.cs.cmu.edu/cgi-bin/cmudict"
target="_blank"
rel="noopener noreferrer"
>
CMUDict
</a>{" "}
(BSD-2 license),{" "}
<a
href="https://keithito.com/LJ-Speech-Dataset/"
target="_blank"
rel="noopener noreferrer"
>
LJSpeech
</a>{" "}
(public domain),{" "}
<a
href="https://datashare.is.ed.ac.uk/handle/10283/3443"
target="_blank"
rel="noopener noreferrer"
>
VCTK
</a>{" "}
(CC BY 4.0).
</p>
<br />
<p>
Videos are generated by the amazing Wav2Lip system{" "}
<a
href="https://doi.org/10.1145/3394171.3413532"
target="_blank"
rel="noopener noreferrer"
>
(paper)
</a>
, by Prajwal{" "}
<a
href="https://twitter.com/prajwalkr14"
target="_blank"
rel="noopener noreferrer"
>
(@prajwalkr14)
</a>
, K R and Mukhopadhyay, Rudrabha and Namboodiri, Vinay P. and
Jawahar, C.V.
</p>
</div>
<div>
<h2 className="mb-4">Contact</h2>
<p>
Reach out to "echelon" on{" "}
<a
href="https://twitter.com/echelon"
target="_blank"
rel="noopener noreferrer"
>
Twitter
</a>
&nbsp;and Hacker News. Say hi.
</p>
<p>
The technology to clone voices is already out in the open, and
the voices here are built by a community of contributors.
We're not the only website doing this, and plenty of people
are producing these same results on their own at home,
independent of our work. You can see thousands of examples on
YouTube and social media.
</p>
<br />
<p>
Even if the United States chooses to ban this technology,
institutions in China, Japan, Canada, and other countries all
over the world are rapidly conducting and publishing research
on this topic. People everywhere have access to this
easy-to-use technology. State actors probably have even more
sophisiticated versions available.
</p>
<br />
<p>
As an interesting point, most if not all of the voices
produced by this website are actually
<em> Linda Johnson</em> with a little bit layered on top.
</p>
<p>
The Storyteller Company (registered as Learning Machines, LLC)
</p>
</div>
<div>
<h2 className="mb-4">Built With</h2>
<div className="row gx-3 gx-lg-4">
<div className="col-4 col-md-3">
<img
className="rounded img-fluid"
src="/logos/pytorch.png"
alt="models are written in pytorch"
/>
</div>
<div className="col-4 col-md-3">
<img
className="rounded img-fluid"
src="/logos/rust.png"
alt="core server components are written in Rust"
/>
</div>
<div className="col-4 col-md-3">
<img
className="rounded img-fluid"
src="/logos/kubernetes.png"
alt="the cluster scales with k8s"
/>
<p>
<a
href="https://github.com/NVIDIA/tacotron2"
target="_blank"
rel="noopener noreferrer"
>
NVIDIA makes these tools publicly available for you to make
your own voice models
</a>
. Check it out!
</p>
</div>
<div>
<h2 className="mb-4">FakeYou was previously Vocodes</h2>
<p>
FakeYou.com was previously known as{" "}
<strong>https://vo.codes</strong>, but has been rebranded to
better reflect its purpose and direction. (Not many people
know what a <em>vocoder</em> is anyway, so it didn't make
sense to keep the name.)
</p>
</div>
<div>
<h2 className="mb-4">Thanks</h2>
<p>
Thanks to the following individuals (in no particular order)
for help with data gathering and annotation, Discord
moderation, ML advice, etc.
</p>
<br />
<p>
Vegito1089, Shin, Ashurath, MakaveliGH, Blutarch Mann, Yahia,
Tim Squid, Seuneramet, Matt, Seth, CookiePPP,{" "}
<a
href="https://twitter.com/r9y9/"
target="_blank"
rel="noopener noreferrer"
>
@r9y9
</a>
, BFlat, Raisin.
</p>
<br />
<p>
The following papers, models, and resources were used:
<br />
<br />
<a
href="https://github.com/NVIDIA/tacotron2"
target="_blank"
rel="noopener noreferrer"
>
Tacotron2
</a>{" "}
(BSD-3 license),{" "}
<a
href="https://github.com/jaywalnut310/glow-tts"
target="_blank"
rel="noopener noreferrer"
>
glow-tts
</a>{" "}
(MIT license), {/* MIT */}
<a
href="https://github.com/seungwonpark/melgan"
target="_blank"
rel="noopener noreferrer"
>
MelGAN
</a>{" "}
(BSD-3 license), {/* BSD3 */}
<a
href="https://arxiv.org/pdf/2005.05106.pdf"
target="_blank"
rel="noopener noreferrer"
>
Multi-band MelGAN
</a>{" "}
(paper),{" "}
<a
href="https://arxiv.org/abs/2010.05646"
target="_blank"
rel="noopener noreferrer"
>
HiFi-GAN
</a>{" "}
(paper),{" "}
<a
href="https://github.com/Rudrabha/Wav2Lip"
target="_blank"
rel="noopener noreferrer"
>
Wav2Lip
</a>{" "}
(MIT license), {/* Non-commercial */}
<a
href="http://www.speech.cs.cmu.edu/cgi-bin/cmudict"
target="_blank"
rel="noopener noreferrer"
>
CMUDict
</a>{" "}
(BSD-2 license),{" "}
<a
href="https://keithito.com/LJ-Speech-Dataset/"
target="_blank"
rel="noopener noreferrer"
>
LJSpeech
</a>{" "}
(public domain),{" "}
<a
href="https://datashare.is.ed.ac.uk/handle/10283/3443"
target="_blank"
rel="noopener noreferrer"
>
VCTK
</a>{" "}
(CC BY 4.0).
</p>
<br />
<p>
Videos are generated by the amazing Wav2Lip system{" "}
<a
href="https://doi.org/10.1145/3394171.3413532"
target="_blank"
rel="noopener noreferrer"
>
(paper)
</a>
, by Prajwal{" "}
<a
href="https://twitter.com/prajwalkr14"
target="_blank"
rel="noopener noreferrer"
>
(@prajwalkr14)
</a>
, K R and Mukhopadhyay, Rudrabha and Namboodiri, Vinay P. and
Jawahar, C.V.
</p>
</div>
<div>
<h2 className="mb-4">Contact</h2>
<p>
Reach out to "echelon" on{" "}
<a
href="https://twitter.com/echelon"
target="_blank"
rel="noopener noreferrer"
>
Twitter
</a>
&nbsp;and Hacker News. Say hi.
</p>
<p>
The Storyteller Company (registered as Learning Machines, LLC)
</p>
</div>
<div>
<h2 className="mb-4">Built With</h2>
<div className="row gx-3 gx-lg-4">
<div className="col-4 col-md-3">
<img
className="rounded img-fluid"
src="/logos/pytorch.png"
alt="models are written in pytorch"
/>
</div>
<div className="col-4 col-md-3">
<img
className="rounded img-fluid"
src="/logos/rust.png"
alt="core server components are written in Rust"
/>
</div>
<div className="col-4 col-md-3">
<img
className="rounded img-fluid"
src="/logos/kubernetes.png"
alt="the cluster scales with k8s"
/>
</div>
</div>
</div>
</div>
</div>
</div>
</motion.div>
</motion.div>
</Fade>
</div>
</div>
);
}
@@ -36,6 +36,7 @@ import { t } from "i18next";
import { Trans } from "react-i18next";
import { TwitchTtsNotice } from "./notices/TwitchTtsNotice";
import { PleaseFollowNotice } from "./notices/PleaseFollowNotice";
import { distance, delay, delay2, duration } from "../../../../data/animation";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import {
faTrash,
@@ -43,8 +44,8 @@ import {
faVolumeUp,
} from "@fortawesome/free-solid-svg-icons";
import { USE_REFRESH } from "../../../../Refresh";
import { motion } from "framer-motion";
import { container, item, image, panel } from "../../../../data/animation";
const Fade = require("react-reveal/Fade");
export interface EnqueueJobResponsePayload {
success: boolean;
@@ -433,7 +434,7 @@ function TtsModelListFc(props: Props) {
}
return (
<motion.div initial="hidden" animate="visible" variants={container}>
<div>
{pleaseFollowNotice}
{languageNotice}
@@ -446,123 +447,123 @@ function TtsModelListFc(props: Props) {
<div className="row gx-3 flex-lg-row-reverse align-items-center">
<div className="col-lg-6">
<div className="d-flex justify-content-center">
<motion.img
src="mascot/kitsune_pose2.webp"
className="img-fluid"
width="560"
alt="FakeYou Mascot"
variants={image}
/>
<Fade right distance={distance} delay={delay} duration={duration}>
<img
src="mascot/kitsune_pose2.webp"
className="img-fluid"
width="560"
alt="FakeYou Mascot"
/>
</Fade>
</div>
</div>
<div className="col-lg-6 px-md-2 px-lg-5 px-xl-2">
<div>
<motion.h1
className="display-3 fw-bold lh-1 mb-3 text-center text-lg-start"
variants={item}
>
Text to Speech
</motion.h1>
<motion.p
className="lead mb-5 text-center text-lg-start pe-xl-2"
variants={item}
>
<Trans i18nKey="pages.ttsList.heroSubtitle">
Use FakeYou's deepfake tech to say stuff with your favorite
characters.
</Trans>
</motion.p>
</div>
<Fade bottom cascade duration={duration} distance={distance}>
<div>
<h1 className="display-3 fw-bold lh-1 mb-3 text-center text-lg-start">
Text to Speech
</h1>
<p className="lead mb-5 text-center text-lg-start pe-xl-2">
<Trans i18nKey="pages.ttsList.heroSubtitle">
Use FakeYou's deepfake tech to say stuff with your favorite
characters.
</Trans>
</p>
</div>
</Fade>
<motion.div
className="d-flex flex-column flex-md-row gap-3 justify-content-center justify-content-lg-start mb-5 mb-lg-4"
variants={item}
>
{signUpButton}
<Link to="/clone">
<button type="button" className="btn btn-secondary w-100">
Clone My Voice!
</button>
</Link>
</motion.div>
<Fade bottom delay={delay} duration={duration} distance={distance}>
<div className="d-flex flex-column flex-md-row gap-3 justify-content-center justify-content-lg-start mb-5 mb-lg-4">
{signUpButton}
<Link to="/clone">
<button type="button" className="btn btn-secondary w-100">
Clone My Voice!
</button>
</Link>
</div>
</Fade>
</div>
</div>
</div>
<motion.div className="container-panel pt-4 pb-5 mb-4" variants={panel}>
<div className="panel p-3 p-lg-4 mt-5 mt-lg-0">
<i className="fas fa-volume-high"></i>
<h1 className="panel-title fw-bold">
<FontAwesomeIcon icon={faVolumeUp} className="me-3" />
Create TTS
</h1>
<div className="py-6">
<div className="d-flex gap-4">
<form
className="w-100 d-flex flex-column gap-4"
onSubmit={handleFormSubmit}
>
<MultiDropdownSearch
allTtsCategories={props.allTtsCategories}
allTtsModels={props.ttsModels}
allTtsCategoriesByTokenMap={props.allTtsCategoriesByTokenMap}
allTtsModelsByTokenMap={props.allTtsModelsByTokenMap}
ttsModelsByCategoryToken={props.ttsModelsByCategoryToken}
dropdownCategories={props.dropdownCategories}
setDropdownCategories={props.setDropdownCategories}
selectedCategories={props.selectedCategories}
setSelectedCategories={props.setSelectedCategories}
maybeSelectedTtsModel={props.maybeSelectedTtsModel}
setMaybeSelectedTtsModel={props.setMaybeSelectedTtsModel}
/>
<div className="container-panel pt-4 pb-5 mb-4">
<Fade bottom distance={distance} delay={delay2} duration={duration}>
<div className="panel p-3 p-lg-4 mt-5 mt-lg-0">
<i className="fas fa-volume-high"></i>
<h1 className="panel-title fw-bold">
<FontAwesomeIcon icon={faVolumeUp} className="me-3" />
Create TTS
</h1>
<div className="py-6">
<div className="d-flex gap-4">
<form
className="w-100 d-flex flex-column gap-4"
onSubmit={handleFormSubmit}
>
<MultiDropdownSearch
allTtsCategories={props.allTtsCategories}
allTtsModels={props.ttsModels}
allTtsCategoriesByTokenMap={
props.allTtsCategoriesByTokenMap
}
allTtsModelsByTokenMap={props.allTtsModelsByTokenMap}
ttsModelsByCategoryToken={props.ttsModelsByCategoryToken}
dropdownCategories={props.dropdownCategories}
setDropdownCategories={props.setDropdownCategories}
selectedCategories={props.selectedCategories}
setSelectedCategories={props.setSelectedCategories}
maybeSelectedTtsModel={props.maybeSelectedTtsModel}
setMaybeSelectedTtsModel={props.setMaybeSelectedTtsModel}
/>
<AutocompleteSearch
allTtsCategories={props.allTtsCategories}
allTtsModels={props.ttsModels}
allTtsModelsByTokenMap={props.allTtsModelsByTokenMap}
dropdownCategories={props.dropdownCategories}
setDropdownCategories={props.setDropdownCategories}
selectedCategories={props.selectedCategories}
setSelectedCategories={props.setSelectedCategories}
maybeSelectedTtsModel={props.maybeSelectedTtsModel}
setMaybeSelectedTtsModel={props.setMaybeSelectedTtsModel}
/>
<AutocompleteSearch
allTtsCategories={props.allTtsCategories}
allTtsModels={props.ttsModels}
allTtsModelsByTokenMap={props.allTtsModelsByTokenMap}
dropdownCategories={props.dropdownCategories}
setDropdownCategories={props.setDropdownCategories}
selectedCategories={props.selectedCategories}
setSelectedCategories={props.setSelectedCategories}
maybeSelectedTtsModel={props.maybeSelectedTtsModel}
setMaybeSelectedTtsModel={props.setMaybeSelectedTtsModel}
/>
{directViewLink}
{directViewLink}
<div className="text-input">
<textarea
onChange={handleChangeText}
className="form-control fs-5"
style={{ minHeight: "200px" }}
value={props.textBuffer}
placeholder={t("pages.ttsList.placeholderTextGoesHere")}
></textarea>
</div>
<div className="text-input">
<textarea
onChange={handleChangeText}
className="form-control fs-5"
style={{ minHeight: "200px" }}
value={props.textBuffer}
placeholder={t("pages.ttsList.placeholderTextGoesHere")}
></textarea>
</div>
{maybeError}
{maybeError}
<div className="d-flex flex-column flex-md-row w-100 gap-3 mt-3">
<button
className="btn btn-primary w-100"
disabled={remainingCharactersButtonDisabled}
>
<FontAwesomeIcon icon={faVolumeHigh} className="me-2" />
{t("pages.ttsList.buttonSpeak")}
</button>
<button
className="btn btn-destructive w-100"
onClick={handleClearClick}
>
<FontAwesomeIcon icon={faTrash} className="me-2" />
{t("pages.ttsList.buttonClear")}
</button>
</div>
</form>
<div className="d-flex flex-column flex-md-row w-100 gap-3 mt-3">
<button
className="btn btn-primary w-100"
disabled={remainingCharactersButtonDisabled}
>
<FontAwesomeIcon icon={faVolumeHigh} className="me-2" />
{t("pages.ttsList.buttonSpeak")}
</button>
<button
className="btn btn-destructive w-100"
onClick={handleClearClick}
>
<FontAwesomeIcon icon={faTrash} className="me-2" />
{t("pages.ttsList.buttonClear")}
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</motion.div>
</Fade>
</div>
<SessionTtsInferenceResultListFc
ttsInferenceJobs={props.ttsInferenceJobs}
@@ -580,7 +581,7 @@ function TtsModelListFc(props: Props) {
modelUploadJobs={props.ttsModelUploadJobs}
/>
<br />
</motion.div>
</div>
);
}
-114
View File
@@ -1143,18 +1143,6 @@
dependencies:
postcss-value-parser "^4.2.0"
"@emotion/is-prop-valid@^0.8.2":
version "0.8.8"
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a"
integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==
dependencies:
"@emotion/memoize" "0.7.4"
"@emotion/memoize@0.7.4":
version "0.7.4"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
"@eslint/eslintrc@^1.0.5":
version "1.0.5"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318"
@@ -2140,59 +2128,6 @@
npmlog "^4.1.2"
write-file-atomic "^3.0.3"
"@motionone/animation@^10.12.0":
version "10.13.1"
resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.13.1.tgz#ebacb50df4b7eb4957cf398c221ae10852f28520"
integrity sha512-dxQ+1wWxL6iFHDy1uv6hhcPjIdOg36eDT56jN4LI7Z5HZRyLpq8x1t7JFQclo/IEIb+6Bk4atmyinGFdXVECuA==
dependencies:
"@motionone/easing" "^10.13.1"
"@motionone/types" "^10.13.0"
"@motionone/utils" "^10.13.1"
tslib "^2.3.1"
"@motionone/dom@10.12.0":
version "10.12.0"
resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.12.0.tgz#ae30827fd53219efca4e1150a5ff2165c28351ed"
integrity sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==
dependencies:
"@motionone/animation" "^10.12.0"
"@motionone/generators" "^10.12.0"
"@motionone/types" "^10.12.0"
"@motionone/utils" "^10.12.0"
hey-listen "^1.0.8"
tslib "^2.3.1"
"@motionone/easing@^10.13.1":
version "10.13.1"
resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.13.1.tgz#7927b7fe96135989e37c2cda957e4101a4b85aa8"
integrity sha512-INEsInHHDHVgx0dp5qlXi1lMXBqYicgLMMSn3zfGzaIvcaEbI1Uz8BoyNV4BiclTupG7RYIh+T6BU83ZcEe74g==
dependencies:
"@motionone/utils" "^10.13.1"
tslib "^2.3.1"
"@motionone/generators@^10.12.0":
version "10.13.1"
resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.13.1.tgz#d4989d887b864e0aefbbec63eed35ce298a73773"
integrity sha512-+HK5u2YcNJCckTTqfOLgSVcrWv2z1dVwrSZEMVJuAh0EnWEWGDJRvMBoPc0cFf/osbkA2Rq9bH2+vP0Ex/D8uw==
dependencies:
"@motionone/types" "^10.13.0"
"@motionone/utils" "^10.13.1"
tslib "^2.3.1"
"@motionone/types@^10.12.0", "@motionone/types@^10.13.0":
version "10.13.0"
resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.13.0.tgz#b22c549931ebd88ed5528158b5d611dc9dbb3756"
integrity sha512-qegk4qg8U1N9ZwAJ187BG3TkZz1k9LP/pvNtCSlqdq/PMUDKlCFG4ZnjJ481P0IOH/vIw1OzIbKIuyg0A3rk9g==
"@motionone/utils@^10.12.0", "@motionone/utils@^10.13.1":
version "10.13.1"
resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.13.1.tgz#14919dfcda36b54b184fff690bc0125d554f60cd"
integrity sha512-TjDPTIppaf3ofBXQv4ZzAketJgN0sclALXfZ6mfrkjJkOy83mLls9744F+6S+VKCpBmvbZcBY4PQfrfhAfeMtA==
dependencies:
"@motionone/types" "^10.13.0"
hey-listen "^1.0.8"
tslib "^2.3.1"
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -6949,27 +6884,6 @@ fragment-cache@^0.2.1:
dependencies:
map-cache "^0.2.2"
framer-motion@^6.5.1:
version "6.5.1"
resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-6.5.1.tgz#802448a16a6eb764124bf36d8cbdfa6dd6b931a7"
integrity sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==
dependencies:
"@motionone/dom" "10.12.0"
framesync "6.0.1"
hey-listen "^1.0.8"
popmotion "11.0.3"
style-value-types "5.0.0"
tslib "^2.1.0"
optionalDependencies:
"@emotion/is-prop-valid" "^0.8.2"
framesync@6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/framesync/-/framesync-6.0.1.tgz#5e32fc01f1c42b39c654c35b16440e07a25d6f20"
integrity sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==
dependencies:
tslib "^2.1.0"
fresh@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
@@ -7464,11 +7378,6 @@ he@^1.2.0:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
hey-listen@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68"
integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==
history@^4.9.0:
version "4.10.1"
resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3"
@@ -10733,16 +10642,6 @@ pkg-up@^3.1.0:
dependencies:
find-up "^3.0.0"
popmotion@11.0.3:
version "11.0.3"
resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-11.0.3.tgz#565c5f6590bbcddab7a33a074bb2ba97e24b0cc9"
integrity sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==
dependencies:
framesync "6.0.1"
hey-listen "^1.0.8"
style-value-types "5.0.0"
tslib "^2.1.0"
portfinder@^1.0.28:
version "1.0.28"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
@@ -13108,14 +13007,6 @@ style-loader@^3.3.1:
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575"
integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==
style-value-types@5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-5.0.0.tgz#76c35f0e579843d523187989da866729411fc8ad"
integrity sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==
dependencies:
hey-listen "^1.0.8"
tslib "^2.1.0"
stylehacks@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.2.tgz#fa10e5181c6e8dc0bddb4a3fb372e9ac42bba2ad"
@@ -13596,11 +13487,6 @@ tslib@^2.0.3:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
tslib@^2.1.0, tslib@^2.3.1:
version "2.4.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
tsparticles-engine@^2.0.6, tsparticles-engine@^2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/tsparticles-engine/-/tsparticles-engine-2.1.3.tgz#d8922cf7811c40e5e9b87b18f9cc86043af8e900"