fantaxy commited on
Commit
064c149
ยท
verified ยท
1 Parent(s): c64c166

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -75
app.py CHANGED
@@ -9,10 +9,6 @@ import random
9
  import os
10
  from huggingface_hub import InferenceClient
11
  from fpdf import FPDF
12
- from transformers import pipeline
13
- import torch
14
- from diffusers import StableDiffusionXLPipeline
15
- import uuid
16
 
17
  def setup_session():
18
  try:
@@ -207,7 +203,6 @@ def get_title_prompt(category):
207
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
208
  3. ํŠนํžˆ ๋„ˆ๋Š” '์ •๋ณด์„ฑ(Informative)' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
209
  4. ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
210
-
211
  ##[๋ธ”๋กœ๊ทธ ์ œ๋ชฉ ์ž‘์„ฑ ๊ทœ์น™]
212
  1. ๋ธ”๋กœ๊ทธ ์ œ๋ชฉ 10๊ฐœ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ œ๋ชฉ 10๊ฐœ๋งŒ ์ถœ๋ ฅํ•˜๋ผ.
213
  2. ์ œ๋ชฉ์€ 40์ž ์ด๋‚ด๋กœ ์ž‘์„ฑํ•˜๋ผ.
@@ -223,7 +218,6 @@ def get_title_prompt(category):
223
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
224
  3. ํŠนํžˆ ๋„ˆ๋Š” '๊ฑด๊ฐ•, ์˜ํ•™ ์ •๋ณด' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํ„ฐ์ด๋‹ค.
225
  4. ์ •ํ™•ํ•˜๊ณ  ์ „๋ฌธ์ ์ธ ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
226
-
227
  ##[๋ธ”๋กœ๊ทธ ์ œ๋ชฉ ์ž‘์„ฑ ๊ทœ์น™]
228
  1. ๋ธ”๋กœ๊ทธ ์ œ๋ชฉ 10๊ฐœ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ œ๋ชฉ 10๊ฐœ๋งŒ ์ถœ๋ ฅํ•˜๋ผ.
229
  2. ์ œ๋ชฉ์€ 40์ž ์ด๋‚ด๋กœ ์ž‘์„ฑํ•˜๋ผ.
@@ -241,7 +235,6 @@ def get_outline_prompt(category):
241
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
242
  3. ํŠนํžˆ ๋„ˆ๋Š” '์ •๋ณด์„ฑ(Informative)' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
243
  4. ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
244
-
245
  ##[์†Œ์ฃผ์ œ ์ž‘์„ฑ๊ทœ์น™]
246
  1. [๊ธฐ๋ณธ๊ทœ์น™]์„ ๊ธฐ๋ณธ ์ ์šฉํ•˜๋ผ.
247
  2. ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์†Œ์ฃผ์ œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
@@ -251,7 +244,6 @@ def get_outline_prompt(category):
251
  6. ๋…์ž๊ฐ€ ์–ป๊ณ ์ž ํ•˜๋Š” ์ •๋ณด์™€ ํฅ๋ฏธ๋กœ์šด ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์†Œ์ฃผ์ œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
252
  7. ์†Œ์ฃผ์ œ์˜ ๋ณธ๋ก ์˜ ๋‚ด์šฉ์ด ์ถฉ๋ถ„ํžˆ ์ž‘์„ฑ๋  ์ˆ˜ ์žˆ๋Š” ์†Œ์ฃผ์ œ๋กœ ์„ค์ •ํ•˜๋ผ.
253
  8. ๋ฐ˜๋“œ์‹œ [์†Œ์ฃผ์ œ ๊ตฌ์„ฑ]์— ๋งž๊ฒŒ ์ถœ๋ ฅํ•˜๋ผ.
254
-
255
  ##[์†Œ์ฃผ์ œ ๊ตฌ์„ฑ]
256
  1. ๋ฐ˜๋“œ์‹œ [๋„์ž…๋ถ€] - 1๊ฐœ, [๋ณธ๋ก 1~5] - 5๊ฐœ, [๊ฒฐ๋ก ] - 1๊ฐœ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ผ.
