<?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: FunGen</title>
    <description>The latest articles on DEV Community by FunGen (@fungen).</description>
    <link>https://dev.to/fungen</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%2F4192400%2F0fbbb088-5c48-45c5-9e42-72d9236baba0.png</url>
      <title>DEV Community: FunGen</title>
      <link>https://dev.to/fungen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fungen"/>
    <language>en</language>
    <item>
      <title>One Prompt, Four Modalities: What a Unified Generation Agent Actually Has to Solve</title>
      <dc:creator>FunGen</dc:creator>
      <pubDate>Sun, 18 Oct 2026 16:13:05 +0000</pubDate>
      <link>https://dev.to/fungen/one-prompt-four-modalities-what-a-unified-generation-agent-actually-has-to-solve-e71</link>
      <guid>https://dev.to/fungen/one-prompt-four-modalities-what-a-unified-generation-agent-actually-has-to-solve-e71</guid>
      <description>&lt;p&gt;Most generation tools are one modality wide. You have a favourite for images, a&lt;br&gt;
different one for video, something else for voice, and if you touch 3D at all it is&lt;br&gt;
a fourth tab with its own account and its own export quirks.&lt;/p&gt;

&lt;p&gt;The obvious fix is to put them behind one text box. That sounds like a UI decision.&lt;br&gt;
It is not. Once a single prompt field has to serve image, video, voice and 3D, three&lt;br&gt;
genuinely hard problems show up, and none of them are about layout.&lt;/p&gt;
&lt;h2&gt;
  
  
  Problem 1: the modalities disagree about what a prompt is
&lt;/h2&gt;

&lt;p&gt;A good image prompt is a dense noun phrase. Adjectives, materials, lighting, lens.&lt;br&gt;
Nothing about time, because there is no time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a worn brass desk lamp, single hard key light from the left, dusty highlights
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A good video prompt is a &lt;em&gt;verb&lt;/em&gt; phrase with a camera in it. The same noun phrase&lt;br&gt;
produces a static shot that technically moves.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a worn brass desk lamp; camera pushes in slowly as the filament flickers on
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A good 3D prompt is neither. It is a set of geometric constraints, and half the&lt;br&gt;
adjectives that improve an image actively hurt it — "dusty highlights" is a&lt;br&gt;
texture instruction with no geometry behind it, and "hard key light" is&lt;br&gt;
meaningless in a mesh.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a desk lamp, hollow base, flat bottom, thick shade walls, no thin wires
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A voice prompt is a &lt;em&gt;performance&lt;/em&gt; direction: pace, register, emphasis.&lt;/p&gt;

&lt;p&gt;So a single prompt box is lying a little. The same sentence cannot be optimal in&lt;br&gt;
four places at once. The design question is what to do about that, and there are&lt;br&gt;
three honest answers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Make the user rewrite it per modality.&lt;/strong&gt; Correct, and nobody does it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rewrite it silently.&lt;/strong&gt; Fast, and it hides why a result was bad.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rewrite it and show your work.&lt;/strong&gt; Slower, and the only option where the user
learns anything.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The third is what "agent" should mean in practice: the thing plans, tells you what&lt;br&gt;
it is about to do, and lets you disagree before spending the compute.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem 2: each modality fails in an unrelated way
&lt;/h2&gt;

&lt;p&gt;The failure modes have almost nothing in common, which means one generic error&lt;br&gt;
state is useless:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modality&lt;/th&gt;
&lt;th&gt;Typical failure&lt;/th&gt;
&lt;th&gt;What the user needs to see&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Image&lt;/td&gt;
&lt;td&gt;Composition drifts from the brief&lt;/td&gt;
&lt;td&gt;A/B against the prompt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Video&lt;/td&gt;
&lt;td&gt;Frame-to-frame identity drift&lt;/td&gt;
&lt;td&gt;Which frame it broke on&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Voice&lt;/td&gt;
&lt;td&gt;Right words, wrong performance&lt;/td&gt;
&lt;td&gt;The specific phrase to re-read&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3D&lt;/td&gt;
&lt;td&gt;Geometry is plausible, topology is not&lt;/td&gt;
&lt;td&gt;Mesh stats, not a render&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That last row is the one people underestimate. A 3D render can look flawless while&lt;br&gt;
the underlying mesh is unusable — hundreds of thousands of triangles, disconnected&lt;br&gt;
shells, no consistent scale. The render is not evidence about the geometry. Any&lt;br&gt;
tool that shows you only the pretty picture is answering a different question from&lt;br&gt;
the one you asked.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem 3: chaining is where the value is, and where the state lives
&lt;/h2&gt;

&lt;p&gt;The single-modality workflow is: prompt, generate, download, done.&lt;/p&gt;

&lt;p&gt;The interesting workflow is: generate an image, keep that exact subject, put it in a&lt;br&gt;
scene, animate it, add a voice over it, and separately turn the subject into a mesh.&lt;/p&gt;

&lt;p&gt;Each arrow in that chain is a place where identity has to survive. That is a state&lt;br&gt;
problem. The system has to carry a persistent handle on "this specific thing" across&lt;br&gt;
model boundaries that were never designed to agree with each other. Tool-hopping&lt;br&gt;
loses that handle at every step, which is why the manual version of this workflow&lt;br&gt;
produces four assets that do not quite look like the same object.&lt;/p&gt;

&lt;p&gt;Keeping the chain inside one project is not a convenience feature. It is the only&lt;br&gt;
place the continuity can live.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this implies for exports
&lt;/h2&gt;

&lt;p&gt;If the chain is the point, the exports have to be ordinary files — MP4, PNG, WAV,&lt;br&gt;
OBJ — and they have to be downloadable without ceremony.&lt;/p&gt;

&lt;p&gt;A generation tool that will not hand over the file is not a tool, it is a demo. This&lt;br&gt;
matters most for 3D, where the file is the entire deliverable: nobody wants a mesh&lt;br&gt;
they can only look at inside someone else's viewer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short version
&lt;/h2&gt;

&lt;p&gt;Putting four modalities behind one prompt is not a consolidation exercise. It&lt;br&gt;
requires the system to translate intent per modality, surface modality-specific&lt;br&gt;
failure honestly, and keep subject identity alive across model boundaries. Get those&lt;br&gt;
three right and the single text box is genuinely simpler. Get them wrong and you&lt;br&gt;
have built four tools that happen to share a font.&lt;/p&gt;

&lt;p&gt;If you want to see what the chained version feels like, I have been building it as an&lt;br&gt;
&lt;a href="https://fungen.ai/" rel="noopener noreferrer"&gt;ai video agent&lt;/a&gt; that plans the shot list, shows its work before&lt;br&gt;
spending credits, and hands you ordinary files at the end. New accounts get free&lt;br&gt;
credits, which is about the right amount of commitment for finding out whether the&lt;br&gt;
unified version is worth it.&lt;/p&gt;

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