@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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@innovastudio/contentbuilder",
3
3
  "type": "module",
4
- "version": "1.4.93",
4
+ "version": "1.4.94",
5
5
  "description": "",
6
6
  "main": "public/contentbuilder/contentbuilder.esm.js",
7
7
  "files": [
@@ -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.generateImageUrl && this.builder.uploadBase64Url) {
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.generateImageUrl) btnScopeImage.style.display = ''; // show generate image button
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, num, callback) {
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
- prompt,
81874
- num
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
- const response = await fetch(this.generateImageUrl, {
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 filename = result.filename;
81892
- let images = [];
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
- async generateImage(prompt, num, callback) {
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