<?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: Runware</title>
    <description>The latest articles on DEV Community by Runware (runware).</description>
    <link>https://dev.to/runware</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%2Forganization%2Fprofile_image%2F13418%2Ff780043f-f654-4d43-b446-2f1e1fe2bdbd.png</url>
      <title>DEV Community: Runware</title>
      <link>https://dev.to/runware</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/runware"/>
    <language>en</language>
    <item>
      <title>Introducing Style LoRA Training on Runware</title>
      <dc:creator>Ally Nicoll</dc:creator>
      <pubDate>Tue, 18 Aug 2026 19:06:09 +0000</pubDate>
      <link>https://dev.to/runware/introducing-style-lora-training-on-runware-2bio</link>
      <guid>https://dev.to/runware/introducing-style-lora-training-on-runware-2bio</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Style LoRA training is now live on &lt;a href="https://runware.ai/" rel="noopener noreferrer"&gt;Runware&lt;/a&gt;. Train a custom style into your own model in minutes, so every image you generate already looks like your brand, without re-describing it in every prompt. Upload a small set of images, pick a base model, and get back a lightweight fine-tuned adapter that's more consistent and controllable than steering a model with reference images alone. Train on &lt;strong&gt;FLUX.2 [klein] 4B&lt;/strong&gt; or &lt;strong&gt;9B&lt;/strong&gt;, &lt;strong&gt;FLUX.1 [dev]&lt;/strong&gt;, &lt;strong&gt;Qwen-Image&lt;/strong&gt;, or &lt;strong&gt;Z-Image Base&lt;/strong&gt;. Once trained, your LoRA is immediately available in your Runware account for inference.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Integrate low-cost LoRA training into your application in minutes, with Runware's enterprise API. &lt;/p&gt;




&lt;p&gt;LoRA training is now live on Runware. This article covers the what, the why, and the how: what a LoRA actually is and which models support it, why you'd train one instead of leaning on reference images alone, and how to run one against your own dataset.&lt;/p&gt;

&lt;p&gt;If you already know your way around LoRAs and just want the practical details, jump to How does it work for the models, parameters, and cost, or Get started for a ready-to-run API request. Otherwise, read on from here.&lt;/p&gt;

&lt;p&gt;This is a style trainer, more on what that means below, but the short version: if you've ever burned a dozen generations trying to get a reference image on Seedream, Nano Banana, or any model which accepts reference images, to reproduce your branding or style, this is built for exactly that problem.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is a LoRA?
&lt;/h2&gt;

&lt;p&gt;A LoRA (low-rank adaptation) is a lightweight fine-tuning method: a small adapter trained on top of a base image model. Feed it a set of images and it learns a specific style, a visual identity, a recurring look, without retraining the whole model from scratch. The result is lightweight, fast to produce, and easy to plug into normal generations.&lt;/p&gt;

&lt;p&gt;Style consistency is easiest to see rather than describe. This LoRA was trained on six illustrations sharing one bold, blue-and-yellow halftone look:&lt;/p&gt;

&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%2Fma13kgqz5cangl2th49y.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%2Fma13kgqz5cangl2th49y.png" alt="Input Images" width="732" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Generate new subjects afterward, never seen in training, and the style still holds:&lt;/p&gt;

&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%2Fr5lkz0xbh9l6hiqor29d.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%2Fr5lkz0xbh9l6hiqor29d.png" alt="Generate new images" width="737" height="191"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  LoRA vs reference images: which do I need?
&lt;/h2&gt;

&lt;p&gt;Models like Seedream 4.5/5 and Nano Banana 2, and others that accept reference images, are useful, especially for one-off jobs where you don't have a dataset to train on. But if you're trying to hold a consistent visual identity across dozens or hundreds of generations, the tradeoffs are significant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Consistency&lt;/strong&gt;. A reference image is a suggestion the model interprets on each generation based on many variables. A LoRA trains a concept into the model weights, so the same style shows up reliably across a much larger volume of outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control&lt;/strong&gt;. You can adjust LoRA strength, combine multiple LoRAs, layer them against different prompts. There's no such control with reference images.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iteration cost&lt;/strong&gt;. Getting a reference-image generation to land in the perfect way often means re-rolling generations multiple times. A trained LoRA gives you a stronger starting point on every single generation, so there's less trial and error per image.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ownership&lt;/strong&gt;. You get the raw .safetensors file for your trained model.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reference images still make sense when you don't have 10+ images to train on, or when you just need a quick one-off generation.&lt;/p&gt;




&lt;h2&gt;
  
  
  How could a LoRA be useful to me?
&lt;/h2&gt;

&lt;p&gt;The initial Runware LoRA trainer focuses on style capture, rather than subject, character, or specific faces, think in terms of look rather than likeness:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A studio's specific visual identity: film grain, color grading, illustration styles, held consistent across an entire campaign&lt;/li&gt;
&lt;li&gt;Product photography with a repeatable, branded rendering style across many scenes and angles&lt;/li&gt;
&lt;li&gt;Game or app asset pipelines that need one coherent art style across hundreds of generated assets&lt;/li&gt;
&lt;li&gt;Any workflow where "make it look like our content" currently means long prompts, reference images, and a lot of re-rolling&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Locking in your brand's visual identity
&lt;/h2&gt;

&lt;p&gt;For brand and design teams, style LoRA training is a way to encode brand guidelines directly into a model: color palette, illustration style, photography treatment, whatever makes content instantly recognizable as yours. Once trained, generations default to on-brand output without rewriting a style guide into every prompt, and without depending on a reference image the model may or may not follow closely. It's a practical way to reproduce your visual identity consistently across campaigns and product lines.&lt;/p&gt;




&lt;h2&gt;
  
  
  How does it work?
&lt;/h2&gt;

&lt;p&gt;Five models are live for style training right now, all open-weight models already available through Runware's model hosting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://runware.ai/models/runware-flux-1-dev-style-lora-training" rel="noopener noreferrer"&gt;FLUX.1 [dev]&lt;/a&gt; - &lt;code&gt;runware:flux-1-dev@style-lora-training&lt;/code&gt; - The most widely adopted FLUX checkpoint, with broad LoRA and tooling support.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://runware.ai/models/runware-flux-2-klein-4b-style-lora-training" rel="noopener noreferrer"&gt;FLUX.2 [klein] 4B&lt;/a&gt; - &lt;code&gt;runware:flux-2-klein-4b@style-lora-training&lt;/code&gt; - The smaller FLUX.2 [klein] checkpoint — quicker training runs, lower cost per job.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://runware.ai/models/runware-flux-2-klein-9b-style-lora-training" rel="noopener noreferrer"&gt;FLUX.2 [klein] 9B&lt;/a&gt; - &lt;code&gt;runware:flux-2-klein-9b@style-lora-training&lt;/code&gt; - The larger FLUX.2 [klein] checkpoint, trading training speed for extra output quality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://runware.ai/models/runware-qwen-image-style-lora-training" rel="noopener noreferrer"&gt;Qwen-Image&lt;/a&gt; - &lt;code&gt;runware:qwen-image@style-lora-training&lt;/code&gt; - Strong prompt following and text rendering — a solid all-round choice for style training.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://runware.ai/models/runware-z-image-style-lora-training" rel="noopener noreferrer"&gt;Z-Image Base&lt;/a&gt; - &lt;code&gt;runware:z-image@style-lora-training&lt;/code&gt; - Lightweight and fast to train. LoRAs trained here also run on Z-Image Turbo.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All five share the same recipe name, style-lora-training: you can train the same dataset across all five models in a single request by submitting one job per model, side by side.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;triggerWord&lt;/strong&gt; is the only required parameter beyond the model AIR and dataset. Leave trainingSteps and learningRate out entirely and Runware applies the defaults for that model, tuned to give you a good result on a typical style dataset - a balance of quality, training speed, and cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;importModel&lt;/strong&gt; details how the trained LoRA gets packaged as a named, versioned model in your org. Give it a name, a description, a hero image, and a public or private flag.&lt;/li&gt;
&lt;li&gt;The output shows up two ways: as a model available in your org for normal inference requests, and as a downloadable &lt;strong&gt;.safetensors&lt;/strong&gt; file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Advanced settings, such as &lt;strong&gt;trainingSteps&lt;/strong&gt; and &lt;strong&gt;learningRate&lt;/strong&gt;, are configurable, but they're advanced options, not settings to reach for by default. Push the learning rate too high or too low, or pick a step count that doesn't suit your dataset, and the result can quickly swing from underfitting to overfitting. The defaults we've set are chosen to work well out of the box in the majority of situations.&lt;/p&gt;

&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%2Fl3xrxm0rqt7s2bkox5pz.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%2Fl3xrxm0rqt7s2bkox5pz.png" alt="No LoRA" width="732" height="589"&gt;&lt;/a&gt;&lt;/p&gt;

&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%2Fe31por51ec0jbrrplk2h.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%2Fe31por51ec0jbrrplk2h.png" alt="300 Steps" width="729" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&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%2F7mr9mgfhb3pcjihei27d.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%2F7mr9mgfhb3pcjihei27d.png" alt="600 Steps" width="730" height="588"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At &lt;strong&gt;300 training steps&lt;/strong&gt; the style is only half-applied; the model is still leaning on its photoreal base. By 600 steps, the default for this model, the style has fully taken hold while the subject and composition from the prompt still come through clearly. That's the balance the defaults are tuned for.&lt;/p&gt;




&lt;h1&gt;
  
  
  What does training cost?
&lt;/h1&gt;

&lt;p&gt;Training is billed per step, the same pay-as-you-go pricing as everything else on the Runware API: no training-specific plan or subscription to opt into.&lt;/p&gt;

&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%2Fq65aoh2w3xvd9d3p5cc1.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%2Fq65aoh2w3xvd9d3p5cc1.png" alt="Pricing on Runware" width="728" height="288"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a concrete example: the papercraft tiger demo above was trained on Qwen-Image at 600 steps, this model's default, which works out to $0.63 for the full run. Total cost scales directly with however many training steps you choose, and the per-model defaults referenced above are tuned to hit a good style-to-cost balance without any manual tuning.&lt;/p&gt;




&lt;h2&gt;
  
  
  Continue training instead of starting over
&lt;/h2&gt;