257
  2. ๋ฐ˜๋“œ์‹œ [๋„์ž…๋ถ€]์™€ [๊ฒฐ๋ก ]์˜ ์ œ๋ชฉ์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
@@ -264,7 +256,6 @@ def get_outline_prompt(category):
264
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
265
  3. ํŠนํžˆ ๋„ˆ๋Š” '๊ฑด๊ฐ•, ์˜ํ•™ ์ •๋ณด' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํ„ฐ์ด๋‹ค.
266
  4. ์ •ํ™•ํ•˜๊ณ  ์ „๋ฌธ์ ์ธ ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
267
-
268
  ##[์†Œ์ฃผ์ œ ์ž‘์„ฑ๊ทœ์น™]
269
  1. [๊ธฐ๋ณธ๊ทœ์น™]์„ ๊ธฐ๋ณธ ์ ์šฉํ•˜๋ผ.
270
  2. ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์†Œ์ฃผ์ œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
@@ -274,7 +265,6 @@ def get_outline_prompt(category):
274
  6. ๋…์ž๊ฐ€ ์–ป๊ณ ์ž ํ•˜๋Š” ์ •ํ™•ํ•œ ์ •๋ณด์™€ ๊ฑด๊ฐ•ํ•œ ์ƒํ™œ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์†Œ์ฃผ์ œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
275
  7. ์†Œ์ฃผ์ œ์˜ ๋ณธ๋ก ์˜ ๋‚ด์šฉ์ด ์ถฉ๋ถ„ํžˆ ์ž‘์„ฑ๋  ์ˆ˜ ์žˆ๋Š” ์†Œ์ฃผ์ œ๋กœ ์„ค์ •ํ•˜๋ผ.
276
  8. ๋ฐ˜๋“œ์‹œ [์†Œ์ฃผ์ œ ๊ตฌ์„ฑ]์— ๋งž์ถฐ ์†Œ์ฃผ์ œ๋งŒ ์ถœ๋ ฅํ•˜๋ผ.
277
-
278
  ##[์†Œ์ฃผ์ œ ๊ตฌ์„ฑ]
279
  1. ๋ฐ˜๋“œ์‹œ [๋„์ž…๋ถ€] - 1๊ฐœ, [๋ณธ๋ก 1~5] - 5๊ฐœ, [๊ฒฐ๋ก ] - 1๊ฐœ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ผ.
280
  2. ๋ฐ˜๋“œ์‹œ [๋„์ž…๋ถ€]์™€ [๊ฒฐ๋ก ]์˜ ์ œ๋ชฉ์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
@@ -289,7 +279,6 @@ def get_blog_post_prompt(category):
289
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
290
  3. ํŠนํžˆ ๋„ˆ๋Š” '์ •๋ณด์„ฑ(Informative)' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
291
  4. ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
292
-
293
  ##[ํ…์ŠคํŠธ ์ž‘์„ฑ ๊ทœ์น™]
294
  1. ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅ๋œ [์†Œ์ฃผ์ œ]์— ๋งž๊ฒŒ ํ…์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
295
  2. ์†Œ์ฃผ์ œ์˜ [๋ณธ๋ก ] 5๊ฐœ๋ฅผ ๊ฐ๊ฐ 300์ž ์ด์ƒ์œผ๋กœ ์ž‘์„ฑํ•˜๋ผ.
@@ -301,13 +290,11 @@ def get_blog_post_prompt(category):
301
  8. ์ฃผ์ œ์™€ ์ƒํ™ฉ์— ๋งž๋Š” ์ ์ ˆํ•œ ์–ดํœ˜๋ฅผ ์„ ํƒํ•˜๋ผ.
302
  9. ํ•œ๊ธ€ ์–ดํœ˜์˜ ๋‚œ์ด๋„๋Š” ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๋ผ.
303
  10. ์ ˆ๋Œ€ ๋ฌธ์žฅ์˜ ๋์— '๋‹ต๋‹ˆ๋‹ค'๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง ๊ฒƒ.
