<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[YumCut Engineering]]></title><description><![CDATA[YumCut Engineering]]></description><link>https://yumcut-engineering.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>YumCut Engineering</title><link>https://yumcut-engineering.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 15:36:41 GMT</lastBuildDate><atom:link href="https://yumcut-engineering.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[I got tired of paying $50/mo for AI video tools so I built and open-sourced my own]]></title><description><![CDATA[Honestly? I just got frustrated. I was paying for like 3 different AI video subscriptions, burning through credits, and still not getting what I wanted. So I did what any reasonable developer would do]]></description><link>https://yumcut-engineering.hashnode.dev/i-got-tired-of-paying-50-mo-for-ai-video-tools-so-i-built-and-open-sourced-my-own</link><guid isPermaLink="true">https://yumcut-engineering.hashnode.dev/i-got-tired-of-paying-50-mo-for-ai-video-tools-so-i-built-and-open-sourced-my-own</guid><category><![CDATA[Artificial Intelligence]]></category><dc:creator><![CDATA[Igor Shadurin]]></dc:creator><pubDate>Fri, 07 Aug 2026 16:13:24 GMT</pubDate><content:encoded><![CDATA[<p>Honestly? I just got frustrated. I was paying for like 3 different AI video subscriptions, burning through credits, and still not getting what I wanted. So I did what any reasonable developer would do - I spent way more time building my own thing than I would've ever spent on subscriptions.</p>
<p>But hey, I learned a ton about shipping a SaaS-like product, and some of it might actually be useful to you.</p>
<h2>The market gap that got me started</h2>
<p>So faceless video is huge right now. If you haven't seen it - it's those short vertical videos on TikTok/YouTube Shorts where nobody appears on camera. Horror stories, news digests, fact videos, that kind of stuff.</p>
<p>The demand is insane. One video I generated hit <strong><strong>90K views</strong></strong> on TikTok. And I'm not even a content creator - it was just a test video.</p>
<p>But every tool in this space is a subscription SaaS. $20–50/mo minimum. And they all have the same problem: you're locked into their pipeline, their models, their templates. Want to change the image provider? Too bad. Want to run it locally? Nope. Want to generate in 7 languages at once? Pay 7x.</p>
<p>I looked at the competitive landscape - RevidAI, Faceless video, AutoShortsAI, Fliki, InVideo, Pictory, etc. - and noticed something interesting: <strong><strong>not a single one is open-source, and not a single one lets you self-host.</strong></strong> Every single player is a closed SaaS.</p>
<p>That felt like a gap worth filling. So I built YumCut and open-sourced it.</p>
<h2>Architecture decisions</h2>
<p>This was the single most important decision. Instead of building a monolith where everything is tightly coupled, I made every processing step a separate utility. Image generation, doodling effects, video assembly - each one is a standalone script that takes input and returns output.</p>
<p>Why this matters:</p>
<ul>
<li><strong><strong>Swappable providers</strong></strong> - user wants a different image API? They write a small script. Done.</li>
<li><strong><strong>AI-agent friendly</strong></strong> - when I switched to using Codex for development, this architecture meant the AI could work on one utility without breaking others</li>
<li><strong><strong>Language agnostic</strong></strong> - core utils are TypeScript, but you could plug in Python, Go, whatever</li>
</ul>
<p>I'm not sure what to call this pattern exactly - pipeline-based? Plugin architecture? Whatever it is, it saved the project.</p>
<p>All video assembly happens through dynamically generated FFmpeg commands. Transitions, effects, overlays - everything. No proprietary video processing, no heavy dependencies. Just FFmpeg.</p>
<p>This sounds straightforward until you hit edge cases. Like transparent video overlays.</p>
<h2>The rabbit holes nobody warns you about</h2>
<p>I wanted overlays - transparent videos layered on top of the main video to make it feel alive. Simple concept, right?</p>
<p>Turns out most codecs that support alpha channels store video in absurdly large formats. <strong><strong>One minute of overlay = 1GB+.</strong></strong> That's not gonna work when you're generating hundreds of videos.</p>
<p>I ended up using WebM with VP9 - modern, open, supports transparency. But getting FFmpeg to encode it properly took way longer than I'd like to admit. One of those things where you think it'll take an afternoon and it takes a week.</p>
<h2>The doodling effect</h2>
<p>I built this effect that simulates an image being drawn - extract contours, convert to SVG, animate the paths appearing. The video with this effect got 90K views, so clearly it resonates.</p>
<p>But here's the thing - existing services charge per-image for this effect, roughly the same price as generating the image itself. Making it work with open-source tools only, with no paid APIs, was a significant chunk of work. Contour extraction, SVG conversion, animation timing - lots of fiddling.</p>
<h2>Multi-language TTS is harder than you think</h2>
<p>English TTS? Solved problem. Plenty of good local models.</p>
<p>But I needed 7 languages (English, Russian, Spanish, French, German, Portuguese, Italian). And a voice that sounds great in English will sound robotic in Spanish. Every language needs its own voice configuration.</p>
<p>I started with ElevenLabs (subscription, use-it-or-lose-it monthly quota - annoying model btw). Tried local models (quality issues with non-English). Eventually landed on budget cloud options like Minimax and InWorld that support voice cloning across languages.</p>
<p>The lesson: <strong><strong>multilingual anything adds 3-5x complexity.</strong></strong> If you're building a SaaS and thinking "we'll add more languages later" - budget way more time than you think.</p>
<h2>How AI agents built most of this</h2>
<p>I started building in Cursor with Claude. It worked, but it was like pair programming with someone who drank 10 cups of coffee. I'd ask for one feature and get three - two of which were broken. Constant cleanup.</p>
<p>The tight coupling problem was real. "Fix this function" and suddenly three other files are modified with unnecessary refactors.</p>
<h2>Codex: the focused senior dev</h2>
<p>Switching to OpenAI Codex was a game changer. It does what you ask, nothing more. Changing one part of the project stopped being scary because Codex wouldn't randomly touch other parts.</p>
<h2>The lesson for SaaS builders</h2>
<p>If you're using AI agents for development, architecture matters more than ever. The pluggable utility pattern I chose wasn't just good engineering - it was essential for AI-assisted development. Isolated components = AI agents that don't break your stuff.</p>
<h2>Competitive landscape and positioning</h2>
<p>Here's the thing about this market: <strong><strong>every competitor is a closed SaaS with no self-hosting option.</strong></strong></p>
<p><img src="https://pbs.twimg.com/media/HBhOC76XAAAm0BP.jpg" alt="" /></p>
<p>I'm not saying open-source is always the right play. But in a market where every single player is a $30/mo subscription doing roughly the same thing - being the open-source alternative is a real differentiator.</p>
<p>The online version offers 3 free video generations. Locally, it's unlimited.</p>
<h2>Licensing: the middle ground</h2>
<p>Current license: free for personal use, contact me for commercial deployment as a service. I'm considering relaxing this to fully open depending on community demand.</p>
<p>Honestly still figuring out the right approach here. If you've navigated open-source licensing for a product like this, I'd love to hear what worked.</p>
<h2>Fin</h2>
<p>If you're building in the AI content space or thinking about open-sourcing a SaaS alternative - happy to chat in the comments.</p>
<p><strong><strong>GitHub:</strong></strong> <a href="https://github.com/IgorShadurin/app.yumcut.com">https://github.com/IgorShadurin/app.yumcut.com</a>
<strong><strong>YumCut:</strong></strong> <a href="https://yumcut.com/?utm_source=hashnode?utm_source=r_1">https://yumcut.com/?utm_source=hashnode</a></p>
]]></content:encoded></item><item><title><![CDATA[How I Cut AI Video Generation Costs by 8x]]></title><description><![CDATA[A few months ago, I was working on a pet project. YumCut is an end-to-end service for creating short vertical videos, from writing the text and generating images to editing and adding subtitles.
A cri]]></description><link>https://yumcut-engineering.hashnode.dev/how-i-cut-ai-video-generation-costs-by-8x</link><guid isPermaLink="true">https://yumcut-engineering.hashnode.dev/how-i-cut-ai-video-generation-costs-by-8x</guid><category><![CDATA[Artificial Intelligence]]></category><dc:creator><![CDATA[Igor Shadurin]]></dc:creator><pubDate>Fri, 07 Aug 2026 16:12:54 GMT</pubDate><content:encoded><![CDATA[<p>A few months ago, I was working on a pet project. YumCut is an end-to-end service for creating short vertical videos, from writing the text and generating images to editing and adding subtitles.</p>
<p>A critical problem surfaced quickly: cost. One minute of video required around twenty generated images, or about $0.80 per minute. Beyond visuals, audio generation added another $0.20 per minute, along with minor additional costs for editing and subtitle generation.</p>
<p>I started looking for a way out. This article explores the unconventional techniques that helped reduce those costs several times over, as well as an open-source solution that makes it possible to generate images up to eight times cheaper than commercial APIs.</p>
<p>Full code and instructions are available on <a href="https://github.com/IgorShadurin/yumcut-cheap-image-generation?ref=hackernoon.com">GitHub</a>.</p>
<h2>First approach: multiple scenes in one frame</h2>
<p>The logical solution seemed obvious: generate several images in a single request by placing scenes next to each other. In theory, this should reduce costs proportionally to the number of images.</p>
<p>The first attempt was to put all eight scenes into the prompt at once. The result was disastrous: the model simply mixed all elements into one blurry composition, unusable for video editing.</p>
<p><img src="https://hackernoon.imgix.net/images/chowa-ediotor_8hut497.png?auto=format%2Ccompress&amp;w=2048" alt="Igor Shadurin's image-6e75b8" /></p>
<p>By reducing the number of scenes to two per image, I got an acceptable result. That already cut the cost in half, but it was still far from the target.</p>
<h3>Key insight: borders must be literally visible</h3>
<p>It turned out that AI models struggle to determine logical boundaries between separate areas. The solution was simple: use colored zones (red and blue).</p>
<p><img src="https://hackernoon.imgix.net/images/chowa-ediotor_1rqhhtr8.png?auto=format%2Ccompress&amp;w=3840" alt="Igor Shadurin's image-961f6" /></p>
<p>Instead of an abstract description, I started sending a PNG template with clear borders and a matching instruction: “The first idea is in the red area, the second idea is in the blue area. Fill each area completely.”</p>
<p><img src="https://hackernoon.imgix.net/images/0jygIIZvqRNKC4CORjLZ7NDB7B62-2t13opg.jpeg?auto=format%2Ccompress&amp;w=2048" alt="Igor Shadurin's image-01d24" /></p>
<p>This technique did not require additional costs, but it dramatically improved the quality of scene separation. The model now understood the structure and rarely mixed elements.</p>
<p>However, this was only a partial solution. I needed a drastic reduction. I had to cut the price by another order of magnitude.</p>
<h2>Second approach: migrating to open-source alternatives</h2>
<p>The idea was to find open-source/open-weight image-generation models, run them in the cloud, and reduce costs that way.</p>
<p>First, I had to identify which models were freely available. There are many: Qwen-Image, FLUX, HunyuanImage, Stable Diffusion, and others. For my use case, I had one extra requirement - the ability to reuse characters across many generated images. That is why I chose Qwen-Image-Edit.</p>
<p>I audited the market of commercial generators:</p>
<ul>
<li>Major APIs (OpenAI/Google Gemini/Stability AI): similar prices or higher</li>
<li>Alibaba cloud services: about $0.04 per image - roughly the same</li>
<li>Self-hosted options like RunPod: you need a large number of images per run to reach meaningful savings</li>
</ul>
<p>The picture was disappointing - even the creators of Qwen-Image, Alibaba, were offering the model at inflated prices. But then I found runware.ai and together.ai, where generating images with Qwen-Image-Edit and Qwen-Image was almost eight times cheaper than Nano Banana - ~$0.005 vs. $0.04.</p>
<h2>Third approach: improving image detail</h2>
<p>As it turned out, with low image-generation prices, the model started producing more uniform images - all scenes looked too similar to each other.</p>
<p>Here is an example of generated images with different prompts about a happy cat on the beach:</p>
<p><img src="https://hackernoon.imgix.net/images/0jygIIZvqRNKC4CORjLZ7NDB7B62-3c43owb.jpeg?auto=format%2Ccompress&amp;w=2048" alt="Igor Shadurin's image-d26788" /></p>
<p><img src="https://hackernoon.imgix.net/images/0jygIIZvqRNKC4CORjLZ7NDB7B62-f633o5l.jpeg?auto=format%2Ccompress&amp;w=2048" alt="Igor Shadurin's image-2cf15" /></p>
<p><img src="https://hackernoon.imgix.net/images/0jygIIZvqRNKC4CORjLZ7NDB7B62-x823o43.jpeg?auto=format%2Ccompress&amp;w=2048" alt="Igor Shadurin's image-fedac" /></p>
<p>Even though the images look good, there is a missing layer for improving the story prompts. The obvious solution is to add a layer between the story prompt and the image generator. But we have to do so with an LLM that doesn't increase the cost significantly. So I knew I needed to test many LLMs before settling on one that worked best for me.</p>
<p>To do so, I used openrouter.ai. Once you write the wrapper code, you can switch to any available model. After testing a dozen models, I settled on openai/gpt-oss-120b with low reasoning effort. The improved image-generation prompt costs about ~$0.0003, and the images above turn into results like these.</p>
<p><img src="https://hackernoon.imgix.net/images/0jygIIZvqRNKC4CORjLZ7NDB7B62-va63ov3.jpeg?auto=format%2Ccompress&amp;w=2048" alt="Igor Shadurin's image-18ec1" /></p>
<p><img src="https://hackernoon.imgix.net/images/0jygIIZvqRNKC4CORjLZ7NDB7B62-ru53ooy.jpeg?auto=format%2Ccompress&amp;w=2048" alt="Igor Shadurin's image-34cf3" /></p>
<p><img src="https://hackernoon.imgix.net/images/0jygIIZvqRNKC4CORjLZ7NDB7B62-iz83orr.jpeg?auto=format%2Ccompress&amp;w=2048" alt="Igor Shadurin's image-5b0868" /></p>
<p>The images became more diverse, even with an almost identical prompt. GPT OSS improved the description for Qwen-Image, and it also offered a lever that let me control the style and mood of the images.</p>
<h2>Results: numbers that speak for themselves</h2>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Before</th>
<th>After</th>
<th>Savings</th>
</tr>
</thead>
<tbody><tr>
<td>Cost per image</td>
<td>$0.04</td>
<td>$0.0053</td>
<td>7.54</td>
</tr>
<tr>
<td>1-minute video (20 images)</td>
<td>$0.8</td>
<td>$0.106</td>
<td>7.54</td>
</tr>
<tr>
<td>Full minute of video</td>
<td>$1</td>
<td>$0.306</td>
<td>3.26</td>
</tr>
</tbody></table>
<p>By combining the two approaches, the price drops by another factor of two, but sometimes you will see artifacts in the images because the original image is being split.</p>
<p>This price was good enough for me, so I stopped at this result.</p>
]]></content:encoded></item></channel></rss>