&lt;p&gt;Training doesn't have to be a single, one-shot attempt. If a first pass comes back underfit, you don't need to restart from zero and re-pay for every step: pass the checkpoint parameter with the AIR of a LoRA you've already trained on Runware, and trainingSteps runs as additional steps on top of that checkpoint's final state, rather than training a new LoRA from scratch. Run a few hundred steps, check the result, then decide whether to continue, all while only paying for the additional steps in each follow-up pass:&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;"taskType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"training"&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;"runware:qwen-image@style-lora-training"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"taskUUID"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{$guid}}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"checkpoint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"runware:7ed4a535137bc@training"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"trainingSteps"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"inputs"&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;"dataset"&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-zipped-dataset.zip"&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;&lt;code&gt;checkpoint&lt;/code&gt; only accepts LoRAs previously trained on Runware; models trained elsewhere aren't supported. That makes dialing in a style an iterative, low-risk process rather than a single expensive bet on the right step count up front.&lt;/p&gt;




&lt;h2&gt;
  
  
  How do I prepare a dataset?
&lt;/h2&gt;

&lt;p&gt;Whatever dataset images are fed into training, the LoRA learns from directly, so a good dataset is the single biggest factor in a quality result. For style training, here's what's most important to consider when preparing a dataset:&lt;/p&gt;

&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%2Fc6ha01qe83insbzukbu3.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%2Fc6ha01qe83insbzukbu3.png" alt="Example dataset" width="727" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The twelve images above are a single training set: one consistent papercraft style, applied to a dragon, a fox, a steam train, a cupcake, and more. That's the pattern to copy — same look, different subjects.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quality over quantity&lt;/strong&gt;. A tight set of clean, well-chosen images beats a huge number of inconsistent ones. You don't need to max out the dataset to get a good result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Every image, same style&lt;/strong&gt;. All images should represent the exact look you want the LoRA to learn. The same visual identity is crucial to a good output. Mixing styles in one dataset confuses training and gives you a muddier result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Variety within that consistency&lt;/strong&gt;. Vary the subjects, compositions, angles, and lighting, just keep the style itself constant. This is what teaches the model "this is the style" rather than "this is one specific image."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sharp, clean images&lt;/strong&gt;. Avoid heavy compression artifacts, blur, watermarks, or text overlays, they get baked into the model along with everything else you want.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No near-duplicates&lt;/strong&gt;. Each image should add something the others don't. Ten thoughtfully chosen images will outperform fifty crops of the same three shots.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A reasonable working range&lt;/strong&gt;. You don't need anywhere near the 10,000-image ceiling for style training. A well-curated set of 20-30 images, chosen for quality and consistency rather than volume, is typically enough to get a very strong result.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Captioning
&lt;/h3&gt;

&lt;p&gt;Captions are optional. A captionless dataset works, and for a tight, consistent set of images the trainer will learn the style without any additional guidance. But captions can make a meaningful difference, particularly when your dataset has varied subjects or compositions within the same style.&lt;/p&gt;

&lt;p&gt;The format is straightforward: for each image in your zip, add a .txt file with the same base name. The trainer reads them automatically.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;your-dataset
├── image_01.jpg
├── image_01.txt
├── image_02.jpg
├── image_02.txt
├── image_03.png
├── image_03.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A useful way to think about what goes in each caption: whatever you describe the same way across all images, the model treats as a constant. Whatever varies between captions, the model learns to treat as a variable you can control at inference. For style training, that means the style itself should never be mentioned explicitly in captions; it's what the model is learning from the images. What you do caption is the content: the subjects, scenes, compositions, and lighting in each image. That way the model knows what to attribute to the LoRA's style versus what's just that particular shot.&lt;/p&gt;

&lt;p&gt;Each caption should also include your trigger word. If you've set &lt;code&gt;triggerWord&lt;/code&gt; to &lt;code&gt;mybrand&lt;/code&gt; in the API request, your captions might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mybrand A product photograph of a glass perfume bottle on a marble surface, warm side lighting
mybrand A flat lay of skincare packaging on white linen, soft diffused light
mybrand An editorial close-up of a ceramic object against a muted terracotta background
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The trigger word in captions reinforces the association between the word and the style, making the LoRA respond more reliably when you use it at inference. If you're working without captions, the &lt;code&gt;triggerWord&lt;/code&gt; parameter in the API request still creates that association; captions just make it more precise.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dataset requirements
&lt;/h3&gt;

&lt;p&gt;Do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zip your dataset, keeping the archive under 4 GiB and the unzipped contents under 5 GiB&lt;/li&gt;
&lt;li&gt;Keep individual files under 100 MB after unzip&lt;/li&gt;
&lt;li&gt;Include at least 10 valid images (jpg, jpeg, png, or webp)&lt;/li&gt;
&lt;li&gt;Keep individual images at or under 8192 × 8192 px&lt;/li&gt;
&lt;li&gt;Name caption files with the exact same base name as their paired image (image_01.jpg + image_01.txt)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Submit anything that isn't a valid, well-formed zip&lt;/li&gt;
&lt;li&gt;Assume oversized or unsupported images are excluded without consequence: skipped files don't count toward your 10-image minimum, so a dataset that looks fine at a glance can still fail with "not enough images" once the system has filtered the inputs down to usable images.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;Style is the first training type. Subject training is coming next, built for a different use case: capturing the likeness of a specific person, character, or object so you can place them consistently across different scenes and prompts. Where style training asks "what does this look like," subject training asks "who or what is this."&lt;/p&gt;

&lt;p&gt;More base models are also on the roadmap. The current five cover a range of architectures and output characteristics, and the list will grow as we validate training quality across additional models.&lt;/p&gt;




&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;LoRA training is available in the Runware Playground now if you want to test it on your own dataset before writing any API code. Use the Launch button next to any of the five models above, each one opens that model's training page directly. Prefer to browse first? Open the Playground's model search and select Training from the category list on the left to see every training recipe, these five included.&lt;/p&gt;

&lt;p&gt;If you're calling training via the Runware API, a request to &lt;code&gt;https://api.runware.ai/v1&lt;/code&gt; might look like:&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;"taskType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"training"&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;"runware:qwen-image@style-lora-training"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"deliveryMethod"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"async"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"taskUUID"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{$guid}}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"importModel"&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;"air"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"runware:7ed4a535137bc@training"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"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;"Example Model"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"uniqueIdentifier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"runware:0c455ce5c0434"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"private"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"heroImageURL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Optional Cover 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;"shortDescription"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"first training model"&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;"triggerWord"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"mylora"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"trainingSteps"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"learningRate"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.0001&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"inputs"&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;"dataset"&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-zipped-dataset.zip"&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;Once training completes, the &lt;code&gt;importModel.air&lt;/code&gt; above is a real model AIR you can call like any other, with your LoRA passed alongside the base checkpoint:&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;"taskType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"imageInference"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"taskUUID"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{$guid}}"&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;"runware:101@1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"lora"&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;"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;"runware:7ed4a535137bc@training"&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;"positivePrompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"mylora product shot of a ceramic mug, studio lighting"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"width"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"height"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1024&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;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How many dataset images do I need?
&lt;/h3&gt;

&lt;p&gt;The system will accept between 10 and 10,000 input images, but for style training you don't need anywhere close to the maximum. A smaller, well-curated set of consistent, high-quality images will generally outperform a much larger, messier one.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I own the trained LoRA?
&lt;/h3&gt;

&lt;p&gt;Yes. The trained model is added to your org for use in normal inference calls, and you also get the raw .safetensors file to download.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use it for inference immediately after training?
&lt;/h3&gt;

&lt;p&gt;Yes. The AIR returned in the training response is usable in standard image inference requests shortly after training, with no manual import steps required.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do captions improve results?
&lt;/h3&gt;

&lt;p&gt;Often yes, particularly when your dataset has varied subjects or compositions within one style. Add a .txt file with the same base name as each image, include your trigger word in every caption, and describe the image content rather than the style. A captionless dataset still works; captions just give the trainer more precise signal to work with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can I tweak the training settings?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;trainingSteps&lt;/code&gt; and &lt;code&gt;learningRate&lt;/code&gt; are both adjustable, but they're advanced settings. The per-model defaults work well out of the box, so only change them if you already understand their effect on the output.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which models are available for LoRA training?
&lt;/h3&gt;

&lt;p&gt;FLUX.2 [klein] 4B and 9B, FLUX.1 [dev], Qwen-Image, and Z-Image Base. Z-Image Base trained LoRAs are also compatible with Z-Image Turbo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I continue training an existing LoRA instead of starting over?
&lt;/h3&gt;

&lt;p&gt;Yes. Pass the checkpoint parameter with the AIR of a LoRA you've already trained on Runware, and trainingSteps runs as additional steps on top of that checkpoint's final state. Only LoRAs previously trained on Runware are supported; LoRAs trained elsewhere can't be used as a checkpoint.&lt;/p&gt;




&lt;h2&gt;
  
  
  Training glossary
&lt;/h2&gt;

&lt;p&gt;LoRA training brings new terminology into the mix that doesn't come up in normal inference. Here's a quick reference for the vocabulary used throughout this article and in the API itself — the same definitions are also available inline as hoverable terms the first time each one comes up above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LoRA&lt;/strong&gt;&lt;br&gt;
Low-Rank Adaptation. Originally a concept devised to train LLMs, LoRAs allow a small set of new weights to be trained on top of a large base model, teaching it a new style, subject, or concept without retraining the whole thing. That same idea has since been adapted for image models, which is what powers training on Runware.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trigger word&lt;/strong&gt;&lt;br&gt;
A specific word or short phrase included in your prompt that tells the model to apply the trained LoRA's style. It's set at training time and needs to appear in your prompt at inference time for the LoRA's effect to show up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Training steps&lt;/strong&gt;&lt;br&gt;
The number of times the model processes your dataset during training. Too few steps and the model won't fully learn the style, too many and it can start overfitting to the exact images you provided rather than generalizing the style itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning rate&lt;/strong&gt;&lt;br&gt;
Set it too high and training moves fast but misses detail. Too low and the LoRA barely learns anything. The default is tuned so you don't have to think about it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset&lt;/strong&gt;&lt;br&gt;
The set of images (packaged as a zip) used to train your LoRA. Quality and consistency matter more than volume.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;.safetensors&lt;/strong&gt;&lt;br&gt;
The file format the trained LoRA is delivered in. It's the standard, portable format most image generation tools and platforms can load directly, which is why you can download it and use it outside Runware if you want.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overfitting&lt;/strong&gt;&lt;br&gt;
A model which tries to reproduce the training data too aggressively, resulting in a LoRA which is hard to work with, doesn't follow prompts well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Underfitting&lt;/strong&gt;&lt;br&gt;
The opposite of overfitting: the model hasn't learned enough from the dataset, usually from too few training steps, a learning rate that's too low, or a dataset that's too small or inconsistent. The result is a LoRA with a weak, barely noticeable effect on output generations.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Introducing Sonic Inference Pods: Modular data centers built for inference</title>
      <dc:creator>Ally Nicoll</dc:creator>
      <pubDate>Tue, 18 Aug 2026 14:39:16 +0000</pubDate>
      <link>https://dev.to/runware/introducing-sonic-inference-pods-modular-data-centers-built-for-inference-3jod</link>
      <guid>https://dev.to/runware/introducing-sonic-inference-pods-modular-data-centers-built-for-inference-3jod</guid>
      <description>&lt;p&gt;Originally posted by Founder &lt;a href="https://runware.ai/blog/authors/ioana-hreninciuc" rel="noopener noreferrer"&gt;Ioana Hreninciuc&lt;/a&gt;, on the Runware Blog, Aug 4th 2026.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;Sonic Inference Pods are Runware's modular 1MW inference data centers: 1,200 GPUs in a 20-foot container, closed-loop liquid cooling, and 30–80% lower cost per GPU-hour. Here's how we got here.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;A Sonic Inference Pod is 1MW of IT compute in a 20-foot shipping container, with a chiller roughly the size of the container sitting on top of it. Inside: around 1,200 GPUs across custom servers with no cases, custom racks, our own PCIe switching, high-frequency CPUs, local NVMe, and a closed-loop liquid cooling system that consumes no water. It arrives on a truck. It needs ground, power, and a network connection. It runs as one node in a single distributed inference network.&lt;/p&gt;

