์ด ๋ ํฌ์งํ ๋ฆฌ๋ ์ดํ์ฌ์๋ํ๊ต 2025-1ํ๊ธฐ ์บก์คํค๋์์ธ โ๊ทธ๋ก์ฐโ ์์ ์ 28ํ HUK ํ๋ก์ ํธ์ธ memoir์ AI ๋ถ๋ถ์ ๋ค๋ฃจ๊ณ ์์ต๋๋ค.
๋ณธ ํ๋ก์ ํธ๋ open source AI ๋ชจ๋ธ์ธ StyleShot์ ์ฌ์ฉํ์ฌ, ์ฌ์ฉ์๊ฐ ์ ํํ ์คํ์ผ ์ด๋ฏธ์ง๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ์ธํ๋ ์ ์ ํฐ์ผ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ์ FastAPI ์๋ฒ๋ก ์ ๊ณตํฉ๋๋ค.
๋จผ์ ํ๋ก์ ํธ ๋ ํฌ์งํ ๋ฆฌ์ StyleShot ๋ชจ๋ธ์ ๋ก์ปฌ์ ํด๋ก ํฉ๋๋ค.
# memoir AI ์ฝ๋ ํด๋ก
git clone https://github.com/capstone-huk/AIcode.git
# StyleShot ๋ชจ๋ธ ํด๋ก (memoir ํด๋ ๋ด๋ถ์์ ์คํ)
cd AIcode/memoir
git clone https://github.com/open-mmlab/StyleShot์๋ ๋ช ๋ น์ด๋ฅผ ํตํด Python ๊ฐ์ํ๊ฒฝ์ ๋ง๋ค๊ณ ํ์ํ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
# Conda ๊ฐ์ํ๊ฒฝ ์์ฑ ๋ฐ ํ์ฑํ
conda create -n memoir python=3.10 -y
conda activate memoir
# requirements.txt ์ค์น
pip install -r requirements.txtStyleShot ๋ชจ๋ธ์ ์คํํ๊ธฐ ์ํด ํ์ํ ๊ฐ์ค์น(weight) ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
์๋ ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด memoir/models/ ํด๋๊ฐ ์์ฑ๋๊ณ , ๊ทธ ์์ ํ์ํ ๋ชจ๋ธ ํ์ผ๋ค์ด ์ ์ฅ๋ฉ๋๋ค.
# ์คํ ๊ถํ ๋ถ์ฌ
chmod +x download_weights.sh
# ๊ฐ์ค์น ๋ค์ด๋ก๋ ์คํฌ๋ฆฝํธ ์คํ
./download_weights.shS3 ์ฐ๋์ ์ํด .env ํ์ผ์ ์ค์ ํด์ผ ํฉ๋๋ค.
memoir ํด๋ ๋ด์ .env ํ์ผ์ ์์ฑํ๊ณ ๋ฉ์ผ๋ก ์๋ด๋ฐ์ ์ฝ๋๋ฅผ ๋ฃ์ด ์ ์ฅํฉ๋๋ค.
main.py๋ FastAPI ๊ธฐ๋ฐ ์๋ฒ์ ๋ฉ์ธ ์ฝ๋๋ก, ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ๊ธฐ๋ฅ์ ํฌํจํฉ๋๋ค:
- ์ฌ์ฉ์๊ฐ ์ ํํ ์คํ์ผ ์ด๋ฏธ์ง(
style_reference)์ URL๋ค์ List ํํ๋ก ์ ๋ ฅ๋ฐ์ต๋๋ค. - ๊ฐ ์คํ์ผ ์ด๋ฏธ์ง URL์ ๋ํด ๋ณ๋ ฌ๋ก ํฐ์ผ ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค. (
/generate/์๋ํฌ์ธํธ ์ฌ์ฉ)content_imageํด๋์ ์๋ ์ฌ์ง๋ค ์ค ๋ฌด์์๋ก ํ๋๋ฅผ ์ ํํ์ฌ StyleShot ๋ชจ๋ธ์ ์ ๋ ฅํฉ๋๋ค.- ์ ํ๋ ์คํ์ผ ์ด๋ฏธ์ง์ content ์ด๋ฏธ์ง๋ฅผ ์กฐํฉํด ํฐ์ผ ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค.
- ์์ฑ๋ ์ด๋ฏธ์ง๋ฅผ S3์ ์ ๋ก๋ํ๊ณ , ๊ฒฐ๊ณผ ์ด๋ฏธ์ง์ URL์ ์๋ต์ผ๋ก ๋ฐํํฉ๋๋ค.
- ํ
์คํธ์ฉ ์๋ํฌ์ธํธ์ธ
/test-upload/๋ฅผ ํตํด S3 ์ ๋ก๋ ๊ธฐ๋ฅ์ ํ์ธํ ์ ์์ต๋๋ค. - ๊ทธ ์ธ์๋ CORS ์ค์ , S3 ์ ๋ก๋ ํจ์, FastAPI ์ฑ ์ด๊ธฐํ ๊ด๋ จ ์ฝ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์๋ ๋ช ๋ น์ด๋ฅผ ํตํด ๋ก์ปฌ์์ FastAPI ์๋ฒ๋ฅผ ์คํํ ์ ์์ต๋๋ค:
uvicorn main:app --host 0.0.0.0 --port 8000FastAPI ์๋ฒ๊ฐ ์คํ ์ค์ผ ๋, ์๋์ ๋ช ๋ น์ด๋ก API๋ฅผ ํ ์คํธํ ์ ์์ต๋๋ค.
curl -X POST http://localhost:8000/test-upload/curl -X POST http://localhost:8000/generate/ \
-F "style_url=https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Golde33443.jpg/640px-Golde33443.jpg"ํด๋น API๋ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์คํ์ผ ์ด๋ฏธ์ง URL์ ๊ธฐ๋ฐ์ผ๋ก content ์ด๋ฏธ์ง๋ฅผ ํฉ์ฑํ์ฌ ์๋ก์ด ํฐ์ผ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ํ, ๊ฒฐ๊ณผ๋ฅผ S3์ ์ ์ฅํ๊ณ ํด๋น URL์ ๋ฐํํฉ๋๋ค.
- ๋ณธ ๋ ํฌ์งํ ๋ฆฌ๋ ์ดํ์ฌ์๋ํ๊ต 2025-1ํ๊ธฐ ์บก์คํค๋์์ธ '๊ทธ๋ก์ฐ' ์์ ์ 28ํ HUK์ ํ๋ก์ ํธ memoir์์, AI ์ด๋ฏธ์ง ์์ฑ ์๋ฒ ๋ถ๋ถ๋ง์ ๋ค๋ฃน๋๋ค.
- ์ฌ์ฉ์๋ ์คํ์ผ ์ด๋ฏธ์ง URL์ ์ ๋ ฅํ๋ฉด, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ ํฐ์ผ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- ์ด๋ฏธ์ง ์์ฑ์๋ ์คํ์์ค ๋ชจ๋ธ StyleShot์ ์ฌ์ฉํ๋ฉฐ, FastAPI๋ฅผ ํตํด API๋ก ๋ฐฐํฌ๋ฉ๋๋ค.
- ์ต์ข ์์ฑ๋ ํฐ์ผ ์ด๋ฏธ์ง๋ AWS S3์ ์ ์ฅ๋๋ฉฐ, ํด๋ผ์ด์ธํธ๋ ํด๋น URL์ ์๋ต์ผ๋ก ๋ฐ์ต๋๋ค.
- AI ๋ชจ๋ธ: StyleShot
- ์๋ฒ ํ๋ ์์ํฌ: FastAPI
- ๋ชจ๋ธ ๋ฐฐํฌ ๋ฐฉ์: ๋ก์ปฌ ๋๋ EC2 ํ๊ฒฝ์์
uvicorn์คํ - ์ด๋ฏธ์ง ์ ์ฅ: AWS S3 ์ฐ๋
- ๋ณ๋ ฌ ์ฒ๋ฆฌ: ์ฌ๋ฌ ์คํ์ผ ์ด๋ฏธ์ง ์์ฒญ์ ๋์์ ์ฒ๋ฆฌ
- StyleShot ์๋ณธ ๋ ํฌ์งํ ๋ฆฌ: https://github.com/open-mmlab/StyleShot
- ํฐ์ผ ์ด๋ฏธ์ง๋ ๊ฐ์ธ์ ์ธ ๊ฐ์ ๊ธฐ๋ก ๋ฐ ์ ์ ์์นด์ด๋น ๊ฒฝํ์ ์ํด ์์ฑ๋ฉ๋๋ค.