304
-
305
  ###[์ •๋ณด์„ฑ ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ๊ทœ์น™]
306
  1. ๋…์ž๊ฐ€ ์–ป๊ณ ์ž ํ•˜๋Š” ์œ ์šฉํ•œ ์ •๋ณด์™€ ํฅ๋ฏธ๋กœ์šด ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
307
  2. ๋…์ž์˜ ๊ณต๊ฐ์„ ์ด๋Œ์–ด๋‚ด๊ณ  ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
308
  3. ๋…์ž์˜ ๊ด€์‹ฌ์‚ฌ๋ฅผ ์ถฉ์กฑ์‹œํ‚ค๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
309
  4. ๋…์ž์—๊ฒŒ ์ด๋“์ด ๋˜๋Š” ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
310
-
311
  ##[์ œ์™ธ ๊ทœ์น™]
312
  1. ๋ฐ˜๋“œ์‹œ ๋น„์†์–ด ๋ฐ ์š•์„ค(expletive, abusive language, slang)์€ ์ œ์™ธํ•˜๋ผ.
313
  2. ๋ฐ˜๋“œ์‹œ ์ฐธ๊ณ ๊ธ€์˜ ๋งํฌ(URL)๋Š” ์ œ์™ธํ•˜๋ผ.
@@ -323,7 +310,6 @@ def get_blog_post_prompt(category):
323
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
324
  3. ํŠนํžˆ ๋„ˆ๋Š” '๊ฑด๊ฐ•, ์˜ํ•™ ์ •๋ณด' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํ„ฐ์ด๋‹ค.
325
  4. ์ •ํ™•ํ•˜๊ณ  ์ „๋ฌธ์ ์ธ ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
326
-
327
  ##[ํ…์ŠคํŠธ ์ž‘์„ฑ ๊ทœ์น™]
328
  1. ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅ๋œ [์†Œ์ฃผ์ œ]์— ๋งž์ถฐ์„œ ํ…์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
329
  2. ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅ๋œ [์†Œ์ฃผ์ œ]๋Š” ๋ณ€๊ฒฝํ•˜์ง€ ๋ง๊ณ  ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋ผ.
@@ -335,13 +321,11 @@ def get_blog_post_prompt(category):
335
  7. ์–ดํˆฌ๋Š” ์ œ๊ณต๋œ ์ฐธ๊ณ ๊ธ€์˜ ์–ดํˆฌ๋ฅผ ๋ฐ˜์˜ํ•˜๋˜, '๊ฑด๊ฐ•, ์˜ํ•™ ์ •๋ณด' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํ„ฐ๋กœ์„œ ์ž‘์„ฑํ•˜๋ผ.
336
  8. ์ ˆ๋Œ€๋กœ ์ฐธ๊ณ ๊ธ€์„ ํ•œ๋ฌธ์žฅ ์ด์ƒ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜์ง€ ๋ง ๊ฒƒ.
337
  9. ์ฃผ์ œ์™€ ์ƒํ™ฉ์— ๋งž๋Š” ์ ์ ˆ๏ฟฝ๏ฟฝ ์–ดํœ˜๋ฅผ ์„ ํƒํ•˜๋ผ.
338
-
339
  ###[์ •๋ณด์„ฑ ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ๊ทœ์น™]
340
  1. ๋…์ž๊ฐ€ ์–ป๊ณ ์ž ํ•˜๋Š” ์ •ํ™•ํ•œ ์ •๋ณด์™€ ๊ฑด๊ฐ•ํ•œ ์ƒํ™œ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์†Œ์ฃผ์ œ์— ๋งž๊ฒŒ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•˜๋ผ.
341
  2. ๋…์ž์˜ ๊ณต๊ฐ์„ ์ด๋Œ์–ด๋‚ด๊ณ  ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
342
  3. ๋…์ž์˜ ๊ด€์‹ฌ์‚ฌ๋ฅผ ์ถฉ์กฑ์‹œํ‚ค๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
343
  4. ๋…์ž์—๊ฒŒ ์ด๋“์ด ๋˜๋Š” ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
