@innovastudio/contentbuilder 1.4.99 → 1.4.101

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.99",
4
+ "version": "1.4.101",
5
5
  "description": "",
6
6
  "main": "public/contentbuilder/contentbuilder.esm.js",
7
7
  "files": [
@@ -79466,6 +79466,7 @@ class ContentBuilder {
79466
79466
  useMediaRecorder: true,
79467
79467
  // do not change
79468
79468
  encoderPath: '',
79469
+ imageAutoUpscale: true,
79469
79470
  headlineList: ['We create simple and effective designs.', 'Ultimate Experiences With Story, Emotion, And Purpose.', 'Build Anything Beautifully', 'With Less Stuff and More Compassion', 'We\'re [CompanyName]. Full stack development with a spark of creativity.', 'Transforming your digital experience with [CompanyName]. Achieve your online goals with our customized solutions.', 'Revolutionizing web development with [CompanyName]. Unleash your digital potential with our high-performance solutions.', 'Creative and Inspiring'],
79470
79471
  shortCommandList: {
79471
79472
  undo: ['undo'],
@@ -82013,31 +82014,56 @@ class ContentBuilder {
82013
82014
  }
82014
82015
  }
82015
82016
  }
82017
+ async upscaleImage(src, callback) {
82018
+ const width = 512;
82019
+ const height = 512;
82020
+ const img = new Image();
82021
+ img.src = src;
82022
+ img.onload = async () => {
82023
+ const canvas = document.createElement('canvas');
82024
+ canvas.width = width;
82025
+ canvas.height = height;
82026
+ const ctx = canvas.getContext('2d');
82027
+ ctx.drawImage(img, 0, 0, width, height);
82028
+ const resizedBase64 = canvas.toDataURL('image/jpeg');
82029
+ let image = resizedBase64;
82030
+ image = image.replace(/^data:image\/(png|jpeg);base64,/, '');
82031
+ const messages = {
82032
+ image: image,
82033
+ folder_path: ''
82034
+ };
82035
+ const response = await fetch(this.upscaleImageUrl, {
82036
+ signal: this.signal,
82037
+ // Abort
82038
+ method: 'POST',
82039
+ headers: {
82040
+ 'Content-Type': 'application/json'
82041
+ },
82042
+ body: JSON.stringify(messages)
82043
+ });
82044
+ const result = await response.json();
82045
+ callback([result.url]);
82046
+ };
82047
+ }
82016
82048
  async generateImage(prompt, callback) {
82017
82049
  this.controller = new AbortController(); // Create a new AbortController
82018
82050
  this.signal = this.controller.signal; // Get a new signal object
82019
82051
 
82020
- let model = 'realistic-vision-v3';
82021
- let negative_prompt = '';
82022
- if (model.includes('realistic-vision')) {
82023
- 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';
82024
- }
82025
- let width = 1024;
82026
- let height = 1024;
82027
- let steps = 25;
82028
- let guidance = 7.5;
82029
- let scheduler = 'dpmsolver++';
82030
- let output_format = 'jpeg';
82052
+ let model = this.imageModel || 'realistic-vision-v3';
82053
+ let negative_prompt = this.imageNegativePrompt || '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';
82054
+ let steps = this.imageSteps || 25;
82055
+ let guidance = this.imageGuidance || 7.5;
82056
+ let scheduler = this.imageScheduler || 'dpmsolver++';
82031
82057
  const messages = {
82032
- model: 'realistic-vision-v3',
82058
+ model,
82033
82059
  prompt: prompt,
82034
- negative_prompt: negative_prompt,
82035
- width: width,
82036
- height: height,
82037
- steps: steps,
82038
- guidance: guidance,
82039
- scheduler: scheduler,
82040
- output_format: output_format,
82060
+ negative_prompt,
82061
+ width: 512,
82062
+ height: 512,
82063
+ steps,
82064
+ guidance,
82065
+ scheduler,
82066
+ output_format: 'jpeg',
82041
82067
  folder_path: ''
82042
82068
  };
82043
82069
  try {
@@ -82057,7 +82083,11 @@ class ContentBuilder {
82057
82083
  return;
82058
82084
  }
82059
82085
  const imageUrl = result.url;
82060
- callback([imageUrl]);
82086
+ if (this.imageAutoUpscale) {
82087
+ this.upscaleImage(imageUrl, callback);
82088
+ } else {
82089
+ callback([imageUrl]);
82090
+ }
82061
82091
  } catch (error) {
82062
82092
  if (error.name === 'AbortError') ; else {
82063
82093
  // CORS or code errors goes here