{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Image Generation Best Practices","siteUrl":"https://docs.bria.ai","llmstxt":{"hide":false,"title":"Bria AI API","description":"bria.ai helps you build products and workflows by delivering controllable, easy-to-integrate and safe generative visual AI capabilities.","details":{"path":"_llmstxt-details.md"},"sections":[{"title":"Integrations","description":"MCP server, Claude Skill, and Python SDK.","includeFiles":["MCP-authentication.md","integration-methods/bria-skill.md","integration-methods/python-sdk.md"],"excludeFiles":[]},{"title":"Getting Started","description":"Authentication, API overview, and platform concepts.","includeFiles":["index.md","products-overview.md","safety.md","vgl.md","best-practices-overview.md"],"excludeFiles":[]},{"title":"Image Generation","description":"Generate images using text prompts or structured JSON via FIBO models.","includeFiles":["image-generation.md","image-generation.yaml"],"excludeFiles":[]},{"title":"Image Editing","description":"Edit, transform, and enhance images with 20+ specialized endpoints.","includeFiles":["image-editing.md","image-editing.yaml"],"excludeFiles":[]},{"title":"Video Editing","description":"Remove backgrounds (REST async or real-time streaming), erase objects, upscale, and generate masks for video.","includeFiles":["video-editing.md","local-video-upload-service.md","video-editing.yaml","streaming-rmbg.md"],"excludeFiles":[]},{"title":"Product Shot Editing","description":"SKU packshots, lifestyle scenes, and automotive product imagery.","includeFiles":["product-shot-editing.md","product-shot-editing.yaml"],"excludeFiles":[]},{"title":"Optional","description":"Tailored generation, ads, image onboarding, and attribution.","includeFiles":["tailored-generation.md","campaign-generation.md","image-onboarding.md","bria-attribution-service.md","ad-generation.md","tailored-generation.yaml","campaign-generation.yaml","image-onboarding.yaml","bria-attribution-service.yaml","ad-generation.yaml"],"excludeFiles":[]}],"excludeFiles":["_llmstxt-details.md","_partials.md","CHANGELOG.md"]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"image-generation-best-practices","__idx":0},"children":["Image Generation Best Practices"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Understanding the core mental model of Bria's generation pipeline will help you achieve the best, most deterministic results when integrating our APIs."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-big-picture-brias-mental-model","__idx":1},"children":["The Big Picture: Bria's Mental Model"]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: What’s the simplest mental model for Bria image generation?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Think of it as a two-step system: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Prompt / reference image"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["structured_prompt (JSON \"blueprint\")"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["deterministic render"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The big win is that you can store and reuse the structured blueprint (plus a seed) to get consistent results and controlled variations."]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["ℹ️ ASYNCHRONOUS ENDPOINTS:"]}," > By default, all Bria v2 endpoints are asynchronous - the API returns a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["request_id"]}," and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status_url"]}," immediately, and you poll that URL until the result is ready. Pass ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sync: true"]}," only if you need a synchronous response for simple integrations."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"global-prompting-best-practices-across-all-endpoints","__idx":2},"children":["Global Prompting Best Practices (Across All Endpoints)"]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: What’s the best general way to write prompts for high-quality images?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use a \"shot spec\" prompt, structured like a mini creative brief:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Subject:"]}," What is it?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Environment:"]}," Where is it?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Composition:"]}," Close-up/wide, centered, negative space."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Lighting:"]}," Soft studio, golden hour, neon, etc."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Style/medium:"]}," Photoreal, illustration, 3D, etc."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Constraints:"]}," What must stay the same, what to avoid, required text."]}]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: Should I write long prompts with lots of adjectives (“ultra, 8K, masterpiece”)?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Usually no. Better results come from concrete visual controls (composition, lighting, camera feel, materials, and clear constraints) rather than stacks of vague superlatives."]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: How do I get better photorealism?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add specifics that photographers care about:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Lighting:"]}," Type and direction (\"soft diffused key light from upper left\")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Composition:"]}," (\"3/4 angle, centered, negative space on right\")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Material cues:"]}," (\"matte ceramic, crisp reflections\")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Background:"]}," (\"white seamless, subtle shadow\")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Resolution:"]}," Set the `resolution` parameter to `4MP`."]}]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: How do I reliably generate images with text in them?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Put the exact text verbatim in quotes and specify:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Placement (centered, top-left)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Typography expectations (bold sans-serif, balloon lettering)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Clarity (\"crisp edges, high contrast\")."]}]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["💡 SEED MANAGEMENT:"]}," >"," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Lock the seed"]}," when you’re evaluating prompt changes and want apples-to-apples comparisons."," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Change the seed"]}," when the “blueprint” is good and you want visual variety."]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: What’s the best way to refine without the image “drifting”?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is the pro workflow:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Generate once from text (or text+image)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Save the returned ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["structured_prompt"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["seed"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Refine using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["structured_prompt"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prompt"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["seed"]},", changing one thing at a time."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This keeps composition and style stable while you make targeted improvements."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"endpoint-by-endpoint-guides","__idx":3},"children":["Endpoint-by-Endpoint Guides"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"post-v2imagegenerate-standard","__idx":4},"children":["POST ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/image/generate"]}," (Standard)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the Standard pipeline when you want the highest quality, nuance, and instruction adherence."]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: What input combinations does `/v2/image/generate` support?"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Text to image:"]}," Prompt only (starting from scratch)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Image to image:"]}," Single image only (reference image drives visual direction)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Image + text:"]}," Single image + prompt (reference image as base, text steers output)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Recreate:"]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["structured_prompt"]}," + seed (reproduce a previous image exactly)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Refine:"]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["structured_prompt"]}," + prompt + seed (targeted changes without drift)."]}]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: What’s the best workflow to curate top results?"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Phase A (Explore quickly):"]}," Set `resolution: \"1MP\"`, fewer steps (35–40), and use a strong “shot spec” prompt."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Phase B (Lock composition):"]}," Save the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["structured_prompt"]}," and seed from the best result, then refine with small text deltas."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Phase C (Final render):"]}," Bump to `resolution: \"4MP\"` and increase steps to 50 for maximum detail."]}]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: How should I choose `aspect_ratio` for better composition?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Choose it based on the real output placement: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1:1"]}," for product tiles, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4:5"]}," for social feeds, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["9:16"]}," for stories/reels, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["16:9"]}," for banners. (Other ratios like ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2:3"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["3:4"]},", etc., are also supported)."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"post-v2imagegeneratelite","__idx":5},"children":["POST ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/image/generate/lite"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Choose Lite when speed or data privacy is the priority, or when the workflow requires an on-prem deployment."]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: How is Lite different from the Standard pipeline?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Input combinations are identical, but under the hood:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["VLM bridge:"]}," Uses the open-source FIBO-VLM instead of Gemini 2.5 Flash (lower fidelity on complex inputs)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Image model:"]}," Uses distilled Fibo Lite (faster inference, lower quality ceiling)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Deployment:"]}," Fully local on-prem deployment is supported."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Missing parameters:"]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["resolution"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["steps_num"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["negative_prompt"]}," are not available in Lite."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"post-v2structured_promptgenerate","__idx":6},"children":["POST ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/structured_prompt/generate"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Runs only the first half of the Standard generation pipeline (the translation step). It returns a JSON blueprint without rendering an image."]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: Why generate a structured prompt separately?"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Human-in-the-loop review:"]}," Inspect or edit the JSON for brand consistency before spending generation time."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Programmatic editing:"]}," Build UIs where users tweak a JSON spec, or maintain prompt libraries."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Hybrid deployment:"]}," Use Bria's state-of-the-art VLM bridge via API while self-hosting the open-source FIBO image model on-prem."]}]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: How do I write inputs that produce better structured prompts?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Treat your input like a creative brief. The VLM bridge responds well to specifics (Subject, Composition, Lighting, Constraints). The more concrete your input, the less the bridge has to guess, and the less you'll need to correct the JSON."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"post-v2structured_promptgeneratelite","__idx":7},"children":["POST ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/structured_prompt/generate/lite"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Lite equivalent. Supports the same four input flows but uses the open-source FIBO-VLM bridge instead of Gemini 2.5 Flash. Use this endpoint when your actual image generation will run on the Lite pipeline."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"post-v2structured_promptgenerate_from_diff","__idx":8},"children":["POST ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/structured_prompt/generate_from_diff"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Used to repair or update structured prompts."]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Q: When do I use `generate_from_diff`?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use it when your product allows users to directly edit structured prompt JSON, and you want Bria to interpret the semantic diff and output an optimized structured prompt reflecting the user’s change."]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["💡 STRUCTURED PROMPT EDITING:"]}," > Always encourage small, targeted edits (lighting, composition) rather than full rewrites. Lock the seed while testing \"did this change do what I expect?\" to maintain disentangled control."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"example-prompts-copy-ready","__idx":9},"children":["Example Prompts (Copy-Ready)"]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["📸 Photoreal Product"]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":["“Studio product photo of a matte black insulated travel mug on a white seamless background. 3/4 angle, centered subject with clean negative space on the right. Soft diffused key light from upper left, subtle shadow, crisp edges, realistic materials.”"]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["🌆 Lifestyle Ad"]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":["“A young professional cycling across a modern city bridge at sunrise, wide shot, subject slightly left of center with negative space on the right for copy. Warm golden-hour light, soft lens flare, realistic motion blur on background, crisp subject focus.”"]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["🔤 Text in Image"]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":["“Balloon lettering spelling exactly 'HAPPY NEW YEAR 2026', centered, high contrast on white background, soft studio lighting, crisp edges, realistic foil reflections.”"]}]}]},"headings":[{"value":"Image Generation Best Practices","id":"image-generation-best-practices","depth":1},{"value":"The Big Picture: Bria's Mental Model","id":"the-big-picture-brias-mental-model","depth":2},{"value":"Global Prompting Best Practices (Across All Endpoints)","id":"global-prompting-best-practices-across-all-endpoints","depth":2},{"value":"Endpoint-by-Endpoint Guides","id":"endpoint-by-endpoint-guides","depth":2},{"value":"POST /v2/image/generate (Standard)","id":"post-v2imagegenerate-standard","depth":3},{"value":"POST /v2/image/generate/lite","id":"post-v2imagegeneratelite","depth":3},{"value":"POST /v2/structured_prompt/generate","id":"post-v2structured_promptgenerate","depth":3},{"value":"POST /v2/structured_prompt/generate/lite","id":"post-v2structured_promptgeneratelite","depth":3},{"value":"POST /v2/structured_prompt/generate_from_diff","id":"post-v2structured_promptgenerate_from_diff","depth":3},{"value":"Example Prompts (Copy-Ready)","id":"example-prompts-copy-ready","depth":2}],"frontmatter":{"seo":{"title":"Image Generation Best Practices"}},"lastModified":"2026-03-19T11:14:10.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/image-generation-best-practices","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}