
    i                         d Z ddlZddlZddlmZ ej
                  j                  dd       ddlZddlZ ed      Z	e	j                  dd       dZd	Zd
ZdZd Zedk(  r e       Z ede        yy)u;   컨셉 #03 Anti-Polish 배경 이미지 생성 (Gemini API)    N)Pathz&/home/jay/workspace/tools/ai-image-genzB/home/jay/workspace/output/meta-ads/concept-catalog/03-anti-polishT)parentsexist_okzCrumpled notebook paper texture, slightly yellowed with age, natural soft lighting from above, realistic paper wrinkles and fold lines, subtle grain texture, cream and off-white tones, no text, no lines, flat lay photography style, 1080x1080 square formatzgemini-2.5-flash-imagez0https://generativelanguage.googleapis.com/v1betaz3https://www.googleapis.com/auth/generative-languagec            	         t        d       t        d       t        j                  t              } t         dt
         d}d|  dd}dd	t        igigd
ddgid}t        dt
                t        dt        d d  d       t        j                  |||d      }|j                  dk7  rjt        d|j                   d|j                  d d         t        d       d}t         d| d}t        j                  |||d      }|j                          |j                         }|j                  dg       }|st        dt        |      d d        |d   j                  di       j                  dg       }	d }
|	D ]
  }d|v s|}
 n |
5|	D cg c]  }d	|v s|j                  d	d        }}t        d!|d d"        |
d   j                  d#d$      }|
d   d%   }t!        j"                  |      }d&|v rd'nd(}t$        d)| z  }|j'                  |       |j)                         j*                  d*z  }t        d+| d,|d-d.| d/       |S c c}w )0Nu5   [Step 1] Gemini API로 배경 이미지 생성 중...u      SA 토큰 인증 방식 사용z/models/z:generateContentzBearer zapplication/json)AuthorizationzContent-TypepartstextresponseModalitiesIMAGETEXT)contentsgenerationConfigu
     모델: u     프롬프트: P   z...x   )headersjsontimeout   u     [오류] HTTP z: i  u0     Fallback: gemini-3-pro-image-preview 시도...zgemini-3-pro-image-preview
candidatesu   응답에 candidates 없음: i,  r   content
inlineData u'   이미지 데이터 없음. 텍스트:    mimeTypez
image/jpegdatajpegz.jpgz.pngbgi   u$     [완료] 배경 이미지 저장: z (z.0fz KB, ))printgcloud_authget_service_account_tokenGEMINI_SCOPEGEMINI_API_BASEMODEL_ID	BG_PROMPTrequestspoststatus_coder	   raise_for_statusr   getRuntimeErrorstrbase64	b64decode
OUTPUT_DIRwrite_bytesstatst_size)tokenurlr   payloadresponsefallback_modelurl2r   r   r   
image_partpartp
text_parts	mime_type	image_b64image_bytesextbg_pathsize_kbs                       f/home/jay/workspace/.worktrees/task-2116-dev1/output/meta-ads/concept-catalog/03-anti-polish/gen_bg.pygenerate_bgrD      s   	
AB 

,-11,?EXhZ/?
@C"5'**G  34561GV3DEG
 
Jxj
!"	Ys^,C
01}}S'MHs" !5!5 6bt9L8MNO@A5!"(>*::JK==wWcR!!#==?D,+J:3t9Tc?:KLMMqMi,00"=EJ 4J
 16FA&A+aeeFB'F
FDZPRQR^DTUVV<(,,ZFI<(0I""9-Ki'&VCRu:%G$lln$$t+G	0	GC=i[XY
Z[N Gs   	II__main__z	
BG_PATH=)__doc__r-   syspathlibr   pathinsertr    r&   r/   mkdirr%   r$   r#   r"   rD   __name__rA   r        rC   <module>rO      s    A  
  ; <  VW
 
    -: 
 $DD9x zmG	Jwi
 ! rN   