100Years 1 mēnesi atpakaļ
vecāks
revīzija
dd8e5312e6
30 mainītis faili ar 105 papildinājumiem un 298 dzēšanām
  1. 2 2
      AIEmoji.xcodeproj/project.pbxproj
  2. 22 0
      AIEmoji/Assets.xcassets/Common/close_clear.imageset/Contents.json
  3. BIN
      AIEmoji/Assets.xcassets/Common/close_clear.imageset/close_clear@2x.png
  4. BIN
      AIEmoji/Assets.xcassets/Common/close_clear.imageset/close_clear@3x.png
  5. BIN
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_7.imageset/ptp_style_7@2x.png
  6. BIN
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_7.imageset/ptp_style_7@3x.png
  7. BIN
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_8.imageset/ptp_style_8@2x.png
  8. BIN
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_8.imageset/ptp_style_8@3x.png
  9. BIN
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_chibi.imageset/ptp_style_chibi@2x.png
  10. BIN
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_chibi.imageset/ptp_style_chibi@3x.png
  11. BIN
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_none.imageset/ptp_style_none@2x.png
  12. BIN
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_none.imageset/ptp_style_none@3x.png
  13. 3 1
      AIEmoji/Business/Data/TSUserDefaultData.swift
  14. 5 1
      AIEmoji/Business/TSGenmojiVC/TSGenmojiVC/View/TSGenmojiItemCell.swift
  15. 17 4
      AIEmoji/Business/TSPTPGeneratorVC/TSGennertatorSelectStyleVC/TSGennertatorSelectStyleVC.swift
  16. 10 0
      AIEmoji/Business/TSPTPGeneratorVC/TSPTPGeneratorVC/TSPTPGeneratorVC.swift
  17. 17 13
      AIEmoji/Business/TSPTPGeneratorVC/TSPTPInputVC/View/TSImageGenerateView.swift
  18. 2 1
      AIEmoji/Business/VIewTool/TSViewTool.swift
  19. 1 1
      AIEmoji/Common/Tool/OperationQueue/TSGenerateBaseOperation/TSGenerateBaseOperation.swift
  20. 3 1
      AIEmoji/Common/Tool/OperationQueue/TSGenerateBaseOperation/TSGeneratePosterOperation.swift
  21. 14 13
      AIEmoji/Res/photo_to_photo_style.json
  22. 1 30
      AIEmoji/de.lproj/Localizable.strings
  23. 1 31
      AIEmoji/en.lproj/Localizable.strings
  24. 1 28
      AIEmoji/es.lproj/Localizable.strings
  25. 1 29
      AIEmoji/ja.lproj/Localizable.strings
  26. 1 28
      AIEmoji/ko.lproj/Localizable.strings
  27. 1 29
      AIEmoji/pt-BR.lproj/Localizable.strings
  28. 1 28
      AIEmoji/pt-PT.lproj/Localizable.strings
  29. 1 28
      AIEmoji/zh-Hans.lproj/Localizable.strings
  30. 1 30
      AIEmoji/zh-Hant.lproj/Localizable.strings

+ 2 - 2
AIEmoji.xcodeproj/project.pbxproj

@@ -2416,7 +2416,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 4;
+				CURRENT_PROJECT_VERSION = 5;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;
@@ -2455,7 +2455,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 4;
+				CURRENT_PROJECT_VERSION = 5;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;

+ 22 - 0
AIEmoji/Assets.xcassets/Common/close_clear.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "close_clear@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "close_clear@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
AIEmoji/Assets.xcassets/Common/close_clear.imageset/close_clear@2x.png


BIN
AIEmoji/Assets.xcassets/Common/close_clear.imageset/close_clear@3x.png


BIN
AIEmoji/Assets.xcassets/PTP/style/ptp_style_7.imageset/ptp_style_7@2x.png


BIN
AIEmoji/Assets.xcassets/PTP/style/ptp_style_7.imageset/ptp_style_7@3x.png


BIN
AIEmoji/Assets.xcassets/PTP/style/ptp_style_8.imageset/ptp_style_8@2x.png


BIN
AIEmoji/Assets.xcassets/PTP/style/ptp_style_8.imageset/ptp_style_8@3x.png


BIN
AIEmoji/Assets.xcassets/PTP/style/ptp_style_chibi.imageset/ptp_style_chibi@2x.png


BIN
AIEmoji/Assets.xcassets/PTP/style/ptp_style_chibi.imageset/ptp_style_chibi@3x.png


BIN
AIEmoji/Assets.xcassets/PTP/style/ptp_style_none.imageset/ptp_style_none@2x.png


BIN
AIEmoji/Assets.xcassets/PTP/style/ptp_style_none.imageset/ptp_style_none@3x.png


+ 3 - 1
AIEmoji/Business/Data/TSUserDefaultData.swift

