<?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: tancky kobe</title>
    <description>The latest articles on DEV Community by tancky kobe (@tancky_kobe_3494f0704ff1b).</description>
    <link>https://dev.to/tancky_kobe_3494f0704ff1b</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%2F4135157%2F481927e8-fb32-47be-804d-96241d309c79.jpg</url>
      <title>DEV Community: tancky kobe</title>
      <link>https://dev.to/tancky_kobe_3494f0704ff1b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tancky_kobe_3494f0704ff1b"/>
    <language>en</language>
    <item>
      <title>Building Tancky AI: Turning Multiple Photos into One Scene</title>
      <dc:creator>tancky kobe</dc:creator>
      <pubDate>Tue, 20 Oct 2026 09:54:43 +0000</pubDate>
      <link>https://dev.to/tancky_kobe_3494f0704ff1b/building-tancky-ai-turning-multiple-photos-into-one-scene-4dog</link>
      <guid>https://dev.to/tancky_kobe_3494f0704ff1b/building-tancky-ai-turning-multiple-photos-into-one-scene-4dog</guid>
      <description>&lt;p&gt;A product photo and a background reference look simple enough as inputs. Turning them into a coherent scene introduces a more interesting problem: deciding what should stay fixed, what can change, and how much control the interface should expose.&lt;/p&gt;

&lt;p&gt;I'm building &lt;a href="https://tancky.io/" rel="noopener noreferrer"&gt;Tancky AI&lt;/a&gt;, a browser-based AI photo workspace. Its image combiner lets you upload up to four reference images and describe the composition you want to create. This post shares the workflow and a few implementation choices behind the product.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcbpeh68w34o2yczlcsxv.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcbpeh68w34o2yczlcsxv.webp" alt="Tancky AI example showing a skincare product and a scene reference combined into a product image" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;An example from the product website. Generated results vary with the source images and instructions.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Give every reference image a job
&lt;/h2&gt;

&lt;p&gt;A useful composition brief answers three questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which image contains the subject to preserve?&lt;/li&gt;
&lt;li&gt;Which image defines the setting?&lt;/li&gt;
&lt;li&gt;What relationship should the final image show?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a product scene, a starting prompt might be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use the bottle in image 1 as the main subject. Place it on the surface in image 2, slightly right of center. Keep the bottle shape and label layout. Match the scene's soft light and add a subtle contact shadow. Leave empty space on the left for a headline. Do not add text or extra products.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a prompt to experiment with, not a guarantee of exact preservation. Small labels, logos, reflections, and object proportions still need close inspection.&lt;/p&gt;

&lt;p&gt;The same structure works for furniture staging: identify the furniture reference, identify the room, specify placement, and list the room details that should remain unchanged.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Make the first interaction concrete
&lt;/h2&gt;

&lt;p&gt;The combiner puts image uploads and the prompt together in the main workspace. It accepts JPG, PNG, and WebP files, with up to four images and a 16 MB limit per image.&lt;/p&gt;

&lt;p&gt;It also offers presets for group portraits, portrait backgrounds, and furniture staging. These give users an initial composition to work from when a blank prompt field would leave too many decisions open.&lt;/p&gt;

&lt;p&gt;A practical review loop is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose clear references with compatible camera angles.&lt;/li&gt;
&lt;li&gt;Describe one composition and the details to preserve.&lt;/li&gt;
&lt;li&gt;Generate and inspect the result at full size.&lt;/li&gt;
&lt;li&gt;Change one instruction before trying another variation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For product work, I would check label text and shape before using an output publicly. For portraits, I would check facial details, hands, and the relative scale of each person.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Keep related tools on a shared foundation
&lt;/h2&gt;

&lt;p&gt;Tancky AI uses React, TypeScript, and TanStack Start. Its tool pages share a rendering template, while each page supplies its own configuration, content, and FAQs.&lt;/p&gt;

&lt;p&gt;The page configuration describes its route, workspace type, available models, credit costs, and listing information. Shared code uses that information for navigation, metadata, and the generation options shown to users.&lt;/p&gt;

&lt;p&gt;This matters as the product grows. A couple-photo workflow and an image extender need different instructions and controls, while still benefiting from consistent page structure and result handling.&lt;/p&gt;

&lt;p&gt;The project also runs a page validation step before builds. It checks details such as duplicate slugs, missing assets, missing translations, and incomplete pricing configuration. These are small checks, but they give changes a concrete set of requirements to satisfy.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Make cost visible before generation
&lt;/h2&gt;

&lt;p&gt;The workspace displays the credit total beside the Generate action. The server checks submitted options against the page's pricing configuration.&lt;/p&gt;

&lt;p&gt;That boundary matters for any paid AI workflow: users need to understand the cost before starting, and the backend needs to enforce the available options and their price.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try the workflow
&lt;/h2&gt;

&lt;p&gt;You can explore the &lt;a href="https://tancky.io/" rel="noopener noreferrer"&gt;AI image combiner in Tancky AI&lt;/a&gt; with your own reference images. Start with one subject, one setting, and a short description of how they should fit together.&lt;/p&gt;

&lt;p&gt;I'd especially welcome feedback from developers building creative tools: which part of a multi-image workflow needs the most control in the interface: reference roles, subject placement, or detail preservation?&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>webdev</category>
      <category>react</category>
    </item>
  </channel>
</rss>
