“Fast Style” AI API를 사용하여 앱에 인공지능 기반의 사진 스타일링 기능 넣기
- 2021-05-31
- Posted by: Narae Kim
- Categories: 기술자료, 메인 노출
- 원문 링크: https://blogs.embarcadero.com/put-ai-in-your-app-to-make-fast-style-art/?fbclid=IwAR3Gb5AFBnbpPWaJv9OGBsY5lWYvKnD70M7JzlhIgfhMp3iOx3rbpb6DLCg
- 작성자 (작성일): Bruno Mileto (2021.5.26)
인공지는 API인 “Fast Style”은 신경망을 이용하여 특정 이미지에 적용된 예술적인 스타일을 다른 이미지에 적용하여 새로운 이미지를 만든다. 예를 들어 사진을 찍은 다음 마네의 화법을 그 사진에 적용하여 고유한 사진을 만들어낼 수 있다.
DeepAi.org의 도움을 받으면, 많은 AI 프로젝트를 만들 수 있다. 지금은 미술 작품을 만드는 용도로 “fast style transfer” API를 델파이에서 연결하여 사용해보겠다.
REST와 델파이를 사용하면 API 사용이 쉽다.
델파이에는 REST디버거라는 도구가 들어 있어서 REST API를 쉽게 연결할 수 있다. REST디버거에서 API를 연결하여 데이터를 성공적으로 교환하고 나면 [Copy Component] 버튼을 이용하여 델파이용 컴포넌트들과 해당 설정을 그대로 복사하여 델파이 애플리케이션에 붙여 넣을 수 있다. DeepAi를 살펴보고 데스크톱 앱으로 미술작품을 만들어보자.
DeepAi API에 연결하기
DeepAi는 API에 대한 도움말이 잘 되어 있다 (도움말은 여기를 클릭). 먼저 DeepAi.org에서 계정을 만들고 API 키를 받아두어야 한다.
Fast Style 도움말에는 해당 API의 엔드포인트로 파라미터 3개를 보내야 한다고 되어 있다. 즉 당신의 API키와 이미지를 전달하기 위한 링크 또는 파일 2개 (하나는 스타일이 적용될 이미지, 다른 하나는 적용할 이미지를 가져올 때 사용하는 이미지)이다.
델파이에서 DeepAi API REST 엔드포인트에 연결하기
먼저 RAD스튜디오/델파이에 들어 있는 REST디버거를 사용한다. REST디버거는 API에 연결하고, 호출하고, 결과를 가져와서 보여주는 도구이다. 개발 환경 메뉴에서 Tools > REST Debugger를 선택하여 실행한다.
Method는 POST로 바꾸고 URL 빈칸에 해당 API의 엔드포인트 (https://api.deepai.org/api/fast-style )를 넣는다. Parameters 탭으로 가서 [Add]을 이용하여 2개의 이미지 링크를 넣는다. 웹 링크를 바로 넣어서 보내고 싶으면 Kind에서 BODY를 선택한다. 하드 드라이브에 있는 이미지 파일을 보내고 싶으면 FILE을 선택한다. name 칸에는 ‘content’라고 적고 value 칸에는 이미지의 링크를 넣는다. 스타일을 가져올 이미지의 경우 name칸에 ‘style’을 적는다. 마지막으로 [Add]버튼을 한번 더 누르고 Kind에서 HEADER를 선택하고 name에 ‘api-key’라고 적고 value 칸에는 당신의 API키 값을 적는다.
REST request to the DeepAI API에 REST 요청 보내기
Send Request 버튼을 누르고 잠시 기다리면, 곧 200이라는 응답을 받을 수 있다. 그러면 Tabular Data 탭에 output_url이 표시되는데, 이때 인공지능이 생성한 이미지 링크는 다음 이미지에 있는 것과 같다:
축하한다. 이제 인공 지능에 데이터 보내기와 받기에 성공했다. 이제 이것을 원하는 데로 사용해보자.
윈도우 데스크톱 애플리케이션에서 DeepAi API를 이용하여 이미지 만들기
지금부터 당신의 컴퓨터에 있는 이미지를 가져와서 DeepAi API로 보내보고, API가 만들어서 보내준 이미지롤 표시하고, 애플리케이션이 있는 폴더에 저장해보자.
폼 위에 REST디버거에서 복사한 컴포넌트와 설정을 붙여넣기 한다.
붙여넣어진 컴포넌트 중 RESTRequest1을 오른쪽 클릭하여 실행한다. FDMemTable1을 오른쪽 클릭하고 Fields Editor > Add All Fields를 실행한다. 나는 여기에 몇가지 컴포넌트를 더 추가하여서 아래와 같은 모양이 되도록 했다.
REST 요청을 해당 API에 연결하기
이제, 코드를 살펴보자. API에 연결하는 코드는 아래와 같다.
1 2 3 4 5 6 7 |
FDMemTable1.Close; RESTRequest1.Params[0].Value := mainImgFile; RESTRequest1.Params[2].Value := styleImgFile; RESTRequest1.Execute; FDMemTable1.Open; GetImg(FDMemTable1OUTPUT_URL.AsString); |
결과를 처리하고 결과 이미지를 다운로드 하기 위해, GetImg 프로시저를 만들어서 그 안에 다음과 같은 코드를 적는다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
FDMemTable1.Close; 4 5 6 7 8 9 10 11 12 13 14 15 MS := TMemoryStream.Create; IdHTTP1 := TIdHTTP.Create(nil); IMG := TJPEGImage.Create; MS.Clear; IdHTTP1.Get(urls, MS); MS.Position := 0; MS.SaveToFile(resourcesDirectory + 'output.jpg'); IMG.LoadFromStream(MS); ImgResult.Picture.Assign(IMG); Application.ProcessMessages; IMG.Free; MS.Free; |
DeepAI Fast Style API를 사용한 델파이 앱의 모습은 다음과 같다.
위 예제의 코드 전체의 링크: https://github.com/brunomileto/deepai_api
12.0 12.1 AI AWS C++ c++빌더 chatgpt DelphiCon ios rad서버 RAD스튜디오 UI UIUX UX uxsummit vcl 개발 개발사례 고객사례 기술레터 기술백서 데브옵스 데이터 데이터베이스 델파이 리눅스 마이그레이션 맥 머신러닝 모바일 새버전 샘플 세미나 안드로이드 웹 윈도우 인공지능 인터베이스 출시 커뮤니티에디션 코드 클라우드 파이썬 파이어몽키 현대화