@@ -39,7 +39,9 @@ func kHandleDBHistoryOperation(){
     for model in listModels {
         if model.modelType != 1 {
             if model.isResult == false,model.id > 0 {
-                TSGeneratePTPOperationQueue.shared.creatOperation(uuid: model.uuid).getActionInfo(oldModel: model.getModel())
+                let generatePTPOperation = TSGeneratePTPOperationQueue.shared.creatOperation(uuid: model.uuid)
+                generatePTPOperation.isSaveDB = true
+                generatePTPOperation.getActionInfo(oldModel: model.getModel())
             }
         }
     }

+ 5 - 1
AIEmoji/Business/TSGenmojiVC/TSGenmojiVC/View/TSGenmojiItemCell.swift

@@ -78,7 +78,9 @@ class TSGenmojiItemCell: TSBaseCollectionCell ,TSSimpleConfigurableView {
                 delegate?.collectionView(didTrigger: TSSimpleCellEvent(action: .buttonTapped("delete_task_expired"), indexPath: indexPath ?? IndexPath(item: 0, section: 0), data: self.dataModel))
             }else{
                 if kJudgeVipFreeType(vipFreeNumType: .picToPic){ return }
-                TSGeneratePTPOperationQueue.shared.creatOperation(uuid: dataModel.uuid).creatImage(oldModel: dataModel)
+                let generatePTPOperation = TSGeneratePTPOperationQueue.shared.creatOperation(uuid: dataModel.uuid)
+                generatePTPOperation.isSaveDB = true
+                generatePTPOperation.creatImage(oldModel: dataModel)
                 generateView.setProgress(progress: 0)
             }
         }
@@ -154,6 +156,8 @@ class TSGenmojiItemCell: TSBaseCollectionCell ,TSSimpleConfigurableView {
         
         if generateView.isHidden == false {
             generateView.setBgImageViewURLString(bgImageURLString: model.request.imageUrl)
+        }else{
+            generateView.bgImageView.image = nil
         }
     }
 

+ 17 - 4
AIEmoji/Business/TSPTPGeneratorVC/TSGennertatorSelectStyleVC/TSGennertatorSelectStyleVC.swift

