<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AJ</title>
    <description>The latest articles on DEV Community by AJ (@jumbocoder).</description>
    <link>https://dev.to/jumbocoder</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4045739%2F6ac6f16a-dfa1-496d-8d31-b9ebb49f97d4.jpg</url>
      <title>DEV Community: AJ</title>
      <link>https://dev.to/jumbocoder</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jumbocoder"/>
    <language>en</language>
    <item>
      <title>Generate AI Images Using YAML Instead of Python in 5 Minutes</title>
      <dc:creator>AJ</dc:creator>
      <pubDate>Fri, 24 Jul 2026 15:34:26 +0000</pubDate>
      <link>https://dev.to/jumbocoder/generate-ai-images-using-yaml-instead-of-python-47j7</link>
      <guid>https://dev.to/jumbocoder/generate-ai-images-using-yaml-instead-of-python-47j7</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy5xfknwo0d81m15t34so.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy5xfknwo0d81m15t34so.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most AI image generation tutorials start with pip install and end with 200 lines of Python. This one doesn't.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openenterprise.info/runtime" rel="noopener noreferrer"&gt;OE Runtime&lt;/a&gt; is a single binary that runs AI agents defined in plain YAML. No Python. No LangChain. No Node.js. Just download, configure, and run.&lt;/p&gt;

&lt;p&gt;In this guide you'll build an image generation agent that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Plans and enhances a prompt automatically&lt;/li&gt;
&lt;li&gt;Calls OpenAI's image API&lt;/li&gt;
&lt;li&gt;Returns the image URL and style notes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Total setup time: under 5 minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What You Need&lt;/strong&gt;&lt;br&gt;
An OpenAI API key with access to gpt-image-1&lt;br&gt;
OE Runtime binary for your platform (download below)&lt;br&gt;
A text editor&lt;br&gt;
No Python. No npm. No Docker.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 — Download OE Runtime&lt;/strong&gt;&lt;br&gt;
OE Runtime is a standalone binary — no install, no dependencies.&lt;/p&gt;

&lt;p&gt;Windows: &lt;a href="https://github.com/openenterprise-info/open-enterprise-community/releases/latest/download/oe-runtime-win.exe" rel="noopener noreferrer"&gt;oe-runtime-win.exe&lt;/a&gt;&lt;br&gt;
macOS: &lt;a href="https://github.com/openenterprise-info/open-enterprise-community/releases/latest/download/oe-runtime-macos" rel="noopener noreferrer"&gt;oe-runtime-macos&lt;/a&gt;&lt;br&gt;
Linux: &lt;a href="https://github.com/openenterprise-info/open-enterprise-community/releases/latest/download/oe-runtime-linux" rel="noopener noreferrer"&gt;oe-runtime-linux&lt;/a&gt;&lt;br&gt;
macOS users: First run may be blocked by Gatekeeper. Go to System Settings → Privacy &amp;amp; Security → click "Allow Anyway".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 — Create the Agent YAML&lt;/strong&gt;&lt;br&gt;
Create a folder called image-generation/ and add agent.yaml inside it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Image Creator&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Generate images from text descriptions using AI&lt;/span&gt;
&lt;span class="na"&gt;instructions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
  &lt;span class="s"&gt;You are a creative image generation agent. Craft detailed prompts and generate high-quality images.&lt;/span&gt;
  &lt;span class="s"&gt;If the concept is vague, enhance it with artistic style, lighting, and composition details before generating.&lt;/span&gt;
  &lt;span class="s"&gt;Complete all steps fully before writing your report.&lt;/span&gt;
&lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Plan the Prompt&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
      &lt;span class="s"&gt;Design a detailed image generation prompt for a professional product showcase photo.&lt;/span&gt;
      &lt;span class="s"&gt;The subject: a sleek laptop on a minimalist desk with soft natural lighting.&lt;/span&gt;
      &lt;span class="s"&gt;Enhance with: camera angle, lighting style, color palette, mood, and aspect ratio (16:9).&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Generate Image&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
      &lt;span class="s"&gt;Call the image generation tool with the crafted prompt.&lt;/span&gt;
      &lt;span class="s"&gt;Request high resolution. Wait for the generation to complete and retrieve the image URL.&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Report&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
      &lt;span class="s"&gt;Summarize the result:&lt;/span&gt;
      &lt;span class="s"&gt;- The final prompt used&lt;/span&gt;
      &lt;span class="s"&gt;- Any enhancements made to the original concept&lt;/span&gt;
      &lt;span class="s"&gt;- Image URL&lt;/span&gt;
      &lt;span class="s"&gt;- Style and composition notes for future reference&lt;/span&gt;
&lt;span class="na"&gt;connectors&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;connection_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;OpenAI Image&lt;/span&gt;
    &lt;span class="na"&gt;connection_type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;openai-image&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent has three steps: plan a rich prompt, generate the image, and report the result. The LLM handles the reasoning — you just define the workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 — Create the Config File&lt;/strong&gt;&lt;br&gt;
