@innovastudio/contentbuilder 1.4.93 → 1.4.94
Sign up to get free protection for your applications and to get access to all the features.
package/package.json
CHANGED
@@ -77984,7 +77984,7 @@ class Dictation {
|
|
77984
77984
|
let htmlList = '';
|
77985
77985
|
const commandInfo = this.builder.commandInfo;
|
77986
77986
|
let bImageGeneration = false;
|
77987
|
-
if (this.builder.
|
77987
|
+
if (this.builder.textToImageUrl) {
|
77988
77988
|
bImageGeneration = true;
|
77989
77989
|
}
|
77990
77990
|
for (const key in commandInfo) {
|
@@ -78122,7 +78122,7 @@ class Dictation {
|
|
78122
78122
|
const btnScopeOthers = this.modalCommand.querySelector('.scope-others');
|
78123
78123
|
const btnScopeImage = this.modalCommand.querySelector('.scope-image');
|
78124
78124
|
btnScopeBlock.disabled = true;
|
78125
|
-
if (this.builder.
|
78125
|
+
if (this.builder.textToImageUrl) btnScopeImage.style.display = ''; // show generate image button
|
78126
78126
|
|
78127
78127
|
const assistModeBtns = modalCommand.querySelectorAll('.div-assistant-mode button');
|
78128
78128
|
assistModeBtns.forEach(btn => {
|
@@ -81864,17 +81864,36 @@ class ContentBuilder {
|
|
81864
81864
|
}
|
81865
81865
|
}
|
81866
81866
|
}
|
81867
|
-
async generateImage(prompt,
|
81868
|
-
if (!(this.generateImageUrl && this.uploadBase64Url)) return;
|
81867
|
+
async generateImage(prompt, callback) {
|
81869
81868
|
this.controller = new AbortController(); // Create a new AbortController
|
81870
81869
|
this.signal = this.controller.signal; // Get a new signal object
|
81871
81870
|
|
81871
|
+
let model = 'realistic-vision-v3';
|
81872
|
+
let negative_prompt = '';
|
81873
|
+
if (model.includes('realistic-vision')) {
|
81874
|
+
if (negative_prompt === '') negative_prompt = 'duplicate, (deformed iris, deformed pupils, semi-realistic, cgi, 3d, render, sketch, cartoon, drawing, anime:1.4), text, close up, cropped, out of frame, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck, bad_prompt_version2, bad-hands-5, badhandv4, bad anatomy, deformed, mutated, amputated, missing finger, extra finger, fused fingers, missing leg, extra leg, fused legs, missing digit, extra digit, fused digits, missing hand, extra hand, fused hands, missing arm, extra arm, fused arms, missing limb, extra limb, fused limbs, fused bodies, merged bodies, extra bodies, dual bodies, extra navel, elongated body, missing joint, extra joint, fused joints, deformed hip, twisted limbs, twisted legs, twisted arms, missing head, extra head, double head, twins, missing ear, extra ear, deformed ear, black and white, monochrome, multiple views, blurry, text, signature, head out of frame, paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, grayscale, glans, bad hands, error, extra digit, fewer digits, cropped, jpeg artifacts, watermark, username, bad feet, poorly drawn hands, poorly drawn face, mutation, too many fingers, long neck, long body, long arms, cross-eyed, mutated hands, polar lowres, bad body, bad proportions, gross proportions, cropped head , bad eyes, extra breast, missing breast, fused breasts, unnatural proportions, necklace';
|
81875
|
+
}
|
81876
|
+
let width = 1024;
|
81877
|
+
let height = 1024;
|
81878
|
+
let steps = 25;
|
81879
|
+
let guidance = 7.5;
|
81880
|
+
let scheduler = 'dpmsolver++';
|
81881
|
+
let output_format = 'jpeg';
|
81872
81882
|
const messages = {
|
81873
|
-
|
81874
|
-
|
81883
|
+
model: 'realistic-vision-v3',
|
81884
|
+
prompt: prompt,
|
81885
|
+
negative_prompt: negative_prompt,
|
81886
|
+
width: width,
|
81887
|
+
height: height,
|
81888
|
+
steps: steps,
|
81889
|
+
guidance: guidance,
|
81890
|
+
scheduler: scheduler,
|
81891
|
+
output_format: output_format,
|
81892
|
+
folder_path: ''
|
81875
81893
|
};
|
81876
81894
|
try {
|
81877
|
-
|
81895
|
+
let url = this.textToImageUrl;
|
81896
|
+
const response = await fetch(url, {
|
81878
81897
|
signal: this.signal,
|
81879
81898
|
// Abort
|
81880
81899
|
method: 'POST',
|
@@ -81888,41 +81907,8 @@ class ContentBuilder {
|
|
81888
81907
|
console.log('Error:\n' + result.error);
|
81889
81908
|
return;
|
81890
81909
|
}
|
81891
|
-
const
|
81892
|
-
|
81893
|
-
const base64 = result.data;
|
81894
|
-
const src = `data:image/jpeg;base64,${base64}`;
|
81895
|
-
var newWidth = 1024;
|
81896
|
-
var newHeight = 1024;
|
81897
|
-
var img = new Image();
|
81898
|
-
img.src = src;
|
81899
|
-
img.onload = () => {
|
81900
|
-
var canvas = document.createElement('canvas');
|
81901
|
-
canvas.width = newWidth;
|
81902
|
-
canvas.height = newHeight;
|
81903
|
-
var ctx = canvas.getContext('2d');
|
81904
|
-
ctx.drawImage(img, 0, 0, newWidth, newHeight);
|
81905
|
-
var resizedBase64 = canvas.toDataURL('image/jpeg');
|
81906
|
-
let image = resizedBase64;
|
81907
|
-
image = image.replace(/^data:image\/(png|jpeg);base64,/, '');
|
81908
|
-
const reqBody = {
|
81909
|
-
image: image,
|
81910
|
-
filename: filename
|
81911
|
-
};
|
81912
|
-
fetch(this.uploadBase64Url, {
|
81913
|
-
method: 'POST',
|
81914
|
-
body: JSON.stringify(reqBody),
|
81915
|
-
headers: {
|
81916
|
-
'Content-Type': 'application/json'
|
81917
|
-
}
|
81918
|
-
}).then(response => response.json()).then(response => {
|
81919
|
-
if (!response.error) {
|
81920
|
-
const uploadedImageUrl = response.url;
|
81921
|
-
images.push(uploadedImageUrl);
|
81922
|
-
callback(images);
|
81923
|
-
}
|
81924
|
-
});
|
81925
|
-
};
|
81910
|
+
const imageUrl = result.url;
|
81911
|
+
callback([imageUrl]);
|
81926
81912
|
} catch (error) {
|
81927
81913
|
if (error.name === 'AbortError') ; else {
|
81928
81914
|
// CORS or code errors goes here
|
@@ -81934,8 +81920,11 @@ class ContentBuilder {
|
|
81934
81920
|
}
|
81935
81921
|
}
|
81936
81922
|
|
81937
|
-
/*
|
81938
|
-
|
81923
|
+
/* OpenAI
|
81924
|
+
// Requires:
|
81925
|
+
// generateImageUrl: '/generateimage',
|
81926
|
+
// uploadBase64Url:'/uploadbase64',
|
81927
|
+
async generateImage(prompt, num, callback) {
|
81939
81928
|
if(!(this.generateImageUrl && this.uploadBase64Url)) return;
|
81940
81929
|
this.controller = new AbortController(); // Create a new AbortController
|
81941
81930
|
this.signal = this.controller.signal; // Get a new signal object
|