<?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[EasyVideoAI Blog]]></title><description><![CDATA[EasyVideoAI Blog]]></description><link>https://easyvideoai.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>EasyVideoAI Blog</title><link>https://easyvideoai.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Sun, 18 Oct 2026 17:40:48 GMT</lastBuildDate><atom:link href="https://easyvideoai.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How I Built EasyVideoAI, a Two-Person Hotel Lobby AI Video Generator]]></title><description><![CDATA[The Hotel Lobby AI video format looks simple when you only see the final clip. Two familiar performers appear in the same scene, follow the original choreography, and keep the rhythm of the source vid]]></description><link>https://easyvideoai.hashnode.dev/how-i-built-easyvideoai-a-two-person-hotel-lobby-ai-video-generator</link><guid isPermaLink="true">https://easyvideoai.hashnode.dev/how-i-built-easyvideoai-a-two-person-hotel-lobby-ai-video-generator</guid><category><![CDATA[ai video]]></category><category><![CDATA[Video Processing]]></category><category><![CDATA[Next.js]]></category><category><![CDATA[generative ai]]></category><dc:creator><![CDATA[Jerry]]></dc:creator><pubDate>Mon, 05 Oct 2026 14:14:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69d12a756792e486f68219dd/286fd6b6-219b-421e-9f46-a0b08abb1f3d.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The Hotel Lobby AI video format looks simple when you only see the final clip. Two familiar performers appear in the same scene, follow the original choreography, and keep the rhythm of the source video. Building a reliable workflow for that result involved more than sending two portraits to a model.</p>
<p>I built <a href="https://easyvideoai.com">EasyVideoAI</a> to turn that process into a focused product. A user adds two separate portrait photos, reviews the source performance, chooses an output format, and generates a new version with both performers replaced. The original audio is restored before the result is delivered.</p>
<h2>What EasyVideoAI does</h2>
<p>EasyVideoAI is a two-person AI face swap workflow designed around the Hotel Lobby video format. The first portrait maps to the performer on the left, while the second maps to the performer on the right.</p>
<p>The current studio supports:</p>
<ul>
<li>5, 12, and 30-second clips beginning at the source video's first frame</li>
<li>480p and 720p generation</li>
<li>16:9, 1:1, and 9:16 output framing</li>
<li>Source-video preview before generation</li>
<li>Original-audio restoration after generation</li>
<li>Private results tied to the user's account</li>
</ul>
<p>The narrow scope is intentional. A fixed workflow makes it easier to explain what the model will change and what it should preserve.</p>
<h2>Why a two-person AI video is harder than a single face swap</h2>
<p>A single-person replacement already has to maintain identity across changes in angle, lighting, expression, and movement. A two-person shot adds another identity and a relationship between the performers.</p>
<p>The system has to keep the left and right roles consistent. It also needs to preserve the stage, camera movement, gestures, and timing of the original performance. When the performers move close together or turn away from the camera, identity drift becomes more likely.</p>
<p>This is why the product asks for one clear adult face in each image. Group photos, heavy filters, sunglasses, and extreme side profiles give the model weaker references. Better inputs do not guarantee a perfect result, but they give the generation process a better starting point.</p>
<h2>The generation pipeline behind EasyVideoAI</h2>
<p>The website uses Next.js and React for the product interface. Supabase stores account, credit, and generation records, while private media files are stored in Cloudflare R2. The video transformation is submitted through the Higgsfield Genjutsu Object Swap workflow.</p>
<p>The pipeline follows a few deliberate stages.</p>
<h3>1. Validate the portraits and consent</h3>
<p>Each request needs two separate portrait images. The interface also requires confirmation that both people are adults, agree to the AI video, and that the user has permission to use the source material.</p>
<h3>2. Lock the exact source segment</h3>
<p>Every available segment begins at 0:00. The user selects the length, resolution, and frame format before the request is submitted. Saving those choices with the request makes the generation boundary explicit and prevents a retry from silently using different input.</p>
<h3>3. Store the request before calling the provider</h3>
<p>The server records the input and reserves the required credits before making the provider call. The submission boundary is treated carefully because a network timeout does not always mean the provider rejected the job. Automatically sending the same paid request again could create two generations and two provider charges.</p>
<h3>4. Poll a known request instead of resubmitting</h3>
<p>Once the provider returns a request ID, EasyVideoAI keeps that ID with the generation record. Status checks poll the existing job. A storage or database retry should never create another AI generation.</p>
<h3>5. Process and archive the result</h3>
<p>After the generated video is available, the server aligns small duration differences, restores the original audio, validates the output, and archives the finished MP4 in private storage. The user can then review and download the result.</p>
<h2>Restoring the original audio</h2>
<p>Audio handling became a separate part of the pipeline because the generated visual output may not contain the source soundtrack. EasyVideoAI therefore treats the original performance video as both a visual reference and the audio source.</p>
<p>After generation, the server combines the new picture with the original audio track. It also checks the output duration and compensates for small timing differences before making the file available.</p>
<p>This preserves the song and performance timing, but it does not guarantee perfect lip sync. The mouth movement still comes from the generated frames, so users need to review the complete result before publishing it.</p>
<h2>Designing for review instead of pretending every result is perfect</h2>
<p>Generative video can change details that a normal video editor would keep stable. Faces may drift, hands can change, and the first frame may differ from the source. The camera position or background can also shift.</p>
<p>EasyVideoAI makes the source clip visible before generation and keeps the completed result available for comparison. The review guidance calls attention to both identities, the opening frame, gestures, framing, and mouth timing.</p>
<p>That review step is part of the product, not an error screen. A useful AI video tool should make uncertainty visible and give the user a clear place to judge the output.</p>
<h2>What I learned from building the first version</h2>
<p>The model call is only one part of a production AI video workflow. The surrounding system has to control inputs, preserve request identity, recover from partial failures, manage private media, and explain limitations to the user.</p>
<p>A focused product also needs a focused promise. EasyVideoAI does not claim to replace a full video editor. It handles one recognizable two-person format and gives users direct control over the portraits, clip length, resolution, and framing.</p>
<h2>Try the Hotel Lobby AI video generator</h2>
<p>You can explore the workflow at <a href="https://easyvideoai.com">EasyVideoAI</a>. Prepare two clear portrait photos, review the source performance, and choose the format that fits where you plan to share the result.</p>
<p>The project is still evolving, and feedback on the workflow, output review, and portrait preparation guidance is welcome.</p>
<h2>Frequently asked questions</h2>
<h3>Do both people need to appear in the same photo?</h3>
<p>No. EasyVideoAI uses two separate portrait photos. The first image maps to the left performer and the second maps to the right performer.</p>
<h3>Does the generated video keep the original audio?</h3>
<p>Yes. The service restores the source audio after the visual generation step. Lip sync can still vary because the video frames are generated separately.</p>
<h3>Which image formats work for portraits?</h3>
<p>The current interface accepts JPEG, PNG, and WebP portrait images up to 10 MB. A sharp, well-lit photo with one visible adult face is the best starting point.</p>
<h3>Can I create vertical videos?</h3>
<p>Yes. The studio supports 16:9 landscape, 1:1 square, and 9:16 vertical framing. Vertical output crops the sides of the original composition, so framing should be reviewed carefully.</p>
<h2>Conclusion</h2>
<p>Building a Hotel Lobby AI video generator required a dependable workflow around the model: clear portrait mapping, durable job records, private storage, audio restoration, and honest review guidance. EasyVideoAI brings those pieces together in one two-person video tool.</p>
<p>Visit <a href="https://easyvideoai.com">easyvideoai.com</a> to see the current studio and creation guide.</p>
]]></content:encoded></item></channel></rss>