Create oe-config.json in the same image-generation/ folder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"llm"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"openai"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"gpt-4o"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"apiKey"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_OPENAI_API_KEY"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"server"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"port"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3333&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"apiKey"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your-secret-api-key"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"connectors"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"connection_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"OpenAI Image"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"connection_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"openai-image"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"apiKey"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_OPENAI_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"gpt-image-1"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace YOUR_OPENAI_API_KEY with your key from platform.openai.com/api-keys.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 — Run the Agent&lt;/strong&gt;&lt;br&gt;
Windows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;oe-runtime-win.exe image-generation/agent.yaml &lt;span class="nt"&gt;--config&lt;/span&gt; image-generation/oe-config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;macOS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x oe-runtime-macos
oe-runtime-macos image-generation/agent.yaml &lt;span class="nt"&gt;--config&lt;/span&gt; image-generation/oe-config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Linux:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x oe-runtime-linux
oe-runtime-linux image-generation/agent.yaml &lt;span class="nt"&gt;--config&lt;/span&gt; image-generation/oe-config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent will plan an enhanced prompt, generate the image, and return the URL and style notes — all in one run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonus: Run as an HTTP API Server&lt;/strong&gt;&lt;br&gt;
Add --serve to turn the binary into a local HTTP server:&lt;br&gt;
(Make sure server.enabled = true in oe-config.json)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;oe-runtime-win.exe &lt;span class="nt"&gt;--serve&lt;/span&gt; &lt;span class="nt"&gt;--config&lt;/span&gt; image-generation/oe-config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then call it from any app or script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl.exe &lt;span class="nt"&gt;-X&lt;/span&gt; POST http://localhost:3333/run-file &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"x-api-key: your-secret-api-key"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{\"file\": \"e:/oe-runtime-folder/image-generation/agent.yaml\", \"params\": {}}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is useful if you want to trigger image generation from a web app, CI pipeline, or automation tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Can You Build With This?&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Product photography — Generate studio-quality product shots from descriptions, no photographer required&lt;/li&gt;
&lt;li&gt;Marketing creative — Produce social media visuals and ad banners at scale from a prompt template&lt;/li&gt;
&lt;li&gt;UI mockups — Create hero images, illustrations, and placeholders that match your exact aesthetic&lt;/li&gt;
&lt;li&gt;E-commerce catalogues — Automate image generation for large SKU lists&lt;/li&gt;
&lt;li&gt;Concept art — Rapidly prototype characters and environments for games or apps&lt;/li&gt;
&lt;li&gt;Training data — Generate synthetic image datasets with controlled variation
**
How It Works Under the Hood**
OE Runtime is an agent execution engine. It reads your YAML, spins up an LLM reasoning loop, and gives the model access to tools (connectors). When the model decides to call the image generation tool, the runtime handles the API call, waits for the result, and feeds it back into the next step.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You write the what. The runtime handles the how.&lt;/p&gt;

&lt;p&gt;The same pattern works for 20 capability categories — SQL databases, SSH, Slack, REST APIs, web search, OCR, video generation, music generation, and more. Every agent is just a YAML file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;br&gt;
🔗&lt;a href="https://openenterprise.info/runtime" rel="noopener noreferrer"&gt;OE Runtime page — downloads, API docs, all 20 capabilities&lt;/a&gt;&lt;br&gt;
🌐 &lt;a href="https://openenterprise.info/" rel="noopener noreferrer"&gt;Website — openenterprise.info&lt;/a&gt;&lt;br&gt;
💻 &lt;a href="https://github.com/openenterprise-info/open-enterprise-community" rel="noopener noreferrer"&gt;GitHub — Apache-2.0, open source&lt;/a&gt;&lt;br&gt;
📦 &lt;a href="https://github.com/openenterprise-info/open-enterprise-community/releases/latest/download/oe-runtime-samples.zip" rel="noopener noreferrer"&gt;Sample agents — 20 ready-to-run YAML agents&lt;/a&gt;&lt;br&gt;
📬 &lt;a href="https://github.com/openenterprise-info/open-enterprise-community/releases/latest/download/oe-runtime.postman_collection.json" rel="noopener noreferrer"&gt;Postman Collection — test all API endpoints&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openenterprise.info/runtime" rel="noopener noreferrer"&gt;OE Runtime&lt;/a&gt; is part of &lt;a href="https://openenterprise.info" rel="noopener noreferrer"&gt;Open Enterprise&lt;/a&gt;, an open-source Enterprise AI platform for building, deploying, and governing AI applications. If you're looking for the full platform—including web UI, enterprise connectors, and collaboration features—visit openenterprise.info.&lt;/p&gt;

&lt;p&gt;Have questions or built something with it? Drop a comment below.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br&gt;
AJ &lt;br&gt;
The JumboCoder&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>openai</category>
      <category>openclaw</category>
    </item>
  </channel>
</rss>