344
-
345
  ##[์ œ์™ธ ๊ทœ์น™]
346
  1. ๋ฐ˜๋“œ์‹œ ์ฐธ๊ณ ๊ธ€์˜ ๋งํฌ(URL)๋Š” ์ œ์™ธํ•˜๋ผ.
347
  2. ์ฐธ๊ณ ๊ธ€์—์„œ '๋งํฌ๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”'์™€ ๊ฐ™์€ ๋งํฌ ์ด๋™์˜ ๋ฌธ๊ตฌ๋Š” ์ œ์™ธํ•˜๋ผ.
@@ -510,60 +494,44 @@ def update_prompts_and_description(category, style):
510
  style_description = get_style_description(style)
511
  return style_description
512
 
513
- translator = pipeline("translation", model="Helsinki-NLP/opus-mt-ko-en")
514
-
515
- device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
516
 
517
- pipe = StableDiffusionXLPipeline.from_pretrained(
518
- "SG161222/RealVisXL_V4.0",
519
- torch_dtype=torch.float16,
520
- use_safetensors=True,
521
- add_watermarker=False,
522
- variant="fp16"
523
- ).to(device)
524
-
525
- def generate_image(prompt: str):
526
- # ํ•œ๊ธ€ ์ž…๋ ฅ ๊ฐ์ง€ ๋ฐ ๋ฒˆ์—ญ
527
- if any('\uac00' <= char <= '\ud7a3' for char in prompt):
528
- translated = translator(prompt, max_length=512)
529
- prompt = translated[0]['translation_text']
530
 
531
- # Hi-res์™€ 3840x2160 ์Šคํƒ€์ผ ์ ์šฉ
532
- prompt = f"hyper-realistic 8K image of {prompt}. ultra-detailed, lifelike, high-resolution, sharp, vibrant colors, photorealistic"
533
 
534
- # ๊ณ ์ •๋œ ์„ค์ •๊ฐ’
535
- negative_prompt = "cartoonish, low resolution, blurry, simplistic, abstract, deformed, ugly, (deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), disconnected limbs, mutation, mutated, disgusting, amputation"
536
- width = 1024
537
- height = 1024
538
- guidance_scale = 6
539
- num_inference_steps = 100
540
- seed = random.randint(0, 2**32 - 1)
541
- generator = torch.Generator().manual_seed(seed)
542
 
543
- image = pipe(
544
- prompt=prompt,
545
- negative_prompt=negative_prompt,
546
- width=width,
547
- height=height,
548
- guidance_scale=guidance_scale,
549
- num_inference_steps=num_inference_steps,
550
- generator=generator,
551
- ).images[0]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
552
 
553
- unique_name = str(uuid.uuid4()) + ".png"
554
- image.save(unique_name)
555
- return unique_name
556
-
557
- def generate_images(blog_post):
558
- images = []
559
- lines = blog_post.split('\n')
560
- for i in range(5):
561
- if i < len(lines):
562
- prompt = lines[i]
563
- else:
564
- prompt = random.choice(lines)
565
- image_path = generate_image(prompt)
566
- images.append(image_path)
567
  return images
568
 
569
 
@@ -619,14 +587,6 @@ with gr.Blocks() as demo:
619
  outputs=[references1, references2, references3, outline_result, outline_token_output, output, token_output]
620
  )
621
 
622
- save_pdf_btn = gr.Button("PDF๋กœ ์ €์žฅํ•˜๊ธฐ")
623
- pdf_output = gr.File(label="์ƒ์„ฑ๋œ PDF ํŒŒ์ผ")
624
-
625
- save_pdf_btn.click(fn=save_content_to_pdf, inputs=[output], outputs=[pdf_output])
626
-
627
- category.change(fn=update_prompts_and_description, inputs=[category, style], outputs=[style_description])
628
- style.change(fn=update_prompts_and_description, inputs=[category, style], outputs=[style_description])
629
-
630
  # ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฒ„ํŠผ ๋ฐ ์ถœ๋ ฅ ์ถ”๊ฐ€
