<?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: KuoBa</title>
    <description>The latest articles on DEV Community by KuoBa (@camelsean).</description>
    <link>https://dev.to/camelsean</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3357668%2F9fb60305-85b7-4027-a3cf-d475c5ab242f.png</url>
      <title>DEV Community: KuoBa</title>
      <link>https://dev.to/camelsean</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/camelsean"/>
    <language>en</language>
    <item>
      <title>One prompt in, a finished film out: running an entire AI video pipeline on Qwen Cloud</title>
      <dc:creator>KuoBa</dc:creator>
      <pubDate>Mon, 20 Jul 2026 13:07:40 +0000</pubDate>
      <link>https://dev.to/camelsean/one-prompt-in-a-finished-film-out-running-an-entire-ai-video-pipeline-on-qwen-cloud-20he</link>
      <guid>https://dev.to/camelsean/one-prompt-in-a-finished-film-out-running-an-entire-ai-video-pipeline-on-qwen-cloud-20he</guid>
      <description>&lt;p&gt;I've been building &lt;strong&gt;&lt;a href="https://github.com/KCL1104/extrovid" rel="noopener noreferrer"&gt;extrovid&lt;/a&gt;&lt;/strong&gt; — an AI-native director and editor. You give it one line of text, and it does the rest: it writes the brief and script, casts a consistent cast, develops a look, boards the shots, generates and reviews the video, adds voiceover, and hands you an edited rough cut. One prompt to a finished short, with a director you can talk to at every step.&lt;/p&gt;

&lt;p&gt;The interesting part isn't any single model. It's that &lt;strong&gt;every creative decision in the pipeline is made by a model on Qwen Cloud (Alibaba DashScope)&lt;/strong&gt; — the LLM that writes the script, the model that draws each frame, the voice that narrates, and the model that renders the video. This post is a tour of how those pieces fit together.&lt;/p&gt;

&lt;h2&gt;
  
  
  The whole crew is a Qwen model
&lt;/h2&gt;

&lt;p&gt;extrovid is built like a film crew, and every role is played by a model on Qwen Cloud:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Job on set&lt;/th&gt;
&lt;th&gt;Model on Qwen Cloud&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Writing the script&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;qwen3.7-max&lt;/code&gt; — the flagship, for the one output that carries the whole film&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Every other agent (brief, cast, look-dev, storyboard, director, review)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;qwen3.7-plus&lt;/code&gt; — cheaper, huge context, used everywhere else&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Concept frames, storyboard keyframes, cast portraits&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;wan2.7-image-pro&lt;/code&gt; (up to 4K)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Voiceover&lt;/td&gt;
&lt;td&gt;&lt;code&gt;qwen3-tts&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rendering the shots&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;HappyHorse&lt;/strong&gt; or &lt;strong&gt;Wan 2.7&lt;/strong&gt; (text-, image-, and reference-to-video)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Six model families, four modalities — text, image, voice, and video — all reached through &lt;strong&gt;one API key and one endpoint&lt;/strong&gt;. That single-vendor coherence turned out to be a real advantage: no juggling five providers, five billing accounts, and five sets of quirks. One key, one place to reason about cost, one place to reason about latency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Talking to Qwen: one endpoint, typed answers
&lt;/h2&gt;

&lt;p&gt;DashScope exposes an &lt;strong&gt;OpenAI-compatible endpoint&lt;/strong&gt;, which means the planning agents can speak to Qwen through the same tooling the rest of the ecosystem already uses. On top of that, extrovid uses a typed agent framework, so the models don't just return prose — they return &lt;strong&gt;structured, validated data&lt;/strong&gt;: a script with numbered scenes, a cast list with consistent character descriptions, a storyboard as machine-readable shots. The brief becomes the script, the script becomes the cast, the cast becomes portraits — each stage's structured output feeds the next.&lt;/p&gt;

&lt;p&gt;That structure is what lets the pipeline be a real pipeline instead of a pile of chat prompts. And it's why the planning phase can stream back to the UI &lt;strong&gt;token by token&lt;/strong&gt;, stage by stage, so you watch the film get planned in real time rather than staring at a spinner.&lt;/p&gt;

&lt;p&gt;One integration lesson worth passing on: Qwen3 models run in a "thinking mode" by default that's excellent for reasoning, but it conflicts with the strict "you &lt;em&gt;must&lt;/em&gt; return this exact schema" mode that structured-output frameworks rely on. Turning thinking mode off for the planning agents made their output deterministic and reliable. If you're getting Qwen to emit strict JSON or tool calls, that's the knob to reach for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Images and voice
&lt;/h2&gt;

