Merge branch 'main' of https://github.com/kwaroran/RisuAI
This commit is contained in:
@@ -69,7 +69,7 @@
|
|||||||
|
|
||||||
{#if $DataBase.sdProvider === 'novelai'}
|
{#if $DataBase.sdProvider === 'novelai'}
|
||||||
<span class="text-textcolor mt-2">Novel AI {language.providerURL}</span>
|
<span class="text-textcolor mt-2">Novel AI {language.providerURL}</span>
|
||||||
<TextInput size="sm" marginBottom placeholder="https://api.novelai.net" bind:value={$DataBase.NAIImgUrl}/>
|
<TextInput size="sm" marginBottom placeholder="https://image.novelai.net" bind:value={$DataBase.NAIImgUrl}/>
|
||||||
<span class="text-textcolor">API Key</span>
|
<span class="text-textcolor">API Key</span>
|
||||||
<TextInput size="sm" marginBottom placeholder="pst-..." bind:value={$DataBase.NAIApiKey}/>
|
<TextInput size="sm" marginBottom placeholder="pst-..." bind:value={$DataBase.NAIApiKey}/>
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
<span class="text-textcolor">CFG scale</span>
|
<span class="text-textcolor">CFG scale</span>
|
||||||
<NumberInput size="sm" marginBottom min={0} max={2048} bind:value={$DataBase.NAIImgConfig.scale}/>
|
<NumberInput size="sm" marginBottom min={0} max={2048} bind:value={$DataBase.NAIImgConfig.scale}/>
|
||||||
|
|
||||||
{#if !$DataBase.NAII2I || $DataBase.NAIImgConfig.sampler === 'ddim_v3'}
|
{#if !$DataBase.NAII2I || $DataBase.NAIImgConfig.sampler !== 'ddim_v3'}
|
||||||
<Check bind:check={$DataBase.NAIImgConfig.sm} name="Use SMEA"/>
|
<Check bind:check={$DataBase.NAIImgConfig.sm} name="Use SMEA"/>
|
||||||
<Check bind:check={$DataBase.NAIImgConfig.sm_dyn} name='Use DYN'/>
|
<Check bind:check={$DataBase.NAIImgConfig.sm_dyn} name='Use DYN'/>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -103,10 +103,10 @@
|
|||||||
|
|
||||||
{#if $DataBase.NAII2I}
|
{#if $DataBase.NAII2I}
|
||||||
|
|
||||||
<span class="text-textcolor mt-4">strength</span>
|
<span class="text-textcolor mt-4">Strength</span>
|
||||||
<SliderInput min={0} max={0.99} step={0.01} bind:value={$DataBase.NAIImgConfig.strength}/>
|
<SliderInput min={0} max={0.99} step={0.01} bind:value={$DataBase.NAIImgConfig.strength}/>
|
||||||
<span class="text-textcolor2 mb-6 text-sm">{$DataBase.NAIImgConfig.strength}</span>
|
<span class="text-textcolor2 mb-6 text-sm">{$DataBase.NAIImgConfig.strength}</span>
|
||||||
<span class="text-textcolor">noise</span>
|
<span class="text-textcolor">Noise</span>
|
||||||
<SliderInput min={0} max={0.99} step={0.01} bind:value={$DataBase.NAIImgConfig.noise}/>
|
<SliderInput min={0} max={0.99} step={0.01} bind:value={$DataBase.NAIImgConfig.noise}/>
|
||||||
<span class="text-textcolor2 mb-6 text-sm">{$DataBase.NAIImgConfig.noise}</span>
|
<span class="text-textcolor2 mb-6 text-sm">{$DataBase.NAIImgConfig.noise}</span>
|
||||||
|
|
||||||
@@ -136,6 +136,47 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
<Check bind:check={$DataBase.NAIREF} name="Enable Reference" className="mt-4"/>
|
||||||
|
|
||||||
|
{#if $DataBase.NAIREF}
|
||||||
|
|
||||||
|
|
||||||
|
<span class="text-textcolor mt-4">Information Extracted</span>
|
||||||
|
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.NAIImgConfig.InfoExtracted}/>
|
||||||
|
<span class="text-textcolor2 mb-6 text-sm">{$DataBase.NAIImgConfig.InfoExtracted}</span>
|
||||||
|
<span class="text-textcolor">Reference Strength</span>
|
||||||
|
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.NAIImgConfig.RefStrength}/>
|
||||||
|
<span class="text-textcolor2 mb-6 text-sm">{$DataBase.NAIImgConfig.RefStrength}</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<span class="text-textcolor">Reference image</span>
|
||||||
|
<button on:click={async () => {
|
||||||
|
const img = await selectSingleFile([
|
||||||
|
'jpg',
|
||||||
|
'jpeg',
|
||||||
|
'png',
|
||||||
|
'webp'
|
||||||
|
])
|
||||||
|
if(!img){
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
const saveId = await saveAsset(img.data)
|
||||||
|
$DataBase.NAIImgConfig.refimage = saveId
|
||||||
|
}}>
|
||||||
|
{#if $DataBase.NAIImgConfig.refimage === ''}
|
||||||
|
<div class="rounded-md h-20 w-20 shadow-lg bg-textcolor2 cursor-pointer hover:text-green-500"/>
|
||||||
|
{:else}
|
||||||
|
{#await getCharImage($DataBase.NAIImgConfig.refimage, 'css')}
|
||||||
|
<div class="rounded-md h-20 w-20 shadow-lg bg-textcolor2 cursor-pointer hover:text-green-500"/>
|
||||||
|
{:then im}
|
||||||
|
<div class="rounded-md h-20 w-20 shadow-lg bg-textcolor2 cursor-pointer hover:text-green-500" style={im} />
|
||||||
|
{/await}
|
||||||
|
{/if}
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
</Arcodion>
|
</Arcodion>
|
||||||
|
|
||||||
|
|||||||
@@ -112,17 +112,18 @@ export async function generateAIImage(genPrompt:string, currentChar:character, n
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(db.sdProvider === 'novelai'){
|
if(db.sdProvider === 'novelai'){
|
||||||
|
genPrompt = genPrompt
|
||||||
|
.replaceAll('\\(', "♧")
|
||||||
|
.replaceAll('\\)', "♤")
|
||||||
|
.replaceAll('(','{')
|
||||||
|
.replaceAll(')','}')
|
||||||
|
.replaceAll('♧','(')
|
||||||
|
.replaceAll('♤',')')
|
||||||
|
|
||||||
let reqlist= {}
|
let reqlist:any = {}
|
||||||
|
|
||||||
if(db.NAII2I){
|
if(db.NAII2I){
|
||||||
genPrompt = genPrompt
|
let seed = Math.floor(Math.random() * 10000000000)
|
||||||
.replaceAll('\\(', "♧")
|
|
||||||
.replaceAll('\\)', "♤")
|
|
||||||
.replaceAll('(','{')
|
|
||||||
.replaceAll(')','}')
|
|
||||||
.replaceAll('♧','(')
|
|
||||||
.replaceAll('♤',')')
|
|
||||||
|
|
||||||
let base64img = ''
|
let base64img = ''
|
||||||
if(db.NAIImgConfig.image === ''){
|
if(db.NAIImgConfig.image === ''){
|
||||||
@@ -134,25 +135,36 @@ export async function generateAIImage(genPrompt:string, currentChar:character, n
|
|||||||
base64img = Buffer.from(await readImage(db.NAIImgConfig.image)).toString('base64');
|
base64img = Buffer.from(await readImage(db.NAIImgConfig.image)).toString('base64');
|
||||||
}
|
}
|
||||||
|
|
||||||
let seed = Math.floor(Math.random() * 10000000000)
|
let refimgbase64 = undefined
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(db.NAIREF){
|
||||||
|
if(db.NAIImgConfig.refimage !== ''){
|
||||||
|
refimgbase64 = Buffer.from(await readImage(db.NAIImgConfig.refimage)).toString('base64');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
reqlist = {
|
reqlist = {
|
||||||
body: {
|
body: {
|
||||||
"action": "img2img",
|
"action": "img2img",
|
||||||
"input": genPrompt,
|
"input": genPrompt,
|
||||||
"model": db.NAIImgModel,
|
"model": db.NAIImgModel,
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"seed": seed,
|
"params_version": 1,
|
||||||
"extra_noise_seed": seed,
|
"add_original_image": true,
|
||||||
"add_original_image": false,
|
|
||||||
"cfg_rescale": 0,
|
"cfg_rescale": 0,
|
||||||
"controlnet_strength": 1,
|
"controlnet_strength": 1,
|
||||||
"dynamic_threshold": false,
|
"dynamic_thresholding": false,
|
||||||
|
"extra_noise_seed": seed,
|
||||||
"n_samples": 1,
|
"n_samples": 1,
|
||||||
"width": db.NAIImgConfig.width,
|
"width": db.NAIImgConfig.width,
|
||||||
"height": db.NAIImgConfig.height,
|
"height": db.NAIImgConfig.height,
|
||||||
"sampler": db.NAIImgConfig.sampler,
|
"sampler": db.NAIImgConfig.sampler,
|
||||||
"steps": db.NAIImgConfig.steps,
|
"steps": db.NAIImgConfig.steps,
|
||||||
"scale": db.NAIImgConfig.scale,
|
"scale": db.NAIImgConfig.scale,
|
||||||
|
"seed": seed,
|
||||||
"negative_prompt": neg,
|
"negative_prompt": neg,
|
||||||
"sm": false,
|
"sm": false,
|
||||||
"sm_dyn": false,
|
"sm_dyn": false,
|
||||||
@@ -160,8 +172,13 @@ export async function generateAIImage(genPrompt:string, currentChar:character, n
|
|||||||
"noise_schedule": "native",
|
"noise_schedule": "native",
|
||||||
"strength": db.NAIImgConfig.strength,
|
"strength": db.NAIImgConfig.strength,
|
||||||
"image": base64img,
|
"image": base64img,
|
||||||
"ucPreset": 2,
|
"ucPreset": 3,
|
||||||
"uncond_scale": 1
|
"uncond_scale": 1,
|
||||||
|
"qualityToggle": false,
|
||||||
|
"lagacy_v3_extend": false,
|
||||||
|
"lagacy": false,
|
||||||
|
"reference_information_extracted": db.NAIImgConfig.InfoExtracted,
|
||||||
|
"reference_strength": db.NAIImgConfig.RefStrength
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
headers:{
|
headers:{
|
||||||
@@ -169,28 +186,103 @@ export async function generateAIImage(genPrompt:string, currentChar:character, n
|
|||||||
},
|
},
|
||||||
rawResponse: true
|
rawResponse: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(refimgbase64 !== undefined){
|
||||||
|
reqlist.body.parameters.reference_image = refimgbase64
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
reqlist = {
|
|
||||||
body: {
|
|
||||||
"input": genPrompt,
|
|
||||||
"model": db.NAIImgModel,
|
|
||||||
"parameters": {
|
|
||||||
"width": db.NAIImgConfig.width,
|
|
||||||
"height": db.NAIImgConfig.height,
|
|
||||||
"sampler": db.NAIImgConfig.sampler,
|
|
||||||
"steps": db.NAIImgConfig.steps,
|
|
||||||
"scale": db.NAIImgConfig.scale,
|
|
||||||
"negative_prompt": neg,
|
|
||||||
"sm": db.NAIImgConfig.sm,
|
|
||||||
"sm_dyn": db.NAIImgConfig.sm_dyn
|
|
||||||
}
|
|
||||||
},
|
|
||||||
headers:{
|
|
||||||
"Authorization": "Bearer " + db.NAIApiKey
|
|
||||||
},
|
|
||||||
rawResponse: true
|
|
||||||
|
|
||||||
|
|
||||||
|
if (db.NAIREF) {
|
||||||
|
|
||||||
|
|
||||||
|
let base64img = ''
|
||||||
|
if(db.NAIImgConfig.image === ''){
|
||||||
|
const charimg = currentChar.image;
|
||||||
|
|
||||||
|
const img = await readImage(charimg)
|
||||||
|
base64img = Buffer.from(img).toString('base64');
|
||||||
|
} else{
|
||||||
|
base64img = Buffer.from(await readImage(db.NAIImgConfig.refimage)).toString('base64');
|
||||||
|
}
|
||||||
|
reqlist = {
|
||||||
|
body: {
|
||||||
|
"action": "generate",
|
||||||
|
"input": genPrompt,
|
||||||
|
"model": db.NAIImgModel,
|
||||||
|
"parameters": {
|
||||||
|
"params_version": 1,
|
||||||
|
"add_original_image": true,
|
||||||
|
"cfg_rescale": 0,
|
||||||
|
"controlnet_strength": 1,
|
||||||
|
"dynamic_thresholding": false,
|
||||||
|
"n_samples": 1,
|
||||||
|
"width": db.NAIImgConfig.width,
|
||||||
|
"height": db.NAIImgConfig.height,
|
||||||
|
"sampler": db.NAIImgConfig.sampler,
|
||||||
|
"steps": db.NAIImgConfig.steps,
|
||||||
|
"scale": db.NAIImgConfig.scale,
|
||||||
|
"negative_prompt": neg,
|
||||||
|
"sm": db.NAIImgConfig.sm,
|
||||||
|
"sm_dyn": db.NAIImgConfig.sm_dyn,
|
||||||
|
"noise_schedule": "native",
|
||||||
|
"ucPreset": 3,
|
||||||
|
"uncond_scale": 1,
|
||||||
|
"qualityToggle": false,
|
||||||
|
"legacy": false,
|
||||||
|
"lagacy_v3_extend": false,
|
||||||
|
"reference_image": base64img,
|
||||||
|
"reference_strength": db.NAIImgConfig.RefStrength,
|
||||||
|
"reference_information_extracted": db.NAIImgConfig.InfoExtracted
|
||||||
|
}
|
||||||
|
},
|
||||||
|
headers:{
|
||||||
|
"Authorization": "Bearer " + db.NAIApiKey
|
||||||
|
},
|
||||||
|
rawResponse: true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
reqlist = {
|
||||||
|
body: {
|
||||||
|
"input": genPrompt,
|
||||||
|
"model": db.NAIImgModel,
|
||||||
|
"parameters": {
|
||||||
|
"params_version": 1,
|
||||||
|
"width": db.NAIImgConfig.width,
|
||||||
|
"height": db.NAIImgConfig.height,
|
||||||
|
"scale": db.NAIImgConfig.scale,
|
||||||
|
"sampler": db.NAIImgConfig.sampler,
|
||||||
|
"steps": db.NAIImgConfig.steps,
|
||||||
|
"n_samples": 1,
|
||||||
|
"ucPreset": 3,
|
||||||
|
"qualityToggle": false,
|
||||||
|
"sm": db.NAIImgConfig.sm,
|
||||||
|
"sm_dyn": db.NAIImgConfig.sm_dyn,
|
||||||
|
"dynamic_thresholding": false,
|
||||||
|
"controlnet_strength": 1,
|
||||||
|
"legacy": false,
|
||||||
|
"add_original_image": true,
|
||||||
|
"uncond_scale": 1,
|
||||||
|
"cfg_rescale": 0,
|
||||||
|
"noise_schedule": "native",
|
||||||
|
"legacy_v3_extend": false,
|
||||||
|
"reference_information_extracted": db.NAIImgConfig.InfoExtracted,
|
||||||
|
"reference_strength": db.NAIImgConfig.RefStrength,
|
||||||
|
"negative_prompt": neg,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
headers:{
|
||||||
|
"Authorization": "Bearer " + db.NAIApiKey
|
||||||
|
},
|
||||||
|
rawResponse: true
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const da = await globalFetch(db.NAIImgUrl, reqlist)
|
const da = await globalFetch(db.NAIImgUrl, reqlist)
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ export function setDatabase(data:Database){
|
|||||||
data.sdCFG = 7
|
data.sdCFG = 7
|
||||||
}
|
}
|
||||||
if(checkNullish(data.NAIImgUrl)){
|
if(checkNullish(data.NAIImgUrl)){
|
||||||
data.NAIImgUrl = 'https://api.novelai.net/ai/generate-image'
|
data.NAIImgUrl = 'https://image.novelai.net/ai/generate-image'
|
||||||
}
|
}
|
||||||
if(checkNullish(data.NAIApiKey)){
|
if(checkNullish(data.NAIApiKey)){
|
||||||
data.NAIApiKey = ''
|
data.NAIApiKey = ''
|
||||||
@@ -184,7 +184,10 @@ export function setDatabase(data:Database){
|
|||||||
data.NAIImgModel = 'nai-diffusion-3'
|
data.NAIImgModel = 'nai-diffusion-3'
|
||||||
}
|
}
|
||||||
if(checkNullish(data.NAII2I)){
|
if(checkNullish(data.NAII2I)){
|
||||||
data.NAII2I = true
|
data.NAII2I = false
|
||||||
|
}
|
||||||
|
if(checkNullish(data.NAIREF)){
|
||||||
|
data.NAIREF = false
|
||||||
}
|
}
|
||||||
if(checkNullish(data.textTheme)){
|
if(checkNullish(data.textTheme)){
|
||||||
data.textTheme = "standard"
|
data.textTheme = "standard"
|
||||||
@@ -251,10 +254,13 @@ export function setDatabase(data:Database){
|
|||||||
steps:28,
|
steps:28,
|
||||||
scale:5,
|
scale:5,
|
||||||
sm:true,
|
sm:true,
|
||||||
sm_dyn:true,
|
sm_dyn:false,
|
||||||
noise:0.0,
|
noise:0.0,
|
||||||
strength:0.6,
|
strength:0.6,
|
||||||
image:""
|
image:"",
|
||||||
|
refimage:"",
|
||||||
|
InfoExtracted:1,
|
||||||
|
RefStrength:0.4
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(checkNullish(data.customTextTheme)){
|
if(checkNullish(data.customTextTheme)){
|
||||||
@@ -447,6 +453,7 @@ export interface Database{
|
|||||||
NAIApiKey:string
|
NAIApiKey:string
|
||||||
NAIImgModel:string
|
NAIImgModel:string
|
||||||
NAII2I:boolean
|
NAII2I:boolean
|
||||||
|
NAIREF:boolean
|
||||||
NAIImgConfig:NAIImgConfig
|
NAIImgConfig:NAIImgConfig
|
||||||
runpodKey:string
|
runpodKey:string
|
||||||
promptPreprocess:boolean
|
promptPreprocess:boolean
|
||||||
@@ -829,7 +836,10 @@ interface NAIImgConfig{
|
|||||||
sm_dyn:boolean,
|
sm_dyn:boolean,
|
||||||
noise:number,
|
noise:number,
|
||||||
strength:number,
|
strength:number,
|
||||||
image:string
|
image:string,
|
||||||
|
refimage:string,
|
||||||
|
InfoExtracted:number,
|
||||||
|
RefStrength:number
|
||||||
}
|
}
|
||||||
export type FormatingOrderItem = 'main'|'jailbreak'|'chats'|'lorebook'|'globalNote'|'authorNote'|'lastChat'|'description'|'postEverything'|'personaPrompt'
|
export type FormatingOrderItem = 'main'|'jailbreak'|'chats'|'lorebook'|'globalNote'|'authorNote'|'lastChat'|'description'|'postEverything'|'personaPrompt'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user