631
  generate_images_btn = gr.Button("์ด๋ฏธ์ง€ ์ƒ์„ฑํ•˜๊ธฐ")
632
  image_outputs = [gr.Image(label=f"์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€ {i+1}") for i in range(5)]
@@ -635,8 +595,8 @@ with gr.Blocks() as demo:
635
  fn=generate_images,
636
  inputs=[output],
637
  outputs=image_outputs
638
- )
639
-
640
  save_pdf_btn = gr.Button("PDF๋กœ ์ €์žฅํ•˜๊ธฐ")
641
  pdf_output = gr.File(label="์ƒ์„ฑ๋œ PDF ํŒŒ์ผ")
642
 
 
9
  import os
10
  from huggingface_hub import InferenceClient
11
  from fpdf import FPDF
 
 
 
 
12
 
13
  def setup_session():
14
  try:
 
203
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
204
  3. ํŠนํžˆ ๋„ˆ๋Š” '์ •๋ณด์„ฑ(Informative)' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
205
  4. ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
 
206
  ##[๋ธ”๋กœ๊ทธ ์ œ๋ชฉ ์ž‘์„ฑ ๊ทœ์น™]
207
  1. ๋ธ”๋กœ๊ทธ ์ œ๋ชฉ 10๊ฐœ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ œ๋ชฉ 10๊ฐœ๋งŒ ์ถœ๋ ฅํ•˜๋ผ.
208
  2. ์ œ๋ชฉ์€ 40์ž ์ด๋‚ด๋กœ ์ž‘์„ฑํ•˜๋ผ.
 
218
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
219
  3. ํŠนํžˆ ๋„ˆ๋Š” '๊ฑด๊ฐ•, ์˜ํ•™ ์ •๋ณด' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํ„ฐ์ด๋‹ค.
220
  4. ์ •ํ™•ํ•˜๊ณ  ์ „๋ฌธ์ ์ธ ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
 
221
  ##[๋ธ”๋กœ๊ทธ ์ œ๋ชฉ ์ž‘์„ฑ ๊ทœ์น™]
222
  1. ๋ธ”๋กœ๊ทธ ์ œ๋ชฉ 10๊ฐœ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ œ๋ชฉ 10๊ฐœ๋งŒ ์ถœ๋ ฅํ•˜๋ผ.
223
  2. ์ œ๋ชฉ์€ 40์ž ์ด๋‚ด๋กœ ์ž‘์„ฑํ•˜๋ผ.
 
235
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
236
  3. ํŠนํžˆ ๋„ˆ๋Š” '์ •๋ณด์„ฑ(Informative)' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
237
  4. ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
 
238
  ##[์†Œ์ฃผ์ œ ์ž‘์„ฑ๊ทœ์น™]
239
  1. [๊ธฐ๋ณธ๊ทœ์น™]์„ ๊ธฐ๋ณธ ์ ์šฉํ•˜๋ผ.
240
  2. ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์†Œ์ฃผ์ œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
 
244
  6. ๋…์ž๊ฐ€ ์–ป๊ณ ์ž ํ•˜๋Š” ์ •๋ณด์™€ ํฅ๋ฏธ๋กœ์šด ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์†Œ์ฃผ์ œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
245
  7. ์†Œ์ฃผ์ œ์˜ ๋ณธ๋ก ์˜ ๋‚ด์šฉ์ด ์ถฉ๋ถ„ํžˆ ์ž‘์„ฑ๋  ์ˆ˜ ์žˆ๋Š” ์†Œ์ฃผ์ œ๋กœ ์„ค์ •ํ•˜๋ผ.
246
  8. ๋ฐ˜๋“œ์‹œ [์†Œ์ฃผ์ œ ๊ตฌ์„ฑ]์— ๋งž๊ฒŒ ์ถœ๋ ฅํ•˜๋ผ.
 
247
  ##[์†Œ์ฃผ์ œ ๊ตฌ์„ฑ]
248
  1. ๋ฐ˜๋“œ์‹œ [๋„์ž…๋ถ€] - 1๊ฐœ, [๋ณธ๋ก 1~5] - 5๊ฐœ, [๊ฒฐ๋ก ] - 1๊ฐœ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ผ.