&lt;p&gt;Once the plan exists, it needs to become something you can see and hear. &lt;code&gt;wan2.7-image-pro&lt;/code&gt; draws the visual world — cast portraits so a character has a face, look-development frames so the film has a mood, and a keyframe for every shot in the storyboard. Because the Wan 2.7 image family handles both generation and editing, refining a frame later is the same kind of call, not a bolt-on service. Voiceover comes from &lt;code&gt;qwen3-tts&lt;/code&gt;, one narration line per shot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Video: the slow, interesting part
&lt;/h2&gt;

&lt;p&gt;Video is where the integration gets genuinely interesting, because rendering a shot isn't instant — it takes minutes. Qwen Cloud handles this the right way: it's &lt;strong&gt;asynchronous&lt;/strong&gt;. You submit a shot, get a ticket back immediately, and check on it until it's ready. That shape influences the whole backend, which has to track jobs in flight, notice when they finish, and stream live progress to the UI as each shot lands.&lt;/p&gt;

&lt;p&gt;A few things I'm especially happy with here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Two video models, one path.&lt;/strong&gt; extrovid can render on &lt;strong&gt;HappyHorse&lt;/strong&gt; (an Alibaba model that currently ranks #1 on the Artificial Analysis Video Arena, with native audio and multi-language lip-sync) or fall back to &lt;strong&gt;Wan 2.7&lt;/strong&gt; — a single config switch, because both live on the same Qwen Cloud transport. No second integration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best-of-N with an AI "dailies" review.&lt;/strong&gt; Each shot is rendered several times, and a Qwen model reviews the takes and picks the winner automatically — the way a director watches dailies and chooses. You see it happen as a little status note: &lt;em&gt;"picked best of 3."&lt;/em&gt; The machine owns the quality-control work, not just the generation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Continuity that actually holds.&lt;/strong&gt; Each shot is seeded with the previous shot's final frame and the cast portraits, so a character's face and the film's look carry across clips that were generated independently. Continuity turns out to be an architecture problem, not a prompting one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The one hard-won operational lesson: asynchronous results don't wait for you forever. A finished video's download link expires, so the backend has to fetch it and re-host it in your own storage promptly — otherwise you've paid to generate something you can no longer retrieve. Planning for "fetch and keep" from the start saved a lot of pain.&lt;/p&gt;

&lt;h2&gt;
  
  
  The trick that made all of this pleasant to build
&lt;/h2&gt;

&lt;p&gt;Every model in extrovid sits behind a &lt;strong&gt;provider seam&lt;/strong&gt; — a thin boundary where a single setting decides whether a call hits real Qwen Cloud or a fast, deterministic offline stand-in. Flip one flag and the exact same pipeline runs with no key, no network, and no cost.&lt;/p&gt;

&lt;p&gt;This one decision paid for itself over and over:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The whole thing is testable offline.&lt;/strong&gt; The full idea-to-cut pipeline runs in tests with zero spend, because every model has an offline counterpart behind the same boundary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iterating is free.&lt;/strong&gt; Image and video generation are billable; developing against the offline stand-ins (plus per-user daily caps in production) keeps costs bounded until you actually want pixels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Going live is a config change, not a rewrite.&lt;/strong&gt; The offline and real providers are interchangeable, so switching to production Qwen Cloud is flipping a flag and adding a key.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you take one thing from this post, let it be that: when you build on a paid, multi-modal cloud, build the seam that lets you also run without it. It's the cheapest thing you'll build and the one that lets you move fastest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;extrovid is an attempt to close the gap between "a model can make a shot" and "a tool can make a film" — the brief, the casting, the continuity, the take selection, the cut. Qwen Cloud made that feasible for a small project: one vendor covering text, image, voice, and video, reachable through one key, coherent enough that a single person could wire the whole crew together.&lt;/p&gt;

&lt;p&gt;If you're building anything multi-modal for this hackathon, Qwen Cloud is a genuinely strong foundation to build the whole pipeline on — not just one piece of it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Built with Qwen Cloud / Alibaba DashScope end to end.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>qwen</category>
      <category>alibabachallenge</category>
    </item>
    <item>
      <title>Build with MeDo Hackathon Journey</title>
      <dc:creator>KuoBa</dc:creator>
      <pubDate>Sat, 25 Apr 2026 18:25:49 +0000</pubDate>
      <link>https://dev.to/camelsean/build-with-medo-hackathon-journey-3n5h</link>
      <guid>https://dev.to/camelsean/build-with-medo-hackathon-journey-3n5h</guid>
      <description>&lt;p&gt;I'm started to work on Build with MeDo Hackathon! I've tried many similar platform before and I'll share my experience in using MeDo compare with other platform during the Hackathon!&lt;/p&gt;

</description>
      <category>builtwithmedo</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