&lt;p&gt;Pods are deployed in the United States and Europe. Over the second half of 2026 we will bring up to 10,000 nodes online, and we're targeting more than 1GW of inference compute in 2027. Because we design, build, and operate the hardware ourselves, inference on Sonic Inference Pods costs 30–80% less per GPU-hour than other inference providers depending on the workload. For most workloads it's 50% or more. You can run your models on that capacity today through &lt;a href="https://runware.ai/serverless" rel="noopener noreferrer"&gt;Runware Serverless&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/SbPON7vdhwM"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://runware.ai/sonic-inference-pod" rel="noopener noreferrer"&gt;Learn more &amp;amp; reserve capacity&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's the announcement. The rest of this post is how we got here, and I'd argue it's the more useful part. We did not set out to build data centers. We set out to make inference fast enough and cheap enough to build a product on, and after three years of chasing that, the data center was the last place the cost was hiding.&lt;/p&gt;




&lt;h2&gt;
  
  
  We do inference. We don't sell data center space.
&lt;/h2&gt;

&lt;p&gt;Worth saying up front, because "startup builds data center" invites the wrong comparison. We're not trying to out-build a hyperscaler, and we don't sell square footage, racks, or colocation. We sell inference. The building is a cost input, not the product.&lt;/p&gt;

&lt;p&gt;We build the building because of where the money goes. Sarah Friar, OpenAI's CFO, has put the cost of a gigawatt-scale AI data center at roughly $15 billion for the facility alone, before a single GPU goes in it. Every inference provider renting space in someone else's building pays a share of that, plus the operator's margin, plus the cost of cooling GPUs inside a facility designed for web servers. That was the one layer of our stack we hadn't touched. So we took it out, and what we save there we pass on in the price.&lt;/p&gt;

&lt;p&gt;Here's how we got to that conclusion, which took about four years and several things going wrong.&lt;/p&gt;




&lt;h2&gt;
  
  
  2022: a product that couldn't afford to exist
&lt;/h2&gt;

&lt;p&gt;Stable Diffusion's weights went public in August 2022, and 1.5 followed in October. Like a lot of people, my co-founder Flaviu Radulescu and I thought it was magical technology. It was also extremely slow. Beyond everyone having seven fingers, generating a handful of 512x512 images took close to a minute, sometimes longer.&lt;/p&gt;

&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%2Fkt7t49dcu9p4viwop6so.webp" 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%2Fkt7t49dcu9p4viwop6so.webp" alt="One of our first generations using PicFinder." width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Flaviu had an idea that sounded implausible at the time: you should be able to use image generation the way you use Google Images. Type a prompt, scroll the results, watch them appear in real time. If that were actually possible, surely one of the labs would already have done it.&lt;/p&gt;

&lt;p&gt;He built it anyway. He called it PicFinder, the tagline was "image generation as fast as image search," and he put it on the internet with no plan whatsoever. Some YouTubers found it and featured it. It went from nothing to millions of users in less than two months, and passed 100 million images in three. Generation took under a second while comparable apps took thirty.&lt;/p&gt;

&lt;p&gt;He also stopped sleeping, because keeping the GPUs and the product up was a full-time job on its own. I had another job at the time, so what I could usefully do was help pay for the GPUs. We started talking about whether there was a company here. I applied to a16z Speedrun, we got in, I quit my job, and in 2023 we went to San Francisco and got our first check.&lt;/p&gt;

&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%2Fjqf5ns77s6dqekyb5oid.webp" 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%2Fjqf5ns77s6dqekyb5oid.webp" alt="The day we were accepted into a16z Speedrun." width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we came back to London and ran into the wall. The GPU prices we could get made the product impossible. We wanted people to generate effectively unlimited images; the cost per image wouldn't come down far enough to support that. This is the first time we talked seriously about owning hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  The GPUs we rented were not the same as each other
&lt;/h2&gt;

&lt;p&gt;We were buying capacity wherever it was cheapest: marketplaces, aggregators, spot instances, whatever we could find. And the quality varied enormously. Same GPU, same price, meaningfully different throughput.&lt;/p&gt;

&lt;p&gt;We started testing to work out why, because we needed to understand what a low enough cost per image would take. The answer was that the parts around the GPU mattered far more than anyone was accounting for. CPU clock speed in particular. Nobody selling us GPU hours was optimizing for that, because they weren't selling inference. They were selling GPUs by the hour, and those are different products.&lt;/p&gt;

&lt;p&gt;That was the moment hardware stopped being a cost question and became a control question. You can't tune what you don't own.&lt;/p&gt;




&lt;h2&gt;
  
  
  Summer 2023: three servers on a kitchen table
&lt;/h2&gt;

&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%2Fspu1ysg2u74rpzm68tqn.webp" 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%2Fspu1ysg2u74rpzm68tqn.webp" alt="Our first round of deliveries of GPUs and equipment." width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We had both run infrastructure before and managed clouds, so this felt less mad to us than it probably should have. We bought three nodes with liquid-cooled GPUs, three GPUs each, mostly as an experiment to see what performance we could actually get. They were delivered to my house.&lt;/p&gt;

&lt;p&gt;We put the first server case on my living room table, which was also my kitchen table. We decided to document the build as a step-by-step guide, on the reasoning that if we bought more of these, Flaviu was not going to be the person assembling all of them. We assumed the first one would take an afternoon.&lt;/p&gt;

&lt;p&gt;It took three days. Not three twelve-hour days, three to six hours each, but three days. The liquid cooling was genuinely intricate: dozens of small parts, everything needing to fit in a particular order. The documenting wasn't what slowed us down; there were two of us. It was just harder than it looked. Every evening we said we'd finish tomorrow. On the third day we finished because we'd run out of tomorrows.&lt;/p&gt;

&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%2Fe73g88iileu510bgbnfy.webp" 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%2Fe73g88iileu510bgbnfy.webp" alt="Assembling the first of three servers." width="800" height="1067"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That server then ran in my home office for the entire summer, producing an unbearable amount of heat in a London flat with no air conditioning. It also worked, well enough that we kept it running and used it to test things. We spent the summer swapping components, different CPUs, different RAM, trying to find what actually moved the numbers. Between the hardware changes and the software work happening alongside them, we got roughly 50% more performance out of the same GPUs.&lt;/p&gt;

&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%2Fs0hn81503942rew9gp1g.webp" 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%2Fs0hn81503942rew9gp1g.webp" alt="The first liquid-cooled GPU servers we assembled." width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The pivot we didn't want
&lt;/h2&gt;

&lt;p&gt;While that was going on, we tried to raise money for the image generator and failed. In the process we worked out something more useful than the money would have been: we didn't have founder-product fit for a consumer app. Both of us had spent our careers building deeply technical platforms. Neither of us was the right person to run an image generator.&lt;/p&gt;

&lt;p&gt;What we did have was the first real-time inference engine for media. So we stopped trying to be the image generator and started building the engine underneath all of them. We called it Runware, went back out to raise, and this time it worked. An oversubscribed pre-seed closed in December 2023.&lt;/p&gt;




&lt;h2&gt;
  
  
  2024: nobody would take our servers
&lt;/h2&gt;

&lt;p&gt;By then we'd gone from three custom servers to a few dozen, and we were colocating them in data centers. That turned out to be its own problem.&lt;/p&gt;

&lt;p&gt;GPU servers draw far more power than the servers those facilities budget for, even with the smaller GPUs we were running then. Operators priced accordingly. Worse, almost none of them supported liquid cooling. In 2023 and 2024 it was very hard to find any data center that would take a liquid-cooled rack at all. So we air-cooled GPUs, which is expensive, inefficient, and throws away a good part of the efficiency we'd just spent a summer engineering in.&lt;/p&gt;

&lt;p&gt;This is where it stopped being a procurement annoyance and became the thing we believed. We think every product will eventually touch a GPU. All of those GPUs need somewhere to go, and the data centers that exist don't have the power or the cooling to take them at scale. That isn't a shortage that clears. It's a mismatch between the buildings that exist and the workload arriving.&lt;/p&gt;

&lt;p&gt;So at the end of 2023 we started designing our own: the servers and the data center around them, together.&lt;/p&gt;

&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%2Fh82tn0q1qmgz7j4hao9f.webp" 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%2Fh82tn0q1qmgz7j4hao9f.webp" alt="A look inside one of our first Sonic Inference Pods during assembly." width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What we built, and why each part is the shape it is
&lt;/h2&gt;

&lt;p&gt;The software platform had to exist first. Most of the first half of 2024 went into building Runware itself, which launched in October 2024 and scaled quickly. Our GPU spend went up with it, which settled any remaining argument about whether we needed our own hardware.&lt;/p&gt;

&lt;p&gt;Hiring for it was easier than we expected. Hardware engineers aren't in the bidding war software engineers are in, and we hired people we'd worked with before, so we had a team by the beginning of 2025. Flaviu had been head of R&amp;amp;D and managing director at an infrastructure company in the early 2000s, running data centers with hundreds of thousands of servers, and later co-founded a bare-metal cloud. He'd designed hardware before. He conceived the pod and led the engineering, and that's why the first concept and the finished thing look so similar. We knew which problems we were solving before we started drawing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Servers with no cases
&lt;/h2&gt;

&lt;p&gt;Our servers don't have cases. They're shelves that click into place like LEGO. That decision comes directly from three days at my kitchen table. It isn't enough for a data center to be efficient to run. It has to be efficient to install. We couldn't have people assembling servers for weeks. The cooling is already routed into the racks so everything lands where it's supposed to. Installation takes hours.&lt;/p&gt;

