--- id: wiki-2026-0508-ai-이미지-생성-및-편집-워크플로우-ai-image-ge title: AI Image Generation & Editing Workflow category: 10_Wiki/Topics status: verified canonical_id: self aliases: [AI 이미지 워크플로우, image generation workflow, draft mode, iterative refinement] duplicate_of: none source_trust_level: B confidence_score: 0.85 verification_status: conceptual tags: [image-generation, workflow, midjourney, stable-diffusion, draft-mode, iterative, post-editing] raw_sources: [] last_reinforced: 2026-05-09 github_commit: pending inferred_by: Claude Opus 4.7 (manual cleanup 2026-05-09) --- # AI Image Generation & Editing Workflow ## 📌 한 줄 통찰 > **Single perfect prompt 의 myth → iterative loop**. **Draft (cheap variant) → select → refine → upscale → polish (post-edit)**. 매 round 의 quality ↑. ## 📖 핵심 ### 매 5-stage workflow #### Stage 1: Concept + ideation - 매 reference (Pinterest, ArtStation). - 매 mood board. - 매 prompt sketch. #### Stage 2: Draft generation (cheap) - 매 dozen variant. - Midjourney `--draft` mode (10x speed). - Flux Schnell (fast). - 매 4-8 candidate. #### Stage 3: Select + iterate - 매 best candidate. - 매 prompt 의 refine. - 매 next round. #### Stage 4: Refine (full quality) - 매 selected 의 high-quality regenerate. - 매 final aspect ratio. #### Stage 5: Post-edit - 매 inpaint (specific fix). - 매 outpaint (extend). - 매 upscale (resolution). - 매 retouch (Photoshop). → 매 stage 의 different speed / cost. ### 매 cost saving #### Draft mode - Midjourney V7 `--draft`: 10x faster, ~50% GPU cost. - Flux Schnell: 4-step (vs 50). - Latent Consistency Models (LCM). → 매 idea 의 cheap exploration. #### Generation 의 cost - Midjourney: $10-60 / month subscription. - DALL-E 3: ~$0.08 / image. - Stable Diffusion (self-host): GPU 운영 cost. - Flux Pro (Replicate): $0.05 / image. #### Compute optimization - 매 quality preset (4 step LCM, 20 step DPM++, 50 step DDIM). - 매 resolution (512 → 1024 → 4K). - 매 batch size. ### 매 reference 의 활용 #### Style reference (sref) - Midjourney `--sref [URL]`. - 매 brand 의 mood board. - 매 campaign 의 visual cohesion. #### Character reference (cref) - Midjourney `--cref [URL]`. - 매 character 의 consistency. #### Omni reference (oref) - Midjourney V7+. - 매 specific object identity. #### IP-Adapter (Stable Diffusion) - 매 reference image 의 style + structure. #### LoRA - 매 specific style / character 의 fine-tune. ### 매 quality control #### Negative prompt (Stable Diffusion) - 매 known defect 의 explicit. - "ugly, deformed, watermark, low quality, blurry, extra fingers". #### Specific defect 의 inpaint - 매 detected defect 의 mask. - 매 targeted prompt. #### Upscale + face restore - Real-ESRGAN (background). - GFPGAN / CodeFormer (face). ### Production workflow example #### Marketing campaign 1. **Mood board** (brand 의 reference). 2. **Draft 30 variants** (Midjourney draft). 3. **Select 5** (different angle / composition). 4. **Full HD generate**. 5. **Inpaint defects**. 6. **Upscale 4K**. 7. **Photoshop final touch**. → 30+ image / hour. #### Product mockup 1. **Real product photo** (input). 2. **Img2Img** (style transfer). 3. **Background outpaint** (lifestyle context). 4. **Inpaint shadow / reflection**. 5. **Upscale**. #### Concept art (game) 1. **Quick sketch** (artist). 2. **ControlNet 의 line art**. 3. **Generate variations**. 4. **Select + paint over** (Photoshop). ## 💻 Code ### Iterative loop (Diffusers) ```python from diffusers import StableDiffusionXLPipeline import torch pipe = StableDiffusionXLPipeline.from_pretrained("model") # Stage 1: Draft (low quality, fast) prompts = [base_prompt + variation for variation in style_variations] drafts = pipe(prompts, num_inference_steps=10, guidance_scale=5).images # Stage 2: Select (manual or ML score) best_idx = select_best(drafts) best_prompt = prompts[best_idx] # Stage 3: Full quality final = pipe(best_prompt, num_inference_steps=50, guidance_scale=7.5).images[0] # Stage 4: Post-edit (inpaint specific defect) mask = detect_face_defect(final) inpaint_pipe = StableDiffusionXLInpaintPipeline.from_pretrained("inpaint") fixed = inpaint_pipe(prompt="perfect face", image=final, mask_image=mask).images[0] # Stage 5: Upscale from realesrgan import RealESRGANer upscaler = RealESRGANer(scale=4, ...) upscaled, _ = upscaler.enhance(np.array(fixed)) ``` ### Batch + cost-aware ```python def smart_generate(prompt, target_quality='final'): if target_quality == 'draft': return pipe(prompt, num_inference_steps=10).images[0] elif target_quality == 'preview': return pipe(prompt, num_inference_steps=25).images[0] elif target_quality == 'final': img = pipe(prompt, num_inference_steps=50).images[0] return upscale(img) ``` ### Reference-driven (Flux + IP-Adapter) ```python from diffusers import FluxPipeline pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev") pipe.load_ip_adapter("flux-ip-adapter") style_ref = Image.open("brand_mood.jpg") result = pipe( prompt="product on table, professional photo", ip_adapter_image=style_ref, ip_adapter_scale=0.6, ).images[0] ``` ## 🤔 결정 기준 | Stage | 추천 | |---|---| | Ideation | Free + reference | | Draft | Midjourney draft / Flux Schnell | | Refine | Full quality | | Post-edit | Inpaint + upscale | | Production | Photoshop final | **기본값**: Draft 30 → Select 5 → Final + post-edit. 매 cost 의 80% saving + quality 의 maintain. ## 🔗 Graph - 부모: [[AI Image Generation]] - 변형: [[Iterative-Refinement]] · [[Draft-Mode]] · [[AI 모델 사후 편집 도구 (Post-editing Tools)|Post-editing-Tools]] - Adjacent: [[Style Reference]] · [[ControlNet]] ## 🤖 LLM 활용 **언제**: 매 commercial creative project. 매 brand campaign. **언제 X**: 매 single-shot idea (no iteration). 매 highly specific artist style (legal). ## ❌ 안티패턴 - **Single prompt + accept**: low quality. - **Full quality from start**: cost 폭발. - **No reference**: brand inconsistency. - **No post-edit**: defect in production. - **Upscale 의 detail invent**: hallucinated artifact. ## 🧪 검증 / 중복 - Verified. - 신뢰도 B. - Overlap with [[AI Image Generation]] / [[AI 모델 사후 편집 도구 (Post-editing Tools)|Post-editing-Tools]]. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-09 | Manual cleanup — 5-stage workflow + cost + reference + code |