<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged ai-video</title>
<link>https://coderlegion.com/tag/ai-video</link>
<description>Powered by Question2Answer</description>
<item>
<title>Why Indie Filmmakers &amp; Ad Studios Switch to Wan 3 for Long-Form AI Video</title>
<link>https://coderlegion.com/33299/why-indie-filmmakers-ad-studios-switch-to-wan-3-for-long-form-ai-video</link>
<description>&lt;p&gt;Ask any independent director or boutique creative studio what slows down their AI pre-visualization workflow, and they rarely complain about a lack of raw image tools. They complain about &lt;strong&gt;tab fatigue and visual amnesia&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In a typical fragmented setup, an art director builds a mood board in one image generator, exports static PNGs to a separate 4-second video clipper, watches the main character's face and coat texture mutate by second three, and then opens a third app just to layer in footsteps and ambient wind. By the time five clips are stitched together on an editing timeline, the visual continuity of the scene has collapsed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wan 3&lt;/strong&gt; (&lt;code&gt;wan30.io&lt;/code&gt;) was engineered to eliminate that multi-tab friction. By uniting &lt;strong&gt;2-second to 30-second 1080p video generation&lt;/strong&gt;, &lt;strong&gt;7-modality reference locking&lt;/strong&gt;, &lt;strong&gt;native audio synthesis&lt;/strong&gt;, and &lt;strong&gt;four specialized reference image engines&lt;/strong&gt; under a single browser roof, it gives small creative teams the continuity and pacing control of a full pre-production studio.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-makes-wan-3-different-from-standalone-video-clippers-&quot;&gt;What Makes Wan 3 Different from Standalone Video Clippers?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://wan30.io&quot;&gt;Wan 3&lt;/a&gt; is an all-in-one multimodal AI video and image creation platform that generates continuous 2s, 5s, 10s, 15s, and 30s video sequences up to 1080p with synchronized native audio.&lt;/strong&gt; Instead of forcing filmmakers to stitch together disconnected micro-clips, it allows creators to lock character identity, lens geometry, and sound design inside one unified browser workspace.&lt;/p&gt;
&lt;p&gt;For storytellers working on pitch trailers, episodic animatics, or high-fashion brand films, three structural capabilities set the platform apart:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;True 30-Second Narrative Breathing Room&lt;/strong&gt;: A 4-second clip is a moving photograph; a 15-second to 30-second shot is a scene. In Wan 3, a camera can establish a wide architectural space, push in to a medium close-up as a character reacts, and settle onto a closing visual beat without a single destructive cut.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Seven-Input Multimodal Conditioning&lt;/strong&gt;: In &lt;code&gt;Reference to Video&lt;/code&gt; mode, you can anchor a shot using a &lt;strong&gt;Start Frame&lt;/strong&gt;, &lt;strong&gt;End Frame&lt;/strong&gt;, &lt;strong&gt;Reference Images&lt;/strong&gt;, &lt;strong&gt;Reference Videos&lt;/strong&gt;, &lt;strong&gt;Reference Audio&lt;/strong&gt;, &lt;strong&gt;Reference Documents&lt;/strong&gt; (&lt;code&gt;PDF&lt;/code&gt;, &lt;code&gt;DOC&lt;/code&gt;, &lt;code&gt;PPT&lt;/code&gt;, &lt;code&gt;Markdown&lt;/code&gt; up to 100 MB), and &lt;strong&gt;Public URLs&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zero-Export Companion Models&lt;/strong&gt;: You never have to leave the workspace to create or fix a reference frame. The studio houses &lt;strong&gt;Nano Banana Pro&lt;/strong&gt; (2K/4K commercial realism), &lt;strong&gt;Seedream 5.0&lt;/strong&gt; (editorial and stylized concept art), &lt;strong&gt;Nano Banana 2&lt;/strong&gt; (rapid iteration), and &lt;strong&gt;Qwen Image 2.1&lt;/strong&gt; (clean in-image typography and poster editing) right alongside &lt;strong&gt;Wan 3.0&lt;/strong&gt;, &lt;strong&gt;Wan 3.0 Video Prime&lt;/strong&gt;, and &lt;strong&gt;Seedance 2.5&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://wan30.io/wan30/seedance-image-reference-014-villeneuve-monolithic-desert.png&quot; alt=&quot;Monolithic Sci-Fi World-Building — Locking Scale and Atmospheric Lighting in Wan 3&quot;&gt;&lt;br&gt;
&lt;em&gt;Figure 1: Building expansive, Denis Villeneuve-inspired sci-fi environments with locked atmospheric perspective and scale before rolling a 30-second tracking shot.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;comparison-fragmented-multi-app-stack-vs-the-unified-wan-3-studio&quot;&gt;Comparison: Fragmented Multi-App Stack vs. The Unified Wan 3 Studio&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Creative Workflow Stage &lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Fragmented 4-Tool Subscription Stack &lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Unified Wan 3 Studio (&lt;code&gt;wan30.io&lt;/code&gt;) &lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Time &amp;amp; Budget Saved&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;1. Concept &amp;amp; Hero Keyframes&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;External Discord bot or standalone image web app &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Built-in &lt;strong&gt;Nano Banana Pro (2K/4K)&lt;/strong&gt;, &lt;strong&gt;Seedream 5.0&lt;/strong&gt;, and &lt;strong&gt;Qwen Image 2.1&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Zero manual file exporting; instant transfer to video slots&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;2. Rough Camera Blocking&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Full-cost renders on every trial-and-error prompt &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Dedicated &lt;strong&gt;Draft Mode&lt;/strong&gt; (&lt;code&gt;480p&lt;/code&gt; at &lt;code&gt;5 credits/sec&lt;/code&gt; — 10 credits for 2s) &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Cuts exploratory credit burn by 50% to 75%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;3. Long-Take Scene Rendering&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Capped at 4s–5s; requires manual frame-extension hacks &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Native &lt;strong&gt;2s, 5s, 10s, 15s, and 30s&lt;/strong&gt; single-pass generation up to &lt;strong&gt;1080p&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Preserves lighting, wardrobe, and lens continuity across 3 beats&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;4. Sound Design &amp;amp; Dialogue&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Silent MP4 export -&amp;gt; separate TTS + Foley generator &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Built-in &lt;strong&gt;Native Audio toggle&lt;/strong&gt; + &lt;strong&gt;AI Video Lip Sync&lt;/strong&gt; (&lt;code&gt;/tools/ai-video-lip-sync&lt;/code&gt;) &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Room tone, footsteps, music cues, and lip-sync in one workflow&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;5. Aspect Ratio Adaptation&lt;/strong&gt; &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Cropping 16:9 renders in external video editors &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;6 Native Ratios&lt;/strong&gt; (&lt;code&gt;Auto&lt;/code&gt;, &lt;code&gt;16:9&lt;/code&gt;, &lt;code&gt;4:3&lt;/code&gt;, &lt;code&gt;1:1&lt;/code&gt;, &lt;code&gt;3:4&lt;/code&gt;, &lt;code&gt;9:16&lt;/code&gt;) &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Native composition for theatrical widescreen or vertical social reels&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h3 id=&quot;inside-a-real-indie-studio-workflow-from-mood-board-to-30-second-master&quot;&gt;Inside a Real Indie Studio Workflow: From Mood Board to 30-Second Master&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Inside the &lt;a rel=&quot;nofollow&quot; href=&quot;https://wan30.io/wan-studio&quot;&gt;Wan 3 Studio workspace&lt;/a&gt;, directors move from static concept art to a finished 30-second 1080p sequence with synchronized sound in four structured steps.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://wan30.io/wan30/wan-image-0052.png&quot; alt=&quot;Editorial High-Fashion Direction — Cobalt Blue &amp;amp; Orange Brutalist Frame&quot;&gt;&lt;br&gt;
&lt;em&gt;Figure 2: High-contrast editorial color blocking (cobalt blue wool against matte orange leather and brutalist concrete) locked via Start Frame conditioning.&lt;/em&gt;&lt;/p&gt;
&lt;h4 id=&quot;step-1-lock-the-visual-bible-with-companion-image-engines&quot;&gt;Step 1: Lock the Visual Bible with Companion Image Engines&lt;/h4&gt;
&lt;p&gt;Every memorable film or campaign starts with unmistakable art direction. Before touching the video timeline, use &lt;strong&gt;Seedream 5.0&lt;/strong&gt; or &lt;strong&gt;Nano Banana Pro&lt;/strong&gt; to establish your hero frames. If your scene includes a neon street sign, a magazine masthead, or a product label that must remain legible on screen, generate or edit that frame with &lt;strong&gt;Qwen Image 2.1&lt;/strong&gt;.&lt;/p&gt;
&lt;h4 id=&quot;step-2-load-the-7-modality-reference-stack&quot;&gt;Step 2: Load the 7-Modality Reference Stack&lt;/h4&gt;
&lt;p&gt;Switch to the video workspace and select &lt;code&gt;Reference to Video&lt;/code&gt;. Upload your hero image as the &lt;strong&gt;Start Frame&lt;/strong&gt;, attach character turnaround sheets in the &lt;strong&gt;Reference Images&lt;/strong&gt; slot, and drop your scene breakdown or script notes into the &lt;strong&gt;Reference Documents&lt;/strong&gt; slot. If you are matching a specific camera cadence, attach a rough &lt;strong&gt;Reference Video&lt;/strong&gt; or configure camera trajectories via &lt;strong&gt;Motion Control&lt;/strong&gt; (&lt;code&gt;/tools/motion-control&lt;/code&gt;).&lt;/p&gt;
&lt;h4 id=&quot;step-3-choreograph-three-temporal-beats-in-draft-mode-480p-&quot;&gt;Step 3: Choreograph Three Temporal Beats in &lt;code&gt;Draft Mode&lt;/code&gt; (&lt;code&gt;480p&lt;/code&gt;)&lt;/h4&gt;
&lt;p&gt;Instead of writing a vague one-line description, break your prompt into three clear story beats across the timeline:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;[Mode: Reference to Video | Duration: 30s | Resolution: 1080p | Aspect Ratio: 16:9 | Audio: Enabled]