&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%2Fdglawlckdah5q2q6g5lw.webp" 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%2Fdglawlckdah5q2q6g5lw.webp" alt="A look inside during construction." width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Our own PCIe switch
&lt;/h2&gt;

&lt;p&gt;Having established that CPU frequency matters more than anyone was pricing in, we chose high-frequency CPUs that clock up to 6GHz. Those don't carry enough PCIe lanes for the GPU density we wanted. So Flaviu designed our own PCIe switch. GPUs connect to the CPU and to each other through it. Nodes run 2 to 8 GPUs depending on the workload, and the architecture supports up to 16.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local NVMe, so models stay warm
&lt;/h2&gt;

&lt;p&gt;One of the real limits on running hundreds of thousands of models is loading time. When you bring up more servers, you have to get the weights onto them, and pulling hundreds of gigabytes from distributed storage is slow. Each of our servers carries enough local NVMe to hold the current generation of large models, frontier LLMs, video models, image models, on the node itself. The whole path is optimized for loading weights into GPU memory as fast as possible, over PCIe. Models are always warm and always local, so cold starts largely stop being a problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cooling nobody would sell us
&lt;/h2&gt;

&lt;p&gt;There was no off-the-shelf system that could cool a megawatt at the density we wanted. We looked at several, worked with a number of companies on a design, and it took an enormous amount of input from Flaviu. The first cooling system we commissioned was never delivered, and we had to start over with someone else. We ended up sourcing components from several suppliers and built it ourselves.&lt;/p&gt;

&lt;p&gt;Along the way, expert cooling engineers advised us to fill the system with the wrong liquid. He caught it. That's the difference between hardware and software: there's no debugger, mistakes take months rather than minutes, so you validate everything yourself in more detail than feels reasonable.&lt;/p&gt;

&lt;p&gt;What came out of it is a single closed loop that recirculates about 1.5 cubic meters of liquid and holds GPU temperatures within 2°C of target in ambient conditions up to 50°C. Nothing is plumbed in. It has no connection to water mains and consumes no water in normal operation. Physically, there is nothing left to make more efficient.&lt;/p&gt;

&lt;h2&gt;
  
  
  A shipping container, and a crane
&lt;/h2&gt;

&lt;p&gt;All of it had to fit in a 20-foot container: three rows of servers, one along each side wall and one down the middle, with two aisles to walk between them. The center row is single-sided, with the back of it carrying the rest of the equipment. That comes to around 1,200 GPUs in a shipping container. The chiller sits on top and is about the same size as the container underneath it.&lt;/p&gt;

&lt;p&gt;"It ships on a truck" makes this sound simpler than it is. Moving a pod means a crane, which means a crane operator. Then you position the container, lift the chiller onto it, and connect the two. We've now done that enough times to know exactly how long each step takes, which is a different kind of knowledge from designing it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Any GPU, including the next one
&lt;/h2&gt;

&lt;p&gt;The first working prototype went into production in early 2025 with smaller GPUs, because we still had Stable Diffusion workloads and we were being careful about the most expensive component. It became clear quickly that this wasn't enough. Video models were much larger, and we knew we'd want to run LLMs. So we upgraded that first pod, with the additional funding, to handle any class of model.&lt;/p&gt;

&lt;p&gt;The cooling blocks fit multiple GPU types. We run RTX PRO 6000 as the workhorse node because we tested what actually delivers throughput per dollar, and we can also run B200 and B300. We expect to be among the first providers deploying Vera Rubin GPUs at scale, because when a new generation arrives we update the pod, not the building.&lt;/p&gt;

&lt;p&gt;From mid-2025 to now, the work was optimization: getting the PCIe switch, the components, and the interconnects running at the speeds they should. Much like shipping software and then tuning it, except each iteration takes months. Once the pod was fully optimized, we ran our own inference on it.&lt;/p&gt;

&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%2Fc0e8bonvh9uhy09tufrz.webp" 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%2Fc0e8bonvh9uhy09tufrz.webp" alt="A finished Sonic Inference Pod ready for deployment." width="799" height="418"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  We built it for ourselves. Then the market ran out of room.
&lt;/h2&gt;

&lt;p&gt;At the start of 2026 the ground moved. Data center capacity started running short, announced large data center projects were cancelled or deferred, and local moratoria on new data center construction began appearing in places that had been building without much friction. Everyone needed somewhere to put GPUs, and the places to put them were getting harder to build, not easier.&lt;/p&gt;

&lt;p&gt;We already had the answer, because we had spent three years building it for our own product. So we ramped production.&lt;/p&gt;

&lt;p&gt;This is the second time we've done the same thing. We built a real-time inference engine because our image generator needed one, then made it an inference engine anyone could use. We built modular data centers because our inference engine needed somewhere to run, and now we're making them available to everyone else.&lt;/p&gt;

&lt;p&gt;That's why we're deploying the first 10,000 nodes, why we have our first 160 locations booked, and why we're currently bringing modular data center capacity online faster than the rest of the world combined. There'll be more news on this shortly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why inference on Sonic InferencePods costs less
&lt;/h2&gt;

&lt;p&gt;Every saving traces back to something above.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No facility to amortize&lt;/strong&gt;. A pod needs ground, power, and connectivity, not a hundred-acre engineered building.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No overhead we don't use&lt;/strong&gt;. No raised floors, no oversized redundancy tiers, none of the enterprise data center apparatus that general-purpose workloads require and inference doesn't.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No inefficient cooling&lt;/strong&gt;. Liquid, closed loop, designed for this density instead of adapted to it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No unnecessary components&lt;/strong&gt;. No server cases. Custom PDUs. Power supplies bought direct from wholesale vendors. Our servers are built for inference and nothing else, so we don't pay for anything else.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Single tenant facilities&lt;/strong&gt;. A pod site runs our workloads only, so there is no shared-facility margin to pay. (Serverless capacity is multi-tenant at the software layer; dedicated and bare-metal pods give you a hardware boundary.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manufactured, not constructed&lt;/strong&gt;. Pods are produced and shipped. No permitting queue, no multi-year build, no grid interconnect wait.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Power bought at generation price&lt;/strong&gt;. In our benchmarking, power is around 30% of the lifetime cost of running a GPU. We put pods at wind farms, solar parks, and near hydro, buying at generation price rather than grid price, with no transmission losses between the generator and the GPU. This is the largest single lever.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the facilities and deployment layer, our pods cost roughly $150M per gigawatt against about $15B on the traditional path, up to 100x lower, with GPU hardware excluded on both sides. Which comes out, at the level that matters to you, as 30–80% lower cost per GPU-hour than other inference providers, and 50% or more for most workloads. Where a given workload lands in that range depends mostly on the model: its size, how it parallelizes, and how well it fits the node.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where we can put them
&lt;/h2&gt;

&lt;p&gt;We have 160 locations available to us today: sites with power where we can place containers now. Cooling is redundant. Networking is redundant. Where a site has redundant power we use it; where it doesn't, we can trade that for very cheap power, because pods are built around similar workload profiles and traffic reroutes across the network instead of relying on local redundancy. The blast radius is one pod, not one data center.&lt;/p&gt;

&lt;p&gt;Because a pod is a shipping container, it can be deployed inside any national border or jurisdiction. Organizations with data residency or regulatory requirements can run inference on dedicated, locally sited infrastructure without waiting years for in-country construction. We say internally that we're the only provider who could put a data center in the Vatican. If a customer wants one near their office, or on their roof, that's a logistics conversation, not a construction project.&lt;/p&gt;

&lt;p&gt;The other reason sites are available to us is that pods don't ask anything of the local utilities. A growing share of data center projects are now blocked or delayed because they can't secure power and water, and because communities object to a facility drawing millions of gallons for cooling. Our cooling loop is closed. Pods need no water mains and consume no water in normal operation, there is no evaporative cooling, and there is no hundred-acre site to clear. They can run entirely on renewable power. Where moratoria on new data center construction are becoming a real constraint on capacity, essentially none of the objections apply to a container sitting on an existing power site.&lt;/p&gt;

&lt;p&gt;Deykhan Ten, VP of Strategic Partnerships at Higgsfield, put it better than we would:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"We started with Runware's Model API, but quickly expanded into their inference infrastructure because of the scale and efficiency they could deliver. Our models reach millions of users every week, so reliable capacity and cost-efficient inference are critical. The lower our inference costs, the more value we can pass on to our users. Runware understands that deeply, which is why we work closely with them on our most important model launches."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Capacity beyond our own pods
&lt;/h2&gt;

&lt;p&gt;The pod fleet is the engine, not the ceiling. We manage inference capacity across both our own pods and hyperscaler networks, so when you need more capacity, or need it earlier, or need it in a region where we haven't landed a pod yet, we extend into those networks rather than telling you to wait. Same platform, same contract, same routing layer.&lt;/p&gt;

&lt;p&gt;The cost advantage lives in the pods, which is why we keep building them. But no workload should be capped by how fast we can ship containers.&lt;/p&gt;




&lt;h2&gt;
  
  
  What happens next
&lt;/h2&gt;

&lt;p&gt;Our &lt;a href="https://runware.ai/blog/runware-raises-50m-series-a-to-power-all-intelligent-applications" rel="noopener noreferrer"&gt;$50M Series A&lt;/a&gt; in December 2025 is what makes the rollout possible. Over H2 2026 we will bring up to 10,000 nodes online across the United States and Europe. We're targeting more than 1GW of inference compute in our pods in 2027, and we'll say more soon about how we plan to get there.&lt;/p&gt;

&lt;p&gt;We'll also write in more detail about the engineering: the cooling design, the PCIe switching, the distributed network and routing, and the decisions we'd make differently.&lt;/p&gt;




&lt;h2&gt;
  
  
  Running your models on Sonic Inference Pods
&lt;/h2&gt;

&lt;p&gt;Capacity is available now through &lt;a href="https://runware.ai/serverless" rel="noopener noreferrer"&gt;Runware Serverless&lt;/a&gt;. Deploy your own models, containers, and AI workloads while we handle provisioning, scaling, and operations. What we commit to is the economics rather than any particular price: we intend to offer the best cost per inference in the industry, and owning the hardware is what lets us keep doing that as the hardware changes.&lt;/p&gt;

&lt;p&gt;If you'd rather see the numbers before you commit, we'd prefer that too. We'll benchmark your model as-is on the exact hardware that would serve it, profile it across the GPU options that fit, and work with your engineers on the serving path. You get a clear view of your unit economics before you decide anything. We'd rather show you results on your model than publish numbers from ours.&lt;/p&gt;

&lt;p&gt;We're talking to frontier labs, AI studios, enterprises, and organizations with sovereign or data residency requirements.&lt;/p&gt;