249
  2. ๋ฐ˜๋“œ์‹œ [๋„์ž…๋ถ€]์™€ [๊ฒฐ๋ก ]์˜ ์ œ๋ชฉ์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
 
256
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
257
  3. ํŠนํžˆ ๋„ˆ๋Š” '๊ฑด๊ฐ•, ์˜ํ•™ ์ •๋ณด' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํ„ฐ์ด๋‹ค.
258
  4. ์ •ํ™•ํ•˜๊ณ  ์ „๋ฌธ์ ์ธ ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
 
259
  ##[์†Œ์ฃผ์ œ ์ž‘์„ฑ๊ทœ์น™]
260
  1. [๊ธฐ๋ณธ๊ทœ์น™]์„ ๊ธฐ๋ณธ ์ ์šฉํ•˜๋ผ.
261
  2. ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์†Œ์ฃผ์ œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
 
265
  6. ๋…์ž๊ฐ€ ์–ป๊ณ ์ž ํ•˜๋Š” ์ •ํ™•ํ•œ ์ •๋ณด์™€ ๊ฑด๊ฐ•ํ•œ ์ƒํ™œ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์†Œ์ฃผ์ œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
266
  7. ์†Œ์ฃผ์ œ์˜ ๋ณธ๋ก ์˜ ๋‚ด์šฉ์ด ์ถฉ๋ถ„ํžˆ ์ž‘์„ฑ๋  ์ˆ˜ ์žˆ๋Š” ์†Œ์ฃผ์ œ๋กœ ์„ค์ •ํ•˜๋ผ.
267
  8. ๋ฐ˜๋“œ์‹œ [์†Œ์ฃผ์ œ ๊ตฌ์„ฑ]์— ๋งž์ถฐ ์†Œ์ฃผ์ œ๋งŒ ์ถœ๋ ฅํ•˜๋ผ.
 
268
  ##[์†Œ์ฃผ์ œ ๊ตฌ์„ฑ]
269
  1. ๋ฐ˜๋“œ์‹œ [๋„์ž…๋ถ€] - 1๊ฐœ, [๋ณธ๋ก 1~5] - 5๊ฐœ, [๊ฒฐ๋ก ] - 1๊ฐœ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ผ.
270
  2. ๋ฐ˜๋“œ์‹œ [๋„์ž…๋ถ€]์™€ [๊ฒฐ๋ก ]์˜ ์ œ๋ชฉ์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
 
279
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
280
  3. ํŠนํžˆ ๋„ˆ๋Š” '์ •๋ณด์„ฑ(Informative)' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
281
  4. ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
 
282
  ##[ํ…์ŠคํŠธ ์ž‘์„ฑ ๊ทœ์น™]
283
  1. ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅ๋œ [์†Œ์ฃผ์ œ]์— ๋งž๊ฒŒ ํ…์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
284
  2. ์†Œ์ฃผ์ œ์˜ [๋ณธ๋ก ] 5๊ฐœ๋ฅผ ๊ฐ๊ฐ 300์ž ์ด์ƒ์œผ๋กœ ์ž‘์„ฑํ•˜๋ผ.
 
290
  8. ์ฃผ์ œ์™€ ์ƒํ™ฉ์— ๋งž๋Š” ์ ์ ˆํ•œ ์–ดํœ˜๋ฅผ ์„ ํƒํ•˜๋ผ.
291
  9. ํ•œ๊ธ€ ์–ดํœ˜์˜ ๋‚œ์ด๋„๋Š” ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๋ผ.
292
  10. ์ ˆ๋Œ€ ๋ฌธ์žฅ์˜ ๋์— '๋‹ต๋‹ˆ๋‹ค'๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง ๊ฒƒ.
 
293
  ###[์ •๋ณด์„ฑ ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ๊ทœ์น™]
294
  1. ๋…์ž๊ฐ€ ์–ป๊ณ ์ž ํ•˜๋Š” ์œ ์šฉํ•œ ์ •๋ณด์™€ ํฅ๋ฏธ๋กœ์šด ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