[0s–10s: Establishing Mood &amp;amp; Motion]
Medium-wide Steadicam tracking shot following an editorial model in a structured cobalt-blue overcoat and matte-orange leather gloves walking through a sunlit brutalist concrete plaza. Crisp morning shadows slice diagonally across the pavement.

[10s–20s: Camera Arc &amp;amp; Subject Turn]
The model pauses beside a monolithic concrete column and turns toward the lens as the camera executes a smooth 90-degree dolly arc into a tight close-up (85mm prime lens, f/2.0), capturing fine wool fabric texture and subtle wind movement in her hair.

[20s–30s: Wide Architectural Reveal]
The camera cranes gently upward and pulls back, revealing the geometric skyline behind the courtyard while holding clean composition for title credits.

[Audio Direction]
Hollow footsteps echoing against concrete walls, crisp morning breeze, subtle leather glove creak at 12s, and a warm analog synthesizer chord progression building from 15s to 30s.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Run this first pass at &lt;strong&gt;480p&lt;/strong&gt; (&lt;code&gt;5 credits/second&lt;/code&gt;) to verify the pacing of the turn at second 10 and the crane reveal at second 20.&lt;/p&gt;
&lt;h4 id=&quot;step-4-render-the-1080p-master-amp-localize-with-post-tools&quot;&gt;Step 4: Render the 1080p Master &amp;amp; Localize with Post-Tools&lt;/h4&gt;
&lt;p&gt;Once the blocking feels locked, switch the resolution selector to &lt;strong&gt;1080p&lt;/strong&gt; (&lt;code&gt;2.0x&lt;/code&gt; credit multiplier — 300 credits for a full 30-second master or 150 credits for a 15-second cut). Need to isolate the subject for a title sequence composite? Pass the clip directly to the built-in &lt;strong&gt;Background Remover&lt;/strong&gt; (&lt;code&gt;/tools/background-remover&lt;/code&gt;). Producing localized versions for international clients? Use &lt;strong&gt;AI Video Lip Sync&lt;/strong&gt; (&lt;code&gt;/tools/ai-video-lip-sync&lt;/code&gt;) to match spoken dialogue in multiple languages.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://wan30.io/og-real-workflow.png&quot; alt=&quot;Live Browser Workflow Inside Wan 3 Studio&quot;&gt;&lt;br&gt;
&lt;em&gt;Figure 3: The browser-based Wan 3 workspace—combining prompt direction, multimodal reference slots, duration controls (2s–30s), and native audio generation.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;transparent-credit-tiers-for-independent-creators-amp-agencies&quot;&gt;Transparent Credit Tiers for Independent Creators &amp;amp; Agencies&lt;/h3&gt;
&lt;p&gt;One reason independent studios hesitate to adopt long-form AI video is opaque pricing. Wan 3 keeps unit economics completely transparent: &lt;strong&gt;480p costs 5 credits/second (&lt;code&gt;1.0x&lt;/code&gt;)&lt;/strong&gt;, &lt;strong&gt;720p costs &lt;code&gt;1.5x&lt;/code&gt;&lt;/strong&gt;, and &lt;strong&gt;1080p costs &lt;code&gt;2.0x&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Free Trial (100 Credits on Sign-Up)&lt;/strong&gt;: Test the studio immediately with four 5-second &lt;code&gt;480p&lt;/code&gt; draft renders or ten 2-second motion checks at zero cost.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Basic Plan (\$9.90/mo billed annually | \$19.90 monthly)&lt;/strong&gt;: Includes &lt;strong&gt;1,200 monthly credits&lt;/strong&gt;—ideal for solo creators storyboarding short films and social reels.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pro Plan (\$19.90/mo billed annually | \$39.90 monthly)&lt;/strong&gt;: Includes &lt;strong&gt;3,200 monthly credits&lt;/strong&gt;, &lt;strong&gt;full commercial usage rights&lt;/strong&gt;, watermark-free 1080p masters, and priority rendering queues.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ultra Plan (\$59.90/mo billed annually | \$119.90 monthly)&lt;/strong&gt;: Includes &lt;strong&gt;12,000 monthly credits&lt;/strong&gt; and maximum parallel generation concurrency for ad agencies and production houses.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Stop stitching 4-second fragments together across five browser tabs. Open &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://wan30.io&quot;&gt;wan30.io&lt;/a&gt;&lt;/strong&gt;, claim your 100 free trial credits, and direct your next 30-second sequence inside a single creative studio.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/33299/why-indie-filmmakers-ad-studios-switch-to-wan-3-for-long-form-ai-video</guid>
<pubDate>Sun, 01 Nov 2026 09:45:25 +0000</pubDate>
</item>
<item>
<title>RamalamaAi</title>
<link>https://coderlegion.com/32895/ramalamaai</link>
<description>&lt;p&gt;Ramalama AI turns one photo of a person, cat, or dog into a Halloween costume walk video. Pick a costume, create a low-angle cinematic reveal, and download a private, watermark-free vertical HD MP4. Pay per video, from $6.99, no subscription.&lt;/p&gt;
</description>
<category>Launches</category>
<guid isPermaLink="true">https://coderlegion.com/32895/ramalamaai</guid>
<pubDate>Wed, 28 Oct 2026 18:14:50 +0000</pubDate>
</item>
<item>
<title>AI videos with Claude Code for beginners: 11 prompts, $0.62</title>
<link>https://coderlegion.com/32179/ai-videos-with-claude-code-for-beginners-11-prompts-0-62</link>
<description>&lt;p&gt;&lt;em&gt;I start in an empty folder with a fresh Claude Code and teach it to make images, voices and music, and to edit them with FFmpeg. At the end it makes a 101-second narrated space story. Every prompt I used is here, ready to copy.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-way-of-the-jedi&quot;&gt;The way of the Jedi&lt;/h3&gt;
&lt;p&gt;A few months ago I started making AI videos. I didn't plan that. I had never seen myself as an AI video creator. I just wanted to try to create some video materials for my text game. And oh boy... I got lost in this.&lt;/p&gt;
&lt;p&gt;I never planned to make music videos either. And yet, here I am:&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/86IzQeT51Mw&quot;&gt;&lt;img src=&quot;https://azelianouski.dev/images/aivideo-ep2-thumb-item-nine.jpg&quot; alt=&quot;Slopcore: Item Nine (Nothing to Report 3)&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/86IzQeT51Mw&quot;&gt;Watch Item Nine on YouTube&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And you know what? So many people are doing this wrong. The AI video world is the wild west - no standards, no best practices, no rules. And a lot of people constantly trying to sell you their tools. Or the idea that you need some tool. You don't. Really.&lt;/p&gt;
&lt;p&gt;My path is different. Like a Jedi who had to build their own lightsaber, a true video creator should build their own tools. Unique and personal, with a sparkle of your taste. Only then will you be free to create whatever you want. I started with some promo videos, then jumped into funny shorts, then into my own anime, then into music videos. Who knows what I'll be doing tomorrow? I don't believe in other people's tools.&lt;/p&gt;
&lt;p&gt;I'll show you how to build your own AI video tool, pipeline, workflow, engine, harness - whatever the name is.&lt;/p&gt;
&lt;p&gt;This article is a text version of this video:&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/Vc7AJ4xCl-U&quot;&gt;&lt;img src=&quot;https://azelianouski.dev/images/aivideo-ep2-thumb-tutorial.jpg&quot; alt=&quot;AI videos with Claude Code for beginners&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/Vc7AJ4xCl-U&quot;&gt;Watch the tutorial on YouTube&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;the-tool&quot;&gt;The tool&lt;/h3&gt;
&lt;p&gt;I'm an AI minimalist - I believe in a simple setup and simple words. I'm using Claude Code with a bunch of skills - that's it. And it can actually be any up-to-date coding assistant (a harness) with any frontier model. Claude Code with Opus 5.5 is a great choice if you are ready to pay $100/month + the cost of generated assets, but you can lower the budget and be all right.&lt;/p&gt;
&lt;p&gt;Here's what I would pick for different price ranges, per month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$100: Claude Code or Codex&lt;/li&gt;
&lt;li&gt;$20: Google AI Pro&lt;/li&gt;
&lt;li&gt;Chinese coding plans: Kimi $20/$40, GLM $20/$80, MiniMax $11/$30&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pick one in your price range and get used to it. Everything below works the same in Codex or any other harness.&lt;/p&gt;
&lt;p&gt;Skills support is the only requirement. Skills are our plugins, addons, extensions - all the new functionality and experience we are going to add to the base harness. What functionality do we need? Two things really:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ability to generate assets (images, animations, sounds, voices);&lt;/li&gt;
&lt;li&gt;And ability to edit a video.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;why-skills&quot;&gt;Why skills&lt;/h3&gt;
&lt;p&gt;They are just text files. They work as lazily loaded prompts. Each skill has a short description and a body - only the descriptions are loaded into the context. The model decides from these descriptions when to load the rest of a skill. You can have a lot of them and nothing is loaded into the context unless it is needed. That's why I like them more than MCP servers - those put a lot more into the context.&lt;/p&gt;
&lt;p&gt;Imagine that you want to teach your brand new Claude Code to generate images using OpenAI API. You explain where to get the API key, you pass the image gen documentation, you let it make some calls and build a few reusable scripts... You let it find the successful path, then ask it to create a skill with it. This skill will contain the successful path, the exact steps and scripts location, usage examples, all the useful settings, and the description when to use this skill.&lt;/p&gt;
&lt;p&gt;And you don't write skills yourself. You only say &quot;remember the successful path, create a skill for this&quot;. Next time it doesn't search - it loads the skill and does everything from the first attempt. I wrote more about how my skills grew in &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/25768/how-to-start-creating-ai-videos-from-scratch&quot;&gt;How to start creating AI videos from scratch&lt;/a&gt;. Here we just build them, one by one. We need four groups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;images,&lt;/li&gt;
&lt;li&gt;voices,&lt;/li&gt;
&lt;li&gt;music (oh, this one is magical), &lt;/li&gt;
&lt;li&gt;editing (you would be expelled from Hogwarts for this one).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://azelianouski.dev/images/aivideo-ep2-skills.jpg&quot; alt=&quot;The eight skills the harness wrote for itself in the demo, and the top of the gpt-image skill: its name and description.&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;from-complete-scratch&quot;&gt;From complete scratch&lt;/h3&gt;
&lt;p&gt;Here is what we start with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;an empty folder&lt;/li&gt;
&lt;li&gt;a fresh Claude Code session that knows nothing about you&lt;/li&gt;
&lt;li&gt;three API keys&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And here is what we end with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;8 skills the harness wrote for itself&lt;/li&gt;
&lt;li&gt;a 101-second narrated story with 10 illustrations, music and camera moves&lt;/li&gt;
&lt;li&gt;a costs.csv that says we spent &lt;strong&gt;$0.62&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It took about an hour of work. No libraries to install by hand, no platforms, no video editor.&lt;/p&gt;
&lt;h3 id=&quot;what-we-build&quot;&gt;What we build&lt;/h3&gt;
&lt;p&gt;We build a slideshow. A short story, a voice reading it, and images that change as the story goes.&lt;/p&gt;
&lt;p&gt;I know what you're thinking.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;A slideshow??? This is ridiculous, so much time has been wasted reading this! I'm leaving!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes, a slideshow. This is how you start. A video is a bunch of animated slides (surprise). First you learn to make the slides, set up your harness to do it fast and easy - only then do you think of animating them. Animation is stage two - a place you need to get to.&lt;/p&gt;
&lt;h3 id=&quot;images&quot;&gt;Images&lt;/h3&gt;
&lt;p&gt;You need to pick an image model. One model is how you keep the style consistent. Although, sometimes I generate an image with one model and then fix some details with another one. Which means having more than one is a good idea.&lt;/p&gt;
&lt;p&gt;I think the best one right now is OpenAI GPT Image 2.5 (&lt;code&gt;gpt-image-2.5-sunburst&lt;/code&gt;). In our demo one image cost $0.04 at 1536x1024. A 4K image costs about $0.12.&lt;/p&gt;
&lt;p&gt;I like using it through the official OpenAI API. This gives me the latest version, all the features like editing, good docs with examples and best practices I can pass to the AI. This might not be the cheapest option, but we are going to pay less than $1 for 10 images.&lt;/p&gt;
&lt;p&gt;To teach our harness to use GPT Image 2.5 we do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to the OpenAI API platform, create a profile, create an API key.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://azelianouski.dev/images/aivideo-ep2-api-keys.jpg&quot; alt=&quot;The OpenAI platform: API Keys in the left menu, the Create new secret key button at the top right.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Store it somewhere. Ask your AI how to do it properly. For example, I keep my keys in the macOS Keychain. Claude Code wrote a script that gets the key and makes the API call - it never sees the key itself.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Then open the &lt;a rel=&quot;nofollow&quot; href=&quot;https://developers.openai.com/api/docs/guides/image-generation&quot;&gt;docs page&lt;/a&gt; for image generation. Most docs sites now have the &quot;Copy page&quot; button that copies the whole page as markdown.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://azelianouski.dev/images/aivideo-ep2-docs.jpg&quot; alt=&quot;The OpenAI image generation docs, with the Copy Page button under the table of contents.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Copy it, paste it into the harness, and ask:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Hi! I want to make AI videos in this folder, starting from zero. Step one: teach yourself to generate images with OpenAI GPT Image 2.5 (gpt-image-2.5-sunburst). My API key is in macOS Keychain, account ai-video-demo, service vid-oai. Never print it. Here is the documentation: [docs] Make one test image: a lonely research station on a frozen moon, Saturn huge in the sky, cinematic, 1536x1024.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That's the magic of modern harnesses. It reads the doc, writes a small script, runs it, fixes its own errors, and gives you an image. Ours took 32 seconds and $0.04.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://azelianouski.dev/images/aivideo-ep2-first-image.jpg&quot; alt=&quot;A research station on a frozen moon, Saturn huge in the sky.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Then:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Nice. Now create a skill for this, so you remember the successful path next time. Name it gpt-image, and describe it as our main skill for images.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It's good to have more than one model. My second favorite is Nano Banana 2.1. The docs are &lt;a rel=&quot;nofollow&quot; href=&quot;https://ai.google.dev/gemini-api/docs/image-generation&quot;&gt;here&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Great. Let's add a second image model as an alternative: Nano Banana 2.1 (Gemini image, gemini-nano-banana-2.1). Gemini key is in Keychain, account ai-video-demo, service vid-gem. Docs: [docs] Generate the same frozen moon scene with it so we can compare the two models side by side. Then make a skill for it called nano-banana.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Same frame, $0.10.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://azelianouski.dev/images/aivideo-ep2-image-compare.jpg&quot; alt=&quot;The same frozen moon station, GPT Image 2.5 on the left, Nano Banana 2.1 on the right.&quot;&gt;&lt;/p&gt;
&lt;p&gt;We won't be using Midjourney here, although most AI content creators prefer this model over anything else. It gives better realism and really unique visuals. But it doesn't have an official API and it's harder to get great results out of the box. Feel free to explore this model yourself. I use it via the EvoLink platform: &lt;a rel=&quot;nofollow&quot; href=&quot;https://evolink.ai/midjourney-v8-2&quot;&gt;Midjourney 8.2 page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://azelianouski.dev/images/aivideo-ep2-midjourney.jpg&quot; alt=&quot;Four Midjourney v8.2 stills from my music videos: an android woman with black hair in a ship corridor, twice, and a boxy cargo robot in a warehouse, twice.&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;house-rules&quot;&gt;House rules&lt;/h3&gt;
&lt;p&gt;Before going further, I set some rules for the project. They go into &lt;code&gt;CLAUDE.md&lt;/code&gt;, a file the harness reads at the start of every session:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Before we go further, let's set some house rules for this project and write them into CLAUDE.md. 1) Cost tracking: every paid API call gets a row in costs.csv (date, service, model, what, cost in USD). Don't trust your memory for prices, use these official pricing pages. Gemini: [pricing page] OpenAI: [pricing page] Add rows for the two images we already made. 2) Work log: after every step that creates a file, append a short entry to WORKLOG.md: what, which tool and model, the full prompt, the output file, the cost. 3) Project structure: every video gets its own folder, projects/NAME/, with images/, voices/, music/, cuts/ and final/ inside. Move the two test images to projects/tests/images/.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cost tracking is everything. Did I mention that real animation is very expensive? I spend around $100 on my 4 min music videos. People keep telling me that it can be cheaper, but it's usually theory. I haven't heard it from people who actually make videos. In any case, if you track costs you are in control. If it's getting too expensive, you switch to cheaper models and change the technique.&lt;/p&gt;
&lt;p&gt;And this is why it's important to master slideshows - sometimes you can get away with a still image even in a high quality cinematic video. It can save you tons of money.&lt;/p&gt;
&lt;h3 id=&quot;voice&quot;&gt;Voice&lt;/h3&gt;
&lt;p&gt;There is ElevenLabs, and it's the best voice platform. Great voices, lots of settings. It's also the most expensive and a bit hard to use. I'd start with Gemini voice models instead. They're very cheap, and you can describe in words what voice you want. Or you can just ramble your preferences to Claude Code, and it turns them into the Gemini voice instruction for you.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Images done. Now voices. Teach yourself Gemini text-to-speech (gemini-3.8-flash-tts), same Gemini key. Docs: [docs] Test line: &quot;The station had been silent for three hundred days. Then, at midnight, the radio woke up.&quot; Calm, low female narrator, a little mysterious. Save it in projects/tests/voices/. When it works, create a skill called gemini-voice.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It picks the voice by its description. The one it chose is described as &quot;deep, velvety, and unhurried&quot;.&lt;/p&gt;
&lt;p&gt;A bonus model: Kokoro. It runs fully on your computer, on the CPU, for free.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Good. Now a free one: can we have the Kokoro voice model (Kokoro-82M) running locally on my CPU? Download it, write a script, read the same line with a female voice, and make a skill called kokoro-voice. This Mac has 16 GB of RAM, so keep it light.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It downloads the model, writes a script to run it, and makes a skill. Simona, my AI assistant, uses Kokoro to read her replies to me out loud every day. We created a Claude Code hook for this - but it's a separate topic.&lt;/p&gt;
&lt;p&gt;Kokoro is not very configurable, but it's free and lightweight, so add it. Use it for drafts or long texts - it can read books or articles to you.&lt;/p&gt;
&lt;p&gt;And the premium one:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Last voice, the premium one: ElevenLabs. Key is in Keychain, account ai-video-demo, service vid-el. Docs: [docs] Read the same line once with a calm female narrator voice, model eleven_multilingual_v2. Make a skill called elevenlabs-voice. Then put the best Gemini take, the Kokoro take and this one side by side in projects/tests/voices/ so I can compare them.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The same line, three engines:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;Engine &lt;/th&gt;&lt;th&gt;Cost of the line &lt;/th&gt;&lt;th&gt;What you control&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Kokoro (local) &lt;/td&gt;&lt;td&gt;$0 &lt;/td&gt;&lt;td&gt;speed only&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Gemini TTS &lt;/td&gt;&lt;td&gt;$0.0025 &lt;/td&gt;&lt;td&gt;a style prompt in plain words&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ElevenLabs &lt;/td&gt;&lt;td&gt;$0.0071 &lt;/td&gt;&lt;td&gt;voice settings, a huge voice library, cloning&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;You can hear all three in the video at &lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/Vc7AJ4xCl-U?t=630&quot;&gt;10:30&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;music&quot;&gt;Music&lt;/h3&gt;
&lt;p&gt;There are music services. Suno is the most famous one. For this video we use something simpler, free, and very magical: Python.&lt;/p&gt;
&lt;p&gt;You don't code anything. You just ask:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Voices done. Now music, completely free: using Python, can you generate some electronic music for a video? A calm, slightly eerie ambient track, about 60 seconds, for a sci-fi story about a lonely station on a frozen moon. No samples, just code. Save it to projects/tests/music/ and make a skill called python-music.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You won't get rock music or vocals. But you get decent electronic background music for a simple video. It can't listen to its own track, so it checked it by looking at the spectrogram.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://azelianouski.dev/images/aivideo-ep2-music.jpg&quot; alt=&quot;The spectrogram of the Python track. The harness drew it to check its own music.&quot;&gt;&lt;/p&gt;
&lt;p&gt;You can hear the track in the video at &lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/Vc7AJ4xCl-U?t=674&quot;&gt;11:14&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It's hard to give feedback on this kind of music. My AI and I don't have shared words for drones, ambient pads and noises yet. But it's interesting - over time we can build those words and understand each other better. Make this higher, reduce the humming, let's add some random notes...&lt;/p&gt;
&lt;p&gt;That's the only music skill I have. When I need more, I go to Suno by hand. It has no API.&lt;/p&gt;
&lt;h3 id=&quot;editing&quot;&gt;Editing&lt;/h3&gt;
&lt;p&gt;Two more skills. The main one is &lt;code&gt;FFmpeg&lt;/code&gt;. It's a terminal tool with no UI, and AI is very good with it. It can make a video from images, cut a video into pieces, swap them, pull out frames, add sound, change volume. A full video editor in the terminal. The model already knows it, and the tool has its own docs built in.&lt;/p&gt;
&lt;p&gt;Now the first real video, from one prompt:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Now our first real video. Write a short story about space, 8 to 10 sentences, about that lonely station on the frozen moon whose radio wakes up. Split it into parts and make 6 illustrations for it with gpt-image, 16:9, same style in every frame. Voice the story with Gemini. Make a music track for it with python-music and keep it quiet under the voice. Then use FFmpeg to put it all together into a 1920x1080 slideshow video where the images follow the story. New project folder for it. When it works, create an ffmpeg skill with the successful path.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://azelianouski.dev/images/aivideo-ep2-story.jpg&quot; alt=&quot;The six illustrations gpt-image made for the story, same style in every frame.&quot;&gt;&lt;/p&gt;
&lt;p&gt;It worked. But each image stayed on screen for 17 seconds, which is way too long.&lt;/p&gt;
&lt;p&gt;To switch images at the right moment, you need timings: when exactly each word is spoken. There is a small local model for that, &lt;code&gt;faster-whisper&lt;/code&gt;. You don't need to know its name. Just tell the harness you need the exact timing of each word.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;It works, nice! Two things to improve. First, each image stays on screen for 17 seconds, that's too long. Let's do one image per sentence (keep the 6 we have, add the missing ones in the same style). To switch images at exactly the right moment, we need word timings: set up a small local transcription model (faster-whisper) that tells us when each word is spoken, and make a skill for it called transcript. Second, what other effects can FFmpeg do on still images besides zoom? Use a few of them in v2 where they fit the story, for example a slow pan across a wide image, a little camera shake when the radio wakes up, a light pulse when the station lights come on. Render it as v2, keep v1.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;About the effects. Once the slides are together, you'll see they move a little: a slow zoom in or out. Ask what else &lt;code&gt;FFmpeg&lt;/code&gt; can do. It can zoom in any direction. It can scroll across a wide image through a narrow window. It can shake the frame. It can play with brightness, like a light pulse. This matters later: you don't always need expensive animation. Often a still image with a good effect is enough.&lt;/p&gt;
&lt;p&gt;There is one unwanted effect: the shaking. Zooming recalculates the frame size over time, and rounding to whole pixels creates tiny mistakes. This creates jitter, and a model cannot see it. I can, so I asked it to get rid of the jitter and remember the fix in the skill. Although sometimes shaking might be useful.&lt;/p&gt;
&lt;h3 id=&quot;the-result&quot;&gt;The result&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/Vc7AJ4xCl-U?t=861&quot;&gt;&lt;img src=&quot;https://azelianouski.dev/images/aivideo-ep2-thumb-result.jpg&quot; alt=&quot;The Silent Station, made from one prompt&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/Vc7AJ4xCl-U?t=861&quot;&gt;Watch the story on YouTube, from 14:21&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The story starts at 14:21 in the video.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The station had been silent for three hundred days. It sat alone on the frozen plains of a nameless moon, where Saturn filled half the sky. [...] Then she leaned toward the microphone and said, &quot;This is Kepler Station. We are still here.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And if you don't like some part of it, just ask. The harness has all the source files and all the timings. Change one line, render again.&lt;/p&gt;
&lt;p&gt;The last prompt is a quick tour of what we built:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Looks great. Last thing for today, a quick tour so I can see what we built: list our skills with their one-line descriptions, show me how much we spent in total from costs.csv, the last few entries of WORKLOG.md, and the folder structure of the project. Just show them, no changes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here is the full bill:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;What &lt;/th&gt;&lt;th&gt;Calls &lt;/th&gt;&lt;th&gt;Cost&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Images, GPT Image 2.5 &lt;/td&gt;&lt;td&gt;12 &lt;/td&gt;&lt;td&gt;$0.489&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Images, Nano Banana 2.1 &lt;/td&gt;&lt;td&gt;1 &lt;/td&gt;&lt;td&gt;$0.102&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Voice, Gemini TTS &lt;/td&gt;&lt;td&gt;8 &lt;/td&gt;&lt;td&gt;$0.026&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Voice, ElevenLabs &lt;/td&gt;&lt;td&gt;1 &lt;/td&gt;&lt;td&gt;$0.007&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Voice Kokoro, music, FFmpeg, faster-whisper &lt;/td&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;$0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt; &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;$0.624&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&quot;the-docs-i-pasted&quot;&gt;The docs I pasted&lt;/h3&gt;
&lt;p&gt;Where a prompt says [docs], I pasted the whole page with &quot;Copy page&quot;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenAI images: &lt;a rel=&quot;nofollow&quot; href=&quot;https://developers.openai.com/api/docs/guides/image-generation&quot;&gt;https://developers.openai.com/api/docs/guides/image-generation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gemini images: &lt;a rel=&quot;nofollow&quot; href=&quot;https://ai.google.dev/gemini-api/docs/image-generation&quot;&gt;https://ai.google.dev/gemini-api/docs/image-generation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gemini TTS: &lt;a rel=&quot;nofollow&quot; href=&quot;https://ai.google.dev/gemini-api/docs/speech-generation&quot;&gt;https://ai.google.dev/gemini-api/docs/speech-generation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ElevenLabs: &lt;a rel=&quot;nofollow&quot; href=&quot;https://elevenlabs.io/docs/api-reference/text-to-speech/convert&quot;&gt;https://elevenlabs.io/docs/api-reference/text-to-speech/convert&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Prices: &lt;a rel=&quot;nofollow&quot; href=&quot;https://ai.google.dev/gemini-api/docs/pricing&quot;&gt;https://ai.google.dev/gemini-api/docs/pricing&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; href=&quot;https://developers.openai.com/api/docs/pricing&quot;&gt;https://developers.openai.com/api/docs/pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;what-s-next&quot;&gt;What's next&lt;/h3&gt;
&lt;p&gt;This is more than enough to start. It's how I started. My very first video, &lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/emkCeHF_KDM&quot;&gt;Sleeper AI episode 1&lt;/a&gt;, is still one of my favorites. Half of it is static images and HTML. You can do a lot with static images.&lt;/p&gt;
&lt;p&gt;In the next episode we animate some of these slides. Or build an episode of my shorts series together.&lt;/p&gt;
&lt;p&gt;If you get stuck, or want to show what you made, come to our Discord: &lt;a rel=&quot;nofollow&quot; href=&quot;https://discord.gg/PVY9dpU8X5&quot;&gt;https://discord.gg/PVY9dpU8X5&lt;/a&gt;&lt;/p&gt;
</description>
<category>Tutorials</category>
<guid isPermaLink="true">https://coderlegion.com/32179/ai-videos-with-claude-code-for-beginners-11-prompts-0-62</guid>
<pubDate>Fri, 23 Oct 2026 12:18:34 +0000</pubDate>
</item>
<item>
<title>Four ways to reach the same video model, and what each one asks of you first</title>
<link>https://coderlegion.com/27019/four-ways-to-reach-the-same-video-model-and-what-each-one-asks-of-you-first</link>
<description>&lt;p&gt;Most &quot;how do I use model X&quot; questions are not really about prompting. They are&lt;br&gt;
about &lt;em&gt;where you type the prompt&lt;/em&gt;, and for Alibaba's Wan 3.0 that is genuinely&lt;br&gt;
confusing, because the model shipped as an API months before it shipped as&lt;br&gt;
anything a person could open.&lt;/p&gt;
&lt;p&gt;There are four routes in. The model at the far end is the same in all four. What&lt;br&gt;
differs is the paperwork.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;Route &lt;/th&gt;&lt;th&gt;What you need before you can start &lt;/th&gt;&lt;th&gt;Who it suits&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Alibaba Cloud Model Studio &lt;/td&gt;&lt;td&gt;Cloud account, a region choice, an API key that matches that region &lt;/td&gt;&lt;td&gt;Teams already on Alibaba Cloud&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Qwen Cloud &lt;/td&gt;&lt;td&gt;An account; international access still rolling out &lt;/td&gt;&lt;td&gt;Developers outside China&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Alibaba's own consumer surfaces &lt;/td&gt;&lt;td&gt;An account, plus access being rolled out to members &lt;/td&gt;&lt;td&gt;People who want the first-party product&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;A hosted front end &lt;/td&gt;&lt;td&gt;Usually nothing, sometimes an email &lt;/td&gt;&lt;td&gt;One clip today&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;That table is the whole answer for most people. The rest of this post is the&lt;br&gt;
part that actually costs money if you skip it.&lt;/p&gt;
&lt;h3 id=&quot;the-region-key-pairing-is-a-real-constraint-not-boilerplate&quot;&gt;The region/key pairing is a real constraint, not boilerplate&lt;/h3&gt;
&lt;p&gt;On the official route, the API key is scoped to the region you picked. A key&lt;br&gt;
issued in one region will not authenticate against another region's endpoint,&lt;br&gt;
and the failure surfaces as an authentication error rather than &quot;wrong region&quot;,&lt;br&gt;
which sends people to rotate a perfectly good key.&lt;/p&gt;
&lt;p&gt;Worth knowing before you build routing: four of the five regions are priced&lt;br&gt;
identically and the fifth is about 25% more. If your traffic is not&lt;br&gt;
latency-sensitive, region choice is a billing decision that looks like an&lt;br&gt;
infrastructure decision.&lt;/p&gt;
&lt;h3 id=&quot;the-api-is-asynchronous-and-there-are-two-separate-24-hour-clocks&quot;&gt;The API is asynchronous, and there are two separate 24-hour clocks&lt;/h3&gt;
&lt;p&gt;You submit a job and poll. There is no callback in the published reference, and&lt;br&gt;
there is no documented cancel call — &lt;code&gt;CANCELED&lt;/code&gt; exists in the state enum, but&lt;br&gt;
nothing in the API puts a task into it. Once a thirty-second job is submitted,&lt;br&gt;
it is submitted.&lt;/p&gt;
&lt;p&gt;Then two clocks start, and they are not the same clock:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The &lt;code&gt;task_id&lt;/code&gt; is valid for 24 hours.&lt;/strong&gt; Query it later and you get &lt;code&gt;UNKNOWN&lt;/code&gt;,&lt;br&gt;
which is not a failure state. It means the system no longer remembers the job.&lt;br&gt;
A front end that maps &lt;code&gt;UNKNOWN&lt;/code&gt; onto &lt;code&gt;PENDING&lt;/code&gt; will spin forever — if you have&lt;br&gt;
ever watched a progress bar run past an hour, that is usually what you were&lt;br&gt;
watching.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The &lt;code&gt;video_url&lt;/code&gt; also expires 24 hours after success.&lt;/strong&gt; The file was&lt;br&gt;
generated, the money was spent, and if nobody fetched it, there is nothing to&lt;br&gt;
show. Copying the output into your own storage the moment a job succeeds is&lt;br&gt;
the single most important line in the integration, and it is the line people&lt;br&gt;
leave for later.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Six states exist in total: &lt;code&gt;PENDING&lt;/code&gt;, &lt;code&gt;RUNNING&lt;/code&gt;, &lt;code&gt;SUCCEEDED&lt;/code&gt;, &lt;code&gt;FAILED&lt;/code&gt;,&lt;br&gt;
&lt;code&gt;CANCELED&lt;/code&gt;, &lt;code&gt;UNKNOWN&lt;/code&gt;. Collapsing the last one into &quot;failed&quot; is the mistake that&lt;br&gt;
generates support tickets, because &quot;expired&quot; and &quot;failed&quot; have different causes&lt;br&gt;
and different remedies.&lt;/p&gt;
&lt;h3 id=&quot;concurrency-is-small-enough-to-design-around&quot;&gt;Concurrency is small enough to design around&lt;/h3&gt;
&lt;p&gt;Two concurrent tasks. A fifty-task queue. Thirty submissions a minute. A single&lt;br&gt;
generation usually runs one to five minutes, longer for longer clips.&lt;/p&gt;
&lt;p&gt;Batch four variants and you are running two and waiting on two. Nothing failed;&lt;br&gt;
two are queued. The useful consequence is that your rate limiter is probably&lt;br&gt;
guarding the wrong number — the submission ceiling is rarely what you hit first,&lt;br&gt;
concurrency is.&lt;/p&gt;
&lt;h3 id=&quot;the-default-that-quietly-quadruples-the-bill&quot;&gt;The default that quietly quadruples the bill&lt;/h3&gt;
&lt;p&gt;If you do not set &lt;code&gt;resolution&lt;/code&gt;, Wan 3.0 generates at 1080P. At Alibaba's&lt;br&gt;
published rates that is four times the per-second cost of 480P: a thirty-second&lt;br&gt;
clip is $6.00 instead of $1.50. Nothing errors and nothing warns you. One&lt;br&gt;
parameter.&lt;/p&gt;
&lt;p&gt;Related, and equally undocumented in most write-ups: prompt expansion is on by&lt;br&gt;
default. It helps a short prompt and interferes with a long one you already&lt;br&gt;
tuned. The response hands your original text back under &lt;code&gt;orig_prompt&lt;/code&gt;, so you&lt;br&gt;
can always diff what you sent against what ran.&lt;/p&gt;
&lt;h3 id=&quot;two-input-families-that-cannot-share-a-request&quot;&gt;Two input families that cannot share a request&lt;/h3&gt;
&lt;p&gt;Wan 3.0 takes a reference family (&lt;code&gt;reference_image&lt;/code&gt;, &lt;code&gt;reference_video&lt;/code&gt;,&lt;br&gt;
&lt;code&gt;reference_audio&lt;/code&gt;, &lt;code&gt;file&lt;/code&gt;, &lt;code&gt;link&lt;/code&gt;) and a keyframe family (&lt;code&gt;first_frame&lt;/code&gt;,&lt;br&gt;
&lt;code&gt;last_frame&lt;/code&gt;), and it refuses both in the same call:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;code&quot;: &quot;InvalidParameter&quot;,
  &quot;message&quot;: &quot;The two modes are mutually exclusive. Do not pass reference_xx and first_frame/last_frame at the same time.&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This reads like an arbitrary validation rule and it is not. Keyframes say &lt;em&gt;start&lt;br&gt;