&lt;p&gt;The goal hasn't changed since the server on the kitchen table. We want inference to cost as close to the price of electricity as it possibly can. Owning the building, and putting the building where the electricity is, is how we get there.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>infrastructure</category>
      <category>hardware</category>
    </item>
    <item>
      <title>The closed-source LLM premium has collapsed</title>
      <dc:creator>Ally Nicoll</dc:creator>
      <pubDate>Mon, 29 Jun 2026 14:36:28 +0000</pubDate>
      <link>https://dev.to/runware/the-closed-source-llm-premium-has-collapsed-572o</link>
      <guid>https://dev.to/runware/the-closed-source-llm-premium-has-collapsed-572o</guid>
      <description>&lt;p&gt;Originally published on the &lt;a href="https://runware.ai/blog/the-closed-source-llm-premium-has-collapsed" rel="noopener noreferrer"&gt;Runware blog&lt;/a&gt;. Written by Ioana Hreninciuc, Co-Founder at Runware.&lt;/p&gt;

&lt;p&gt;Open-source models now match closed-model benchmarks at 87% lower cost. Here's what that means for developers choosing between open source inference and OpenAI.&lt;/p&gt;




&lt;p&gt;What was your first call to an LLM? Almost definitely, something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;OpenAI&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;responses&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-5.5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Write a short bedtime story about a unicorn.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;output_text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The entry point to LLMs is through the frontier. This is where everyone starts, but it’s also where too many stay. They build entire apps, workflows, and harnesses around variations on this call, then wince at their API bill come end-of-month.&lt;/p&gt;

&lt;p&gt;That used to make sense when the proprietary models were so dominant. If you want your product to excel, the quality of the underlying model must be high. And high quality has always meant proprietary. So developers ate the cost for excellence.&lt;/p&gt;

&lt;p&gt;Does that still hold? Not really. Yes, proprietary is still the frontier, but what was the frontier 18 months ago is now well-mapped territory, and open-source models are closing the gap at a fraction of the cost.&lt;/p&gt;

&lt;p&gt;Why? And what should developers make of, and with, these newfound lands of open source?&lt;/p&gt;

&lt;h2&gt;
  
  
  What kept open source on the bench
&lt;/h2&gt;

&lt;p&gt;We should be clear. Open models aren’t close to taking over from proprietary. There is still a lag in uptake. &lt;a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5926742" rel="noopener noreferrer"&gt;Open source models are 87% cheaper&lt;/a&gt; at equal intelligence but still hold only 25-30% of the token share.&lt;/p&gt;

&lt;p&gt;But that gap is no longer about quality. For years, the buying decision was binary: pay proprietary prices, or accept a worse model. Serious teams paid up. That habit is what keeps closed models dominant today, long after the quality gap that justified it closed.&lt;/p&gt;

&lt;p&gt;Let’s take GPT-4 as our example. When it launched in 2023, &lt;a href="https://web.archive.org/web/20230404114929/https://openai.com/pricing" rel="noopener noreferrer"&gt;GPT-4 was at $30/M tokens&lt;/a&gt;, but it was also the only model that could actually do the work.&lt;/p&gt;