295
  2. ๋…์ž์˜ ๊ณต๊ฐ์„ ์ด๋Œ์–ด๋‚ด๊ณ  ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
296
  3. ๋…์ž์˜ ๊ด€์‹ฌ์‚ฌ๋ฅผ ์ถฉ์กฑ์‹œํ‚ค๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
297
  4. ๋…์ž์—๊ฒŒ ์ด๋“์ด ๋˜๋Š” ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
 
298
  ##[์ œ์™ธ ๊ทœ์น™]
299
  1. ๋ฐ˜๋“œ์‹œ ๋น„์†์–ด ๋ฐ ์š•์„ค(expletive, abusive language, slang)์€ ์ œ์™ธํ•˜๋ผ.
300
  2. ๋ฐ˜๋“œ์‹œ ์ฐธ๊ณ ๊ธ€์˜ ๋งํฌ(URL)๋Š” ์ œ์™ธํ•˜๋ผ.
 
310
  2. ๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค.
311
  3. ํŠนํžˆ ๋„ˆ๋Š” '๊ฑด๊ฐ•, ์˜ํ•™ ์ •๋ณด' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํ„ฐ์ด๋‹ค.
312
  4. ์ •ํ™•ํ•˜๊ณ  ์ „๋ฌธ์ ์ธ ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•œ๋‹ค.
 
313
  ##[ํ…์ŠคํŠธ ์ž‘์„ฑ ๊ทœ์น™]
314
  1. ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅ๋œ [์†Œ์ฃผ์ œ]์— ๋งž์ถฐ์„œ ํ…์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
315
  2. ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅ๋œ [์†Œ์ฃผ์ œ]๋Š” ๋ณ€๊ฒฝํ•˜์ง€ ๋ง๊ณ  ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋ผ.
 
321
  7. ์–ดํˆฌ๋Š” ์ œ๊ณต๋œ ์ฐธ๊ณ ๊ธ€์˜ ์–ดํˆฌ๋ฅผ ๋ฐ˜์˜ํ•˜๋˜, '๊ฑด๊ฐ•, ์˜ํ•™ ์ •๋ณด' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํ„ฐ๋กœ์„œ ์ž‘์„ฑํ•˜๋ผ.
322
  8. ์ ˆ๋Œ€๋กœ ์ฐธ๊ณ ๊ธ€์„ ํ•œ๋ฌธ์žฅ ์ด์ƒ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜์ง€ ๋ง ๊ฒƒ.
323
  9. ์ฃผ์ œ์™€ ์ƒํ™ฉ์— ๋งž๋Š” ์ ์ ˆ๏ฟฝ๏ฟฝ ์–ดํœ˜๋ฅผ ์„ ํƒํ•˜๋ผ.
 
324
  ###[์ •๋ณด์„ฑ ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ๊ทœ์น™]
325
  1. ๋…์ž๊ฐ€ ์–ป๊ณ ์ž ํ•˜๋Š” ์ •ํ™•ํ•œ ์ •๋ณด์™€ ๊ฑด๊ฐ•ํ•œ ์ƒํ™œ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์†Œ์ฃผ์ œ์— ๋งž๊ฒŒ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•˜๋ผ.
326
  2. ๋…์ž์˜ ๊ณต๊ฐ์„ ์ด๋Œ์–ด๋‚ด๊ณ  ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
327
  3. ๋…์ž์˜ ๊ด€์‹ฌ์‚ฌ๋ฅผ ์ถฉ์กฑ์‹œํ‚ค๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
328
  4. ๋…์ž์—๊ฒŒ ์ด๋“์ด ๋˜๋Š” ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
 
329
  ##[์ œ์™ธ ๊ทœ์น™]
330
  1. ๋ฐ˜๋“œ์‹œ ์ฐธ๊ณ ๊ธ€์˜ ๋งํฌ(URL)๋Š” ์ œ์™ธํ•˜๋ผ.
