123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- //
- // DrawViewController.swift
- // AIPaint
- //
- // Created by Fengyu He on 2022/11/29.
- //
- import UIKit
- import SnapKit
- class DrawViewController: UIViewController {
-
- lazy var generateView: UIView = {
- let view = UIView()
- view.backgroundColor = .clear
- view.layer.borderWidth = 1
- view.layer.borderColor = UIColor.black.cgColor
- return view
- }()
-
- lazy var promptTextField: UITextField = {
- let textField = UITextField()
- textField.placeholder = "请输入你的作品的组成元素,以空格分割。"
- textField.layer.borderWidth = 1
- textField.layer.borderColor = UIColor.black.cgColor
- return textField
- }()
-
- lazy var negativePromptTextField: UITextField = {
- let textField = UITextField()
- textField.placeholder = "请输入你不想在作品中看到的元素,以空格分割。"
- textField.layer.borderWidth = 1
- textField.layer.borderColor = UIColor.black.cgColor
- return textField
- }()
-
- lazy var generateButton: UIButton = {
- let button = UIButton()
- button.layer.backgroundColor = UIColor.blue.cgColor
- button.addTarget(self, action: #selector(generateAction), for: .touchUpInside)
- button.setTitle("生成图片", for: .normal)
- return button
- }()
-
- lazy var generateImage: UIImageView = {
- let imageView = UIImageView()
- imageView.layer.borderWidth = 1
- imageView.layer.borderColor = UIColor.black.cgColor
- return imageView
- }()
-
- var prompt = ""
- var negativePrompt = ""
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- view.backgroundColor = .white
-
- view.addSubview(generateView)
- generateView.addSubview(promptTextField)
- generateView.addSubview(negativePromptTextField)
- generateView.addSubview(generateButton)
-
- view.addSubview(generateImage)
-
- generateView.snp.makeConstraints { (make) in
- make.top.equalTo(view.safeAreaLayoutGuide.snp.top)
- make.width.equalTo(view.safeAreaLayoutGuide.snp.width)
- make.height.equalTo(view.safeAreaLayoutGuide.snp.height).multipliedBy(0.35)
- make.centerX.equalTo(view.safeAreaLayoutGuide.snp.centerX)
- }
-
- promptTextField.snp.makeConstraints { (make) in
- make.top.equalTo(generateView.snp.top).offset(5)
- make.width.equalTo(generateView.snp.width).multipliedBy(0.95)
- make.height.equalTo(generateView.snp.height).multipliedBy(0.35)
- make.centerX.equalTo(generateView.snp.centerX)
- }
-
- negativePromptTextField.snp.makeConstraints { (make) in
- make.top.equalTo(promptTextField.snp.bottom).offset(5)
- make.width.equalTo(generateView.snp.width).multipliedBy(0.95)
- make.height.equalTo(generateView.snp.height).multipliedBy(0.35)
- make.centerX.equalTo(generateView.snp.centerX)
- }
-
- generateButton.snp.makeConstraints { (make) in
- make.top.equalTo(negativePromptTextField.snp.bottom).offset(5)
- make.width.equalTo(generateView.snp.width).multipliedBy(0.95)
- make.height.equalTo(generateView.snp.height).multipliedBy(0.2)
- make.centerX.equalTo(generateView.snp.centerX)
- }
-
- generateImage.snp.makeConstraints { (make) in
- make.top.equalTo(generateView.snp.bottom).offset(10)
- make.width.equalTo(view.safeAreaLayoutGuide.snp.width)
- make.height.equalTo(view.safeAreaLayoutGuide.snp.height).multipliedBy(0.60)
- make.centerX.equalTo(view.safeAreaLayoutGuide.snp.centerX)
- }
-
- }
-
- @objc func generateAction() {
- print("in func generateAction")
- prompt = promptTextField.text!
- negativePrompt = negativePromptTextField.text!
-
- let url = URL(string: "https://aipaint.hefengyu.org/api/predict/")
- var request = URLRequest(url: url!)
- request.httpMethod = "POST"
- let postData: [String: Any] = ["fn_index":50,"data":["backed","shit","None","None",20,"Euler a",false,false,1,1,7,-1,-1,0,0,0,false,512,512,false,0.7,0,0,"None",false,false,false,"","Seed","","Nothing","",true,false,false,"null","",""]]
- let jsonData = try? JSONSerialization.data(withJSONObject: postData, options: [])
- request.httpBody = jsonData
- print(String(data: jsonData!, encoding: .utf8)!)
- let dataTask = URLSession.shared.dataTask(with: request) { (data, request, error) in
- do {
- let jsonData = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! NSDictionary
- print(jsonData)
- } catch {
- print("JSONSerialization error:", error)
- }
- }
- dataTask.resume()
-
- }
-
- override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
- promptTextField.resignFirstResponder()
- negativePromptTextField.resignFirstResponder()
- }
- }
|