&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%2F6bc1xukf4zq6mjpyj5pd.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%2F6bc1xukf4zq6mjpyj5pd.png" alt="GPT-4 vs Llama 2 70B Benchmark" width="736" height="214"&gt;&lt;/a&gt;&lt;br&gt;
(Sources: &lt;a href="https://arxiv.org/abs/2303.08774" rel="noopener noreferrer"&gt;GPT-4 Technical Report&lt;/a&gt; and the &lt;a href="https://arxiv.org/abs/2307.09288" rel="noopener noreferrer"&gt;Llama2 paper&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Llama 2 wasn’t wildly behind the curve, but it was far enough behind to be a risk for anything production-grade. HumanEval was the rough one: a 37-point gap meant Llama 2 wasn't a real option for anything code-adjacent.&lt;/p&gt;

&lt;p&gt;When you extrapolate this to all models, the trend is clear: Closed models are “better”.&lt;/p&gt;

&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%2Fm9mpk9pm76wgvo4qazun.webp" 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%2Fm9mpk9pm76wgvo4qazun.webp" alt="Prompt Price vs Intelligence" width="800" height="537"&gt;&lt;/a&gt;&lt;br&gt;
Figure 9: Prompt price vs. intelligence for closed- and open-source models. Source: &lt;a href="https://www.nber.org/papers/w34608" rel="noopener noreferrer"&gt;NBER Working Paper 34608&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They are also more expensive&lt;/strong&gt;. This was the in for OS models, but it came with a catch. Whatever you saved on tokens, you paid back in GPU plumbing. Llama 2 70B at fp16 needed roughly &lt;a href="https://www.llama.com/docs/deployment/autoscaling/" rel="noopener noreferrer"&gt;140GB of VRAM&lt;/a&gt;, so two H100s at a minimum, or a more painful quantized setup with its own quality tradeoffs. Add to that the engineering resources to wire together your serving stack, and the costs start to equalize.&lt;/p&gt;

&lt;p&gt;But perhaps the biggest reason closed models won was that they weren’t just models. Closed labs shipped a steady drumbeat of product alongside the weights. Function calling, structured output, vision, file uploads, batch processing, fine-tuning, all wired together and versioned.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's a timeline of OpenAI releases over 18 months:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Function calling, June 2023&lt;/li&gt;
&lt;li&gt;JSON mode, November 2023&lt;/li&gt;
&lt;li&gt;Vision (GPT-4V), November 2023&lt;/li&gt;
&lt;li&gt;Batch API, April 2024&lt;/li&gt;
&lt;li&gt;Structured outputs, August 2024&lt;/li&gt;
&lt;li&gt;Prompt caching, October 2024&lt;/li&gt;
&lt;li&gt;Realtime API, October 2024&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open source gives you weights. Everything that turns a model into a product, you build yourself.&lt;/p&gt;

&lt;p&gt;But if there is one thing AI has taught us, it is that today isn’t tomorrow. A year ago, no one was coding with agents significantly. Now, no one is coding without them. AI is in constant flux, and underneath all this frontier progress, the economics keep drifting. Inference got roughly 10x cheaper per year. The &lt;a href="https://akitaonrails.com/en/2026/04/24/llm-benchmarks-parte-3-deepseek-kimi-mimo/" rel="noopener noreferrer"&gt;capability lag compressed&lt;/a&gt; from 18 months to a few. Then three things hit at once:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open source started landing on frontier benchmarks.&lt;/li&gt;
&lt;li&gt;Frontier labs started raising prices.&lt;/li&gt;
&lt;li&gt;Agents broke the simple math.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The performance margin has disappeared
&lt;/h2&gt;

&lt;p&gt;Let's take a look at Kimi.&lt;/p&gt;

&lt;p&gt;Moonshot AI shipped &lt;a href="https://arxiv.org/abs/2507.20534" rel="noopener noreferrer"&gt;Kimi K2&lt;/a&gt; in July 2025, then Kimi K2.5 in February 2026, then &lt;a href="https://www.kimi.com/ai-models/kimi-k2-6" rel="noopener noreferrer"&gt;Kimi K2.6&lt;/a&gt; in April. The current version is a 1-trillion-parameter MoE with 32B active. The benchmarks land in territory that was Opus-only six months ago.&lt;/p&gt;

&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%2Fkha2rbw6gb0ecm0uaaro.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%2Fkha2rbw6gb0ecm0uaaro.png" alt="Kimi K2.6 Benchmark" width="800" height="673"&gt;&lt;/a&gt;&lt;br&gt;
Kimi K2.6 benchmark comparison vs frontier closed models. Bar heights blend raw scores with within-benchmark contrast. Source: &lt;a href="https://www.kimi.com/ai-models/kimi-k2-6" rel="noopener noreferrer"&gt;Moonshot AI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Kimi is leading or keeping pace with top models. It's a model you can download, run on your own hardware, and deploy to production for the same tasks the frontier handles.&lt;/p&gt;

&lt;p&gt;And the catch-up isn't unique to Kimi. DeepSeek V4 Pro, GLM-5.1, Qwen 3.6, and Mistral Medium 3.5 all shipped frontier-tier benchmarks in Q1 2026. Why?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open labs are riding the slipstream. Frontier closed models do the expensive exploration. Open labs distill trajectories, learn from synthetic data, and post-train against patterns the frontier has already proven out. The first model to solve a problem pays the full cost. The second model pays a fraction.&lt;/li&gt;
&lt;li&gt;The architecture playbook is now public. MoE routing, long-context tricks, test-time reasoning, agent harnesses. Three years ago, these were lab secrets. Now they're papers, blog posts, and reference implementations on Hugging Face. Once a technique is in the open, the gap to implement it is weeks, not quarters.&lt;/li&gt;
&lt;li&gt;Compute is no longer the bottleneck it was. Training a frontier-class model in 2023 took an OpenAI-sized cluster. In 2026, a well-funded lab with a few thousand H100s can ship a competitive model in a single quarter. DeepSeek did it. Moonshot did it. Zhipu did it. The barrier dropped enough that "frontier-class" is no longer a one-company achievement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The labs that ship these models also depend on a long tail of inference providers ready to host them on day one. Distillation pipelines, benchmark validation, and developer adoption all run through that layer.&lt;/p&gt;

&lt;p&gt;There are still gaps. Closed models lead on the hardest reasoning and on the polish that comes from years of RLHF and red-teaming. But the lag is small, and the open labs say so themselves. DeepSeek themselves put their own V4 models 3 to 6 months behind the state-of-the-art frontier, beating last generation's flagships while trailing the current ones. For most production work, a few months of lag on the hardest problems doesn't change the decision.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tokens are going to zero
&lt;/h2&gt;

&lt;p&gt;Proprietary pricing is messy right now, and getting messier. The frontier labs don't really know where to set prices, and the last six months have been them figuring it out in public.&lt;/p&gt;

&lt;p&gt;The trigger is agentic usage. A chat call burns a few hundred tokens. An agent can easily burn through millions. &lt;a href="https://www.cnbc.com/2026/04/17/ai-tokens-anthropic-openai-nvidia.html" rel="noopener noreferrer"&gt;Claude Code Max users&lt;/a&gt; were extracting around $5,000 in usage from $200 monthly plans. Even subsidized, flat-rate subscriptions don't survive a delta like that.&lt;/p&gt;

&lt;p&gt;How is pricing shaking out? Users are seeing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explicit hikes. GPT-5.5 launched at roughly 2x the per-token cost of its predecessor.&lt;/li&gt;
&lt;li&gt;Stealth hikes. Opus 4.7 kept the same sticker price, but its &lt;a href="https://www.finout.io/blog/claude-opus-4.7-pricing-the-real-cost-story-behind-the-unchanged-price-tag" rel="noopener noreferrer"&gt;new tokenizer&lt;/a&gt; generates up to 35% more tokens for the same prompts. Same rate, higher bill.&lt;/li&gt;
&lt;li&gt;Access changes. Codex shifted to &lt;a href="https://help.openai.com/en/articles/20001106-codex-rate-card" rel="noopener noreferrer"&gt;per-token billing&lt;/a&gt;. Anthropic &lt;a href="https://venturebeat.com/technology/anthropic-cuts-off-the-ability-to-use-claude-subscriptions-with-openclaw-and" rel="noopener noreferrer"&gt;cut off OpenClaw&lt;/a&gt; from Claude subscriptions. Google added &lt;a href="https://ai.google.dev/gemini-api/docs/billing" rel="noopener noreferrer"&gt;spend caps&lt;/a&gt; on the Gemini API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goodwill built through the “product” model above is undone bit by bit every time a developer suddenly finds their access locked or their limits hit. Meanwhile, the floor under open-source pricing continues to drop. MiniMax M2.7 on Runware runs at &lt;a href="https://runware.ai/pricing" rel="noopener noreferrer"&gt;$0.30/$1.20&lt;/a&gt; per million input/output tokens. For comparison, Opus 4.7 is &lt;a href="https://claude.com/pricing#api" rel="noopener noreferrer"&gt;$5/$25&lt;/a&gt;, and GPT-5.5 is &lt;a href="https://openai.com/api/pricing/" rel="noopener noreferrer"&gt;$5/$30&lt;/a&gt;. Agents are output-heavy, and output is where the gap is widest. A non-trivial coding task can easily run through hundreds of thousands of output tokens. At GPT-5.5 ($30/M out), each task costs several dollars. At M2.7 ($1.20/M out), it's pennies.&lt;/p&gt;

&lt;p&gt;Per-token billing is the right model for agentic workloads, and the labs know it. Done right, it means paying for the seconds of inference you actually run, no minimums, no commitments, no rounding up. The frontier labs aren't there yet.&lt;/p&gt;

&lt;p&gt;But their customer base anchored on "flat rate, unlimited," and they can't walk that back cleanly. So they're raising prices without raising prices, restricting access without restricting access, and hoping no one tallies the cumulative effect.&lt;/p&gt;




&lt;h2&gt;
  
  
  Harnesses are becoming more important than models
&lt;/h2&gt;

&lt;p&gt;Lock-in to a single model is dissipating. Agents must route across models and modalities for any task at hand.&lt;/p&gt;

&lt;p&gt;This is a fundamental premise of Runware. We are a single destination for 400k+ models across modalities, making model choice a simple config decision. This needs to happen for two reasons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First, frontier agents can use multiple models to perform tasks.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Code uses a main model to do the heavy lifting, a small model handles cheap background jobs like the one-line summaries of your sessions, and a separate model answers the side-questions feature so a quick question mid-task doesn't interrupt the main model.&lt;/li&gt;
&lt;li&gt;A message to ChatGPT doesn't hit one model. A small router reads the request first and decides where it goes: a quick factual question to the fast model, a hard reasoning or coding task to the deeper one. The router doesn't reason or generate anything itself. It dispatches. Easy work goes to the cheap model, hard work to the expensive one, so you stop paying frontier rates for trivial requests.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The dispatcher can be cheap and route to expensive models to do the work. Once model choice is just a configuration, you can build the same thing on open source, with one addition the closed products don't offer: you can pick models by what they're good at, not just by size.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reasoning and planning.&lt;/strong&gt; Breaking a request into steps and deciding when it's done wants the strongest reasoning available. That can now be an open-source model like DeepSeek V4 or Kimi K2.6, both within a few months of the closed frontier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code generation.&lt;/strong&gt; Turning a clear spec into a working file suits a coding-tuned model. Something in the Qwen family handles it at a fraction of the reasoning model's cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The conversational layer.&lt;/strong&gt; Whatever the end user talks to benefits from a more conversational model, such as Gemma.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This works much better for cost. A chat turn that lands on a conversational model never pays frontier rates, and neither does a code generation step that lands on a coding model. As long as each model is capable at its own job, your effective per-request cost is one small-to-medium model, well below a single large model doing every job itself.&lt;/p&gt;

&lt;p&gt;Which brings us to the second reason: &lt;a href="https://runware.ai/docs/platform/introduction" rel="noopener noreferrer"&gt;workflows necessitate multimodality&lt;/a&gt;. Most useful agents touch more than text. Say you're building an agent that turns a written product brief into a 60-second launch video. The pipeline hits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A text model for the script.&lt;/li&gt;
&lt;li&gt;A TTS model for the voiceover.&lt;/li&gt;
&lt;li&gt;An image model for background visuals.&lt;/li&gt;
&lt;li&gt;A video model for b-roll.&lt;/li&gt;
&lt;li&gt;A text model again for captions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without a unified API, the agent is wired into five separate services, each with its own SDK, auth flow, rate limit, billing pipeline, and error semantics. That's a layer of integration your team writes once and maintains forever. A unified API across modalities removes that layer.&lt;/p&gt;

&lt;p&gt;The long-term shape of this is agents deciding which models to use for their task lists in an &lt;a href="https://andreyfradkin.com/assets/marketbench.pdf" rel="noopener noreferrer"&gt;LLM market economy&lt;/a&gt;. The developer writes the initial spec. After that, the agent shops the spread across providers in real time. Model capability becomes a commodity.&lt;/p&gt;




&lt;h2&gt;
  
  
  Open source will build better infrastructure
&lt;/h2&gt;

&lt;p&gt;Once the model question is settled, the next question is latency and placement.&lt;/p&gt;

&lt;p&gt;Agents amplify latency in a way that chat never did. A user opening a support chat notices 500ms once. With an agent making 50 sequential calls to plan, route, and execute, that 500ms compounds into a 25-second delay the user actually waits through. Multiply by the cold-start, retrieval, and tool-call hops in a real agent loop, and round-trip latency starts to dominate the user experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://runware.ai/sonic-inference-engine" rel="noopener noreferrer"&gt;Vertical integration&lt;/a&gt; will be the answer to bringing costs down while increasing speed. Owning the boards, servers, and orchestration end-to-end beats commodity GPU clouds on utilization, which is where most of the cost actually sits. A custom inference stack on hardware you control gives you headroom on both axes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Lower marginal cost per token.&lt;/strong&gt; On-demand hyperscaler H100 rental costs about $7/hour, while buying chips and running them directly puts the equivalent rate at about $1.60 for Runware. Idle capacity from one workload also becomes usable seconds for another, rather than sitting paid for and empty.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lower latency on the calls that matter.&lt;/strong&gt; Pods placed close to traffic beat hyperscaler regions on round-trip time. Tuning the stack purely for inference (high-frequency CPUs, disabled hyperthreading, custom PCIe topology) also yields more performance per chip. That compound effect carries through every step in an agent loop.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Frontier labs are heading the other way. To make the compute economics work at their scale, they sign multi-year deals with the hyperscalers: OpenAI on Azure, Anthropic on AWS and GCP. That locks them into the datacenter model for years. The upstream is volatile enough that Architect have launched compute futures on H100 and H200 prices. The input to every hyperscaler API endpoint is now a hedged commodity.&lt;/p&gt;

&lt;p&gt;Modular compute is what unlocks the alternative. A pod in a shipping container, dropped near the traffic, routes around the 2-to-4-year wait for new AI data center capacity. A pod with power, cooling, and an uplink is enough. The placement decision drops from quarters to weeks. For scale: xAI's 300 MW Colossus build took four months and depended on rented power generators and a large share of the mobile cooling capacity available in the US. A factory shipping containerized inference pods can deploy equivalent compute in days, with everything owned and water-cooled in place.&lt;/p&gt;

&lt;p&gt;The regulatory case is the second tailwind. Multiple frameworks push in the same direction:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GDPR and the EU AI Act: inference inside European borders, with auditable controls.&lt;/li&gt;
&lt;li&gt;FedRAMP and CMMC: US federal and defense workloads, with explicit hardware security postures.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The answer that satisfies all of these is a regional pod running open-source models you can audit. A US hyperscaler endpoint serving Frankfurt traffic is not the answer, no matter how good the model is.&lt;/p&gt;




&lt;h2&gt;
  
  
  Today is closed; tomorrow is open
&lt;/h2&gt;

&lt;p&gt;Open-source models are now good enough for most production work, and frontier closed models are repricing to cover their actual costs.&lt;/p&gt;

&lt;p&gt;The frontier will still be there. Closed labs will keep pushing the leading edge, and there will keep being workloads where that edge is worth paying for. But the share of work that needs the frontier is shrinking, and the share that runs well on an open-source model with the right infrastructure is growing.&lt;/p&gt;

&lt;p&gt;The meaningful decision has moved up the stack. The platforms that win the next phase will be the ones that put open source first, expose every modality behind a single API, charge for the inference you actually run, and operate on hardware designed entirely for this purpose and placed close to where you serve traffic from.&lt;/p&gt;

&lt;p&gt;The model is becoming the easy part. The stack underneath it is where the next few years of competitive advantage live.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where to start
&lt;/h2&gt;

&lt;p&gt;Runware is building exactly this. One API spans every leading open and closed LLM alongside image, video, audio, and 3D, billed per token with no subscriptions. Open-source models run on our own hardware at up to 80% lower cost, and you pick each model by what it does best.&lt;/p&gt;

&lt;p&gt;See it in full on the &lt;a href="https://runware.ai/llm-api" rel="noopener noreferrer"&gt;LLM API page&lt;/a&gt;, with live pricing and the open-versus-closed comparison drawn from current benchmarks. When you are ready, &lt;a href="https://runware.ai/signup" rel="noopener noreferrer"&gt;get an API key&lt;/a&gt; and run your first open-source model in minutes. For committed-use rates and dedicated capacity, &lt;a href="https://runware.ai/contact-sales" rel="noopener noreferrer"&gt;talk to us&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>opensource</category>
      <category>api</category>
    </item>
    <item>
      <title>Your Agents Can Now Use Runware</title>
      <dc:creator>Ally Nicoll</dc:creator>
      <pubDate>Fri, 26 Jun 2026 15:26:58 +0000</pubDate>
      <link>https://dev.to/runware/your-agents-can-now-use-runware-4ll0</link>
      <guid>https://dev.to/runware/your-agents-can-now-use-runware-4ll0</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Runware now provides two new entry points into the Runware environment; an &lt;a href="https://runware.ai/mcp" rel="noopener noreferrer"&gt;MCP server&lt;/a&gt; for AI agents, and a &lt;a href="https://runware.ai/cli" rel="noopener noreferrer"&gt;CLI&lt;/a&gt; for the terminal. Both get you to a working first generation faster than integrating directly, and both reach the same catalog: every major model provider plus thousands of community models, across image, video, audio, 3D, and LLMs, accessible through one interface.&lt;/p&gt;




&lt;h2&gt;
  
  
  The MCP server: Runware inside your agent
&lt;/h2&gt;

&lt;p&gt;MCP (&lt;a href="https://modelcontextprotocol.io/docs/getting-started/intro" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt;) is an open standard that lets AI agents talk to external services through a defined set of tools. If you're using Claude, Cursor, Codex, VS Code, or any other MCP-compatible client, connecting to the Runware MCP server gives your preferred agent the ability to generate media, search the model catalog, and check pricing without you leaving the session, or writing any integration code.&lt;/p&gt;

&lt;p&gt;There are two ways to connect:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hosted&lt;/strong&gt; - point your client at &lt;code&gt;https://mcp.runware.ai&lt;/code&gt;, paste your Runware API key when prompted, and you're connected. The key is stored server-side, encrypted inside the OAuth session, so your client only ever holds a token, never the key itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local&lt;/strong&gt; - for agents that can't reach external MCP servers, or restricted and air-gapped networks, you can run the MCP server on a local machine instead:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx @runware/mcp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Set &lt;code&gt;RUNWARE_API_KEY&lt;/code&gt; in your environment and point your client at the local server. The toolset is identical to the hosted version, it just runs on your machine and connects differently.&lt;/p&gt;

&lt;p&gt;Either way, your agent gains a set of tools it can call directly.&lt;/p&gt;




&lt;h2&gt;
  
  
  The MCP Toolbox
&lt;/h2&gt;

&lt;p&gt;Once connected, your agent gains access to a broad set of Runware tools.&lt;/p&gt;

&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%2Fu1nof22mj9k63y1geluq.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%2Fu1nof22mj9k63y1geluq.png" alt="A summary of MCP functions within Claude" width="720" height="813"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;run&lt;/code&gt; tool is the core one. It handles image generation, video generation, audio, 3D, LLMs, upscaling, background removal, everything the Runware API supports, through your agent interface. You don't need to tell the agent which task type to use or look up model parameter schemas. You describe what you want, and if you know you want a specific model you can name it; otherwise the agent figures out the best fit for your use case using the catalog tools.&lt;/p&gt;

&lt;p&gt;Those catalog tools (&lt;code&gt;list_models&lt;/code&gt;, &lt;code&gt;model_details&lt;/code&gt;, &lt;code&gt;model_pricing&lt;/code&gt;, &lt;code&gt;model_examples&lt;/code&gt;) are what give the agent the ability to search and reason about the available models before committing to a generation. This is genuinely useful in various ways; you could ask something like "&lt;em&gt;what does each Veo model cost for an 8-second 1080p clip&lt;/em&gt;?" and the agent will use the &lt;code&gt;list_models&lt;/code&gt; and &lt;code&gt;model_pricing&lt;/code&gt; tools to look up the options and compile a comparison - displayed directly in your agent application.&lt;/p&gt;

&lt;p&gt;On pricing: There’s no MCP surcharge. If a generation costs $0.05, you pay $0.05. The browsing and inspection tools are free.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Practical Example
&lt;/h2&gt;

&lt;p&gt;You're building a product page in a Claude Code session and you need a hero image in a specific aspect ratio. Normally you'd stop, open a separate generation tool, come up with a prompt, iterate on it, download the result, and bring it back to your workspace. &lt;/p&gt;

&lt;p&gt;With the Runware MCP integrated into Claude, you can simply ask: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;I need a 16:9 banner image for our product page, use Runware, generate two examples for me, one with Nano Banana 2, one with GPT Images 2.0&lt;/code&gt;&lt;/p&gt;

&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%2Fzshn8mf7hp57c3zsyquf.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%2Fzshn8mf7hp57c3zsyquf.png" alt="Runware MCP inference inside Claude Desktop" width="800" height="656"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This example highlights a number of core capabilities;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One of the requested model names wasn’t found in the Runware model catalogue, so the MCP model search tool was employed by the agent to locate it.&lt;/li&gt;
&lt;li&gt;One of the generation requests returned an error and was automatically retried.&lt;/li&gt;
&lt;li&gt;The agent used the &lt;code&gt;ToolSearch&lt;/code&gt; capability to look up the correct schema for the model, identifying acceptable dimensions to solve the issue.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With two sample images generated, Claude Code then offers to wire one into the project, adding it to the repository, all from within the coding agent app - no context-switching required.&lt;/p&gt;




&lt;h2&gt;
  
  
  The CLI: Runware from your terminal
&lt;/h2&gt;

&lt;p&gt;The CLI is a separate tool, a native runware binary that you install on your machine. It's built for working directly without an agent in the loop: generating from the terminal, scripting, testing models, and dropping generation into automated pipelines. The CLI is fully open source and released under the MIT License, so you can inspect the source, build it yourself, and review exactly what you're installing. The source code is available on the Runware GitHub: &lt;a href="https://github.com/Runware/runware-cli" rel="noopener noreferrer"&gt;https://github.com/Runware/runware-cli/tree/main&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The core command is &lt;code&gt;runware run&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;runware run runware:101@1 positivePrompt="a chess match in the park" width=1024 height=1024&lt;/code&gt;&lt;/p&gt;

&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%2Ffvtk99n5mfhi4i6hurg0.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%2Ffvtk99n5mfhi4i6hurg0.png" alt="Basic Runware CLI inference in Powershell" width="800" height="288"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Results download automatically to an &lt;code&gt;./outputs&lt;/code&gt; folder. &lt;/p&gt;

&lt;p&gt;The same &lt;code&gt;run&lt;/code&gt; command works for video, audio, 3D, and text inference, just swap the model identifier. The CLI fetches the model's schema automatically and validates your parameters before the job runs, so you find out about mistakes before any spend.&lt;/p&gt;

&lt;p&gt;Beyond generation, the CLI can search the model catalog, check pricing, inspect a model's full parameter schema, and manage presets for configurations you run often. Output supports &lt;code&gt;--format json&lt;/code&gt; for piping into other tools or scripts, making it practical for automation.&lt;/p&gt;

&lt;h1&gt;
  
  
  Search models
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;runware model search -q "flux"&lt;/code&gt;&lt;/p&gt;

&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%2Fuvs7ofzxt89gcyrw0qpt.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%2Fuvs7ofzxt89gcyrw0qpt.png" alt="Model search output" width="799" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Check a model's parameters before running
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;runware model schema runware:101@1 --format json&lt;/code&gt;&lt;/p&gt;

&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%2Fuvyirdb119ibsg1yaimz.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%2Fuvyirdb119ibsg1yaimz.png" alt="Model schema in JSON format" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Check your account and usage across your API keys
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;runware account details --format JSON&lt;/code&gt;&lt;/p&gt;

&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%2F0ajeefvuatdf6p9q941p.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%2F0ajeefvuatdf6p9q941p.png" alt="Account Details &amp;amp; Usage" width="800" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Like the MCP Server, browsing and inspection calls via the CLI are free. There’s no additional fee to access Runware’s services via CLI.&lt;/p&gt;




&lt;h2&gt;
  
  
  CLI or MCP: which one do you need?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The MCP server&lt;/strong&gt; is the right choice when you're already working inside an agent. You describe what you want, the agent handles the tool calls, and generation happens inside the conversation. It's particularly useful when you want the agent to figure out model selection, chain calls across modalities, or work media generation into a bigger task.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The CLI&lt;/strong&gt; is the right choice when you want to work directly, without an agent. Unlike the MCP, it isn't conversational; you need to know which command to run and what parameters to pass, rather than describing what you want in plain language. That's a reasonable tradeoff when the task is well-defined: scripting a batch job, running generations in CI/CD, or just generating something quickly from a terminal window without spinning up an agent session.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Hosted MCP (Claude, Cursor, VS Code, and most other clients):&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Add &lt;code&gt;https://mcp.runware.ai&lt;/code&gt; as a custom MCP server in your client's settings and complete the OAuth flow when prompted. You'll paste your Runware API key into a Runware-branded page - that's the only time your API key is ever visible.&lt;/p&gt;

&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%2Fa3tatpt65nd8zzxd2csh.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%2Fa3tatpt65nd8zzxd2csh.png" alt="Authenticating with Runware's API" width="487" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Local MCP server:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;npx @runware/mcp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Set &lt;code&gt;RUNWARE_API_KEY&lt;/code&gt; in your environment and point your client at the local server.&lt;/p&gt;

&lt;p&gt;The landing page with per-client MCP setup information is at &lt;a href="https://runware.ai/mcp" rel="noopener noreferrer"&gt;runware.ai/mcp&lt;/a&gt;.&lt;/p&gt;




&lt;h4&gt;
  
  
  &lt;strong&gt;CLI:&lt;/strong&gt;
&lt;/h4&gt;

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

&lt;p&gt;&lt;code&gt;brew tap runware/tap&lt;br&gt;
 brew install runware&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows (via Scoop)&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;scoop bucket add runware https://github.com/Runware/scoop-bucket.git&lt;br&gt;
 scoop install runware&lt;/code&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;code&gt;curl -fsSL https://cli.runware.ai/install.sh | sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then authenticate on any platform with your API key:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;runware auth login&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once authenticated, run &lt;code&gt;runware ping&lt;/code&gt; to confirm connectivity, and you're ready. &lt;/p&gt;

&lt;p&gt;Full CLI reference at &lt;a href="//github.com/Runware/runware-cli"&gt;github.com/Runware/runware-cli&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The landing page with per-client CLI setup information is at &lt;a href="https://runware.ai/cli" rel="noopener noreferrer"&gt;runware.ai/cli&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What's the difference between the MCP and the CLI?&lt;/strong&gt;&lt;br&gt;
The MCP is conversational; you describe what you want and the agent handles the model selection, parameters, and tool calls. The CLI is direct; you write the commands yourself, which makes it better suited to scripting, automation, and situations where you don't want an agent in the loop. Both provide access to the same tools and models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What platforms does the CLI support?&lt;/strong&gt;&lt;br&gt;
macOS, Windows, and Linux. macOS via Homebrew, Windows via Scoop, Linux via a shell installer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I build from source?&lt;/strong&gt;&lt;br&gt;
Yes. Clone the repo and run &lt;code&gt;make build&lt;/code&gt;. The full steps are in the &lt;a href="https://runware.ai/docs/platform/cli" rel="noopener noreferrer"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I need a Runware account to use either?&lt;/strong&gt;&lt;br&gt;
Yes, both require a free Runware API key. You can create an account and generate an API key at &lt;a href="https://runware.ai/" rel="noopener noreferrer"&gt;runware.ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I use both CLI and MCP?&lt;/strong&gt;&lt;br&gt;
Yes. They can share the same API key, linking to the same account balance, and the same model catalog, or be set up with different keys, depending on your needs. Use the MCP when you're working with an agent, and the CLI when you're in a terminal or a script.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebSocket or REST?&lt;/strong&gt;&lt;br&gt;
It's WebSocket by default, but you can switch with &lt;code&gt;--transport http&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>cli</category>
      <category>api</category>
    </item>
    <item>
      <title>We Hosted OpenClaw So You Don't Have To</title>
      <dc:creator>Ally Nicoll</dc:creator>
      <pubDate>Thu, 11 Jun 2026 13:04:53 +0000</pubDate>
      <link>https://dev.to/runware/we-hosted-openclaw-so-you-dont-have-to-3698</link>
      <guid>https://dev.to/runware/we-hosted-openclaw-so-you-dont-have-to-3698</guid>
      <description>&lt;p&gt;&lt;strong&gt;TLDR:&lt;/strong&gt; we just launched free OpenClaw hosting. One-click deploy, no infrastructure to manage, only pay for the AI tokens your agent uses.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Free Hosted OpenClaw for Everyone&lt;/li&gt;
&lt;li&gt;What Is OpenClaw?&lt;/li&gt;
&lt;li&gt;How Provisioning Works&lt;/li&gt;
&lt;li&gt;What You're Actually Running&lt;/li&gt;
&lt;li&gt;Model Switching Without Redeployment&lt;/li&gt;
&lt;li&gt;Pricing Model&lt;/li&gt;
&lt;li&gt;Current Limitations&lt;/li&gt;
&lt;li&gt;FAQ&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Free Hosted OpenClaw for Everyone
&lt;/h2&gt;

&lt;p&gt;Self-hosting OpenClaw is certainly doable (if anything, a bit of a faff). &lt;/p&gt;

&lt;p&gt;The community guide walks you through provisioning a VPS or setting up Docker, creating SSH keys, connecting to the server, installing Node.js and dependencies, installing OpenClaw itself, configuring it, setting up TLS certificates, adding a TLS renewal cron job, connecting an LLM provider, and pairing a messaging channel. The guide even has time estimates for each step. &lt;strong&gt;The total is about 80 minutes before your first message goes through&lt;/strong&gt;, and that assumes you're familiar with all the aforementioned tech, and nothing breaks along the way. After that, ongoing updates, monitoring, and troubleshooting are all yours.&lt;/p&gt;

&lt;p&gt;That might be reasonable if you need full control over your infrastructure. If you don't, it's a lot of overhead for something &lt;em&gt;that should just work&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;We've built a free hosted version of OpenClaw on Runware to take the stress out of the whole process. This post covers how the setup works, what the infrastructure looks like, and where the current limits are.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is OpenClaw?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://openclaw.ai" rel="noopener noreferrer"&gt;OpenClaw&lt;/a&gt; 🦞 is an open-source framework for running AI agents.  The key word is agent: it doesn't just answer questions, it actually does things. Clear your inbox, send emails, manage your calendar, check you in for flights, browse the web, run shell commands, control your browser, write and execute code, the possibilities are endless.&lt;/p&gt;

&lt;p&gt;You connect it to channels such as WhatsApp, Telegram, Discord, Slack, Signal, iMessage, or similar, and from that point on you interact with it the same way you'd message anyone else. It has persistent memory, supports community-built skills, and can write new skills for itself.&lt;/p&gt;

&lt;p&gt;It's incredibly useful and has exploded in popularity since launch. We believe everyone should be able to get in on the action, without the stress of a self-hosted deployment. &lt;/p&gt;

&lt;h2&gt;
  
  
  How Provisioning Works
&lt;/h2&gt;

&lt;p&gt;On Runware, when you click "Deploy OpenClaw" from the OpenClaw dashboard, the platform spins up a container for OpenClaw, in an isolated secure environment. This takes about three minutes.&lt;/p&gt;

&lt;p&gt;The part that usually causes friction in a manual setup is connecting your LLM provider. You'd normally generate an API key from your provider, copy it, SSH into your server, and paste it into a config file. With the hosted version, that step is removed entirely. Runware generates an API key tied to your Runware account and pulls it directly into your OpenClaw instance. By the time the container is live, inference is already wired up. You don't see a key, you don't have to paste anything, and there's no config file to edit.&lt;/p&gt;

&lt;p&gt;From there you open OpenClaw's Control UI, pick a model, connect a messaging channel, and you're running.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We're Actually Running
&lt;/h2&gt;

&lt;p&gt;The hosted container we're deploying is the same OpenClaw you'd run yourself, deployed into a isolated environment on our infrastructure. Updates to the container and underlying infrastructure are handled automatically.&lt;/p&gt;

&lt;p&gt;Channels are configured through the Control UI after deployment. Supported channels include WhatsApp, Telegram, Discord, Slack, Signal, Google Chat, iMessage, and Nostr.&lt;/p&gt;

&lt;h2&gt;
  
  
  Model Switching Without Redeployment
&lt;/h2&gt;

&lt;p&gt;Because inference routes through our hardware, you can switch between models without redeploying anything - it's as simple as selecting a new model.&lt;/p&gt;

&lt;p&gt;We're offering the full Runware LLM catalogue, including both &lt;a href="https://runware.ai/llm-api" rel="noopener noreferrer"&gt;open-source&lt;/a&gt; and closed-source models, including &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GLM-5.1 &amp;amp; GLM-4.7&lt;/li&gt;
&lt;li&gt;Qwen3.5-397B &amp;amp; Qwen3.5-27B&lt;/li&gt;
&lt;li&gt;Kimi K2.6&lt;/li&gt;
&lt;li&gt;MiniMax M2.7,  MiniMax M2.7 Highspeed &amp;amp; MiniMax M2.5&lt;/li&gt;
&lt;li&gt;DeepSeek V4 Flash&lt;/li&gt;
&lt;li&gt;Claude Opus 4.7, Claude Sonnet 4.6 &amp;amp; Claude Haiku 4.5&lt;/li&gt;
&lt;li&gt;GPT-5.5, GPT-5.4, GPT-5.4 Mini &amp;amp; GPT-5.4 Nano&lt;/li&gt;
&lt;li&gt;Gemini 3.1 Pro, Gemini 3.1 Flash Lite, &amp;amp; Gemini 3 Flash.&lt;/li&gt;
&lt;li&gt;Grok 4.3&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;New models added to the Runware model catalogue will show up for use, automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing
&lt;/h2&gt;

&lt;p&gt;Hosting OpenClaw on Runware is entirely free. Compute, storage, networking, the container, updates, and security are all included at no charge. There's no subscription, no monthly minimum spend, and no per-instance fee. All you need is credit in your Runware account to cover LLM usage.&lt;/p&gt;

&lt;p&gt;Model inference is billed at our &lt;a href="https://runware.ai/pricing?category=text" rel="noopener noreferrer"&gt;market leading rates&lt;/a&gt;; you're only charged for LLM token usage - a fully pay-as-you-go model. New accounts with a business email get $2 in free credit to start with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current Limitations
&lt;/h2&gt;

&lt;p&gt;This system is in beta, and there's a few things to know before you start building;&lt;/p&gt;

&lt;p&gt;Each Runware account is currently limited to one instance. If you need multiple agents running in parallel, the self-hosted path is the better option for now. &lt;/p&gt;

&lt;p&gt;We're monitoring performance and listening to community feedback as the service matures. If you run into issues, or want to share what you've built, we'd love to hear from you in the &lt;a href="https://discord.gg/runware" rel="noopener noreferrer"&gt;Runware Discord&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Sign up at &lt;a href="https://runware.ai/free-openclaw?utm_source=devtor&amp;amp;utm_medium=community-site&amp;amp;utm_campaign=2026-06-openclaw-announcement&amp;amp;utm_content=2026-06-11_devto-guest-post" rel="noopener noreferrer"&gt;runware.ai/free-openclaw&lt;/a&gt; and deploy from your dashboard - the whole process takes less than five minutes.&lt;/p&gt;

&lt;p&gt;Happy to answer questions in the comments about anything that's unclear, and we'd love your suggestions and input!&lt;/p&gt;

&lt;p&gt;You can also join the conversation and stay up to date with the latest news in the &lt;a href="https://discord.gg/runware" rel="noopener noreferrer"&gt;Runware Community Discord&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How fast can I deploy OpenClaw?&lt;/strong&gt; &lt;br&gt;
The provisioning itself takes about three minutes. From clicking deploy to having a working agent is under five minutes total, and most of that is the sign-up flow. There's no configuration to fill in and nothing to install locally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is hosting really free?&lt;/strong&gt; &lt;br&gt;
Yes. Compute, storage, the container, networking, updates, and security are all included at zero charge. The way Runware's model works is that you pay for the AI inference your agent generates, not for the infrastructure running it. If your agent is live but never calls a model, you pay nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How does pricing work?&lt;/strong&gt; &lt;br&gt;
The only thing you pay for is the AI tokens your agent uses. Open-source models are billed at Runware's &lt;a href="https://runware.ai/llm-api" rel="noopener noreferrer"&gt;published rates&lt;/a&gt;. There's no monthly subscription and no per-instance charge on top of that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What models does OpenClaw support on Runware?&lt;/strong&gt; &lt;br&gt;
Every model in the Runware catalogue is available, and you switch between them from inside OpenClaw without redeploying. That covers open-source models like Qwen, GLM, Kimi, MiniMax, and DeepSeek running on Runware's own infrastructure, and closed-source frontier models including Claude, GPT-5, Gemini, and Grok. New models are added to your instance automatically as they're added to the catalogue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do updates work?&lt;/strong&gt; &lt;br&gt;
We handle updates to the OpenClaw container and the underlying infrastructure automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is my instance isolated?&lt;/strong&gt; &lt;br&gt;
Yes. Each OpenClaw instance runs in its own secure environment inside an isolated container. There's no shared state with other customers' instances.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens if I outgrow the hosted tier?&lt;/strong&gt; &lt;br&gt;
OpenClaw is open source, so you can move to a self-hosted setup at any point. Nothing about the hosted setup locks you into any ongoing contract.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens if I don't use my instance for a while?&lt;/strong&gt; &lt;br&gt;
If an instance is unused for 5 days it's temporarily suspended to free up capacity. You won't lose any data. Just log back into the Runware dashboard and redeploy, it takes a couple of minutes to reinitialize, then you continue as normal.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openclaw</category>
      <category>api</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
