
    Ci                        d Z ddlZddlZddlZddlmZ ej                  j                  dd        ed      Z ed      Z	ddd	Z
d
ededefdZd
ededefdZdedefdZd Zedk(  r ej$                   e              yy)uI   Cell-4 GA × 정당한 보상 배너 배경 이미지 생성 스크립트    N)Pathz&/home/jay/workspace/tools/ai-image-genz1/home/jay/workspace/output/banners/cell-4-ga-fairzZ/home/jay/workspace/output/meta-ads/concept-catalog/48-madstars-digital-interactive/bg.jpga  Dramatic aerial view of a crossroads intersection at night in a Korean city, red traffic lights reflecting on wet asphalt, moody dark atmosphere with red and black tones, cinematic photography style, photorealistic urban scene, no people, no text, no logos. Square 1:1 format.zWide cinematic view of a dark Korean financial district at night, red neon signs reflecting on glass buildings, urgent and dramatic atmosphere, rain-wet streets, photorealistic, no people, no text, no logos. Wide landscape 1.91:1 format.)zbg-cell4-1080zbg-cell4-1200promptoutput_pathreturnc           	         ddl }t        j                  j                  dd      }d| }dd| igigdd	d
gid}t	        d|j
                   d       	 |j                  ||d      }|j                          |j                         }|j                  dg       }|st	        d|        y|d   j                  di       j                  dg       D ]R  }	d|	v st        j                  |	d   d         }
|j                  |
       t	        d| dt        |
      dz   d        y t	        d       y# t        $ r}t	        d|        Y d}~yd}~ww xY w)u-   Gemini REST API (API 키)로 이미지 생성r   NGEMINI_API_KEY'AIzaSyDEy7IcOoTbQsI4nxfPOw3ZFbYqEL_PgFUzghttps://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent?key=partstextresponseModalitiesTEXTIMAGE)contentsgenerationConfigu     Gemini API 호출 중: z ...Z   jsontimeout
candidatesu     [WARN] candidates 없음: Fcontent
inlineDatadata     [OK] 저장:  (   KB)Tu      [WARN] 이미지 파트 없음u     [ERROR] API 호출 실패: )requestsosenvirongetprintnamepostraise_for_statusr   base64	b64decodewrite_byteslen	Exception)r   r   r   api_keyurlpayloadrespr   r   part	img_byteses               J/home/jay/workspace/output/banners/versions/v1460/cell-4-ga-fair/gen_bg.pygenerate_with_api_keyr2      su   jjnn-/XYGst{s|
}C  01231FG3DEG
 
%k&6&6%7t
<=}}Sw};yy{XXlB/
078qM%%i488"E 	Dt#",,T,-?-GH	''	2}Bs9~t7K6LCPQ	 	02 -aS12s,   AD0 *,D0 AD0 #D0 0	E9EEc                    ddl }t        j                  j                  dd      }d| }d|j                  v rdnd}d	| igd
|dddd}t        d|j                   d| d       	 |j                  ||d      }|j                          |j                         }|j                  dg       }	|	st        d|        y|	d   j                  dd      }
|
st        d       yt        j                  |
      }|j                  |       t        d| dt        |      dz   d       y# t        $ r}t        d|        Y d}~yd}~ww xY w)u'   Imagen 3 API로 이미지 생성 시도r   Nr   r	   z\https://generativelanguage.googleapis.com/v1beta/models/imagen-4.0-generate-001:predict?key=1080z1:1z16:9r      	block_few
dont_allow)sampleCountaspectRatiosafetyFilterLevelpersonGeneration)	instances
parametersu     Imagen 3 API 호출 중: r   z) ...r   r   predictionsu     [WARN] predictions 없음: FbytesBase64Encoded u#     [WARN] 이미지 데이터 없음r   r   r   Tu$     [ERROR] Imagen API 호출 실패: )r   r   r   r    r"   r!   r#   r$   r   r%   r&   r'   r(   r)   )r   r   r   r*   r+   aspectr,   r-   r   r>   b64r/   r0   s                r1   
try_imagenrC   E   sd   jjnn-/XYGhiphq
rC 0 00UfF  ()!!, ,	
G 
'(8(8'9F85
IJ}}Sw};yy{hh}b11$89!n  !5r:79$$S)		*}Bs9~t/C.DCHI 4QC89s&   &AD% ="D%  AD% %	E.EEc                     ddl }t        j                         r,|j                  t        |        t	        dt         d|         yt	        dt                y)u   폴백 이미지 복사r   Nz  [FALLBACK] u    → Tu#     [ERROR] 폴백 파일도 없음: F)shutilFALLBACK_BGexistscopy2r!   )r   rE   s     r1   use_fallbackrI   s   sJ    [+.k]%}=>	/}
=>    c                     t         j                  dd       i } t        j                         D ]P  \  }}t         | dz  }t	        d| d       t        ||      }|st        ||      }|st        |      }|rdnd| |<   R t	        d       | j                         D ]  \  }}t	        d	| d
|         t        d | j                         D              rdS dS )NT)parentsexist_okz.pngz
[u   ] 배경 생성 시작OKFAILEDu   
=== 배경 생성 결과 ===z  z: c              3   &   K   | ]	  }|d k(    yw)rN   N ).0vs     r1   	<genexpr>zmain.<locals>.<genexpr>   s     8!AI8s   r   r5   )

OUTPUT_DIRmkdirPROMPTSitemsr!   rC   r2   rI   allvalues)resultsr"   r   outokstatuss         r1   mainr_   ~   s    TD1G 1fdV4=(D6/01 $ &vs3B c"B "1" 

*+ %f4&6(#$% 8w~~'7881?a?rJ   __main__)__doc__r%   r   syspathlibr   pathinsertrU   rF   rW   strboolr2   rC   rI   r_   __name__exitrQ   rJ   r1   <module>rj      s    O  	 
  ; <EF
op		( $# $D $T $N+s + +$ +\d t @8 zCHHTV rJ   