@@ -16,7 +16,7 @@ class TSGennertatorSelectStyleVC: TSBaseVC {
 
     lazy var xBtn: TSUIExpandedTouchButton = {
         let xBtn = TSUIExpandedTouchButton()
-        xBtn.setUpButton(image: UIImage(named: "close_gray")) { [weak self]  in
+        xBtn.setUpButton(image: UIImage(named: "close_clear")) { [weak self]  in
             guard let self = self else { return }
             self.dismiss(animated: true)
         }
@@ -78,8 +78,22 @@ class TSGennertatorSelectStyleVC: TSBaseVC {
         kDelayMainShort {
             self.bottomView.cornersRound(radius: 20, corner: [.topLeft,.topRight])
         }
+        
+        
+        
+        let topView = UIView()
+        topView.backgroundColor = .clear
+        contentView.addSubview(topView)
+        topView.snp.makeConstraints { make in
+            make.top.leading.trailing.equalTo(0)
+            make.bottom.equalTo(bottomView.snp.top)
+        }
+        topView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(clickView)))
     }
     
+    @objc func clickView(){
+        self.dismiss(animated: true)
+    }
     func setContentView(){
         
         let titleLabel = UILabel.createLabel(text: "Select Style".localized,font: .font(size: 16,weight: .medium),textColor: .white)
@@ -195,8 +209,7 @@ class TSGennertatorSelectStyleCell: TSBaseCollectionCell {
     }()
     
     lazy var textLabel: UILabel = {
-        let textLabel = UILabel.createLabel(font: .font(size: 14),textColor: .white,textAlignment: .center,numberOfLines: 2)
-        textLabel.adjustsFontSizeToFitWidth = true
+        let textLabel = UILabel.createLabel(font: .font(size: 11),textColor: .white.withAlphaComponent(0.8),textAlignment: .center,numberOfLines: 2)
         return textLabel
     }()
     
@@ -224,7 +237,7 @@ class TSGennertatorSelectStyleCell: TSBaseCollectionCell {
         
         bgContentView.addSubview(textLabel)
         textLabel.snp.makeConstraints { make in
-            make.top.equalTo(boardImageView.snp.bottom).offset(2)
+            make.top.equalTo(boardImageView.snp.bottom).offset(0)
             make.leading.trailing.bottom.equalToSuperview()
         }
     

+ 10 - 0
AIEmoji/Business/TSPTPGeneratorVC/TSPTPGeneratorVC/TSPTPGeneratorVC.swift

@@ -119,7 +119,15 @@ class TSPTPGeneratorVC: TSAIPhotoGeneratorBaseVC {
         clickRegenerateBtn()
     }
     
+    //后台生成
     @objc func clickBackstageBtn() {
+        self.operation.isSaveDB = true //后台生成,让数据库保存数据
+        
+        if let model = infoModel {
+            TSRMShared.ptpDBHistory.updateData(model)
+            NotificationCenter.default.post(name: .kPTPDataChanged, object: nil)
+        }
+
         self.dismiss(animated: true, completion: nil)
     }
     
@@ -288,6 +296,8 @@ extension TSPTPGeneratorVC {
         netWorkImageView.isHidden = false
         rotatingPictureBtn.isHidden = false
         
+        
+        TSRMShared.ptpDBHistory.updateData(model)
         self.netWorkImageView.setAsyncImage(urlString: model.response.resultUrl,placeholder:kPlaceholderImage,backgroundColor:netWorkImageView.backgroundColor!)
         
         kPurchaseDefault.useOnceForFree(type: .picToPic)

+ 17 - 13
AIEmoji/Business/TSPTPGeneratorVC/TSPTPInputVC/View/TSImageGenerateView.swift

@@ -23,11 +23,10 @@ class TSImageGenerateView:TSBaseView {
         return refreshBtn
     }()
     
-//    lazy var blurEffect: UIVisualEffectView = {
-//        let blurEffect = createBlurEffectView(style: .dark)
-//        blurEffect.alpha = 0.8
-//        return blurEffect
-//    }()
+    lazy var blurEffect: UIVisualEffectView = {
+        let blurEffect = createBlurEffectView(style: .dark)
+        return blurEffect
+    }()
     
 //    lazy var blurEffect: TSDynamicBlurView = {
 //        return TSDynamicBlurView()
@@ -36,10 +35,10 @@ class TSImageGenerateView:TSBaseView {
     private var bgImageURLString:String?
     lazy var bgImageView: UIImageView = {
         let bgImageView = UIImageView.createImageView(contentMode: .scaleAspectFill)
-//        bgImageView.addSubview(blurEffect)
-//        blurEffect.snp.makeConstraints { make in
-//            make.edges.equalToSuperview()
-//        }
+        bgImageView.addSubview(blurEffect)
+        blurEffect.snp.makeConstraints { make in
+            make.edges.equalToSuperview()
+        }
         return bgImageView
     }()
     
@@ -87,7 +86,7 @@ class TSImageGenerateView:TSBaseView {
         refreshBtn.isHidden = true
         let progressInt = Int(progress*100)
 
-        infoLabel.text = "Generating".localized + "\n\n\(progressInt)%..."
+        infoLabel.text = "Generating".localized + "..." + "\n\n\(progressInt)%"
         infoLabel.textColor = .themeColor
 //        infoLabel.applyGradient(colors: ["#E961F6".uiColor,"#7E57F4".uiColor])
     }
@@ -112,12 +111,17 @@ class TSImageGenerateView:TSBaseView {
         if self.bgImageURLString == bgImageURLString {
             return
         }
-        self.bgImageURLString = bgImageURLString
+        
         bgImageView.image = nil
-        bgImageView.setAsyncImage(urlString: self.bgImageURLString,contentMode: .scaleAspectFill) { [weak self] image in
+        if let image = UIImageView.retrieveImageInMemoryCache(urlString: bgImageURLString){
+            bgImageView.image = image//TSDynamicBlurView.blurred(image: image)
+            return
+        }
+ 
+        UIImageView.downloadImageWithProgress(urlString: bgImageURLString) { [weak self] image in
             guard let self = self else { return }
             if let image = image{
-                bgImageView.image = TSDynamicBlurView.blurred(image: image)
+                bgImageView.image = image//TSDynamicBlurView.blurred(image: image)
             }
         }
     }

+ 2 - 1
AIEmoji/Business/VIewTool/TSViewTool.swift

@@ -11,7 +11,7 @@ class TSViewTool: UIView {
 }
 
 
-func createBlurEffectView(style:UIBlurEffect.Style,backgroundColor:UIColor? = nil) -> UIVisualEffectView {
+func createBlurEffectView(style:UIBlurEffect.Style,backgroundColor:UIColor? = nil,alpha:CGFloat = 0.9) -> UIVisualEffectView {
     let blurEffect = UIBlurEffect(style: style)
     let blurEffectView = UIVisualEffectView(effect: blurEffect)
     blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
@@ -20,6 +20,7 @@ func createBlurEffectView(style:UIBlurEffect.Style,backgroundColor:UIColor? = ni
         blurEffectView.backgroundColor = backgroundColor
     }
     
+    blurEffectView.alpha = alpha
     return blurEffectView
 }
 

+ 1 - 1
AIEmoji/Common/Tool/OperationQueue/TSGenerateBaseOperation/TSGenerateBaseOperation.swift

@@ -68,7 +68,7 @@ class TSGenerateBaseOperation: TSBaseOperation , @unchecked Sendable{
     var stopNetwork = false
     var generatingProgress = 0
     var action_id:Int = 0
-    
+    var isSaveDB:Bool = false //是否保存到数据库
     var currentActionInfoModelChanged:((TSActionInfoModel)->Void)?
     @Published var currentActionInfoModel: TSActionInfoModel = TSActionInfoModel()
     

+ 3 - 1
AIEmoji/Common/Tool/OperationQueue/TSGenerateBaseOperation/TSGeneratePosterOperation.swift

@@ -50,7 +50,9 @@ class TSGeneratePTPOperation: TSGenerateBaseOperation , @unchecked Sendable{
     override func replaceSaveInfoModel(model:TSActionInfoModel){
         model.uuid = uuid
         model.request.imageUrlTimestamp = currentActionInfoModel.request.imageUrlTimestamp
-        TSRMShared.ptpDBHistory.updateData(model,id: currentActionInfoModel.id)
+        if isSaveDB {
+            TSRMShared.ptpDBHistory.updateData(model,id: currentActionInfoModel.id)
+        }
         currentActionInfoModel = model
         dePrint("model actionStatus 发出=\(model.actionStatus)")
         currentActionInfoModelChanged?(currentActionInfoModel)

+ 14 - 13
AIEmoji/Res/photo_to_photo_style.json

@@ -3,7 +3,7 @@
         "imageName": "ptp_style_AnimeMax",
         "imageText": "Anime Pro",
         "prompt":"Turn uploaded photos into ghibli style",
-        "specialStyle":1,
+        "specialStyle":0,
         "isVip": true,
         "advance":true
     },
@@ -17,16 +17,16 @@
     {
         "imageName": "ptp_style_ActionFigure",
         "imageText": "Action Figure",
-        "prompt":"将上传的照片转化为一款3D可爱玩偶风格形象,整体造型卡通立体,主角位于画面正中,清哳可见,风格融合插画与 3D 质感。背景为玩具包装盒展示样式:包括透明塑料外壳、纸卡底板,纸卡上印有 「Limited  Edition」字样。图片比例 3:4。包装设计包含玩具插卡元素,如顶部挂孔、边缘裁切线等,呈现真实的商用玩具包装感。包装内右侧竖排另外放置 4 件 “配件” 道具,要根据上传的照片中人物的造型和身份推理出匹配的道具,摆放自然协调,增强整体故事感。色调以照片配色为主,饱和度高,颜色明亮清澈,光线自然温暖,画面风格现代、专业,同时保持可爱、俏皮的趣味性。背景简洁,突出主体,整体视觉呈现应具备真实商品的质感与陈列吸引力。",
+        "prompt":"Turn the uploaded photo into a chibi sticker set of 4 pictures,every sticker should not cover the other stickers. Stickers reserved chibi Aesthetic style: exaggerated big eyes, soft facial lines, lively and playful hairstyles, dress up as much as possible to reproduce the photos I provided you with, the background using vibrant colors, and with some small elements for decoration, the appropriate perimeter of the white space!",
         "input":true,
-        "specialStyle":0,
+        "specialStyle":1,
         "isVip": true,
         "advance":true
     },
     {
         "imageName": "ptp_style_7",
         "imageText": "Fantasy Illustration",
-        "prompt":"Fantasy illustration conversion:  Core structure preservation (90% shape accuracy)  Arthur Rackham-inspired inking with Art Nouveau flourishes  Spectral lighting effects (etherial glow: intensity 0.7)  Arcane texture overlay: • Ancient grimoire parchment (60% opacity) • Luminescent crystal refraction patterns • Elven vine motifs (density: 25/cm²)  Chromatic scheme: Base: Pantone 19-4052 Classic Blue Accent: 17-1463 Flame Scarlet + 13-0647 Iced Green  Mystical atmosphere injection: • Floating rune particles (size variance: 0.3-2mm) • Subtle aura pulsation (frequency: 0.5Hz) • Stardust specular highlights  Prohibited alterations: No added wings/horns/non-native elements Max 15% anatomical exaggeration Color shift tolerance ΔE<8",
+        "prompt":"将图片转化成精美插画手绘风格,保留人物主体和背景",
         "isVip": false
     },
     {
@@ -36,6 +36,13 @@
         "specialStyle":2,
         "isVip": true,
         "advance":true
+    },{
+        "imageName": "ptp_style_chibi",
+        "imageText": "Chibi",
+        "prompt":"Turn the uploaded photo into a chibi sticker set of 4 pictures,every sticker should not cover the other stickers",
+        "specialStyle":0,
+        "isVip": true,
+        "advance":true
     },
     {
         "imageName": "ptp_style_Felt",
@@ -201,7 +208,7 @@
     {
         "imageName": "ptp_style_MonochromeDoodle",
         "imageText": "Monochrome Doodle",
-        "prompt":"把上传的图片转化成黑白简笔画风格,使用粗线条勾勒轮廓,图像无阴影无填色,线条干净,边缘柔和",
+        "prompt":"把上传的图片转化成黑白简笔画风格,使用粗线条勾勒轮廓,图像无阴影无填色,线条干净,边缘柔和,图片背景用白色不要透明",
         "specialStyle":0,
         "isVip": true,
         "advance":true
@@ -302,20 +309,14 @@
         "specialStyle":0,
         "isVip": true
     },
-    {
-        "imageName": "ptp_style_chibi",
-        "imageText": "Chibi",
-        "prompt":"把图片变成 Chibi 风格",
-        "specialStyle":0,
-        "isVip": true
-    },
     {
         "imageName": "ptp_style_none",
         "imageText": "No Style",
         "prompt":"",
         "specialStyle":0,
         "input":true,
-        "isVip": false
+        "isVip": false,
+        "advance":true
     }
 ]
 

+ 1 - 30
AIEmoji/de.lproj/Localizable.strings

@@ -49,7 +49,6 @@
 "Retro Anime" = "Retro-Anime";
 "Classical Painting" = "Klassische Malerei";
 "Cyberpunk" = "Cyberpunk";
-"Pop Art" = "Pop-Art";
 "Retrofuturism" = "Retrofuturismus";
 "Photorealism" = "Realismus";
 "Modern Digital Art" = "Moderne Digitalkunst";
@@ -233,41 +232,13 @@
 "~ %d min" = "~ %d min";
 "~ %d seconds" = "~ %d Sekunden";
 "Describe how you want to transform" = "Beschreiben Sie, wie Sie sich verändern möchten";
-"Action Figure" = "Actionfigur";
-"Cute Dog" = "Süßer Hund";
-"Cute Cat" = "Süße Katze";
-"Irasutoya" = "Irasutoya";
+
 "It is definitely worth your wait. Just watch it" = "Das Warten lohnt sich auf jeden Fall. Schau es dir einfach an";
 
 "Turn Photos into an Action Figure" = "Verwandeln Sie Fotos in eine Actionfigur";
-"Anime Lite" = "Anime Lite";
-"Anime Pro" = "Anime-Profi";
 "AI Expand Photo" = "AI-Expand-Foto";
 
 "More" = "Mehr";
 "Generation Failed" = "Build fehlgeschlagen";
 "This task has expired" = "Diese Aufgabe ist abgelaufen";
 "Generate in the background" = "Hintergrundgenerierung";
-
-
-"Felt" = "Filz";
-"Music Box" = "Spieldose";
-"Single Figurine" = "Einzelfigur";
-"Earphone Case" = "Kopfhörer-Etui";
-"Van Gogh" = "Van Gogh";
-"Animal Crossing" = "Animal Crossing";
-"Chiikawa" = "Chiikawa";
-"Dopamine" = "Dopamin";
-"Y2K Millennium" = "Y2K-Jahrtausendstil";
-"Chinese Paper-Cut" = "Chinesischer Scherenschnitt";
-"Healing Doodle" = "Beruhigende Kritzelei";
-"Polaroid Clay" = "Polaroid-Ton";
-"Watercolor" = "Aquarell";
-"Neon" = "Neon";
-"Black & White Anime" = "Schwarz-Weiß-Anime";
-"Crayon" = "Wachsmalstift";
-"Knit Doll" = "Strickpuppe";
-"Handmade Papercraft" = "Handgemachte Papierkunst";
-"Print" = "Druck";
-"Monochrome Doodle" = "Schwarz-Weiß-Kritzelei";
-"Photo Enhancer" = "Foto-Enhancer";

+ 1 - 31
AIEmoji/en.lproj/Localizable.strings

@@ -49,7 +49,6 @@
 "Retro Anime" = "Retro Anime";
 "Classical Painting" = "Classical Painting";
 "Cyberpunk" = "Cyberpunk";
-"Pop Art" = "Pop Art";
 "Retrofuturism" = "Retrofuturism";
 "Photorealism" = "Photorealism";
 "Modern Digital Art" = "Modern Digital Art";
@@ -230,42 +229,13 @@
 "~ %d min" = "~ %d mins";
 "~ %d seconds" = "~ %d seconds";
 "Describe how you want to transform" = "Describe how you want to transform";
-"Action Figure" = "Action Figure";
-"Cute Dog" = "Cute Dog";
-"Cute Cat" = "Cute Cat";
-"Irasutoya" = "Irasutoya";
+
 "It is definitely worth your wait. Just watch it" = "It is definitely worth your wait. Just watch it";
 
 "Turn Photos into an Action Figure" = "Turn Photos into an Action Figure";
-"Anime Lite" = "Anime Lite";
-"Anime Pro" = "Anime Pro";
 "AI Expand Photo" = "AI Expand Photo";
 
 "More" = "More";
 "Generation Failed" = "Generation Failed";
 "This task has expired" = "This task has expired";
 "Generate in the background" = "Generate in the background";
-
-
-"Felt" = "Felt";
-"Music Box" = "Music Box";
-"Single Figurine" = "Single Figurine";
-"Earphone Case" = "Earphone Case";
-"Van Gogh" = "Van Gogh";
-"Animal Crossing" = "Animal Crossing";
-"Chiikawa" = "Chiikawa";
-"Dopamine" = "Dopamine";
-"Y2K Millennium" = "Y2K Millennium";
-"Chinese Paper-Cut" = "Chinese Paper-Cut";
-"Healing Doodle" = "Healing Doodle";
-"Polaroid Clay" = "Polaroid Clay";
-"Watercolor" = "Watercolor";
-"Neon" = "Neon";
-"Black & White Anime" = "Black & White Anime";
-"Crayon" = "Crayon";
-"Knit Doll" = "Knit Doll";
-"Handmade Papercraft" = "Handmade Papercraft";
-"Print" = "Print";
-"Monochrome Doodle" = "Monochrome Doodle";
-"Photo Enhancer" = "Photo Enhancer";
-

+ 1 - 28
AIEmoji/es.lproj/Localizable.strings

@@ -49,7 +49,6 @@
 "Retro Anime" = "Anime retro";
 "Classical Painting" = "Pintura clásica";
 "Cyberpunk" = "Cyberpunk";
-"Pop Art" = "Arte pop";
 "Retrofuturism" = "Retrofuturismo";
 "Photorealism" = "Realismo";
 "Modern Digital Art" = "Arte digital moderno";
@@ -229,15 +228,10 @@
 "~ %d min" = "~ %d minutos";
 "~ %d seconds" = "~ %d segundos";
 "Describe how you want to transform" = "Describe cómo quieres transformarte";
-"Action Figure" = "Figura de acción";
-"Cute Dog" = "lindo perro";
-"Cute Cat" = "lindo gato";
-"Irasutoya" = "Irasutoya";
+
 "It is definitely worth your wait. Just watch it" = "Definitivamente vale la pena esperar. Sólo míralo";
 
 "Turn Photos into an Action Figure" = "Convierte fotos en una figura de acción";
-"Anime Lite" = "Anime ligero";
-"Anime Pro" = "Anime Pro";
 "AI Expand Photo" = "IA Ampliar foto";
 
 "More" = "Más";
@@ -246,24 +240,3 @@
 "Generate in the background" = "Generación de fondo";
 
 
-"Felt" = "Fieltro";
-"Music Box" = "Caja de Música";
-"Single Figurine" = "Figura Individual";
-"Earphone Case" = "Estuche para Audífonos";
-"Van Gogh" = "Van Gogh";
-"Animal Crossing" = "Animal Crossing";
-"Chiikawa" = "Chiikawa";
-"Dopamine" = "Dopamina";
-"Y2K Millennium" = "Estilo Y2K Milenio";
-"Chinese Paper-Cut" = "Papel Cortado Chino";
-"Healing Doodle" = "Dibujo Simple Relajante";
-"Polaroid Clay" = "Arcilla Polaroid";
-"Watercolor" = "Acuarela";
-"Neon" = "Neón";
-"Black & White Anime" = "Anime Blanco y Negro";
-"Crayon" = "Crayón";
-"Knit Doll" = "Muñeca de Punto";
-"Handmade Papercraft" = "Arte en Papel Manual";
-"Print" = "Impresión";
-"Monochrome Doodle" = "Dibujo Simple en Blanco y Negro";
-"Photo Enhancer" = "Mejorador de fotos";

+ 1 - 29
AIEmoji/ja.lproj/Localizable.strings

@@ -49,7 +49,6 @@
 "Retro Anime" = "レトロアニメ";
 "Classical Painting" = "古典油絵";
 "Cyberpunk" = "サイバーパンク";
-"Pop Art" = "ポップアート";
 "Retrofuturism" = "レトロフューチャリズム";
 "Photorealism" = "リアリズム";
 "Modern Digital Art" = "現代デジタルアート";
@@ -229,15 +228,10 @@
 "~ %d min" = "~%d分";
 "~ %d seconds" = "~%d秒";
 "Describe how you want to transform" = "変換方法を説明します";
-"Action Figure" = "かわいい人形";
-"Cute Dog" = "キャラクターの子犬";
-"Cute Cat" = "キティ";
-"Irasutoya" = "いらすとや";
+
 "It is definitely worth your wait. Just watch it" = "待つ価値はある";
 
 "Turn Photos into an Action Figure" = "写真をアクションフィギュアに変える";
-"Anime Lite" = "アニメライト";
-"Anime Pro" = "アニメプロ";
 "AI Expand Photo" = "AI拡張写真";
 
 "More" = "もっと";
@@ -245,25 +239,3 @@
 "This task has expired" = "このタスクは終了しました";
 "Generate in the background" = "バックグラウンド生成";
 
-
-"Felt" = "フェルト";
-"Music Box" = "オルゴール";
-"Single Figurine" = "単体フィギュア";
-"Earphone Case" = "イヤホンケース";
-"Van Gogh" = "ゴッホ";
-"Animal Crossing" = "どうぶつの森";
-"Chiikawa" = "ちいかわ";
-"Dopamine" = "ドーパミン";
-"Y2K Millennium" = "Y2Kミレニアル風";
-"Chinese Paper-Cut" = "中国切り絵";
-"Healing Doodle" = "癒しのラクガキ";
-"Polaroid Clay" = "ポラロイド粘土";
-"Watercolor" = "水彩";
-"Neon" = "ネオン";
-"Black & White Anime" = "白黒アニメ";
-"Crayon" = "クレヨン";
-"Knit Doll" = "編みぐるみ";
-"Handmade Papercraft" = "手作りペーパークラフト";
-"Print" = "印刷";
-"Monochrome Doodle" = "白黒シンプルラクガキ";
-"Photo Enhancer" = "フォトエンハンサー";

+ 1 - 28
AIEmoji/ko.lproj/Localizable.strings

@@ -49,7 +49,6 @@
 "Retro Anime" = "레트로 애니메";
 "Classical Painting" = "고전 유화";
 "Cyberpunk" = "사이버펑크";
-"Pop Art" = "팝아트";
 "Retrofuturism" = "레트로퓨처리즘";
 "Photorealism" = "사실주의";
 "Modern Digital Art" = "현대 디지털 아트";
@@ -229,15 +228,10 @@
 "~ %d min" = "~ %d 분";
 "~ %d seconds" = "~ %d 초";
 "Describe how you want to transform" = "어떻게 변화시키고 싶은지 설명하세요.";
-"Action Figure" = "액션 피규어";
-"Cute Dog" = "귀여운 강아지";
-"Cute Cat" = "귀여운 고양이";
-"Irasutoya" = "이라수토야";
+
 "It is definitely worth your wait. Just watch it" = "확실히 기다릴만한 가치가 있습니다. 그냥 봐";
 
 "Turn Photos into an Action Figure" = "사진을 액션 피규어로 바꿔보세요";
-"Anime Lite" = "애니메 라이트";
-"Anime Pro" = "애니메이션 프로";
 "AI Expand Photo" = "AI 확장 사진";
 
 "More" = "더";
@@ -251,24 +245,3 @@
 "Generate in the background" = "배경 생성";
 
 
-"Felt" = "펠트";
-"Music Box" = "뮤직 박스";
-"Single Figurine" = "단독 피규어";
-"Earphone Case" = "이어폰 케이스";
-"Van Gogh" = "반 고흐";
-"Animal Crossing" = "동물의 숲";
-"Chiikawa" = "치이카와";
-"Dopamine" = "도파민";
-"Y2K Millennium" = "Y2K 밀레니엄";
-"Chinese Paper-Cut" = "중국 종이 공예";
-"Healing Doodle" = "힐링 낙서";
-"Polaroid Clay" = "폴라로이드 클레이";
-"Watercolor" = "수채화";
-"Neon" = "네온";
-"Black & White Anime" = "흑백 일본 애니";
-"Crayon" = "크레용";
-"Knit Doll" = "뜨개 인형";
-"Handmade Papercraft" = "핸드메이드 페이퍼 아트";
-"Print" = "인쇄";
-"Monochrome Doodle" = "흑백 단순 낙서";
-"Photo Enhancer" = "사진 향상제";

+ 1 - 29
AIEmoji/pt-BR.lproj/Localizable.strings

@@ -49,7 +49,6 @@
 "Retro Anime" = "Anime retrô";
 "Classical Painting" = "Pintura clássica";
 "Cyberpunk" = "Cyberpunk";
-"Pop Art" = "Arte pop";
 "Retrofuturism" = "Retrofuturismo";
 "Photorealism" = "Realismo";
 "Modern Digital Art" = "Arte digital moderna";
@@ -229,15 +228,10 @@
 "~ %d min" = "~ %d min";
 "~ %d seconds" = "~ %d segundos";
 "Describe how you want to transform" = "Descreva como você deseja transformar";
-"Action Figure" = "Figura de ação";
-"Cute Dog" = "Cachorro fofo";
-"Cute Cat" = "Gato fofo";
-"Irasutoya" = "Irasutoya";
+
 "It is definitely worth your wait. Just watch it" = "Definitivamente vale a pena esperar. Apenas observe";
 
 "Turn Photos into an Action Figure" = "Transforme fotos em uma figura de ação";
-"Anime Lite" = "Anime Lite";
-"Anime Pro" = "Anime Pro";
 "AI Expand Photo" = "Foto de expansão de IA";
 
 "More" = "Mais";
@@ -245,25 +239,3 @@
 "This task has expired" = "Esta tarefa expirou";
 "Generate in the background" = "Geração de plano de fundo";
 
-
-"Felt" = "Feltro";
-"Music Box" = "Caixa de Música";
-"Single Figurine" = "Action Figure Solo";
-"Earphone Case" = "Estojo de Fones";
-"Van Gogh" = "Van Gogh";
-"Animal Crossing" = "Animal Crossing";
-"Chiikawa" = "Chiikawa";
-"Dopamine" = "Dopamina";
-"Y2K Millennium" = "Estilo Y2K Millennium";
-"Chinese Paper-Cut" = "Recorte de Papel Chinês";
-"Healing Doodle" = "Rabisco Terapêutico";
-"Polaroid Clay" = "Argila Polaroid";
-"Watercolor" = "Aquarela";
-"Neon" = "Neon";
-"Black & White Anime" = "Mangá Preto e Branco";
-"Crayon" = "Giz de Cera";
-"Knit Doll" = "Boneca de Tricô";
-"Handmade Papercraft" = "Arte em Papel Manual";
-"Print" = "Impressão";
-"Monochrome Doodle" = "Rabisco Preto e Branco";
-"Photo Enhancer" = "Melhorador de fotos";

+ 1 - 28
AIEmoji/pt-PT.lproj/Localizable.strings

@@ -49,7 +49,6 @@
 "Retro Anime" = "Anime retrô";
 "Classical Painting" = "Pintura clássica";
 "Cyberpunk" = "Cyberpunk";
-"Pop Art" = "Arte pop";
 "Retrofuturism" = "Retrofuturismo";
 "Photorealism" = "Realismo";
 "Modern Digital Art" = "Arte digital moderna";
@@ -229,15 +228,10 @@
 "~ %d min" = "~ %d min";
 "~ %d seconds" = "~ %d segundos";
 "Describe how you want to transform" = "Descreva como você deseja transformar";
-"Action Figure" = "Figura de ação";
-"Cute Dog" = "Cachorro fofo";
-"Cute Cat" = "Gato fofo";
-"Irasutoya" = "Irasutoya";
+
 "It is definitely worth your wait. Just watch it" = "Definitivamente vale a pena esperar. Apenas observe";
 
 "Turn Photos into an Action Figure" = "Transforme fotos em uma figura de ação";
-"Anime Lite" = "Anime Lite";
-"Anime Pro" = "Anime Pro";
 "AI Expand Photo" = "Foto de expansão de IA";
 
 "More" = "Mais";
@@ -246,24 +240,3 @@
 "Generate in the background" = "Geração de plano de fundo";
 
 
-"Felt" = "Feltro";
-"Music Box" = "Caixa de Música";
-"Single Figurine" = "Action Figure Solo";
-"Earphone Case" = "Estojo de Fones";
-"Van Gogh" = "Van Gogh";
-"Animal Crossing" = "Animal Crossing";
-"Chiikawa" = "Chiikawa";
-"Dopamine" = "Dopamina";
-"Y2K Millennium" = "Estilo Y2K Millennium";
-"Chinese Paper-Cut" = "Recorte de Papel Chinês";
-"Healing Doodle" = "Rabisco Terapêutico";
-"Polaroid Clay" = "Argila Polaroid";
-"Watercolor" = "Aquarela";
-"Neon" = "Neon";
-"Black & White Anime" = "Mangá Preto e Branco";
-"Crayon" = "Giz de Cera";
-"Knit Doll" = "Boneca de Tricô";
-"Handmade Papercraft" = "Arte em Papel Manual";
-"Print" = "Impressão";
-"Monochrome Doodle" = "Rabisco Preto e Branco";
-"Photo Enhancer" = "Melhorador de fotos";

+ 1 - 28
AIEmoji/zh-Hans.lproj/Localizable.strings

@@ -49,7 +49,6 @@
 "Retro Anime" = "复古动漫";
 "Classical Painting" = "古典油画";
 "Cyberpunk" = "赛博朋克";
-"Pop Art" = "波普艺术";
 "Retrofuturism" = "复古未来主义";
 "Photorealism" = "写实主义";
 "Modern Digital Art" = "现代数字艺术";
@@ -229,15 +228,10 @@
 "~ %d min" = "~ %d 分钟";
 "~ %d seconds" = "~%d秒";
 "Describe how you want to transform" = "描述你想要如何转换";
-"Action Figure" = "玩偶手办";
-"Cute Dog" = "卡通小狗";
-"Cute Cat" = "凯蒂猫";
-"Irasutoya" = "插画小人";
+
 "It is definitely worth your wait. Just watch it" = "绝对值得您的等待";
 
 "Turn Photos into an Action Figure" = "把你变成独一无二的手办";
-"Anime Lite" = "动漫精简版";
-"Anime Pro" = "动漫增强版";
 "AI Expand Photo" = "AI 扩图";
 
 "More" = "更多";
@@ -246,24 +240,3 @@
 "Generate in the background" = "后台生成";
 
 
-"Felt" = "毛毡风";
-"Music Box" = "音乐盒";
-"Single Figurine" = "单人手办";
-"Earphone Case" = "耳机盒";
-"Van Gogh" = "梵高";
-"Animal Crossing" = "动物森友会";
-"Chiikawa" = "Chiikawa";
-"Dopamine" = "多巴胺";
-"Y2K Millennium" = "Y2K千禧风";
-"Chinese Paper-Cut" = "中式剪纸";
-"Healing Doodle" = "治愈简笔";
-"Polaroid Clay" = "拍立得粘土";
-"Watercolor" = "水彩";
-"Neon" = "霓虹灯";
-"Black & White Anime" = "黑白日漫";
-"Crayon" = "蜡笔";
-"Knit Doll" = "针织娃娃";
-"Handmade Papercraft" = "手工纸艺";
-"Print" = "印刷";
-"Monochrome Doodle" = "黑白简笔";
-"Photo Enhancer" = "图片增强";

+ 1 - 30
AIEmoji/zh-Hant.lproj/Localizable.strings

@@ -77,7 +77,6 @@
 "Retro Anime" = "復古動漫";
 "Classical Painting" = "古典油畫";
 "Cyberpunk" = "賽博朋克";
-"Pop Art" = "波普藝術";
 "Retrofuturism" = "復古未來主義";
 "Photorealism" = "寫實主義";
 "Modern Digital Art" = "現代數位藝術";
@@ -221,41 +220,13 @@
 "~ %d min" = "~%d分鐘";
 "~ %d seconds" = "~%d秒";
 "Describe how you want to transform" = "描述你想要如何轉換";
-"Action Figure" = "玩偶手辦";
-"Cute Dog" = "卡通小狗";
-"Cute Cat" = "凱蒂貓";
-"Irasutoya" = "插畫小人";
+
 "It is definitely worth your wait. Just watch it" = "絕對值得你等待";
 
 "Turn Photos into an Action Figure" = "把你變成獨一無二的手辦";
-"Anime Lite" = "動漫精簡版";
-"Anime Pro" = "動漫增強版";
 "AI Expand Photo" = "AI 擴圖";
 
 "More" = "更多";
 "Generation Failed" = "生成失敗";
 "This task has expired" = "此任務已過期";
 "Generate in the background" = "後台生成";
-
-
-"Felt" = "毛氈風";
-"Music Box" = "音樂盒";
-"Single Figurine" = "單人手辦";
-"Earphone Case" = "耳機盒";
-"Van Gogh" = "Van Gogh";
-"Animal Crossing" = "動物森友會";
-"Chiikawa" = "Chiikawa";
-"Dopamine" = "多巴胺";
-"Y2K Millennium" = "Y2K千禧風";
-"Chinese Paper-Cut" = "中式剪紙";
-"Healing Doodle" = "治癒簡筆";
-"Polaroid Clay" = "拍立得黏土";
-"Watercolor" = "水彩";
-"Neon" = "霓虹";
-"Black & White Anime" = "黑白日漫";
-"Crayon" = "蠟筆";
-"Knit Doll" = "針織娃娃";
-"Handmade Papercraft" = "手工紙藝";
-"Print" = "印刷";
-"Monochrome Doodle" = "黑白簡筆";
-"Photo Enhancer" = "照片增強";