refactor: 이미지 생성 API 변경 (dall-e -> gpt)

This commit is contained in:
OhSeongRak 2025-06-16 13:05:11 +09:00
parent 53eccb3a2b
commit 61a4837757
2 changed files with 29 additions and 21 deletions

View File

@ -173,32 +173,23 @@ class PosterServiceV3:
example_links = "\n".join([f"- {link}" for link in self.example_images])
prompt = f"""
메인 이미지 URL을 참조하여, "글이 없는" 심플한 카페 포스터를 디자인해주세요.
메인 이미지 URL을 참조하여, "글이 없는" 심플한 포스터를 디자인해주세요.
**핵심 기준 이미지:**
메인 이미지 URL: {main_image_url}
이미지 URL에 들어가 이미지를 다운로드 , 이미지를 그대로 반영한 홍보 포스터를 디자인해주세요.
심플한 배경이 중요합니다.
메인 이미지를 전혀 건들지 말고, 배경만 새로운 홍보 포스터 배경으로 교체해주세요.
메인 이미지는 100% 유지해야 합니다.
AI가 생성하지 않은 것처럼 현실적인 요소를 반영해주세요.
**절대 필수 조건:**
- 어떤 형태의 텍스트, 글자, 문자, 숫자도 절대 포함하지 !!!! - 가장 중요
- 위의 메인 이미지를 임의 변경 없이, 포스터의 중심 요소로 포함할
- 하나의 포스터만 생성해주세요
- 메인 이미지의 색감과 분위기를 살려서 심플한 포스터 디자인
- 메인 이미지의 색감과 분위기를 살려주세요
- {example_links} 이미지 형태를 참고하여 홍보 포스터 생성
- 메인 이미지가 돋보이도록 배경과 레이아웃 구성
- 확실하지도 않은 문자 절대 생성 x
**특별 요구사항:**
{request.requirement}
**반드시 제외할 요소:**
- 모든 형태의 텍스트 (한글, 영어, 숫자, 기호)
- 메뉴판, 가격표, 간판
- 글자가 적힌 모든 요소
- 브랜드 로고나 문자
"""
return prompt

View File

@ -78,19 +78,36 @@ class AIClient:
raise Exception("OpenAI API 키가 설정되지 않았습니다.")
response = self.openai_client.images.generate(
model="dall-e-3",
model="gpt-image-1",
prompt=prompt,
size="1024x1024",
quality="hd", # 고품질 설정
style="vivid", # 또는 "natural"
size=size,
n=1,
)
return response.data[0].url
# base64를 파일로 저장
import base64
from datetime import datetime
b64_data = response.data[0].b64_json
image_data = base64.b64decode(b64_data)
# 로컬 파일 저장
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
filename = f"poster_{timestamp}.png"
filepath = os.path.join('uploads', 'temp', filename)
os.makedirs(os.path.dirname(filepath), exist_ok=True)
with open(filepath, 'wb') as f:
f.write(image_data)
print(f"✅ 이미지 저장 완료: {filepath}")
# 그냥 파일 경로만 반환
return filepath
except Exception as e:
print(f"OpenAI 이미지 생성 실패: {e}")
raise Exception(f"이미지 생성 중 오류가 발생했습니다: {str(e)}")
raise Exception(f"이미지 생성 실패: {str(e)}")
def generate_text(self, prompt: str, max_tokens: int = 1000) -> str:
"""