--- id: wiki-2026-0508-인-이미지-텍스트-in-image-text title: 인-이미지 텍스트(In-Image Text) category: 10_Wiki/Topics status: verified canonical_id: self aliases: [In-Image Text, Text Rendering, Typography in AI Images, Glyph Rendering] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [image-generation, text-rendering, typography, flux, dall-e, stable-diffusion] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: Python framework: Diffusers/FLUX --- # 인-이미지 텍스트(In-Image Text) ## 매 한 줄 > **"매 SD 1.5 (2022) 의 의 garbled gibberish 의 의 의, 매 FLUX.1 / Imagen 3 / GPT-image-1 (2024-2026) 의 의 word-level accurate text rendering 의 가능."**. 매 image generation model 의 의 long-standing weakness 의 typography rendering — diffusion model 의 의 의 의 의 의 character-level glyph 의 의 의 의 의. 매 2026 의 의 T5 text encoder + flow matching (FLUX) + dedicated text rendering datasets 의 의 logo / poster / UI mockup / meme 의 의 의 의 production-ready. ## 매 핵심 ### 매 모델 의 의 text rendering capability (2026) - **FLUX.1 dev/pro (BFL)**: 의 — short text (< 10 words), brand 의 의. - **Imagen 3 (Google)**: 의 의 — long text 의 high accuracy. - **GPT-image-1 (OpenAI)**: 의 — paragraph-level, multilingual. - **SD 3.5 (Stability)**: 의 — short text 의 의 의 (open-weights). - **Ideogram 2.0**: text-specialized — 의 typography 의 의. - **Recraft V3**: SOTA for text rendering 의 design (poster/UI). ### 매 의 어떤 model 의 의 의 - **T5-XXL text encoder**: 의 character-aware (Imagen, FLUX 의 의). - **Glyph-aware data augmentation**: synthetic text overlay training data. - **Flow matching**: 의 sharp glyph edge 의 의 (FLUX, SD3). - **Specialized fine-tune**: Ideogram, Recraft 의 typography 의 의 fine-tune. ### 매 응용 1. Logo / brand mockup. 2. Poster / advertisement design. 3. Social media graphic (meme, infographic). 4. UI mockup with realistic copy. 5. Book cover, album cover. ## 💻 패턴 ### FLUX.1 의 의 short text rendering ```python from diffusers import FluxPipeline import torch pipe = FluxPipeline.from_pretrained( "black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16, ).to("cuda") # 매 GOOD: quoted, short, common word prompt = 'A coffee shop sign that reads "MORNING BREW", warm sunlight, photo' image = pipe(prompt, guidance_scale=3.5, num_inference_steps=28).images[0] ``` ### GPT-image-1 (OpenAI) — long text + edit ```python from openai import OpenAI client = OpenAI() result = client.images.generate( model="gpt-image-1", prompt=""" A vintage poster with the title "ANTIGRAVITY" at the top in bold sans-serif, subtitle "A Journey Beyond Gravity" below, and tagline at the bottom: "In Theaters December 2026". Minimalist, retro-futurist style. """, size="1024x1536", ) image_url = result.data[0].url ``` ### Ideogram API (text-specialized) ```python import requests response = requests.post( "https://api.ideogram.ai/generate", headers={"Api-Key": IDEOGRAM_KEY}, json={ "image_request": { "prompt": 'Restaurant menu with "TODAY\'S SPECIAL: Truffle Risotto $24"', "aspect_ratio": "ASPECT_3_4", "model": "V_2_TURBO", "magic_prompt_option": "AUTO", } }, ) ``` ### Post-hoc text overlay (의 reliable fallback) ```python from PIL import Image, ImageDraw, ImageFont # 매 model 의 의 garbage text 의 의 의 → blank space 의 의 의 의 PIL 의 overlay base = Image.open("generated_poster.png") draw = ImageDraw.Draw(base) font = ImageFont.truetype("Inter-Bold.ttf", 72) draw.text((100, 200), "ANTIGRAVITY", fill="white", font=font, stroke_width=3, stroke_fill="black") base.save("final.png") ``` ### Inpainting 의 text fix (FLUX Fill) ```python from diffusers import FluxFillPipeline pipe = FluxFillPipeline.from_pretrained( "black-forest-labs/FLUX.1-Fill-dev", torch_dtype=torch.bfloat16, ).to("cuda") # 매 garbled text 의 의 의 mask 의 의 의 redraw result = pipe( image=base_image, mask_image=text_mask, # white where text should go prompt='clear bold text "WELCOME"', num_inference_steps=30, guidance_scale=30, # 의 high — text 의 의 의 ).images[0] ``` ### Glyph ControlNet (open-source approach) ```python # 매 AnyText / GlyphControl 의 의 의 의 의 character-level control from diffusers import StableDiffusionControlNetPipeline, ControlNetModel controlnet = ControlNetModel.from_pretrained( "AIGCDesignGroup/AnyText", torch_dtype=torch.float16, ) pipe = StableDiffusionControlNetPipeline.from_pretrained( "runwayml/stable-diffusion-v1-5", controlnet=controlnet, torch_dtype=torch.float16, ).to("cuda") # 매 glyph mask 의 의 의 image 의 conditioning glyph_image = render_text_to_image("HELLO WORLD", font="Inter-Bold") result = pipe( prompt="neon sign in cyberpunk alley", image=glyph_image, controlnet_conditioning_scale=1.0, ).images[0] ``` ### Multilingual text (CJK / Arabic) ```python # 매 FLUX / SD 의 Latin alphabet 의 의 의 — CJK 의 의 의 # 매 Imagen 3 / GPT-image-1 의 multilingual 의 의 better prompt = '한국어 간판 "안녕하세요" cafe sign, neon, night photo' # → GPT-image-1 의 의 가능, FLUX 의 의 garbled 의 가능 ``` ### Prompting 의 의 ``` GOOD prompts: - 'sign reads "OPEN"' - 'a book titled "The Pragmatic Programmer"' - 'graffiti spelling "HOPE" on a brick wall' BAD prompts (likely garbled): - 'a paragraph of legal text' # 의 too long - 'random foreign language text' # 의 ambiguous - 'small text in the corner' # 의 small = harder ``` ## 매 결정 기준 | 상황 | Approach | |---|---| | Short logo / sign (1-3 words) | FLUX.1 dev/pro | | Poster / multi-line text | Imagen 3 / GPT-image-1 / Recraft | | Typography-heavy (menu, infographic) | Ideogram 2.0 / Recraft V3 | | Multilingual (CJK, RTL) | GPT-image-1 / Imagen 3 | | Open-weights + custom text | AnyText / GlyphControl ControlNet | | Reliable production text | Post-hoc PIL overlay (의 deterministic) | | Fix garbled text in existing image | FLUX Fill inpaint OR overlay | **기본값**: FLUX.1 dev 의 의 (short text), GPT-image-1 의 의 의 (long/multilingual). 매 mission-critical 의 의 PIL overlay 의 의 의. ## 🔗 Graph - 부모: [[Diffusion_Models]] - Adjacent: [[ControlNet]] · [[Typography]] ## 🤖 LLM 활용 **언제**: prompt scaffolding for text rendering, model selection 의 의 word count 의 의, fallback strategy proposal. **언제 X**: visual quality judgement (의 human eval), brand-critical typography (의 design tool 의 의 의 final). ## ❌ 안티패턴 - **Long paragraph in prompt**: 의 expect verbatim — 의 5-10 word 의 의. - **Small text expected**: 매 < 32px equivalent 의 의 의 garbled. - **Uncommon font in prompt**: 매 font name 의 의 의 의 의 의 의. - **No quotes around target text**: 의 model 의 의 의 의 의 의 의 의 의. - **Trust 의 first generation**: 의 retry 3-5x — 의 cherry-pick. ## 🧪 검증 / 중복 - Verified (Black Forest Labs FLUX paper, Google Imagen 3 report, OpenAI gpt-image-1 system card, Ideogram blog, AnyText paper). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — in-image text rendering (FLUX, Imagen, Ideogram) |