diff --git "a/web-build/static/js/main.61fedbbd.js.map" "b/web-build/static/js/main.61fedbbd.js.map"
new file mode 100644--- /dev/null
+++ "b/web-build/static/js/main.61fedbbd.js.map"
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/main.61fedbbd.js","mappings":"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","sources":["components/Slider.js","components/PromptInput.js","components/Breathing.js","components/DropDown.js","components/ImagePicker.js","components/Buttons.js","components/Expand.js","components/Prompt.js","components/Inference.js","components/Sounds.js","MainApp.js","App.js","webpack/bootstrap","webpack/runtime/chunk loaded","webpack/runtime/compat get default export","webpack/runtime/create fake namespace object","webpack/runtime/define property getters","webpack/runtime/global","webpack/runtime/hasOwnProperty shorthand","webpack/runtime/make namespace object","webpack/runtime/node module decorator","webpack/runtime/publicPath","webpack/runtime/jsonp chunk loading","webpack/startup"],"sourcesContent":["import * as React from \"react\";\r\nimport { StyleSheet, View, Text } from \"react-native\";\r\nimport Slider from \"@react-native-community/slider\";\r\n\r\nexport default function SliderComponent({ setSteps, setGuidance, setControl }) {\r\n  const [samplingValue, setSamplingValue] = React.useState(28);\r\n  const [guidanceValue, setGuidanceValue] = React.useState(5);\r\n  const [controlValue, setControlValue] = React.useState(1.0);\r\n\r\n  // Handle sampling steps change\r\n  const handleStepChange = (x) => {\r\n    setSamplingValue(x);\r\n    setSteps(x);\r\n  };\r\n\r\n  // Handle guidance change\r\n  const handleGuidanceChange = (x) => {\r\n    setGuidanceValue(parseFloat(x.toFixed(2)));\r\n    setGuidance(parseFloat(x.toFixed(2)));\r\n  };\r\n\r\n  const handleControlChange = (x) => {\r\n    setControlValue(parseFloat(x.toFixed(2)));\r\n    setControl(parseFloat(x.toFixed(2)));\r\n  };\r\n\r\n  return (\r\n    <View style={styles.container}>\r\n      <Text style={styles.captionText}>Sampling Steps</Text>\r\n      <Slider\r\n        style={styles.slider}\r\n        minimumValue={3}\r\n        maximumValue={50}\r\n        step={1}\r\n        value={samplingValue}\r\n        minimumTrackTintColor=\"#958DA5\"\r\n        maximumTrackTintColor=\"#9DA58D\"\r\n        thumbTintColor=\"#6750A4\"\r\n        onValueChange={handleStepChange}\r\n      />\r\n      <Text style={styles.sliderValue}>{samplingValue}</Text>\r\n      <Text style={styles.captionText}>Prompt Guidance</Text>\r\n      <Slider\r\n        style={styles.slider}\r\n        minimumValue={0}\r\n        maximumValue={10}\r\n        step={0.1}\r\n        value={guidanceValue}\r\n        minimumTrackTintColor=\"#958DA5\"\r\n        maximumTrackTintColor=\"#9DA58D\"\r\n        thumbTintColor=\"#6750A4\"\r\n        onValueChange={handleGuidanceChange}\r\n      />\r\n      <Text style={styles.sliderValue}>{guidanceValue}</Text>\r\n      <Text style={styles.captionText}>Style & Layout</Text>\r\n      <Slider\r\n        style={styles.slider}\r\n        minimumValue={0}\r\n        maximumValue={2}\r\n        step={0.1}\r\n        value={controlValue}\r\n        minimumTrackTintColor=\"#958DA5\"\r\n        maximumTrackTintColor=\"#9DA58D\"\r\n        thumbTintColor=\"#6750A4\"\r\n        onValueChange={handleControlChange}\r\n      />\r\n      <Text style={styles.sliderValue}>{controlValue}</Text>\r\n    </View>\r\n  );\r\n}\r\n\r\nconst colors = {\r\n  color: \"#FFFFFF\",\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n  container: {\r\n    alignItems: \"center\",\r\n    paddingTop: 50,\r\n  },\r\n  slider: {\r\n    width: 350,\r\n    height: 40,\r\n  },\r\n  captionText: {\r\n    color: colors.color,\r\n    fontSize: 20,\r\n    textAlign: \"center\",\r\n    letterSpacing: 3,\r\n    width: 350,\r\n    fontFamily: \"Sigmar\",\r\n  },\r\n  sliderValue: {\r\n    color: colors.color,\r\n    fontSize: 18,\r\n    letterSpacing: 3,\r\n    textAlign: \"center\",\r\n    paddingBottom: 30,\r\n    width: 350,\r\n    fontFamily: \"Sigmar\",\r\n  },\r\n});\r\n","import React, { useEffect } from \"react\";\r\nimport {\r\n  Pressable,\r\n  StyleSheet,\r\n  TextInput,\r\n  Image,\r\n  View,\r\n  Dimensions\r\n} from \"react-native\";\r\n\r\nexport default function PromptInputComponent({ setPlaySound, setPrompt, inferredPrompt }) {\r\n  const [text, setText] = React.useState(\"\");\r\n\r\n  const textInputStyle = {\r\n    ...styles.input,\r\n    width: Dimensions.get('window').width > 500 ? 500 : \"100%\",\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (inferredPrompt) {\r\n      setText(inferredPrompt);\r\n      setPrompt(inferredPrompt);\r\n    }\r\n  }, [inferredPrompt]);\r\n\r\n  const handleTextChange = (x) => {\r\n    setText(x);\r\n    setPrompt(x);\r\n  };\r\n\r\n  return (\r\n    <View style={{ flexDirection: \"row\", alignItems: \"flex-end\" }}>\r\n      <TextInput\r\n        style={textInputStyle}\r\n        placeholder=\"\"\r\n        multiline\r\n        textAlign=\"center\"\r\n        onChangeText={handleTextChange}\r\n        value={text}\r\n        maxLength={20000}\r\n      />\r\n      <Pressable\r\n        style={({ pressed }) => [\r\n          {\r\n            height: 30,\r\n            width: 30,\r\n            backgroundColor: pressed ? \"#B58392\" : \"#3a3c3f\",\r\n            borderRadius: 6,\r\n            padding: 10,\r\n            marginTop: 10,\r\n            alignItems: \"center\",\r\n            justifyContent: \"center\",\r\n            zIndex: 1,\r\n          },\r\n        ]}\r\n        onPress={() => {\r\n          setText(\"\");\r\n          setPrompt(\"\");\r\n          setPlaySound(\"click\");\r\n        }}\r\n      >\r\n        <Image\r\n          source={require(\"../assets/close.png\")}\r\n          style={{\r\n            width: \"100%\",\r\n            height: \"100%\",\r\n            resizeMode: \"contain\",\r\n          }}\r\n        />\r\n      </Pressable>\r\n    </View>\r\n  );\r\n}\r\n\r\nconst colors = {\r\n  backgroundColor: \"#FFFFFF\",\r\n  borderColor: \"#B58392\",\r\n  color: \"#000000\",\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n  input: {\r\n    backgroundColor: colors.backgroundColor,\r\n    borderColor: colors.borderColor,\r\n    borderBottomLeftRadius: 4,\r\n    borderWidth: 4,\r\n    borderBottomRightRadius: 4,\r\n    borderStartWidth: 10,\r\n    borderEndWidth: 10,\r\n    borderRadius: 6,\r\n    height: 200,\r\n    paddingLeft: 10,\r\n    paddingRight: 10,\r\n    fontSize: 20,\r\n    color: colors.color,\r\n    fontFamily: \"Sigmar\",\r\n    marginRight: 10,\r\n  },\r\n});\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport {\r\n  View,\r\n  Text,\r\n  StyleSheet,\r\n  Animated,\r\n  useWindowDimensions,\r\n  Dimensions\r\n} from \"react-native\";\r\n\r\nexport default function Breathing() {\r\n  // Create an array of Animated values using useRef\r\n  const animatedValues = useRef(\r\n    [...Array(12)].map(() => new Animated.Value(0))\r\n  ).current;\r\n  const { width } = useWindowDimensions();\r\n\r\n  useEffect(() => {\r\n    // Define animations for each value in animatedValues\r\n    const animations = animatedValues.map((animatedValue, index) => {\r\n      // Animation for increasing value\r\n      const animation1 = Animated.timing(animatedValue, {\r\n        toValue: 1,\r\n        duration: 2000,\r\n        useNativeDriver: false,\r\n      });\r\n\r\n      // Animation for decreasing value\r\n      const animation2 = Animated.timing(animatedValue, {\r\n        toValue: 0,\r\n        duration: 2000,\r\n        useNativeDriver: false,\r\n      });\r\n\r\n      const fast = 300;\r\n      const medium = 450;\r\n      const slow = 600;\r\n      // Define delays for each animation\r\n      const delays = [\r\n        index * fast,\r\n        index * medium,\r\n        (11 - index) * fast,\r\n        index * slow,\r\n        (11 - index) * medium,\r\n        index * fast,\r\n        (11 - index) * slow,\r\n        index * medium,\r\n        (11 - index) * fast,\r\n        (11 - index) * medium,\r\n        index * slow,\r\n        (11 - index) * slow,\r\n      ];\r\n\r\n      // Create a sequence of animations with delays\r\n      const animationSequence = delays.map((delay, index) => {\r\n        return Animated.sequence([\r\n          Animated.delay(delay),\r\n          animation1,\r\n          animation2,\r\n        ]);\r\n      });\r\n\r\n      // Create a sequence of all animation sequences\r\n      const animationSequences = Animated.sequence(animationSequence);\r\n\r\n      // Create a loop for the animation sequence\r\n      return Animated.loop(animationSequences);\r\n    });\r\n\r\n    // Start all animations\r\n    animations.forEach((animation) => {\r\n      animation.start();\r\n    });\r\n  }, [animatedValues]);\r\n\r\n  // Interpolate animations to map values to desired output range\r\n  const interpolateAnimations = animatedValues.map((animatedValue) =>\r\n    animatedValue.interpolate({\r\n      inputRange: [0, 1],\r\n      outputRange: width > 1000 ? [60, 90] : [20, 30],\r\n      extrapolate: \"clamp\",\r\n    })\r\n  );\r\n\r\n  // Create animated styles based on interpolated values\r\n  const animatedStyles = interpolateAnimations.map((interpolateAnimation) => ({\r\n    fontSize: interpolateAnimation,\r\n  }));\r\n\r\n  const shouldApplyMargin = width < 550;\r\n  console.log(width)\r\n  return (\r\n    \r\n    <View style={[styles.containerbreathing,shouldApplyMargin && { marginLeft: 50 }]}> \r\n      <Text style={styles.heading}>\r\n      <Animated.Text style={[styles.char, animatedStyles[0]]}>\r\n          {\"\"}\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[0]]}>\r\n          P\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[1]]}>\r\n          I\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[2]]}>\r\n          X\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[3]]}>\r\n          E\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[4]]}>\r\n          L\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[5]]}>\r\n          {\" \"}\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[6]]}>\r\n          P\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[7]]}>\r\n          R\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[8]]}>\r\n          O\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[9]]}>\r\n          M\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[10]]}>\r\n          P\r\n        </Animated.Text>\r\n        <Animated.Text style={[styles.char, animatedStyles[11]]}>\r\n          T\r\n        </Animated.Text>\r\n      </Text>\r\n    </View>\r\n    \r\n  );\r\n}\r\n\r\nconst colors = {\r\n  color: \"#6750A4\",\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n  containerbreathing: {\r\n    flex: 1,\r\n    alignItems: \"center\",\r\n    flexDirection: \"row\",\r\n    justifyContent: \"center\",\r\n  },\r\n  char: {\r\n    marginHorizontal: 15,\r\n  },\r\n  heading: {\r\n    fontWeight: \"bold\",\r\n    fontFamily: \"Sigmar\",\r\n    color: colors.color,\r\n    paddingTop: 25,\r\n    position: \"absolute\",\r\n  },\r\n});\r\n","import { useState } from \"react\";\r\nimport { StyleSheet } from \"react-native\";\r\nimport { Dropdown } from \"react-native-element-dropdown\";\r\n\r\nexport default function DropDownComponent({\r\n  passModelID,\r\n  \r\n}) {\r\n    const [placeholderModelID, setPlaceholderModelID] = useState(\"Model ID\");\r\n      const data = [ \r\n        {\r\n          label: \"Random\",\r\n          value: \"Random\",\r\n        },\r\n        { label: \"AuraFlow\", value: \"fal/AuraFlow\" },\r\n        {\r\n          label: \"Stable Diffusion 3\",\r\n          value: \"stabilityai/stable-diffusion-3-medium\",\r\n        },\r\n        {\r\n          label: \"Stable Diffusion XL\",\r\n          value: \"stabilityai/stable-diffusion-xl-base-1.0\",\r\n        },   \r\n        { label: \"Pixel\", value: \"nerijs/pixel-art-xl\" },\r\n        { label: \"Voxel\", value: \"Fictiverse/Voxel_XL_Lora\" },\r\n        { label: \"Van-Gogh\", value: \"dallinmackay/Van-Gogh-diffusion\" },\r\n        { label: \"Anime - (gsdf)\", value: \"gsdf/Counterfeit-V2.5\" },\r\n      ];\r\n      \r\n  return (\r\n    <Dropdown\r\n      style={styles.dropdown}\r\n      selectedTextStyle={styles.selectedTextStyle}\r\n      placeholderStyle={styles.placeholderStyle}\r\n      data={data}\r\n      labelField=\"label\"\r\n      valueField=\"value\"\r\n      placeholder={placeholderModelID}\r\n      onChange={(item) => {\r\n        passModelID(item);\r\n        setPlaceholderModelID(item.label);\r\n      }}\r\n    />\r\n  );\r\n}\r\n\r\nconst colors = {\r\n  borderBottomColor: \"#9DA58D\",\r\n  color: \"#FFFFFF\",\r\n};\r\nconst styles = StyleSheet.create({\r\n  dropdown: {\r\n    margin: 16,\r\n    height: 50,\r\n    width: 340,\r\n    borderBottomColor: colors.borderBottomColor,\r\n    borderBottomWidth: 3,\r\n  },\r\n  placeholderStyle: {\r\n    color: colors.color,\r\n    fontSize: 25,\r\n    fontFamily: \"Sigmar\",\r\n    textAlign: \"center\",\r\n    letterSpacing: 3,\r\n  },\r\n  selectedTextStyle: {\r\n    color: colors.color,\r\n    fontSize: 20,\r\n    fontFamily: \"Sigmar\",\r\n    letterSpacing: 3,\r\n    textAlign: \"center\",\r\n  },\r\n});\r\n","import React, { useEffect, useState } from \"react\";\nimport {\n  Pressable,\n  Image,\n  View,\n  StyleSheet,\n  Text,\n  Switch,\n  FlatList,\n  Dimensions,\n} from \"react-native\";\nimport * as ImagePicker from \"expo-image-picker\";\n\nconst addImage = require(\"../assets/add_image.png\");\nconst coloredDelete = require(\"../assets/delete_colored.png\");\nconst deleteButton = require(\"../assets/delete.png\");\n\nconst MyImagePicker = ({\n  columnCount,\n  selectedImageIndex,\n  setSelectedImageIndex,\n  initialReturnedPrompt,\n  setReturnedPrompt,\n  promptList,\n  setPromptList,\n  setPlaySound,\n  imageSource,\n  setImageSource,\n  styleSwitch,\n  setStyleSwitch,\n  settingSwitch,\n  setSettingSwitch,\n}) => {\n  const [textHeight, setTextHeight] = useState(0);\n  const [containerHeight, setContainerHeight] = useState(160);\n  \n  useEffect(() => {\n    if (Dimensions.get('window').width < 1000) {\n      if (selectedImageIndex !== null) {\n        setContainerHeight(440 + textHeight);\n      } else {\n        setContainerHeight(160);\n      }\n    }\n  }, [selectedImageIndex, textHeight]);\n\n  const selectImage = async (index) => {\n    const { status } = await ImagePicker.requestMediaLibraryPermissionsAsync();\n    if (status !== \"granted\") {\n      alert(\"Sorry, we need media library permissions to select an image.\");\n      return;\n    }\n    console.log(\"Selecting image\");\n    const result = await ImagePicker.launchImageLibraryAsync({\n      mediaTypes: ImagePicker.MediaTypeOptions.Images,\n      allowsEditing: true,\n      aspect: [4, 3],\n      quality: 1,\n    });\n\n    if (!result.cancelled) {\n      setPlaySound(\"swoosh\");\n      setImageSource((prevImageSource) => {\n        const newImageSource = [...prevImageSource];\n        newImageSource[index] = result.assets[0].uri;\n        newImageSource[index + 1] = addImage;\n        return newImageSource;\n      });\n      setPromptList((prevPromptSource) => {\n        const prevPrompt = [...prevPromptSource];\n        prevPrompt[index] = \"Uploaded Image\";\n        return prevPrompt;\n      });\n    }\n  };\n\n  useEffect(() => {\n    if (selectedImageIndex !== null) {\n      setReturnedPrompt(promptList[selectedImageIndex]);\n    } else {\n      setReturnedPrompt(initialReturnedPrompt);\n    }\n  }, [selectedImageIndex]);\n\n  const styleSwitchFunction = () => {\n    setStyleSwitch(!styleSwitch);\n    setPlaySound(\"switch\");\n  };\n\n  const settingSwitchFunction = () => {\n    setSettingSwitch(!settingSwitch);\n    setPlaySound(\"switch\");\n  };\n\n  const deleteFromImageArray = (index) => {\n    setImageSource((prevImageSource) => {\n      setPlaySound(\"click\");\n      if (prevImageSource.length > 1) {\n        return prevImageSource.filter((_, i) => i !== index);\n      }\n      return [addImage];\n    });\n    setReturnedPrompt(promptList[index + 1]);\n    setPromptList((prevPromptSource) => {\n      if (prevPromptSource.length > 1) {\n        return prevPromptSource.filter((_, i) => i !== index);\n      }\n      return [\"\"];\n    });\n  };\n\n  function isStartOrEndOfRow(index) {\n    const isLastInRow = (selectedImageIndex + 1) % columnCount === 0 || selectedImageIndex === imageSource.length - 1;\n    const isFirstInRow = selectedImageIndex % columnCount === 0;\n    return selectedImageIndex === index + (isFirstInRow ? -1 : 1) || selectedImageIndex === index + (isFirstInRow ? -2 : isLastInRow ? 2 : -1);\n  }\n\n  return (\n    <>\n      <View style={styles.switchesRowContainer}>\n        <View style={styles.columnContainer}>\n          <Text\n            style={[\n              { color: styleSwitch ? \"#9DA58D\" : \"#FFFFFF\" },\n              styles.sliderText,\n            ]}\n          >\n            Style\n          </Text>\n          <Switch\n            trackColor={{ false: \"#9DA58D\", true: \"#767577\" }}\n            thumbColor=\"#B58392\"\n            activeThumbColor=\"#6750A4\"\n            ios_backgroundColor=\"#3e3e3e\"\n            onValueChange={styleSwitchFunction}\n            value={styleSwitch}\n          />\n        </View>\n        <View style={styles.columnContainer}>\n          <Text\n            style={[\n              { color: settingSwitch ? \"#9FA8DA\" : \"#FFFFFF\" },\n              styles.sliderText,\n            ]}\n          >\n            Layout\n          </Text>\n          <Switch\n            trackColor={{ false: \"#958DA5\", true: \"#767577\" }}\n            thumbColor=\"#B58392\"\n            activeThumbColor=\"#6750A4\"\n            ios_backgroundColor=\"#3e3e3e\"\n            onValueChange={settingSwitchFunction}\n            value={settingSwitch}\n          />\n        </View>\n      </View>\n      <View style={styles.flatListContainer}>\n        <FlatList\n          data={imageSource}\n          key={columnCount}\n          numColumns={columnCount}\n          keyExtractor={(item, index) => index.toString()}\n          renderItem={({ item: source, index }) => (\n            <View\n              style={[\n                styles.imageColumnContainer,\n                {\n                  width: isStartOrEndOfRow(index) ? 0 : selectedImageIndex === index ? 330 : index === imageSource.length - 1 ? 160 : 105,\n                  height:\n                  Dimensions.get('window').width < 1000 && selectedImageIndex == index\n                      ? containerHeight\n                      : selectedImageIndex === index\n                        ? 440\n                        : index === imageSource.length - 1 ? 160 : 105,\n                        margin: 0,\n                  marginTop: selectedImageIndex === index ? 20 : 0,\n                  overflow: \"visible\"\n                },\n              ]}\n            >\n              <View style={[styles.columnContainer]}>\n                <Pressable\n                  onPress={() => {\n                    setPlaySound(\"click\");\n                    if (selectedImageIndex === index) {\n                      setSelectedImageIndex(null);\n                      return;\n                    }\n                    setSelectedImageIndex(index);\n                  }}\n                  style={[\n                    styles.imageCard,\n                    {\n                      alignItems: \"flex-start\",\n                      justifyContent: \"flex-start\",\n                      width: isStartOrEndOfRow(index) ? 0 : selectedImageIndex === index ? 320 : 100,\n                      height: isStartOrEndOfRow(index) ? 0 : selectedImageIndex === index ? 400 : 100,\n                      borderRadius: selectedImageIndex === index ? 30 : 0,\n                    },\n                  ]}\n                >\n                  <Image\n                    source={\n                      typeof source === \"number\" ? source : { uri: source }\n                    }\n                    style={[\n                      {\n                        width: isStartOrEndOfRow(index) ? 0 : selectedImageIndex === index ? 320 : 100,\n                        height: isStartOrEndOfRow(index) ? 0 : selectedImageIndex === index ? 400 : 100,\n                        borderRadius: selectedImageIndex === index ? 30 : 0,\n                      },\n                    ]}\n                  />\n                </Pressable>\n              </View>\n              { // Code to delete pics in gallery\n              /**index !== imageSource.length - 1 && (selectedImageIndex === null || index !== selectedImageIndex + 1) && \n              (selectedImageIndex === null || (index - 2) % columnCount !== 0) && (\n                <Pressable\n                  onPress={() => {\n                    deleteFromImageArray(index);\n                  }}\n                  style={{\n                    position: \"absolute\",\n                    top: 0,\n                    right: 0,\n                  }}\n                >\n                  {({ pressed }) => (\n                    <Image\n                      source={pressed ? coloredDelete : deleteButton}\n                      style={[styles.changeButton]}\n                    />\n                  )}\n                </Pressable>\n              )*/}\n              {Dimensions.get('window').width < 1000 &&\n                selectedImageIndex === index &&\n                index !== imageSource.length - 1 && (\n                  <Text\n                    style={[styles.promptText, { flexShrink: 1 }]}\n                    numberOfLines={1000}\n                    onLayout={(event) => {\n                      const { height } = event.nativeEvent.layout;\n                      setTextHeight(height);\n                    }}\n                  >\n                    {promptList[index]}\n                  </Text>\n                )}\n              {index === imageSource.length - 1 && !selectedImageIndex &&\n               (selectedImageIndex === null || index !== selectedImageIndex + 2) && \n               (selectedImageIndex === null || imageSource.length !== 2) && (\n                <Pressable\n                  style={[styles.selectButton]}\n                  onPress={() => {\n                    setPlaySound(\"click\");\n                    selectImage(index);\n                  }}\n                >\n                  <Text style={[styles.promptText, {fontFamily:\"Sigmar\"}]}>Select</Text>\n                </Pressable>\n              )}\n            </View>\n          )}\n        />\n      </View>\n    </>\n  );\n};\n\nconst colors = {\n  backgroundColor: \"#25292e\",\n  selectButtonBackground: \"#3a3c3f\",\n  white: \"#FFFFFF\",\n};\n\nconst styles = StyleSheet.create({\n  flatListContainer: {\n    width: \"auto\",\n    height: \"auto\",\n  },\n  switchesRowContainer: {\n    backgroundColor: colors.backgroundColor,\n    alignItems: \"center\",\n    justifyContent: \"center\",\n    width: 300,\n    height: 50,\n    marginBottom: 20,\n    flexDirection: \"row\",\n    overflow: \"auto\",\n  },\n  imageColumnContainer: {\n    alignItems: \"center\",\n    flexDirection: \"column\",\n    overflow: \"auto\",\n  },\n  columnContainer: {\n    flex: 1,\n    alignItems: \"center\",\n    flexDirection: \"column\",\n  },\n  selectButton: {\n    marginTop: 10,\n    borderRadius: 4,\n    paddingHorizontal: 32,\n    elevation: 3,\n    fontFamily: \"Sigmar\",\n    backgroundColor: colors.selectButtonBackground,\n  },\n  promptText: {\n    color: colors.white,\n    fontSize: 18,\n    textAlign: \"center\",\n    letterSpacing: 2,\n    lineHeight: 30,\n    fontFamily: \"System\",\n  },\n  sliderText: {\n    fontSize: 18,\n    fontWeight: \"bold\",\n    textAlign: \"center\",\n    letterSpacing: 2,\n    lineHeight: 30,\n    fontFamily: \"Sigmar\",\n  },\n  imageCard: {\n    backgroundColor: colors.buttonBackground,\n    elevation: 3,\n    shadowColor: \"#000\",\n    shadowOffset: { width: 0, height: 2 },\n    shadowOpacity: 0.25,\n    shadowRadius: 3.84,\n  },\n  changeButton: {\n    width: 20,\n    height: 20,\n    justifyContent: \"center\",\n    alignItems: \"center\",\n  },\n});\n\nexport default MyImagePicker;\n","// Buttons.js\nimport React, { useState } from \"react\";\nimport {\n  StyleSheet,\n  View,\n  Text,\n  Pressable,\n  ActivityIndicator,\n  Switch,\n  Image,\n} from \"react-native\";\n\nconst coloredJoin = require(\"../assets/join_colored.png\");\nconst joinButton = require(\"../assets/join.png\");\n\nconst Buttons = ({\n  setPlaySound,\n  switchToFlan,\n  setInferrenceButton,\n  activity,\n  longPrompt,\n  setTextInference,\n  switchPromptFunction,\n  promptLengthValue\n}) => {\n  \n  const [comboButtonPressed, setComboButtonPressed] = useState(false);\n\n  const setThePromptValue = () => {\n    setComboButtonPressed(false);\n    switchPromptFunction();\n  }\n\n  return (\n    <>\n      {activity ? (\n        <ActivityIndicator\n          size=\"large\"\n          color=\"#B58392\"\n          style={{ margin: 25 }}\n        />\n      ) : (\n        <>\n          {longPrompt ? (\n            <>\n              <View style={[styles.rowContainer]}>\n                <Pressable\n                  onPress={() => {\n                    setTextInference(true);\n                    setPlaySound(\"click\");\n                  }}\n                  style={({ pressed }) => [\n                    {\n                      backgroundColor: pressed ? \"#958DA5\" : \"#9DA58D\",\n                      width: 40,\n                      height: 40,\n                      borderRadius: 20,\n                      margin: 10,\n                    },\n                  ]}\n                ></Pressable>\n                <View style={styles.columnContainer}>\n                  <View style={[styles.rowContainer]}>\n                    <Text\n                      style={[\n                        {\n                          color: comboButtonPressed ? '#FFFFFF' : promptLengthValue ? \"#FFFFFF\" : \"#9FA8DA\",\n                          marginRight: 15,\n                        },\n                        styles.sliderText,\n                      ]}\n                    >\n                      Short\n                    </Text>\n                    <Text\n                      style={[\n                        {\n                          color: comboButtonPressed ? '#FFFFFF' : promptLengthValue ? \"#9FA8DA\" : \"#FFFFFF\",\n                          marginRight: 15,\n                        },\n                        styles.sliderText,\n                      ]}\n                    >\n                      Long\n                    </Text>\n                  </View>\n                  <View style={[styles.rowContainer, { paddingBottom: 10, justifyContent: \"space-between\" }]}>\n                  <Switch\n                    style={{ marginRight: 40 }} \n                    trackColor={{ false: \"#958DA5\", true: \"#767577\" }}\n                    thumbColor=\"#B58392\"\n                    activeThumbColor=\"#6750A4\"\n                    ios_backgroundColor=\"#3e3e3e\"\n                    onValueChange={setThePromptValue}\n                    value={promptLengthValue}\n                  />\n                  <Pressable\n                    onPress={() => {\n                      switchToFlan();\n                      setComboButtonPressed(true);\n                      setPlaySound(\"click\");\n                    }}\n                  >\n                    <Image\n                    source={comboButtonPressed ?  coloredJoin : joinButton}\n                    style={[{marginRight: 30}, styles.changeButton]}\n                  />\n                    </Pressable>\n                  </View>\n                </View>\n              </View>\n            </>\n          ) : (\n            <Pressable\n              onPress={() => {\n                setTextInference(true);\n                setPlaySound(\"click\");\n              }}\n              style={({ pressed }) => [\n                { backgroundColor: pressed ? \"#958DA5\" : \"#9DA58D\" },\n                styles.button,\n              ]}\n            >\n              {({ pressed }) => (\n                <Text style={styles.promptText}>\n                  {pressed ? \"PROMPTED!\" : \"Prompt\"}\n                </Text>\n              )}\n            </Pressable>\n          )}\n          <Pressable\n            onPress={() => {\n              setInferrenceButton(true);\n              setPlaySound(\"click\");\n            }}\n            style={({ pressed }) => [\n              {\n                backgroundColor: pressed ? \"#9DA58D\" : \"#958DA5\",\n                marginBottom: 20,\n              },\n              styles.button,\n            ]}\n          >\n            {({ pressed }) => (\n              <Text style={styles.promptText}>\n                {pressed ? \"INFERRED!\" : \"Inference\"}\n              </Text>\n            )}\n          </Pressable>\n        </>\n      )}\n    </>\n  );\n};\n\nconst colors = {\n  backgroundColor: \"#25292e\",\n  color: \"#FFFFFF\",\n};\n\nconst styles = StyleSheet.create({\n  rowContainer: {\n    backgroundColor: colors.backgroundColor,\n    display: \"flex\",\n    flexDirection: \"row\",\n    marginTop: 10,\n    overflow: \"visible\",\n    \n  },\n  columnContainer: {\n    flex: 1,\n    alignItems: \"center\",\n    flexDirection: \"column\",\n  },\n  button: {\n    margin: 10,\n    borderRadius: 4,\n    paddingHorizontal: 32,\n    elevation: 3,\n    fontFamily: \"Sigmar\",\n  },\n  activityIndicator: {\n    marginLeft: 50,\n  },\n  promptText: {\n    color: colors.color,\n    fontSize: 18,\n    fontWeight: \"bold\",\n    textAlign: \"center\",\n    letterSpacing: 2,\n    lineHeight: 30,\n    fontFamily: \"Sigmar\",\n  },\n  sliderText: {\n    fontSize: 18,\n    fontWeight: \"bold\",\n    textAlign: \"center\",\n    letterSpacing: 2,\n    lineHeight: 30,\n    fontFamily: \"Sigmar\",\n  },\n  changeButton: {\n    width: 20,\n    height: 20,\n    justifyContent: \"center\",\n    alignItems: \"center\", // change as needed\n    elevation: 3, // for Android shadow\n    shadowColor: \"#000\", // for iOS shadow\n    shadowOffset: { width: 0, height: 2 }, // for iOS shadow\n    shadowOpacity: 0.25, // for iOS shadow\n    shadowRadius: 3.84, // for iOS shadow\n  },\n});\n\nexport default Buttons;\n","import React from \"react\";\nimport { StyleSheet, Pressable, Image, Text, View } from \"react-native\";\nimport { Dimensions } from \"react-native\";\n\nconst Expand = ({ setPlaySound, isImagePickerVisible, setImagePickerVisible, setIsGuidanceVisible, isGuidanceVisible, isGuidance }) => {\n\n  const rightImage = require(\"../assets/right.png\");\n  const downImage = require(\"../assets/down.png\");\n  \n  return (\n    <View style={[styles.galleryContainer]}>\n    <Pressable\n      style={[\n        styles.expandButton,\n      ]}\n      onPress={() => {setPlaySound(\"expand\"); {isGuidance ? setIsGuidanceVisible(!isGuidanceVisible): \n        setImagePickerVisible(!isImagePickerVisible)\n        }}}\n    >\n      {isGuidance ? isGuidanceVisible ? (<Image\n          source={downImage}\n          style={styles.expandImage}\n        />\n      ) : (\n        <Image\n          source={rightImage}\n          style={styles.expandImage}\n        />\n      ): isImagePickerVisible ? (\n        <Image\n          source={downImage}\n          style={styles.expandImage}\n        />\n      ) : (\n        <Image\n          source={rightImage}\n          style={styles.expandImage}\n        />\n      )}\n      \n    </Pressable>\n    <Text style={{fontSize: 24, color: '#ffffff', fontFamily: 'Sigmar', letterSpacing: 5}}>{isGuidance ? \"Guidance\": \"Gallery\"}</Text>\n    </View>\n  );\n};\n\nconst colors = {\n  buttonBackground: \"#3a3c3f\",\n};\n\nconst styles = StyleSheet.create({\n  expandButton: {\n    width: 30, // adjust size as needed\n    height: 30, // adjust size as needed\n    borderRadius: 15, // half of size to make it circular\n    justifyContent: \"center\",\n    alignItems: \"center\",\n    backgroundColor: colors.buttonBackground, // change as needed\n    elevation: 3, // for Android shadow\n    shadowColor: \"#000\", // for iOS shadow\n    shadowOffset: { width: 0, height: 2 }, // for iOS shadow\n    shadowOpacity: 0.25, // for iOS shadow\n    shadowRadius: 3.84, // for iOS shadow\n    marginRight: 30,\n    margin:5\n  },\n  expandImage: {\n    width: 20,\n    height: 20,\n    justifyContent: \"center\",\n    alignItems: \"center\",\n  },\n  galleryContainer: {\n    flex:1,\n    flexDirection:'row',\n    alignSelf: \"flex-start\",\n    marginLeft: Dimensions.get('window').width < 1000 ? \"20%\" : \"20%\",\n    marginBottom: 10,\n    \n  }\n});\n\nexport default Expand;\n","import { useEffect } from \"react\";\nimport seeds from \"../assets/seeds.json\";\n\nconst PromptInference = ({\n  setFlanPrompt,\n  prompt,\n  textInference,\n  setTextInference,\n  setLongPrompt,\n  setShortPrompt,\n  setInferredPrompt,\n  promptLengthValue,\n  setActivity,\n  setModelError,\n}) => {\n  useEffect(() => {\n    if (textInference) {\n      setActivity(true);\n      setModelError(false);\n      let alteredPrompt = \"\";\n      if (prompt === \"Avocado Armchair\" || prompt === \"\") {\n        const randomIndex = Math.floor(Math.random() * seeds.seeds.length);\n        alteredPrompt = seeds.seeds[randomIndex];\n      } else {\n        alteredPrompt = prompt;\n      }\n      fetch(\"/inferencePrompt\", {                        // Change this to your API endpoint and use a library\n        method: \"POST\",                                   // Axios if not running in the same container\n        headers: {                                        // http://localhost:8000/inferencePrompt if running locally or w/e port your server is using or                                                        \n          \"Content-Type\": \"application/json\",             // inferencePrompt if running in a container\n        },\n        body: JSON.stringify({\n          itemString: alteredPrompt\n        }),\n      }).then((response) => {\n        response.json().then((responseData) => {\n          const generatedText = responseData[\"plain\"];\n          const longPrompt = generatedText.split(\"Stable Diffusion Prompt:\")[1];\n          setFlanPrompt(responseData[\"magic\"]);\n          setLongPrompt(longPrompt);\n          setShortPrompt(alteredPrompt);\n          if (!promptLengthValue) {\n            setInferredPrompt(alteredPrompt);\n          } else {\n            setInferredPrompt(longPrompt);\n          }\n          setActivity(false);\n        }).catch((error) => console.error(\"Error:\", error));\n      }).catch((error) => console.error(\"Fetch Error:\", error));\n      setTextInference(false);\n    }\n  }, [textInference]);\n};\n\nexport default PromptInference;\n","import { useEffect } from \"react\";\n\nfunction getScaledIP(styleSwitch, settingSwitch) {\n  let scaledIP = 'Load original IP-Adapter';\n  if (styleSwitch) {\n    scaledIP = \"Load only style blocks\";\n  }\n  if (settingSwitch) {\n    scaledIP = \"Load only layout blocks\";\n  }\n  if (styleSwitch && settingSwitch) {\n    scaledIP = \"Load style+layout block\";\n  }\n  return scaledIP;\n}\n\nconst Inference = ({\n      setImageSource,\n      setPromptList,\n      selectedImageIndex,\n      setInferrenceButton,\n      inferrenceButton,\n      setModelMessage,\n      imageSource,\n      modelID,\n      prompt,\n      styleSwitch,\n      settingSwitch,\n      control,\n      guidance,\n      steps,\n      setActivity,\n      setModelError,\n      setReturnedPrompt,\n      setInitialReturnedPrompt,\n      setInferredImage,\n}) => {\n \n  useEffect(() => {\n    const requestOptions = {\n        method: 'GET'\n    };\n    fetch(\"/core\", requestOptions)\n        .then((response) => {\n            const reader = response.body.getReader();\n            const decoder = new TextDecoder('utf-8');\n            let buffer = '';\n            return reader.read().then(function processText({ done, value }) {\n                if (done) {\n                    console.log(\"Stream complete\");\n                    return;\n                }\n\n              function processJsonObject(jsonObject) {\n                  setPromptList(prevPromptList => [jsonObject.prompt, ...prevPromptList]);\n                  setImageSource(prevImageSource => [jsonObject.base64, ...prevImageSource]);                \n              }\n              buffer += decoder.decode(value, {stream: true});\n              buffer = buffer.replace('[', '').replaceAll(',{', '{');\n              try {\n                  while (buffer.indexOf('}') !== -1) {\n                    let processText = '';\n                    const endIndex = buffer.indexOf('}');\n                    if (endIndex !== -1) {\n                        processText = buffer.slice(0, endIndex + 1);\n                        const jsonObject = JSON.parse(processText);\n                        processJsonObject(jsonObject);\n                        buffer = buffer.slice(endIndex + 1);\n                    }\n                }\n              } catch (error) {\n               console.log(\"Error parsing JSON: \" + error);\n              }\n                return reader.read().then(processText);\n            });\n        })\n        .catch((error) => {\n            console.error('There was an error!', error);\n        });\n}, []);\n    \n\n  /**  useEffect hook for txt2img  */\n\n  useEffect(() => {\n    if (inferrenceButton) {\n      setActivity(true);\n      let inferreceModel = modelID.value;\n      const ipScaleHolder = getScaledIP(styleSwitch, settingSwitch);\n      const controlImage = imageSource[selectedImageIndex];\n        fetch(\"/api\", {                             // Change this to your API endpoint and use a library                                         \n          method: \"POST\",                           // Axios if not running in the same container\n          headers: {                                // http://localhost:8000/api if running locally or w/e port your server is using or\n             \"Content-Type\": \"application/json\",    // /api if running in a container\n          },\n          body: JSON.stringify({\n            prompt: prompt,\n            steps: steps,\n            guidance: guidance,\n            modelID: inferreceModel,\n            modelLabel: modelID.label,\n            image: controlImage,                  \n            target: ipScaleHolder,   \n            control: control        \n          }),\n        })\n          .then((response) => response.json())\n          .then((responseData) => {\n            if (/Model Waking/.test(responseData.output)) {\n              setModelMessage(\"Model Waking\");\n              setModelError(true);\n            }else if(/You have exceeded your GPU quota/.test(responseData.output)){\n              const gpu = responseData.output.split(\": \")[2];\n              const gpuName = gpu.slice(-9);\n              setModelMessage(`GPU Quota Exceeded! Try Random Models without enlarged images for ${gpuName.slice(0,-1)}`);\n              setModelError(true);\n            }else if(/An error occurred/.test(responseData.output)){\n              setModelMessage(`Model Error!`);\n              setModelError(true);\n            }else {\n              setInitialReturnedPrompt(\"Model:\\n\" + responseData.model + \"\\n\\nPrompt:\\n\" + prompt);\n              setModelError(false);\n            }\n            if(responseData.NSFW){\n              setModelMessage(`NSFW...Image will not be Saved`);\n              setModelError(true);\n            }\n            setInferrenceButton(false);\n            setActivity(false);\n            setReturnedPrompt(\"Model:\\n\" + responseData.model + \"\\n\\nPrompt:\\n\" + prompt);\n            setInferredImage(\"data:image/png;base64,\" + responseData.output);\n          })\n          .catch(function (error) {\n            setModelMessage(\"Application Error!\");\n            setActivity(false);\n            setModelError(true);\n            setInferrenceButton(false);\n            console.log(error);\n          });\n      }\n \n  }, [inferrenceButton]);\n};\n\nexport default Inference;\n","import { useEffect, useRef } from 'react';\nimport { Audio } from 'expo-av';\n\nconst click = require('../assets/click.wav');\nconst swoosh = require('../assets/swoosh.mp3');\nconst switchSound = require('../assets/switch.wav');\nconst expand = require('../assets/expand.wav');\n\nconst SoundPlayer = ({ makeSound}) => {\n  const soundRef = useRef(null);\n\n  useEffect(() => {\n    Audio.setAudioModeAsync({\n      playsInSilentModeIOS: true,\n      staysActiveInBackground: true,\n      shouldDuckAndroid: true\n    });\n    return () => {\n      // Unload the sound when the component unmounts\n      if (soundRef.current) {\n        soundRef.current?.unloadAsync();\n      }\n    };\n  }, []);\n\n  useEffect(() => {\n    const playSound = async () => {\n      const { sound } = await Audio.Sound.createAsync(\n        // Dynamically select the sound file based on makeSound\n        { uri: makeSound[0] === 'click' ? click : makeSound[0] === 'swoosh' ? swoosh : makeSound[0] === 'switch' ? switchSound : expand },\n        { shouldPlay: true }\n      );\n      soundRef.current = sound;\n      await sound.playAsync();\n    };\n\n    if (makeSound[0]) {\n      playSound();\n    }\n  }, [makeSound]);\n\n  return null;\n};\n\nexport default SoundPlayer;","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n  StyleSheet,\r\n  View,\r\n  ScrollView,\r\n  Text,\r\n  Pressable,\r\n  Image,\r\n  Dimensions\r\n} from \"react-native\";\r\nimport { StatusBar } from \"expo-status-bar\";\r\nimport { useFonts } from \"expo-font\";\r\n\r\nimport SliderComponent from \"./components/Slider\";\r\nimport PromptInputComponent from \"./components/PromptInput\";\r\nimport BreathingComponent from \"./components/Breathing\";\r\nimport DropDownComponent from \"./components/DropDown\";\r\nimport MyImagePicker from \"./components/ImagePicker\";\r\nimport Buttons from \"./components/Buttons\";\r\nimport Expand from \"./components/Expand\";\r\nimport PromptInference from \"./components/Prompt\";\r\nimport Inference from \"./components/Inference\";\r\nimport SoundPlayer from \"./components/Sounds\";\r\n\r\nconst assetImage = require(\"./assets/avocado.jpg\");\r\nconst circleImage = require(\"./assets/circle.png\");\r\nconst addImage = require(\"./assets/add_image.png\");\r\nconst rotatedCircle = require(\"./assets/rotated_circle.png\");\r\n\r\nexport default function App() {\r\n  useFonts({ Sigmar: require(\"./assets/Sigmar/Sigmar-Regular.ttf\") });\r\n  const [inferredImage, setInferredImage] = useState(assetImage);\r\n  const [steps, setSteps] = useState(28);\r\n  const [guidance, setGuidance] = useState(5);\r\n  const [control, setControl] = useState(1.0);\r\n  const [modelID, setModelID] = useState({\r\n    label: \"Random\",\r\n    value: \"Random\",\r\n  });\r\n  const [prompt, setPrompt] = useState(\"Avocado Armchair\");\r\n  const [inferredPrompt, setInferredPrompt] = useState(null);\r\n  const [activity, setActivity] = useState(false);\r\n  const [modelError, setModelError] = useState(false);\r\n  const [returnedPrompt, setReturnedPrompt] = useState(\"Avacado Armchair\")\r\n  const [initialReturnedPrompt, setInitialReturnedPrompt] = useState('Avacado Armchair')\r\n  const [textInference, setTextInference] = useState(false);\r\n  const [shortPrompt, setShortPrompt] = useState(\"\");\r\n  const [longPrompt, setLongPrompt] = useState(null);\r\n  const [promptLengthValue, setPromptLengthValue] = useState(false);\r\n  const [modelMessage, setModelMessage] = useState(\"\");\r\n  const [inferrenceButton, setInferrenceButton] = useState(null);\r\n  const [flanPrompt, setFlanPrompt] = useState(null);\r\n  const [isImagePickerVisible, setImagePickerVisible] = useState(false);\r\n  const [imageSource, setImageSource] = useState([addImage]);\r\n  const [settingSwitch, setSettingSwitch] = useState(false);\r\n  const [styleSwitch, setStyleSwitch] = useState(false);\r\n  const [soundIncrement, setSoundIncrement] = useState(null);\r\n  const [makeSound, setMakeSound] = useState([null,0]);\r\n  const [promptList, setPromptList] = useState([]);\r\n  const [swapImage, setSwapImage] = useState(false);\r\n  const [selectedImageIndex, setSelectedImageIndex] = useState(null);\r\n  const [columnCount, setColumnCount] = useState(3);\r\n  const [isGuidanceVisible, setIsGuidanceVisible] = useState(false);\r\n  const isWindowBiggerThanContainer = Dimensions.get('window').width > 600 ? 500 : \"100%\"\r\n  const passModelIDWrapper = (x) => {\r\n    setModelError(false);\r\n    setModelID(x);\r\n  };\r\n\r\n  const setPlaySound = (sound) => {\r\n    setSoundIncrement(prevSoundIncrement => prevSoundIncrement + 1);\r\n    setMakeSound([sound, soundIncrement]);\r\n  };\r\n\r\n  useEffect(() => {\r\n    if(swapImage){\r\n    if(inferredImage !== addImage){\r\n    console.log(\"swapImage\", inferredImage);\r\n    setPromptList(prevPromptList => [initialReturnedPrompt,...prevPromptList]);\r\n    setImageSource(prevImageSource => [inferredImage, ...prevImageSource ]);  \r\n    setInferredImage(addImage);\r\n    setInitialReturnedPrompt(\"\");\r\n    setReturnedPrompt('')\r\n    }\r\n    setSwapImage(false);\r\n  }\r\n  }),[swapImage];\r\n\r\n  const switchPromptFunction = () => {\r\n    setPromptLengthValue(!promptLengthValue);\r\n    if (promptLengthValue) {\r\n      setInferredPrompt(shortPrompt);\r\n      setPlaySound(\"switch\");\r\n    } else {\r\n      setInferredPrompt(longPrompt);\r\n      setPlaySound(\"switch\");\r\n    }\r\n  };\r\n\r\n  const switchToFlan = () => {\r\n    setInferredPrompt(flanPrompt);\r\n  };\r\n\r\n  const updateColumnCount = (width) => {\r\n    if (width < 600) setColumnCount(3);\r\n    else if (width >= 600 && width < 1000) setColumnCount(4);\r\n    else if (width >= 1000 && width < 1400) setColumnCount(5);\r\n    else if (width >= 1400 && width < 1700) setColumnCount(6);\r\n    else setColumnCount(7);\r\n  };\r\n\r\n  useEffect(() => {\r\n    const handleResize = () => {\r\n      updateColumnCount(Dimensions.get('window').width);\r\n    };\r\n    handleResize();\r\n    Dimensions.addEventListener('change', handleResize);\r\n    return () => Dimensions.removeEventListener('change', handleResize);\r\n  }, []);\r\n\r\n  return (\r\n    // Main container\r\n    <View style={styles.titlecontainer}>\r\n      <SoundPlayer makeSound={makeSound}/>\r\n      <PromptInference\r\n        setFlanPrompt={setFlanPrompt}\r\n        prompt={prompt}\r\n        textInference={textInference}\r\n        setTextInference={setTextInference}\r\n        setLongPrompt={setLongPrompt}\r\n        setShortPrompt={setShortPrompt}\r\n        setInferredPrompt={setInferredPrompt}\r\n        promptLengthValue={promptLengthValue}\r\n        setActivity={setActivity}\r\n        setModelError={setModelError}\r\n      />\r\n      <Inference\r\n        setImageSource={setImageSource}\r\n        setPromptList={setPromptList}\r\n        selectedImageIndex={selectedImageIndex}\r\n        setInferrenceButton={setInferrenceButton}\r\n        inferrenceButton={inferrenceButton}\r\n        setModelMessage={setModelMessage}\r\n        imageSource={imageSource}\r\n        modelID={modelID}\r\n        prompt={prompt}\r\n        styleSwitch={styleSwitch}\r\n        settingSwitch={settingSwitch}\r\n        control={control}\r\n        guidance={guidance}\r\n        steps={steps}\r\n        setActivity={setActivity}\r\n        setModelError={setModelError}\r\n        setReturnedPrompt={setReturnedPrompt}\r\n        setInitialReturnedPrompt={setInitialReturnedPrompt}\r\n        setInferredImage={setInferredImage}\r\n      />\r\n      <BreathingComponent />\r\n      <ScrollView\r\n        scrollY={true}\r\n        style={styles.ScrollView}\r\n        showsVerticalScrollIndicator={false}\r\n      >\r\n        {Dimensions.get('window').width > 1000 ? (\r\n          <View style={styles.rowContainer}>\r\n            {/* Left column */}\r\n            {isImagePickerVisible && (\r\n              <Pressable\r\n              onPress={() => {\r\n                setSwapImage(true);\r\n                setPlaySound(\"swoosh\");\r\n              }}\r\n              style={({ pressed }) => [\r\n                styles.swapButton,\r\n                {\r\n                  top: pressed ? Dimensions.get('window').height / 2 - 123 : Dimensions.get('window').height / 2  - 125,\r\n                  left: pressed ? Dimensions.get('window').width / 2 - 13 : Dimensions.get('window').width / 2 - 15,\r\n                  width: pressed ? 52 : 60,\r\n                  height: pressed ? 52 : 60,\r\n                },\r\n              ]}\r\n            >\r\n              {({ pressed }) => (\r\n                <Image\r\n                  source={pressed ? rotatedCircle : circleImage}\r\n                  style={[\r\n                    styles.changeButton,\r\n                    pressed ? { width: 52, height: 52 } : { width: 60, height: 60 },\r\n                  ]}\r\n                />\r\n              )}\r\n            </Pressable>\r\n            )}\r\n\r\n            <View style={styles.leftColumnContainer}>\r\n              <View>\r\n                <PromptInputComponent\r\n                  setPlaySound={setPlaySound}\r\n                  setPrompt={setPrompt}\r\n                  inferredPrompt={inferredPrompt}\r\n                />\r\n              </View>\r\n              \r\n              <View style={[styles.rowContainer, { padding: 0 }]}>\r\n                <DropDownComponent\r\n                  setPlaySound={setPlaySound}\r\n                  passModelID={passModelIDWrapper}\r\n                  \r\n                />\r\n                <View style={styles.columnContainer}>\r\n                  <Buttons\r\n                    setPlaySound={setPlaySound}\r\n                    switchToFlan={switchToFlan}\r\n                    setInferrenceButton={setInferrenceButton}\r\n                    activity={activity}\r\n                    longPrompt={longPrompt}\r\n                    setTextInference={setTextInference}\r\n                    switchPromptFunction={switchPromptFunction}\r\n                    promptLengthValue={promptLengthValue}\r\n                  />\r\n                  {modelError ? (\r\n                    <Text style={styles.promptText}>{modelMessage}</Text>\r\n                  ) : (\r\n                    <></>\r\n                  )}\r\n                </View>\r\n              </View>\r\n\r\n              <Expand\r\n              setPlaySound={setPlaySound}\r\n              isImagePickerVisible={isImagePickerVisible}\r\n              setImagePickerVisible={setImagePickerVisible}\r\n              isGuidanceVisible={isGuidanceVisible}\r\n              setIsGuidanceVisible={setIsGuidanceVisible}\r\n              isGuidance={true}\r\n            />\r\n            {isGuidanceVisible && <Text style={[styles.promptText,{ width: isWindowBiggerThanContainer, margin: 20, fontSize: 14}]}>\r\n              Select a model from the drop down menu or by default receive a Random model. \r\n              The prompt button returns three different prompts; a seed prompt, descriptive prompt and magic prompt.\r\n              If the user creates a prompt and then uses the prompt button, user input will be treated as the seed prompt.\r\n              To generate fresh prompts clear the input window. The sliders dictate the strength of each attribute.</Text>}\r\n                <Expand\r\n                  setPlaySound={setPlaySound}\r\n                  isImagePickerVisible={isImagePickerVisible}\r\n                  setImagePickerVisible={setImagePickerVisible}\r\n                  isGuidanceVisible={isGuidanceVisible}\r\n                  setIsGuidanceVisible={setIsGuidanceVisible}\r\n                  isGuidance={false}\r\n                />\r\n                {isImagePickerVisible && \r\n                <>\r\n                  <Text style={[styles.promptText,{ width: isWindowBiggerThanContainer, margin: 20, fontSize: 14}]}>Click Image to Enlarge. \r\n                  If Image is enlarged it will be used as an input image for the next image generated. Use either or both \r\n                  the Style and Layout attributes to affect how the model interprets the input image.</Text>\r\n                  <MyImagePicker\r\n                    columnCount={columnCount}\r\n                    selectedImageIndex={selectedImageIndex}\r\n                    setSelectedImageIndex={setSelectedImageIndex}\r\n                    initialReturnedPrompt={initialReturnedPrompt}\r\n                    setReturnedPrompt={setReturnedPrompt}\r\n                    promptList={promptList}\r\n                    setPromptList={setPromptList}\r\n                    setPlaySound={setPlaySound}\r\n                    imageSource={imageSource}\r\n                    setImageSource={setImageSource}\r\n                    styleSwitch={styleSwitch}\r\n                    setStyleSwitch={setStyleSwitch}\r\n                    settingSwitch={settingSwitch}\r\n                    setSettingSwitch={setSettingSwitch}\r\n                  />\r\n                  </>\r\n                }\r\n                <SliderComponent\r\n                  setSteps={setSteps}\r\n                  setGuidance={setGuidance}\r\n                  setControl={setControl}\r\n                />\r\n              \r\n            </View>\r\n            \r\n            <View style={styles.rightColumnContainer}>\r\n            <View style={styles.imageCard}>\r\n              {inferredImage && (\r\n                <Image\r\n                  source={\r\n                    typeof inferredImage === \"number\"\r\n                      ? inferredImage\r\n                      : { uri: inferredImage }\r\n                  }\r\n                  style={styles.imageStyle}\r\n                />\r\n              )}\r\n              </View>\r\n              <Text style={styles.promptText}>{returnedPrompt}</Text>\r\n            </View>\r\n          </View>\r\n        ) : (\r\n          <View style={styles.columnContainer}>\r\n            <PromptInputComponent\r\n              setPlaySound={setPlaySound}\r\n              setPrompt={setPrompt}\r\n              inferredPrompt={inferredPrompt}\r\n            />\r\n            <DropDownComponent\r\n              setPlaySound={setPlaySound}\r\n              passModelID={passModelIDWrapper}\r\n             \r\n            />\r\n            <Buttons\r\n              setPlaySound={setPlaySound}\r\n              switchToFlan={switchToFlan}\r\n              setInferrenceButton={setInferrenceButton}\r\n              activity={activity}\r\n              longPrompt={longPrompt}\r\n              setTextInference={setTextInference}\r\n              switchPromptFunction={switchPromptFunction}\r\n              promptLengthValue={promptLengthValue}\r\n            />\r\n            {modelError ? (\r\n              <Text style={styles.promptText}>{modelMessage}</Text>\r\n            ) : (\r\n              <></>\r\n            )}\r\n            <Expand\r\n              setPlaySound={setPlaySound}\r\n              isImagePickerVisible={isImagePickerVisible}\r\n              setImagePickerVisible={setImagePickerVisible}\r\n              isGuidanceVisible={isGuidanceVisible}\r\n              setIsGuidanceVisible={setIsGuidanceVisible}\r\n              isGuidance={true}\r\n            />\r\n            {isGuidanceVisible && <Text style={[styles.promptText,{ width: isWindowBiggerThanContainer, margin: 20, fontSize: 14}]}>\r\n              Select a model from the drop down menu or by default receive a Random model. \r\n              The prompt button returns three different prompts; a seed prompt, descriptive prompt and magic prompt.\r\n              If the user creates a prompt and then uses the prompt button, user input will be treated as the seed prompt.\r\n              To generate fresh prompts clear the input window. The sliders dictate the strength of each attribute.</Text>}\r\n            <Expand\r\n              setPlaySound={setPlaySound}\r\n              isImagePickerVisible={isImagePickerVisible}\r\n              setImagePickerVisible={setImagePickerVisible}\r\n              isGuidanceVisible={isGuidanceVisible}\r\n              setIsGuidanceVisible={setIsGuidanceVisible}\r\n              isGuidance={false}\r\n            />\r\n            \r\n            {isImagePickerVisible && (\r\n              <>\r\n              \r\n                  <Text style={[styles.promptText,{ width: isWindowBiggerThanContainer, margin: 20, fontSize: 14}]}>Click Image to Enlarge. \r\n                  If Image is enlarged it will be used as an input image for the next image generated. Use either or both \r\n                  the Style and Layout attributes to affect how the model interprets the input image.</Text>\r\n                <MyImagePicker\r\n                  columnCount={columnCount}\r\n                  selectedImageIndex={selectedImageIndex}\r\n                  setSelectedImageIndex={setSelectedImageIndex}\r\n                  initialReturnedPrompt={initialReturnedPrompt}\r\n                  setReturnedPrompt={setReturnedPrompt}\r\n                  promptList={promptList}\r\n                  setPromptList={setPromptList}\r\n                  setPlaySound={setPlaySound}\r\n                  imageSource={imageSource}\r\n                  setImageSource={setImageSource}\r\n                  styleSwitch={styleSwitch}\r\n                  setStyleSwitch={setStyleSwitch}\r\n                  settingSwitch={settingSwitch}\r\n                  setSettingSwitch={setSettingSwitch}\r\n                />\r\n                 <Pressable\r\n              onPress={() => {\r\n                setSwapImage(true);\r\n                setPlaySound(\"swoosh\");\r\n              }}\r\n              style={({ pressed }) => [\r\n                styles.swapButtonColumn,\r\n                {\r\n                  \r\n                  width: pressed ? 52 : 60,\r\n                  height: pressed ? 52 : 60,\r\n                },\r\n              ]}\r\n            >\r\n              {({ pressed }) => (\r\n                <Image\r\n                  source={pressed ? rotatedCircle : circleImage}\r\n                  style={[\r\n                    styles.changeButton,\r\n                    pressed ? { width: 52, height: 52 } : { width: 60, height: 60 },\r\n                  ]}\r\n                />\r\n              )}\r\n            </Pressable>\r\n              </>\r\n            )}\r\n            \r\n            <SliderComponent setSteps={setSteps} setGuidance={setGuidance} setControl={setControl}/>\r\n            <View style={styles.imageCard}>\r\n            {inferredImage && (\r\n              <Image\r\n                source={\r\n                  typeof inferredImage === \"number\"\r\n                    ? inferredImage\r\n                    : { uri: inferredImage }\r\n                }\r\n                style={styles.imageStyle}\r\n              />\r\n            )}\r\n            </View>\r\n            <Text style={styles.promptText}>{returnedPrompt}</Text>\r\n          </View>\r\n        )}\r\n      </ScrollView>\r\n      <StatusBar style=\"auto\" />\r\n    </View>\r\n  );\r\n}\r\n\r\nconst colors = {\r\n  backgroundColor: \"#25292e\",\r\n  buttonBackground: \"#3a3c3f\",\r\n  color: \"#FFFFFF\",\r\n  button: \"#958DA5\",\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n  titlecontainer: {\r\n    backgroundColor: colors.backgroundColor,\r\n    position: \"absolute\",\r\n    top: 0,\r\n    left: 0,\r\n    right: 0,\r\n    bottom: 0,\r\n    padding: 20,\r\n  },\r\n  rowContainer: {\r\n    backgroundColor: colors.backgroundColor,\r\n    display: \"flex\",\r\n    flexDirection: \"row\",\r\n    marginTop: 10,\r\n    overflow: \"visible\",\r\n    padding: 20,\r\n  },\r\n  leftColumnContainer: {\r\n    flex: 1,\r\n    alignItems: \"center\", // Center items horizontally\r\n    justifyContent: \"flex-start\",\r\n    flexDirection: \"column\",\r\n    marginRight: 10,\r\n  },\r\n  rightColumnContainer: {\r\n    flex: 1,\r\n    alignItems: \"center\",\r\n    flexDirection: \"column\",\r\n    marginLeft: 10,\r\n  },\r\n  columnContainer: {\r\n    flex: 1,\r\n    alignItems: \"center\",\r\n    flexDirection: \"column\",\r\n  },\r\n  button: {\r\n    margin: 10,\r\n    borderRadius: 4,\r\n    paddingHorizontal: 32,\r\n    elevation: 3,\r\n    fontFamily: \"Sigmar\",\r\n  },\r\n  swapButton: {\r\n    width: 60,\r\n    height: 60,\r\n    borderRadius: 30,\r\n    position: \"absolute\",\r\n    zIndex: 1,\r\n    elevation: 3,\r\n    backgroundColor: colors.buttonBackground,\r\n  },\r\n  changeButton: {\r\n    width: 60,\r\n    height: 60,\r\n    justifyContent: \"center\",\r\n    alignItems: \"center\", // change as needed\r\n    elevation: 3, // for Android shadow\r\n    shadowColor: \"#000\", // for iOS shadow\r\n    shadowOffset: { width: 0, height: 2 }, // for iOS shadow\r\n    shadowOpacity: 0.25, // for iOS shadow\r\n    shadowRadius: 3.84, // for iOS shadow\r\n  },\r\n  swapButtonColumn: {\r\n    width: 60, // adjust size as needed\r\n    height: 60, // adjust size as needed\r\n    borderRadius: 30,\r\n    elevation: 3,\r\n    margin: 20,\r\n    backgroundColor: colors.buttonBackground,\r\n  },\r\n  promptText: {\r\n    color: colors.color,\r\n    fontSize: 18,\r\n    fontWeight: \"bold\",\r\n    textAlign: \"center\",\r\n    letterSpacing: 2,\r\n    lineHeight: 30,\r\n    fontFamily: \"System\",\r\n  },\r\n  ScrollView: {\r\n    backgroundColor: colors.backgroundColor,\r\n    marginTop: 50,\r\n    padding: 5,\r\n    \r\n  },\r\n  imageStyle: {\r\n    width: 320,\r\n    height: 440,\r\n    borderRadius: 18,\r\n   \r\n    alignSelf: \"center\",  \r\n  },\r\n  imageCard:{\r\n    width: 320,\r\n    height: 440,\r\n    borderRadius: 18,\r\n    marginTop: 20,\r\n    marginBottom: 20,\r\n    alignSelf: \"center\", \r\n    backgroundColor: colors.backgroundColor, \r\n    elevation: 3, \r\n    shadowColor: \"#000\",\r\n    shadowOffset: { width: 0, height: 2 }, \r\n    shadowOpacity: 0.25, \r\n    shadowRadius: 3.84, \r\n  }\r\n});\r\n","import { createRoot } from 'react-dom/client';\nimport MainApp from './MainApp';\n\n// Assuming your root element is 'root'\nconst rootElement = document.getElementById('root');\n\n// Your App component\nconst App = () => (\n  <div>\n    <MainApp/>\n  </div>\n);\n\n// Create a root\nconst root = createRoot(rootElement);\n\n// Render your App\nroot.render(<App />);","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkweb\"] = self[\"webpackChunkweb\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [571], () => (__webpack_require__(9618)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["SliderComponent","_ref","setSteps","setGuidance","setControl","_React$useState","React","_React$useState2","_slicedToArray","samplingValue","setSamplingValue","_React$useState3","_React$useState4","guidanceValue","setGuidanceValue","_React$useState5","_React$useState6","controlValue","setControlValue","_jsxs","View","style","styles","container","children","_jsx","Text","captionText","Slider","slider","minimumValue","maximumValue","step","value","minimumTrackTintColor","maximumTrackTintColor","thumbTintColor","onValueChange","x","sliderValue","parseFloat","toFixed","colors","StyleSheet","create","alignItems","paddingTop","width","height","color","fontSize","textAlign","letterSpacing","fontFamily","paddingBottom","PromptInputComponent","setPlaySound","setPrompt","inferredPrompt","text","setText","textInputStyle","_objectSpread","input","Dimensions","get","useEffect","flexDirection","TextInput","placeholder","multiline","onChangeText","maxLength","Pressable","_ref2","backgroundColor","pressed","borderRadius","padding","marginTop","justifyContent","zIndex","onPress","Image","source","require","resizeMode","borderColor","borderBottomLeftRadius","borderWidth","borderBottomRightRadius","borderStartWidth","borderEndWidth","paddingLeft","paddingRight","marginRight","Breathing","animatedValues","useRef","Array","map","Animated","Value","current","useWindowDimensions","animatedValue","index","animation1","timing","toValue","duration","useNativeDriver","animation2","fast","medium","slow","animationSequence","delay","sequence","animationSequences","loop","forEach","animation","start","animatedStyles","interpolate","inputRange","outputRange","extrapolate","interpolateAnimation","shouldApplyMargin","console","log","containerbreathing","marginLeft","heading","char","flex","marginHorizontal","fontWeight","position","DropDownComponent","passModelID","_useState","useState","_useState2","placeholderModelID","setPlaceholderModelID","Dropdown","dropdown","selectedTextStyle","placeholderStyle","data","label","labelField","valueField","onChange","item","margin","borderBottomColor","borderBottomWidth","addImage","selectButtonBackground","white","flatListContainer","switchesRowContainer","marginBottom","overflow","imageColumnContainer","columnContainer","selectButton","paddingHorizontal","elevation","promptText","lineHeight","sliderText","imageCard","buttonBackground","shadowColor","shadowOffset","shadowOpacity","shadowRadius","changeButton","MyImagePicker","columnCount","selectedImageIndex","setSelectedImageIndex","initialReturnedPrompt","setReturnedPrompt","promptList","setPromptList","imageSource","setImageSource","styleSwitch","setStyleSwitch","settingSwitch","setSettingSwitch","textHeight","setTextHeight","containerHeight","setContainerHeight","isStartOrEndOfRow","isLastInRow","length","isFirstInRow","_Fragment","Switch","trackColor","false","true","thumbColor","activeThumbColor","ios_backgroundColor","styleSwitchFunction","settingSwitchFunction","FlatList","numColumns","keyExtractor","toString","renderItem","uri","flexShrink","numberOfLines","onLayout","event","nativeEvent","layout","async","status","ImagePicker","requestMediaLibraryPermissionsAsync","alert","result","launchImageLibraryAsync","mediaTypes","Images","allowsEditing","aspect","quality","cancelled","prevImageSource","newImageSource","assets","prevPromptSource","prevPrompt","selectImage","coloredJoin","joinButton","rowContainer","display","button","activityIndicator","switchToFlan","setInferrenceButton","activity","longPrompt","setTextInference","switchPromptFunction","promptLengthValue","comboButtonPressed","setComboButtonPressed","ActivityIndicator","size","_ref3","_ref4","_ref5","_ref6","expandButton","expandImage","galleryContainer","alignSelf","isImagePickerVisible","setImagePickerVisible","setIsGuidanceVisible","isGuidanceVisible","isGuidance","rightImage","downImage","PromptInference","setFlanPrompt","prompt","textInference","setLongPrompt","setShortPrompt","setInferredPrompt","setActivity","setModelError","alteredPrompt","randomIndex","Math","floor","random","seeds","fetch","method","headers","body","JSON","stringify","itemString","then","response","json","responseData","split","catch","error","Inference","inferrenceButton","setModelMessage","modelID","control","guidance","steps","setInitialReturnedPrompt","setInferredImage","reader","getReader","decoder","TextDecoder","buffer","read","processText","done","decode","stream","replace","replaceAll","indexOf","endIndex","slice","processJsonObject","parse","jsonObject","prevPromptList","base64","inferreceModel","ipScaleHolder","scaledIP","getScaledIP","controlImage","modelLabel","image","target","test","output","gpuName","model","NSFW","click","swoosh","switchSound","expand","SoundPlayer","makeSound","soundRef","Audio","setAudioModeAsync","playsInSilentModeIOS","staysActiveInBackground","shouldDuckAndroid","unloadAsync","sound","createAsync","shouldPlay","playAsync","playSound","assetImage","circleImage","rotatedCircle","App","useFonts","Sigmar","inferredImage","setModelID","modelError","returnedPrompt","shortPrompt","setPromptLengthValue","modelMessage","flanPrompt","soundIncrement","setSoundIncrement","setMakeSound","swapImage","setSwapImage","setColumnCount","isWindowBiggerThanContainer","passModelIDWrapper","prevSoundIncrement","handleResize","addEventListener","removeEventListener","titlecontainer","BreathingComponent","ScrollView","scrollY","showsVerticalScrollIndicator","swapButton","top","left","leftColumnContainer","Buttons","Expand","rightColumnContainer","imageStyle","swapButtonColumn","StatusBar","right","bottom","rootElement","document","getElementById","createRoot","render","MainApp","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","leafPrototypes","getProto","getPrototypeOf","obj","t","mode","this","ns","def","getOwnPropertyNames","definition","o","defineProperty","enumerable","g","globalThis","Function","e","window","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","p","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","push","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file