331
  2. ์ฐธ๊ณ ๊ธ€์—์„œ '๋งํฌ๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”'์™€ ๊ฐ™์€ ๋งํฌ ์ด๋™์˜ ๋ฌธ๊ตฌ๋Š” ์ œ์™ธํ•˜๋ผ.
 
494
  style_description = get_style_description(style)
495
  return style_description
496
 
 
 
 
497
 
498
+ def generate_images(blog_post):
499
+ images = []
500
+ lines = blog_post.split('\n')
501
+ title = lines[0].strip()
 
 
 
 
 
 
 
 
 
502
 
503
+ # 1. ์ œ๋ชฉ์„ ์š”์•ฝํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ƒ์„ฑ
504
+ images.append(generate_image(f"Summary of '{title}'"))
505
 
506
+ # ๋„์ž…๋ถ€์™€ ๋ณธ๋ฌธ, ๊ฒฐ๋ก  ์ฐพ๊ธฐ
507
+ intro_index = next((i for i, line in enumerate(lines) if '[๋„์ž…๋ถ€]' in line), -1)
508
+ body_index = next((i for i, line in enumerate(lines) if '[๋ณธ๋ก 1]' in line), -1)
509
+ conclusion_index = next((i for i, line in enumerate(lines) if '[๊ฒฐ๋ก ]' in line), -1)
 
 
 
 
510
 
511
+ # 2. ๋„์ž…๋ถ€ ์š”์•ฝ์œผ๋กœ ์ด๋ฏธ์ง€ 2์žฅ ์ƒ์„ฑ
512
+ if intro_index != -1 and body_index != -1:
513
+ intro_text = ' '.join(lines[intro_index+1:body_index])
514
+ intro_summary = f"Summary of introduction: {intro_text[:100]}..."
515
+ images.append(generate_image(intro_summary))
516
+ images.append(generate_image(intro_summary))
517
+
518
+ # 3. ๋ณธ๋ฌธ ์š”์•ฝ์œผ๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ
519
+ if body_index != -1 and conclusion_index != -1:
520
+ body_text = ' '.join(lines[body_index+1:conclusion_index])
521
+ body_summary = f"Summary of main content: {body_text[:100]}..."
522
+ images.append(generate_image(body_summary))
523
+
524
+ # 4. ๊ฒฐ๋ก  ์š”์•ฝ์œผ๋กœ ์ƒ์ง•์  ์ด๋ฏธ์ง€ ์ƒ์„ฑ
525
+ if conclusion_index != -1:
526
+ conclusion_text = ' '.join(lines[conclusion_index+1:])
527
+ conclusion_summary = f"Symbolic image representing: {conclusion_text[:100]}..."
528
+ images.append(generate_image(conclusion_summary))
529
+
530
+ # 5. ๊ฒฐ๋ก  ์š”์•ฝ์œผ๋กœ ๊ฐ€์น˜์™€ ์ด์ต์„ ์ƒ์ง•ํ•˜๋Š” ์ด๋ฏธ์ง€ ์ƒ์„ฑ
531
+ if conclusion_index != -1:
532
+ value_summary = f"Image symbolizing the value and benefit for readers: {conclusion_text[:100]}..."
533
+ images.append(generate_image(value_summary))
534
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
535
  return images
536
 
537
 
 
587
  outputs=[references1, references2, references3, outline_result, outline_token_output, output, token_output]
588
  )
589
 
 
 
 
 
 
 
 
 
590
  # ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฒ„ํŠผ ๋ฐ ์ถœ๋ ฅ ์ถ”๊ฐ€
591
  generate_images_btn = gr.Button("์ด๋ฏธ์ง€ ์ƒ์„ฑํ•˜๊ธฐ")
592
  image_outputs = [gr.Image(label=f"์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€ {i+1}") for i in range(5)]
 
595
  fn=generate_images,
596
  inputs=[output],
597
  outputs=image_outputs
598
+ )
599
+
600
  save_pdf_btn = gr.Button("PDF๋กœ ์ €์žฅํ•˜๊ธฐ")
601
  pdf_output = gr.File(label="์ƒ์„ฑ๋œ PDF ํŒŒ์ผ")
602