Update version, gemini models, and new progress dialoge, and charxjpeg
This commit is contained in:
@@ -91,6 +91,7 @@
|
||||
"devDependencies": {
|
||||
"@capacitor/assets": "^3.0.4",
|
||||
"@capacitor/cli": "^5.6.0",
|
||||
"@rollup/plugin-strip": "^3.0.4",
|
||||
"@sveltejs/vite-plugin-svelte": "^4.0.0",
|
||||
"@swc/core": "1.5.7",
|
||||
"@tailwindcss/typography": "^0.5.10",
|
||||
|
||||
58
pnpm-lock.yaml
generated
58
pnpm-lock.yaml
generated
@@ -228,6 +228,9 @@ importers:
|
||||
'@capacitor/cli':
|
||||
specifier: ^5.6.0
|
||||
version: 5.6.0
|
||||
'@rollup/plugin-strip':
|
||||
specifier: ^3.0.4
|
||||
version: 3.0.4(rollup@3.29.4)
|
||||
'@sveltejs/vite-plugin-svelte':
|
||||
specifier: ^4.0.0
|
||||
version: 4.0.0(svelte@5.1.9)(vite@5.4.9(@types/node@18.19.7))
|
||||
@@ -299,7 +302,7 @@ importers:
|
||||
version: 5.1.9
|
||||
svelte-check:
|
||||
specifier: ^4.0.5
|
||||
version: 4.0.5(svelte@5.1.9)(typescript@5.6.3)
|
||||
version: 4.0.5(picomatch@4.0.2)(svelte@5.1.9)(typescript@5.6.3)
|
||||
svelte-preprocess:
|
||||
specifier: ^6.0.0
|
||||
version: 6.0.3(postcss-load-config@4.0.2(postcss@8.4.33)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@18.19.7)(typescript@5.6.3)))(postcss@8.4.33)(svelte@5.1.9)(typescript@5.6.3)
|
||||
@@ -869,6 +872,15 @@ packages:
|
||||
'@risuai/ccardlib@0.4.1':
|
||||
resolution: {integrity: sha512-b9xL0umf772icKnKfTIyP/hU1Skfikd5/MbmUFI9PXpbpMxbGQMw0NqpTFHda2iFu6Qxhpigr8bheAE8zxoYnw==}
|
||||
|
||||
'@rollup/plugin-strip@3.0.4':
|
||||
resolution: {integrity: sha512-LDRV49ZaavxUo2YoKKMQjCxzCxugu1rCPQa0lDYBOWLj6vtzBMr8DcoJjsmg+s450RbKbe3qI9ZLaSO+O1oNbg==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
peerDependencies:
|
||||
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
|
||||
peerDependenciesMeta:
|
||||
rollup:
|
||||
optional: true
|
||||
|
||||
'@rollup/plugin-virtual@3.0.2':
|
||||
resolution: {integrity: sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
@@ -878,6 +890,15 @@ packages:
|
||||
rollup:
|
||||
optional: true
|
||||
|
||||
'@rollup/pluginutils@5.1.4':
|
||||
resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
peerDependencies:
|
||||
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
|
||||
peerDependenciesMeta:
|
||||
rollup:
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-android-arm-eabi@4.24.0':
|
||||
resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==}
|
||||
cpu: [arm]
|
||||
@@ -2004,6 +2025,9 @@ packages:
|
||||
esrap@1.2.2:
|
||||
resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==}
|
||||
|
||||
estree-walker@2.0.2:
|
||||
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
|
||||
|
||||
etag@1.8.1:
|
||||
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
@@ -3019,6 +3043,10 @@ packages:
|
||||
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
|
||||
engines: {node: '>=8.6'}
|
||||
|
||||
picomatch@4.0.2:
|
||||
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
pify@2.3.0:
|
||||
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -4549,10 +4577,26 @@ snapshots:
|
||||
|
||||
'@risuai/ccardlib@0.4.1': {}
|
||||
|
||||
'@rollup/plugin-strip@3.0.4(rollup@3.29.4)':
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.1.4(rollup@3.29.4)
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.30.12
|
||||
optionalDependencies:
|
||||
rollup: 3.29.4
|
||||
|
||||
'@rollup/plugin-virtual@3.0.2(rollup@3.29.4)':
|
||||
optionalDependencies:
|
||||
rollup: 3.29.4
|
||||
|
||||
'@rollup/pluginutils@5.1.4(rollup@3.29.4)':
|
||||
dependencies:
|
||||
'@types/estree': 1.0.6
|
||||
estree-walker: 2.0.2
|
||||
picomatch: 4.0.2
|
||||
optionalDependencies:
|
||||
rollup: 3.29.4
|
||||
|
||||
'@rollup/rollup-android-arm-eabi@4.24.0':
|
||||
optional: true
|
||||
|
||||
@@ -5695,6 +5739,8 @@ snapshots:
|
||||
'@jridgewell/sourcemap-codec': 1.5.0
|
||||
'@types/estree': 1.0.6
|
||||
|
||||
estree-walker@2.0.2: {}
|
||||
|
||||
etag@1.8.1: {}
|
||||
|
||||
eventemitter3@4.0.7: {}
|
||||
@@ -5771,7 +5817,9 @@ snapshots:
|
||||
dependencies:
|
||||
pend: 1.2.0
|
||||
|
||||
fdir@6.4.2: {}
|
||||
fdir@6.4.2(picomatch@4.0.2):
|
||||
optionalDependencies:
|
||||
picomatch: 4.0.2
|
||||
|
||||
fflate@0.6.10: {}
|
||||
|
||||
@@ -6752,6 +6800,8 @@ snapshots:
|
||||
|
||||
picomatch@2.3.1: {}
|
||||
|
||||
picomatch@4.0.2: {}
|
||||
|
||||
pify@2.3.0: {}
|
||||
|
||||
pify@3.0.0: {}
|
||||
@@ -7325,11 +7375,11 @@ snapshots:
|
||||
dependencies:
|
||||
svelte: 5.1.9
|
||||
|
||||
svelte-check@4.0.5(svelte@5.1.9)(typescript@5.6.3):
|
||||
svelte-check@4.0.5(picomatch@4.0.2)(svelte@5.1.9)(typescript@5.6.3):
|
||||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.25
|
||||
chokidar: 4.0.1
|
||||
fdir: 6.4.2
|
||||
fdir: 6.4.2(picomatch@4.0.2)
|
||||
picocolors: 1.0.1
|
||||
sade: 1.8.1
|
||||
svelte: 5.1.9
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
},
|
||||
"productName": "RisuAI",
|
||||
"mainBinaryName": "RisuAI",
|
||||
"version": "149.0.0",
|
||||
"version": "149.1.0",
|
||||
"identifier": "co.aiclient.risu",
|
||||
"plugins": {
|
||||
"updater": {
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
import MobileFooter from './lib/Mobile/MobileFooter.svelte';
|
||||
import CustomGUISettingMenu from './lib/Setting/Pages/CustomGUISettingMenu.svelte';
|
||||
import { checkCharOrder } from './ts/globalApi.svelte';
|
||||
import Googli from './lib/UI/Googli.svelte';
|
||||
|
||||
|
||||
let didFirstSetup: boolean = $derived(DBState.db?.didFirstSetup)
|
||||
@@ -51,9 +50,6 @@
|
||||
</div>
|
||||
|
||||
<span class="text-sm mt-2 text-textcolor2">{LoadingStatusState.text}</span>
|
||||
|
||||
<Googli className="mt-4" />
|
||||
|
||||
</div>
|
||||
{:else if $CustomGUISettingMenuStore}
|
||||
<CustomGUISettingMenu />
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
import { getCurrentCharacter } from "src/ts/storage/database.svelte";
|
||||
import { message } from "@tauri-apps/plugin-dialog";
|
||||
import HypaV3Modal from './HypaV3Modal.svelte';
|
||||
import Googli from "../UI/Googli.svelte";
|
||||
let btn
|
||||
let input = $state('')
|
||||
let cardExportType = $state('realm')
|
||||
@@ -107,10 +108,22 @@
|
||||
}}>Terms of Service</a> to continue</div>
|
||||
{:else if $alertStore.type !== 'select' && $alertStore.type !== 'requestdata' && $alertStore.type !== 'addchar' && $alertStore.type !== 'hypaV2' && $alertStore.type !== 'chatOptions'}
|
||||
<span class="text-gray-300">{$alertStore.msg}</span>
|
||||
{#if $alertStore.submsg}
|
||||
{#if $alertStore.submsg && $alertStore.type !== 'progress'}
|
||||
<span class="text-gray-500 text-sm">{$alertStore.submsg}</span>
|
||||
{/if}
|
||||
{/if}
|
||||
{#if $alertStore.type === 'progress'}
|
||||
<div class="w-full min-w-64 md:min-w-138 h-2 bg-darkbg border border-darkborderc rounded-md mt-6">
|
||||
<div class="h-full bg-gradient-to-r from-blue-500 to-purple-800 saving-animation transition-[width]" style:width={$alertStore.submsg + '%'}></div>
|
||||
</div>
|
||||
<div class="w-full flex justify-center mt-6">
|
||||
<span class="text-gray-500 text-sm">{$alertStore.submsg + '%'}</span>
|
||||
</div>
|
||||
<div class="w-full flex justify-center">
|
||||
<Googli className="mt-14" />
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if $alertStore.type === 'ask'}
|
||||
<div class="flex gap-2 w-full">
|
||||
<Button className="mt-4 flex-grow" onclick={() => {
|
||||
|
||||
@@ -20,23 +20,4 @@
|
||||
}}>
|
||||
<AlertOctagon size={24} />
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
<style>
|
||||
.saving-animation {
|
||||
animation: saving-anime 1s infinite;
|
||||
background-size: 200% auto;
|
||||
}
|
||||
|
||||
@keyframes saving-anime {
|
||||
0% {
|
||||
background-position: 0 0;
|
||||
}
|
||||
50% {
|
||||
background-position: 100% 100%;
|
||||
}
|
||||
100% {
|
||||
background-position: 0 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
{/if}
|
||||
@@ -1,27 +1,43 @@
|
||||
<script lang="ts">
|
||||
import { onMount } from "svelte";
|
||||
|
||||
export let className: string = "";
|
||||
interface Props {
|
||||
className?: string;
|
||||
}
|
||||
|
||||
let { className = $bindable() }:Props = $props();
|
||||
|
||||
onMount(() => {
|
||||
if(!import.meta.env.VITE_AD_CLIENT){
|
||||
return
|
||||
}
|
||||
//@ts-ignore
|
||||
(window.adsbygoogle = window.adsbygoogle || []).push({});
|
||||
try{
|
||||
//@ts-ignore
|
||||
(window.adsbygoogle = window.adsbygoogle || []).push({});
|
||||
}catch{}
|
||||
});
|
||||
</script>
|
||||
|
||||
{#if !import.meta.env.VITE_AD_CLIENT}
|
||||
<div
|
||||
class={className}
|
||||
>
|
||||
<ins
|
||||
class="adsbygoogle"
|
||||
style="display:block"
|
||||
data-ad-client={import.meta.env.VITE_AD_CLIENT}
|
||||
data-ad-slot={import.meta.env.VITE_AD_SLOT}
|
||||
data-ad-format="auto"
|
||||
data-full-width-responsive="true"
|
||||
></ins>
|
||||
</div>
|
||||
{#if import.meta.env.VITE_AD_CLIENT}
|
||||
{#if import.meta.env.VITE_AD_CLIENT === 'TEST'}
|
||||
<div
|
||||
class={className}
|
||||
>
|
||||
<div
|
||||
class="bg-slate-500"
|
||||
style={window.innerWidth > 728 ? "display:block !important;width:728px;height:90px" : "display:block !important;width:300px;height:100px"}
|
||||
>TEST</div>
|
||||
</div>
|
||||
{:else}
|
||||
<div
|
||||
class={className}
|
||||
>
|
||||
<ins
|
||||
class="adsbygoogle"
|
||||
style={window.innerWidth > 728 ? "display:block !important;width:728px;height:90px" : "display:block !important;width:300px;height:100px"}
|
||||
data-ad-client={window.innerWidth > 728 ? import.meta.env.VITE_AD_CLIENT : import.meta.env.VITE_AD_CLIENT_MOBILE}
|
||||
data-ad-slot={window.innerWidth > 728 ? import.meta.env.VITE_AD_SLOT : import.meta.env.VITE_AD_SLOT_MOBILE}
|
||||
></ins>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
@@ -8,6 +8,7 @@
|
||||
import RealmLicense from "./RealmLicense.svelte";
|
||||
import MultiLangDisplay from "../GUI/MultiLangDisplay.svelte";
|
||||
import { tooltip } from "src/ts/gui/tooltip";
|
||||
import Googli from "../Googli.svelte";
|
||||
|
||||
interface Props {
|
||||
openedData: hubType;
|
||||
@@ -50,6 +51,7 @@
|
||||
<span class="text-textcolor2" use:tooltip={language.popularityLevelDesc}>
|
||||
{language.popularityLevel.replace('{}', openedData.download.toString())}
|
||||
</span>
|
||||
|
||||
<div class="border-l-selected border-l ml-1 mr-1"></div>
|
||||
{#if openedData.hasEmotion}
|
||||
<button class="text-textcolor2 hover:text-green-500 transition-colors" onclick={((e) => {
|
||||
@@ -69,6 +71,9 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<Googli />
|
||||
|
||||
<div class="flex flex-row-reverse gap-2">
|
||||
<button class="text-textcolor2 hover:text-red-500" onclick={(async (e) => {
|
||||
e.stopPropagation()
|
||||
|
||||
@@ -272,6 +272,23 @@ html, body{
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.saving-animation {
|
||||
animation: saving-anime 1s infinite;
|
||||
background-size: 200% auto;
|
||||
}
|
||||
|
||||
@keyframes saving-anime {
|
||||
0% {
|
||||
background-position: 0 0;
|
||||
}
|
||||
50% {
|
||||
background-position: 100% 100%;
|
||||
}
|
||||
100% {
|
||||
background-position: 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
.flexium{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
@@ -10,7 +10,7 @@ export interface alertData{
|
||||
type: 'error'|'normal'|'none'|'ask'|'wait'|'selectChar'
|
||||
|'input'|'toast'|'wait2'|'markdown'|'select'|'login'
|
||||
|'tos'|'cardexport'|'requestdata'|'addchar'|'hypaV2'|'selectModule'
|
||||
|'chatOptions'|'pukmakkurit'|'branches'|'hypaV3',
|
||||
|'chatOptions'|'pukmakkurit'|'branches'|'hypaV3'|'progress',
|
||||
msg: string,
|
||||
submsg?: string
|
||||
}
|
||||
|
||||
@@ -120,6 +120,36 @@ export async function importCharacterProcess(f:{
|
||||
let readedChara = ''
|
||||
let readedCCv3 = ''
|
||||
let img:Uint8Array
|
||||
let pngChunks = 0
|
||||
let readedPngChunks = 0
|
||||
|
||||
{
|
||||
|
||||
let readData:File | Uint8Array | ReadableStream<Uint8Array>
|
||||
if(f.data instanceof ReadableStream){
|
||||
const tee = f.data.tee()
|
||||
f.data = tee[0]
|
||||
readData = tee[1]
|
||||
}
|
||||
else{
|
||||
readData = f.data
|
||||
}
|
||||
|
||||
const prereader = PngChunk.readGenerator(readData, {
|
||||
|
||||
})
|
||||
|
||||
for await(const chunk of prereader){
|
||||
if(chunk instanceof AppendableBuffer){
|
||||
break
|
||||
}
|
||||
if(chunk.key.startsWith('chara-ext-asset_')){
|
||||
pngChunks++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const readGenerator = PngChunk.readGenerator(f.data, {
|
||||
returnTrimed: true
|
||||
})
|
||||
@@ -151,8 +181,20 @@ export async function importCharacterProcess(f:{
|
||||
}
|
||||
if(chunk.key.startsWith('chara-ext-asset_')){
|
||||
const assetIndex = chunk.key.replace('chara-ext-asset_:', '').replace('chara-ext-asset_', '')
|
||||
alertWait('Loading... (Reading Asset ' + assetIndex + ')' )
|
||||
const assetData = Buffer.from(chunk.value, 'base64')
|
||||
if(pngChunks === 0){
|
||||
alertWait('Loading... (Loaded ' + readedPngChunks + ' Assets)')
|
||||
}
|
||||
else{
|
||||
alertStore.set({
|
||||
type: 'progress',
|
||||
msg: 'Loading... (Loading Assets)',
|
||||
submsg: (readedPngChunks / pngChunks * 100).toFixed(2)
|
||||
})
|
||||
}
|
||||
|
||||
readedPngChunks++
|
||||
|
||||
if(db.account?.useSync && f.lightningRealmImport){
|
||||
const id = await hasher(assetData)
|
||||
const xid = 'assets/' + id + '.png'
|
||||
@@ -656,8 +698,9 @@ async function importCharacterCardSpec(card:CharacterCardV2Risu|CharacterCardV3,
|
||||
if(risuext.emotions){
|
||||
for(let i=0;i<risuext.emotions.length;i++){
|
||||
alertStore.set({
|
||||
type: 'wait',
|
||||
msg: `Loading... (Getting Emotions ${i} / ${risuext.emotions.length})`
|
||||
type: 'progress',
|
||||
msg: `Loading... (Loading Emotions)`,
|
||||
submsg: (i / risuext.emotions.length * 100).toFixed(2)
|
||||
})
|
||||
await sleep(10)
|
||||
if(risuext.emotions[i][1].startsWith('__asset:')){
|
||||
@@ -676,8 +719,9 @@ async function importCharacterCardSpec(card:CharacterCardV2Risu|CharacterCardV3,
|
||||
if(risuext.additionalAssets){
|
||||
for(let i=0;i<risuext.additionalAssets.length;i++){
|
||||
alertStore.set({
|
||||
type: 'wait',
|
||||
msg: `Loading... (Getting Assets ${i} / ${risuext.additionalAssets.length})`
|
||||
type: 'progress',
|
||||
msg: `Loading... (Loading Assets)`,
|
||||
submsg: (i / risuext.additionalAssets.length * 100).toFixed(2)
|
||||
})
|
||||
await sleep(10)
|
||||
let fileName = ''
|
||||
@@ -700,8 +744,9 @@ async function importCharacterCardSpec(card:CharacterCardV2Risu|CharacterCardV3,
|
||||
const keys = Object.keys(risuext.vits)
|
||||
for(let i=0;i<keys.length;i++){
|
||||
alertStore.set({
|
||||
type: 'wait',
|
||||
msg: `Loading... (Getting VITS ${i} / ${keys.length})`
|
||||
type: 'progress',
|
||||
msg: `Loading... (Loading VITS)`,
|
||||
submsg: (i / keys.length * 100).toFixed(2)
|
||||
})
|
||||
await sleep(10)
|
||||
const key = keys[i]
|
||||
@@ -742,8 +787,9 @@ async function importCharacterCardSpec(card:CharacterCardV2Risu|CharacterCardV3,
|
||||
if(data.assets){
|
||||
for(let i=0;i<data.assets.length;i++){
|
||||
alertStore.set({
|
||||
type: 'wait',
|
||||
msg: `Loading... (Getting Assets ${i} / ${data.assets.length})`
|
||||
type: 'progress',
|
||||
msg: `Loading... (Assets)`,
|
||||
submsg: (i / data.assets.length * 100).toFixed(2)
|
||||
})
|
||||
await sleep(10)
|
||||
let fileName = ''
|
||||
@@ -1164,8 +1210,9 @@ export async function exportCharacterCard(char:character, type:'png'|'json'|'cha
|
||||
if(card.data.extensions.risuai.emotions && card.data.extensions.risuai.emotions.length > 0){
|
||||
for(let i=0;i<card.data.extensions.risuai.emotions.length;i++){
|
||||
alertStore.set({
|
||||
type: 'wait',
|
||||
msg: `Loading... (Adding Emotions ${i} / ${card.data.extensions.risuai.emotions.length})`
|
||||
type: 'progress',
|
||||
msg: 'Loading... (Adding Emotions)',
|
||||
submsg: (i / card.data.extensions.risuai.emotions.length * 100).toFixed(2)
|
||||
})
|
||||
const key = card.data.extensions.risuai.emotions[i][1]
|
||||
const rData = await readImage(key)
|
||||
@@ -1180,8 +1227,9 @@ export async function exportCharacterCard(char:character, type:'png'|'json'|'cha
|
||||
if(card.data.extensions.risuai.additionalAssets && card.data.extensions.risuai.additionalAssets.length > 0){
|
||||
for(let i=0;i<card.data.extensions.risuai.additionalAssets.length;i++){
|
||||
alertStore.set({
|
||||
type: 'wait',
|
||||
msg: `Loading... (Adding Additional Assets ${i} / ${card.data.extensions.risuai.additionalAssets.length})`
|
||||
type: 'progress',
|
||||
msg: 'Loading... (Adding Additional Assets)',
|
||||
submsg: (i / card.data.extensions.risuai.additionalAssets.length * 100).toFixed(2)
|
||||
})
|
||||
const key = card.data.extensions.risuai.additionalAssets[i][1]
|
||||
const rData = await readImage(key)
|
||||
@@ -1196,8 +1244,9 @@ export async function exportCharacterCard(char:character, type:'png'|'json'|'cha
|
||||
const keys = Object.keys(char.vits.files)
|
||||
for(let i=0;i<keys.length;i++){
|
||||
alertStore.set({
|
||||
type: 'wait',
|
||||
msg: `Loading... (Adding VITS ${i} / ${keys.length})`
|
||||
type: 'progress',
|
||||
msg: 'Loading... (Adding VITS)',
|
||||
submsg: (i / keys.length * 100).toFixed(2)
|
||||
})
|
||||
const key = keys[i]
|
||||
const rData = await loadAsset(char.vits.files[key])
|
||||
@@ -1226,8 +1275,9 @@ export async function exportCharacterCard(char:character, type:'png'|'json'|'cha
|
||||
if(card.data.assets && card.data.assets.length > 0){
|
||||
for(let i=0;i<card.data.assets.length;i++){
|
||||
alertStore.set({
|
||||
type: 'wait',
|
||||
msg: `Loading... (Adding Assets ${i} / ${card.data.assets.length})`
|
||||
type: 'progress',
|
||||
msg: 'Loading... (Adding Assets)',
|
||||
submsg: (i / card.data.assets.length * 100).toFixed(2)
|
||||
})
|
||||
let key = card.data.assets[i].uri
|
||||
let rData:Uint8Array
|
||||
|
||||
@@ -22,6 +22,7 @@ export enum LLMFlags{
|
||||
deepSeekPrefix,
|
||||
deepSeekThinkingInput,
|
||||
deepSeekThinkingOutput,
|
||||
noCivilIntegrity
|
||||
}
|
||||
|
||||
export enum LLMProvider{
|
||||
@@ -874,6 +875,16 @@ export const LLMModels: LLMModel[] = [
|
||||
tokenizer: LLMTokenizer.GoogleCloud,
|
||||
recommended: true
|
||||
},
|
||||
{
|
||||
name: "Gemini Flash Lite Preview 2.0 0205",
|
||||
id: 'gemini-2.0-flash-lite-preview-02-05',
|
||||
provider: LLMProvider.GoogleCloud,
|
||||
format: LLMFormat.GoogleCloud,
|
||||
flags: [LLMFlags.geminiBlockOff,LLMFlags.hasImageInput, LLMFlags.hasFirstSystemPrompt, LLMFlags.poolSupported, LLMFlags.hasAudioInput, LLMFlags.hasVideoInput, LLMFlags.hasStreaming, LLMFlags.requiresAlternateRole, LLMFlags.noCivilIntegrity],
|
||||
parameters: ['temperature', 'top_k', 'top_p', 'presence_penalty', 'frequency_penalty'],
|
||||
tokenizer: LLMTokenizer.GoogleCloud,
|
||||
recommended: true
|
||||
},
|
||||
{
|
||||
name: "Gemini Pro 2.0 Exp 0128",
|
||||
id: 'gemini-2.0-pro-exp-01-28',
|
||||
@@ -882,6 +893,15 @@ export const LLMModels: LLMModel[] = [
|
||||
flags: [LLMFlags.geminiBlockOff,LLMFlags.hasImageInput, LLMFlags.hasFirstSystemPrompt, LLMFlags.poolSupported, LLMFlags.hasAudioInput, LLMFlags.hasVideoInput, LLMFlags.hasStreaming, LLMFlags.requiresAlternateRole],
|
||||
parameters: ['temperature', 'top_k', 'top_p', 'presence_penalty', 'frequency_penalty'],
|
||||
tokenizer: LLMTokenizer.GoogleCloud,
|
||||
},
|
||||
{
|
||||
name: "Gemini Pro 2.0 Exp",
|
||||
id: 'gemini-2.0-pro-exp',
|
||||
provider: LLMProvider.GoogleCloud,
|
||||
format: LLMFormat.GoogleCloud,
|
||||
flags: [LLMFlags.geminiBlockOff,LLMFlags.hasImageInput, LLMFlags.hasFirstSystemPrompt, LLMFlags.poolSupported, LLMFlags.hasAudioInput, LLMFlags.hasVideoInput, LLMFlags.hasStreaming, LLMFlags.requiresAlternateRole, LLMFlags.noCivilIntegrity],
|
||||
parameters: ['temperature', 'top_k', 'top_p', 'presence_penalty', 'frequency_penalty'],
|
||||
tokenizer: LLMTokenizer.GoogleCloud,
|
||||
recommended: true
|
||||
},
|
||||
{
|
||||
@@ -900,7 +920,6 @@ export const LLMModels: LLMModel[] = [
|
||||
provider: LLMProvider.GoogleCloud,
|
||||
format: LLMFormat.GoogleCloud,
|
||||
flags: [LLMFlags.hasImageInput, LLMFlags.hasFirstSystemPrompt, LLMFlags.hasStreaming, LLMFlags.hasStreaming, LLMFlags.requiresAlternateRole],
|
||||
recommended: true,
|
||||
parameters: ['temperature', 'top_k', 'top_p'],
|
||||
tokenizer: LLMTokenizer.GoogleCloud
|
||||
},
|
||||
@@ -910,7 +929,6 @@ export const LLMModels: LLMModel[] = [
|
||||
provider: LLMProvider.GoogleCloud,
|
||||
format: LLMFormat.GoogleCloud,
|
||||
flags: [LLMFlags.hasImageInput, LLMFlags.hasFirstSystemPrompt, LLMFlags.hasStreaming, LLMFlags.requiresAlternateRole],
|
||||
recommended: true,
|
||||
parameters: ['temperature', 'top_k', 'top_p'],
|
||||
tokenizer: LLMTokenizer.GoogleCloud
|
||||
},
|
||||
|
||||
@@ -205,9 +205,10 @@ export class CharXReader{
|
||||
|
||||
const alertInfo = () => {
|
||||
if(arg.alertInfo){
|
||||
alertStore.set({
|
||||
type: 'wait',
|
||||
msg: `Loading... (Getting Data: ${Math.floor(pointer / getLength() * 100)}%)`
|
||||
alertStore.set({
|
||||
type: 'progress',
|
||||
msg: `Loading...`,
|
||||
submsg: (pointer / getLength() * 100).toFixed(2)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1738,6 +1738,10 @@ async function requestGoogleCloudVertex(arg:RequestDataArgumentExtended):Promise
|
||||
}
|
||||
]
|
||||
|
||||
if(arg.modelInfo.flags.includes(LLMFlags.noCivilIntegrity)){
|
||||
uncensoredCatagory.splice(4, 1)
|
||||
}
|
||||
|
||||
if(arg.modelInfo.flags.includes(LLMFlags.geminiBlockOff)){
|
||||
for(let i=0;i<uncensoredCatagory.length;i++){
|
||||
uncensoredCatagory[i].threshold = "OFF"
|
||||
|
||||
@@ -114,7 +114,6 @@ export class AccountStorage{
|
||||
}
|
||||
}
|
||||
if(da.status === 303){
|
||||
console.log(performance.now() - perf)
|
||||
const data = await da.json()
|
||||
if(data.match){
|
||||
const c = Buffer.from(await cachedForage.getItem(key))
|
||||
@@ -144,19 +143,12 @@ export class AccountStorage{
|
||||
const appendable = new Uint8Array(size)
|
||||
const reader = da.body.getReader()
|
||||
|
||||
//log all headers
|
||||
console.log('logging headers')
|
||||
for(const [key, value] of da.headers.entries()){
|
||||
console.log(key, value)
|
||||
}
|
||||
|
||||
let i = 0
|
||||
while(true){
|
||||
const {done, value} = await reader.read()
|
||||
if(done){
|
||||
break
|
||||
}
|
||||
console.log(value, size)
|
||||
appendable.set(value, i)
|
||||
i += value.length
|
||||
callback(i/size)
|
||||
|
||||
@@ -12,7 +12,7 @@ import { defaultColorScheme, type ColorScheme } from '../gui/colorscheme';
|
||||
import type { PromptItem, PromptSettings } from '../process/prompt';
|
||||
import type { OobaChatCompletionRequestParams } from '../model/ooba';
|
||||
|
||||
export let appVer = "149.0.0"
|
||||
export let appVer = "149.1.0"
|
||||
export let webAppSubVer = ''
|
||||
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":"149.0.0"}
|
||||
{"version":"149.1.0"}
|
||||
@@ -4,9 +4,10 @@ import {sveltePreprocess} from "svelte-preprocess";
|
||||
import wasm from "vite-plugin-wasm";
|
||||
import { internalIpV4 } from 'internal-ip'
|
||||
import topLevelAwait from "vite-plugin-top-level-await";
|
||||
|
||||
import strip from '@rollup/plugin-strip';
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig({
|
||||
export default defineConfig(({command, mode}) => {
|
||||
return {
|
||||
plugins: [
|
||||
svelte({
|
||||
preprocess: [
|
||||
@@ -22,6 +23,9 @@ export default defineConfig({
|
||||
}),
|
||||
wasm(),
|
||||
topLevelAwait(),
|
||||
command === 'build' ? strip({
|
||||
include: '**/*.(mjs|js|svelte|ts)'
|
||||
}) : null
|
||||
],
|
||||
|
||||
// Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
|
||||
@@ -44,7 +48,7 @@ export default defineConfig({
|
||||
minify: process.env.TAURI_DEBUG ? false : 'esbuild',
|
||||
// produce sourcemaps for debug builds
|
||||
sourcemap: !!process.env.TAURI_DEBUG,
|
||||
chunkSizeWarningLimit: 2000
|
||||
chunkSizeWarningLimit: 2000,
|
||||
},
|
||||
|
||||
optimizeDeps:{
|
||||
@@ -59,4 +63,5 @@ export default defineConfig({
|
||||
'modules': '/modules'
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user