here, end there, invent the middle&lt;/em&gt;. References say &lt;em&gt;here is a cast and a mood,&lt;br&gt;
work the shot out yourself&lt;/em&gt;. One pass cannot be pinned at both ends and freely&lt;br&gt;
composed at the same time. So the fix is a decision rather than a workaround.&lt;/p&gt;
&lt;p&gt;The same shape appears twice more, smaller: &lt;code&gt;file&lt;/code&gt; and &lt;code&gt;link&lt;/code&gt; are mutually&lt;br&gt;
exclusive, and there is exactly one of each per job.&lt;/p&gt;
&lt;h3 id=&quot;if-you-just-want-one-clip-today&quot;&gt;If you just want one clip today&lt;/h3&gt;
&lt;p&gt;Route four exists because the other three are a day of setup for a thing you&lt;br&gt;
wanted to try for ten minutes. &lt;a rel=&quot;nofollow&quot; href=&quot;https://wan-3.run/&quot;&gt;wan-3.run&lt;/a&gt; is a browser tab&lt;br&gt;
that runs the same &lt;code&gt;wan3.0-video&lt;/code&gt; model, prints the model ID and upstream task&lt;br&gt;
ID under every result, and gives the first clip away so you can check the output&lt;br&gt;
before you decide whether any of the paperwork above is worth it.&lt;/p&gt;
&lt;p&gt;If you are writing the integration rather than using one, the numbers above are&lt;br&gt;
the ones to hard-code tests around, and there is&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://wan-3.run/wan-3-0-specs&quot;&gt;a spec table with each row dated and linked to its source&lt;/a&gt;&lt;br&gt;
that is easier to diff against than the docs when Alibaba changes something.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Disclosure: I work on that second link.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/27019/four-ways-to-reach-the-same-video-model-and-what-each-one-asks-of-you-first</guid>
<pubDate>Sun, 13 Sep 2026 03:33:37 +0000</pubDate>
</item>
<item>
<title>How Reverse Video Search Is Changing Fact-Checking for Media Companies</title>
<link>https://coderlegion.com/8371/how-reverse-video-search-is-changing-fact-checking-for-media-companies</link>
<description>&lt;p&gt;In today’s fast-moving digital news cycle, media companies face a growing challenge: verifying the authenticity and origin of video content before publishing. With user-generated videos spreading rapidly across social platforms, traditional fact-checking methods often aren’t fast enough.&lt;/p&gt;
&lt;p&gt;This is where reverse video search technology becomes a powerful tool for journalists, news stations, and media organizations.&lt;/p&gt;
&lt;p&gt;Why Video Verification Matters More Than Ever&lt;br&gt;
Videos are persuasive, emotional, and often taken at face value. Unfortunately, they’re also frequently:&lt;br&gt;
•Reposted without context&lt;br&gt;
•Cropped or edited to change the narrative&lt;br&gt;
•Misattributed to the wrong event or time period&lt;/p&gt;
&lt;p&gt;Publishing unverified footage can damage credibility and spread misinformation.&lt;/p&gt;
&lt;p&gt;How Reverse Video Search Helps Media Teams&lt;br&gt;
Reverse video search allows journalists to analyze a video and discover where else it appears online. Instead of relying solely on metadata or user claims, reporters can:&lt;br&gt;
•Identify earlier uploads of the same footage&lt;br&gt;
•Find the original source or first publication&lt;br&gt;
•Compare how the video is being framed across different platforms&lt;br&gt;
•Detect reused or manipulated content&lt;/p&gt;
&lt;p&gt;A dedicated video finder can surface clues that lead to better editorial decisions, especially when speed matters.&lt;/p&gt;
&lt;p&gt;Practical Use Cases for News &amp;amp; Media Organizations&lt;br&gt;
•Breaking news verification: Quickly determine whether a video actually originated from the claimed event&lt;br&gt;
•Source validation: Confirm whether a clip came from a primary eyewitness or was recycled from older footage&lt;br&gt;
•Misinformation detection: Spot videos being reused in false narratives&lt;br&gt;
•Investigative journalism: Track how and where footage spreads across the web&lt;/p&gt;
&lt;p&gt;Turning Clues Into Context&lt;br&gt;
My tool, available at&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://reversevideosearch.app/&quot;&gt;Reverse Video Search&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;helps users locate other places online where a video has been posted. These matches often provide additional context, timestamps, or source information that wouldn’t be visible otherwise. Instead of a single isolated clip, journalists gain a broader view of the video’s digital footprint.&lt;/p&gt;
&lt;p&gt;The Future of Media Fact-Checking&lt;br&gt;
As AI-generated and manipulated video becomes more common, verification tools will become essential infrastructure for newsrooms. Reverse video search isn’t about replacing journalistic judgment—it’s about giving reporters better evidence, faster.&lt;/p&gt;
&lt;p&gt;For media organizations committed to accuracy, transparency, and trust, tools like reverse video search are quickly becoming indispensable.&lt;/p&gt;
</description>
<category>Internet of Things</category>
<guid isPermaLink="true">https://coderlegion.com/8371/how-reverse-video-search-is-changing-fact-checking-for-media-companies</guid>
<pubDate>Wed, 10 Dec 2025 23:52:24 +0000</pubDate>
</item>
</channel>
</rss>