From 6bcdd7b210db199311fe211140009fa30905ef77 Mon Sep 17 00:00:00 2001 From: BFlat Date: Wed, 2 Nov 2022 15:09:52 +0700 Subject: [PATCH] pricing update --- packages/fakeyou/src/data/PriceTiers.js | 221 ++++-- .../src/v2/view/pricing/PricingPage.tsx | 697 ++++++++---------- 2 files changed, 490 insertions(+), 428 deletions(-) diff --git a/packages/fakeyou/src/data/PriceTiers.js b/packages/fakeyou/src/data/PriceTiers.js index 6ec704ada7..2dfbf74017 100644 --- a/packages/fakeyou/src/data/PriceTiers.js +++ b/packages/fakeyou/src/data/PriceTiers.js @@ -1,71 +1,176 @@ const FAKEYOU_PRICES = { - free: { - tier: "free", + //Starter Tier + starter: { + tier: "Starter", price: 0, - features: { - "Extended Audio": false, - mp3: false, - "Priority Processing": false, - "Commercial Voices": false, + tts: { + title: "TTS", + features: ["Unlimited generation", "Up to 12 seconds audio"], + }, + vcweb: { + title: "VC Web", + features: ["Up to 12 seconds audio"], + }, + vcapp: { + title: "VC App", + features: [ + "5 model downloads", + "Up to 12 secs prerecorded", + "Up to 2 mins realtime", + ], + }, + w2l: { + title: "Wav2Lip", + features: ["Up to 12 seconds video"], + }, + priority: { + title: "Processing Priority", + features: ["Level 1"], }, }, - plus: { - tier: "plus", - price: 7, - features: { - "Extended Audio": true, - mp3: false, - "Priority Processing": false, - "Commercial Voices": false, - }, - }, - pro: { - tier: "pro", - price: 15, - features: { - "Extended Audio": true, - mp3: true, - "Priority Processing": true, - "Commercial Voices": true, - }, - }, - elite: { - tier: "elite", - price: 25, - features: { - "Extended Audio": true, - mp3: true, - "Priority Processing": true, - "Commercial Voices": true, - }, - }, -}; -const STORYTELLER_PRICES = { - free: { - tier: "free", - price: 0, - features: { - "Priority Processing": false, - "Stream Labs": false, - }, - }, + //Basic Tier basic: { - tier: "basic", - price: 5, - features: { - "Priority Processing": false, - "Stream Labs": false, + tier: "Basic", + price: 3, + tts: { + title: "TTS", + features: ["Unlimited generation", "Up to 20 seconds audio"], + }, + vcweb: { + title: "VC Web", + features: ["Up to 20 seconds audio", "Push to play"], + }, + vcapp: { + title: "VC App", + features: [ + "7 model downloads", + "Up to 20 secs prerecorded", + "Up to 5 mins realtime", + ], + }, + w2l: { + title: "Wav2Lip", + features: ["Up to 30 seconds video"], + }, + priority: { + title: "Processing Priority", + features: ["Level 10"], }, }, + + //Plus Tier + plus: { + tier: "Plus", + price: 7, + tts: { + title: "TTS", + features: ["Unlimited generation", "Up to 30 seconds audio"], + }, + vcweb: { + title: "VC Web", + features: ["Up to 30 seconds audio", "Push to play"], + }, + vcapp: { + title: "VC App", + features: [ + "10 model downloads", + "Up to 30 secs prerecorded", + "Up to 7 mins realtime", + ], + }, + w2l: { + title: "Wav2Lip", + features: ["Up to 1 minute video"], + }, + priority: { + title: "Processing Priority", + features: ["Level 20"], + }, + }, + + //Pro Tier pro: { - tier: "premium", - price: 50, - features: { - "Priority Processing": true, - "Stream Labs": true, + tier: "Pro", + price: 15, + tts: { + title: "TTS", + features: [ + "Unlimited generation", + "Up to 1 minute audio", + "Generate MP3 file", + "Upload private models", + ], + }, + vcweb: { + title: "VC Web", + features: ["Up to 30 seconds audio", "Push to play", "Generate MP3 file"], + }, + vcapp: { + title: "VC App", + features: [ + "20 model downloads", + "Up to 5 mins prerecorded", + "Up to 15 mins realtime", + ], + }, + w2l: { + title: "Wav2Lip", + features: ["Up to 2 minutes video"], + }, + priority: { + title: "Processing Priority", + features: ["Level 30"], + }, + api: { + title: "API Access", + features: ["Full API access"], + }, + }, + + //Elite Tier + elite: { + tier: "Elite", + price: 25, + tts: { + title: "TTS", + features: [ + "Unlimited generation", + "Up to 5 minutes audio", + "Generate MP3 file", + "Upload private models", + "Share private models", + ], + }, + vcweb: { + title: "VC Web", + features: ["Up to 7 minutes audio", "Push to play", "Generate MP3 file"], + }, + vcapp: { + title: "VC App", + features: [ + "Unlimited models", + "Unlimited prerecorded", + "Unlimited realtime", + ], + }, + w2l: { + title: "Wav2Lip", + features: ["Up to 2 minutes video"], + }, + priority: { + title: "Processing Priority", + features: ["Level 40"], + }, + api: { + title: "API Access", + features: ["Full API access"], + }, + commercial: { + title: "Commercial Voices", + features: ["FakeYou commercial voices"], }, }, }; -export { FAKEYOU_PRICES, STORYTELLER_PRICES }; +export { FAKEYOU_PRICES }; diff --git a/packages/fakeyou/src/v2/view/pricing/PricingPage.tsx b/packages/fakeyou/src/v2/view/pricing/PricingPage.tsx index 61a9a8f4c1..72afba2032 100644 --- a/packages/fakeyou/src/v2/view/pricing/PricingPage.tsx +++ b/packages/fakeyou/src/v2/view/pricing/PricingPage.tsx @@ -1,16 +1,9 @@ import React from "react"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Link } from "react-router-dom"; -import { - faCheckCircle as TRUE, - faTimesCircle as FALSE, - faCheck, -} from "@fortawesome/free-solid-svg-icons"; +import { faCheck } from "@fortawesome/free-solid-svg-icons"; import { SessionWrapper } from "@storyteller/components/src/session/SessionWrapper"; -import { - FAKEYOU_PRICES as FYP, - STORYTELLER_PRICES as STP, -} from "@storyteller/fakeyou/src/data/PriceTiers"; +import { FAKEYOU_PRICES as FYP } from "@storyteller/fakeyou/src/data/PriceTiers"; interface Props { sessionWrapper: SessionWrapper; @@ -18,45 +11,6 @@ interface Props { } function PricingPage(props: Props) { - function capitalize(word: string) { - return word.charAt(0).toUpperCase() + word.slice(1); - } - - const [FY_TIERS, ST_TIERS] = [Object.keys(FYP), Object.keys(STP)]; - - const [FY_FEATURES, ST_FEATURES] = [ - Object.keys(FYP.free.features), - Object.keys(STP.free.features), - ]; - - let current_tiers: string[], current_features: string[], current_list: any; - - const site = window.location.hostname; - - switch (site) { - case "fakeyou": - [current_tiers, current_features, current_list] = [ - FY_TIERS, - FY_FEATURES, - FYP, - ]; - break; - case "storyteller": - [current_tiers, current_features, current_list] = [ - ST_TIERS, - ST_FEATURES, - STP, - ]; - break; - default: - [current_tiers, current_features, current_list] = [ - FY_TIERS, - FY_FEATURES, - FYP, - ]; - break; - } - return (
@@ -65,347 +19,350 @@ function PricingPage(props: Props) { Some kind of description here, idk haven't thought of it.

-
+
-

Starter

+

+ {FYP.starter.tier} +

Use for free

- ${current_list.free.price} + ${FYP.starter.price} /month

    -
  • TTS
  • -
  • - - Unlimited generation -
  • -
  • - - Up to 12 seconds audio -
  • -
  • VC Web
  • -
  • - - Up to 12 seconds audio -
  • -
  • - VC App (registered users) -
  • -
  • - 5 - model downloads -
  • -
  • - - Up to 12 secs prerecorded -
  • -
  • - - Up to 2 mins realtime -
  • -
  • Wav2Lip
  • -
  • - - Up to 12 seconds video -
  • -
  • Processing Priority
  • -
  • - - Level 0 -
  • -
  • - - Level 1 (registered users) -
  • -
-
-
-
-
-

Plus

- - Buy Plus - -

- ${current_list.plus.price} - /month -

-
    -
  • TTS
  • -
  • - - Unlimited generation -
  • -
  • - - Up to 30 seconds audio -
  • -
  • VC Web
  • -
  • - - Up to 30 seconds audio -
  • -
  • - - Push to play -
  • -
  • VC App
  • -
  • - - 10 model downloads -
  • -
  • - - Up to 30 secs prerecorded -
  • -
  • - - Up to 7 mins realtime -
  • -
  • Wav2Lip
  • -
  • - - Up to 1 minute video -
  • -
  • Processing Priority
  • -
  • - - Level 20 -
  • -
-
-
-
-
-

Pro

- - Buy Pro - -

- ${current_list.pro.price} - /month -

-
    -
  • TTS
  • -
  • - - Unlimited generation -
  • -
  • - - Up to 1 minute audio -
  • -
  • - - Generate MP3 file -
  • -
  • - - Upload private models -
  • -
  • VC Web
  • -
  • - - Up to 2 minutes audio -
  • -
  • - - Push to play -
  • -
  • - - Generate MP3 file -
  • -
  • VC App
  • -
  • - - 20 model downloads -
  • -
  • - - Up to 5 mins prerecorded -
  • -
  • - - Up to 15 mins realtime -
  • -
  • Wav2Lip
  • -
  • - - Up to 2 minutes video -
  • -
  • Processing Priority
  • -
  • - - Level 30 -
  • -
  • API Access
  • -
  • - - Full API access -
  • -
-
-
-
-
-

Elite

- - Buy Elite - -

- ${current_list.elite.price} - /month -

-
    -
  • TTS
  • -
  • - - Unlimited generation -
  • -
  • - - Up to 5 minutes audio -
  • -
  • - - Generate MP3 file -
  • -
  • - - Upload private models -
  • -
  • - - Share private models -
  • -
  • VC Web
  • -
  • - - Up to 7 minutes audio -
  • -
  • - - Push to play -
  • -
  • - - Generate MP3 file -
  • -
  • VC App
  • -
  • - - Unlimited models -
  • -
  • - - Unlimited prerecorded -
  • -
  • - - Unlimited realtime -
  • -
  • Wav2Lip
  • -
  • - - Up to 5 minutes video -
  • -
  • - - Turn off watermark -
  • -
  • Processing Priority
  • -
  • - - Level 40 -
  • -
  • API Access
  • -
  • - - Full API access -
  • -
  • Commercial Voices
  • -
  • - - FakeYou commercial voices -
  • -
-
-
-
-
- -
-
- - - - - - {current_tiers.map((e) => { +
  • {FYP.starter.tts.title}
  • + {FYP.starter.tts.features.map((e: any) => { return ( - +
  • + + {e} +
  • ); })} - - - - - - - - - - - - {current_features.map((e, i) => { - return ( - - - - - - - - - - ); - })} - -
    Feature List - {capitalize(e)} -
    Price${current_list.free.price}/month${current_list.plus.price}/month${current_list.pro.price}/month
    {e} +
  • {FYP.starter.vcweb.title}
  • + {FYP.starter.vcweb.features.map((e: any) => { + return ( +
  • -
  • + {e} + + ); + })} +
  • + {FYP.starter.vcapp.title}{" "} + (registered users) +
  • + {FYP.starter.vcapp.features.map((e: any) => { + return ( +
  • -
  • + {e} + + ); + })} +
  • {FYP.starter.w2l.title}
  • + {FYP.starter.w2l.features.map((e: any) => { + return ( +
  • -
  • + {e} + + ); + })} +
  • + {FYP.starter.priority.title}{" "} + (registered users) +
  • + {FYP.starter.priority.features.map((e: any) => { + return ( +
  • + + {e} +
  • + ); + })} + +
    +
    +
    +
    +

    {FYP.plus.tier}

    + + Buy {FYP.plus.tier} + +

    + ${FYP.plus.price} + /month +

    +
      +
    • {FYP.plus.tts.title}
    • + {FYP.plus.tts.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.plus.vcweb.title}
    • + {FYP.plus.vcweb.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.plus.vcapp.title}
    • + {FYP.plus.vcapp.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.plus.w2l.title}
    • + {FYP.plus.w2l.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.plus.priority.title}
    • + {FYP.plus.priority.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    +
    +
    +
    +
    +

    {FYP.pro.tier}

    + + Buy {FYP.pro.tier} + +

    + ${FYP.pro.price} + /month +

    +
      +
    • {FYP.pro.tts.title}
    • + {FYP.pro.tts.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.pro.vcweb.title}
    • + {FYP.pro.vcweb.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.pro.vcapp.title}
    • + {FYP.pro.vcapp.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.pro.w2l.title}
    • + {FYP.pro.w2l.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.pro.priority.title}
    • + {FYP.pro.priority.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.pro.api.title}
    • + {FYP.pro.api.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    +
    +
    +
    +
    +

    + {FYP.elite.tier} +

    + + Buy {FYP.elite.tier} + +

    + ${FYP.elite.price} + /month +

    +
      +
    • {FYP.elite.tts.title}
    • + {FYP.elite.tts.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.elite.vcweb.title}
    • + {FYP.elite.vcweb.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.elite.vcapp.title}
    • + {FYP.elite.vcapp.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.elite.w2l.title}
    • + {FYP.elite.w2l.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.elite.priority.title}
    • + {FYP.elite.priority.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.elite.api.title}
    • + {FYP.elite.api.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    • {FYP.elite.commercial.title}
    • + {FYP.elite.commercial.features.map((e: any) => { + return ( +
    • + + {e} +
    • + ); + })} +
    +
    +