<?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: baiwei</title>
    <description>The latest articles on DEV Community by baiwei (@baiwei).</description>
    <link>https://dev.to/baiwei</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%2F3566884%2F44d332da-11ff-480b-aa52-f10719cc0df3.JPEG</url>
      <title>DEV Community: baiwei</title>
      <link>https://dev.to/baiwei</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/baiwei"/>
    <language>en</language>
    <item>
      <title>Detect, inpaint, match style, then render: a developer’s model of editing lettering in a flattened image</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Fri, 09 Oct 2026 14:00:04 +0000</pubDate>
      <link>https://dev.to/baiwei/detect-inpaint-match-style-then-render-a-developers-model-of-editing-lettering-in-a-flattened-3mo5</link>
      <guid>https://dev.to/baiwei/detect-inpaint-match-style-then-render-a-developers-model-of-editing-lettering-in-a-flattened-3mo5</guid>
      <description>&lt;p&gt;A flattened image does not contain a text node. It contains pixels that happen to look like letters. The poster, the menu photo, the label, the screenshot, the ad export: the type layer is gone, the style run is gone, and the only API you have is the raster. If you are choosing or building a feature that lets someone type a replacement and expects those pixels to become different letters without looking pasted on, you are not calling one model. You are running a stack, and the stack fails at its weakest stage.&lt;/p&gt;

&lt;p&gt;The marketing sentence is always the same. Upload a picture, type a change, and the software erases the old words and draws new ones that blend in. That sentence hides a contract between stages. Detection can box the wrong strokes. The hole can be filled with a texture that does not belong. The style read can guess a family the renderer does not have. The new glyphs can be blurry, misaligned, or misspelled. Any one of those is enough to fail a human eye, which is the only judge that matters for a finished design.&lt;/p&gt;

&lt;p&gt;This is the developer cut of that problem. I walk the stages the way you would sketch them before writing an interface: what each stage consumes, what it must emit, and how a bad emit poisons the next call. Then I write down the comparison harness, including the metrics I planned and did not publish. Then a matrix of the products that claim one or more of the stages. Then who should call which camp. I am not pasting a scoreboard. Where a metric was designed and not computed, I say the plan and withhold the number.&lt;/p&gt;

&lt;p&gt;The practical gap is the one you already suspect if you have shipped a demo. A recorded demo picks a clean word on a flat color and stops the video before the proofread. A real job is a price, a date, a translated dish name, or a slogan on a photograph. The demo and the job are not the same function. Treat them as different tests or you will approve a pipeline that only works on the demo distribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack, stage by stage
&lt;/h2&gt;

&lt;p&gt;Editing lettering in a flattened image is not one task. Treat the work as four stacked jobs — detect and OCR, inpaint, style match, render new text — because the composite is only as good as the weakest job. The data flow I want on a whiteboard is short enough to implement against:&lt;/p&gt;

&lt;p&gt;input image → text detection and OCR → font and style analysis plus an edit mask → AI content fill, which is the inpaint → new text render with the style preserved → composite → edited image.&lt;/p&gt;

&lt;p&gt;Most mainstream products stitch recognition, a fill, and a text update into that shape. The maturity of each module, and whether they share a mask and a string instead of each inventing their own, decides whether the edit survives contact with a person who can read. A stage that cannot name its input is not a stage. It is a prompt with a hope attached.&lt;/p&gt;

&lt;p&gt;Here is the contract I would actually code between those jobs. None of these fields is optional if you want the run to be debuggable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Box:
  quad
  raw_string
  confidence
Style:
  family_guess
  size
  color
  stroke
  shadow
  warp
Mask:
  hole
Edit:
  target_string
  operation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;operation&lt;/code&gt; is either a replacement or a deletion. Deletion stops after the fill. Replacement continues into the renderer. If your product collapses all of that into one prompt string, you have not removed the jobs. You have made them impossible to unit test.&lt;/p&gt;

&lt;p&gt;A second contract sits beside the schema: the source bytes are immutable. Write the edited raster to a new object. Keep the boxes, the mask, and the target string in a sidecar so a later pass can re-render without guessing what the model thought it saw. When a result looks wrong, you want to know which field was wrong. You cannot get that from a single flattened PNG and a shrug.&lt;/p&gt;

&lt;h3&gt;
  
  
  Detect and OCR
&lt;/h3&gt;

&lt;p&gt;The first job finds the regions and reads them. Modern recognition combines deep learning, typically a convolutional front end with an LSTM sequence model, or a successor that does the same split of vision features and character order. On printed type with a clean ground it is solid. It is weak on low resolution, tiny fonts, handwriting, and busy backgrounds. That is not a footnote. Accurate detection is the foundation. Get the box or the string wrong and every downstream job fails in a way that looks like a rendering bug.&lt;/p&gt;

&lt;p&gt;Think about what you store. An axis-aligned rectangle is the wrong primitive for a rotated sign or a word on a curved bottle. The rectangle includes background and misses glyph corners, so the mask is already dirty before the fill model runs. A quad, or a tighter polygon around the strokes, is the honest geometry. Multi-line grouping matters too. A headline and a subline that share a color are not one string, and a single box around both will ask the renderer to paint a paragraph into a title’s footprint.&lt;/p&gt;

&lt;p&gt;Confidence is a gate, not a decoration. If the reader is unsure, the interface should show the raw string and let a person correct it before anyone inpaints. Silent failure here is expensive: the user “fixes” a word the model misread, the fill erases the real word, and the render dutifully draws the wrong correction in a beautiful font. Dedicated editors start by auto-boxing regions so a person can select one and edit it directly. That is the right product shape. Detection proposes. A human disposes. Fully automatic boxing with no confirm step is how you ship a tool that is confident and wrong.&lt;/p&gt;

&lt;p&gt;Low resolution is a different failure from a tiny font. A tiny font at a high raster resolution may still have enough pixels per stem. A normal font photographed from across a street, then compressed, does not. Busy backgrounds break both the detector and the reader because edges of the artwork compete with edges of the strokes. Handwriting breaks the language model inside the reader, which was trained on type. None of these are reasons to skip the confirm step. They are reasons the confirm step exists.&lt;/p&gt;

&lt;p&gt;There is also a product decision hiding in the box. Do you let the user edit only what was detected, or do you let them paint an extra region the detector missed? The second path is mandatory. Detectors miss reversed type, type in a shadow, and type that is the same color as a gradient behind it. A pipeline with no manual box is a pipeline that cannot recover. A pipeline that only has a manual box, and never proposes one, pushes the segmentation problem onto every user, which is the other failure mode. You want both: a proposal, and a brush that can add or subtract.&lt;/p&gt;

&lt;p&gt;The string you show the user should be the string you will erase. Do not run a second, secret recognition pass later and erase a different set of glyphs. I have seen that class of bug in other document tools: the preview says one thing, the mask was built from another hypothesis, and a leftover stroke remains because the two hypotheses disagreed by a character. Pin the hypothesis. Persist it. Erase that.&lt;/p&gt;

&lt;h3&gt;
  
  
  Inpaint the hole
&lt;/h3&gt;

&lt;p&gt;Once the mask exists, something has to invent the pixels that were behind the glyphs. Older inpainting such as PatchMatch copies nearby patches by nearest-neighbor search. It is fast, and it looks fine when the surround is stationary: a flat wall, a simple gradient, a repeating weave. It fails when the hole is large, when the texture is not stationary, or when a lighting falloff crosses the word. The copied patches tile, the lighting breaks, and you can still read the shape of the old word as a scar.&lt;/p&gt;

&lt;p&gt;Those exemplar methods have largely been replaced by generative models, diffusion-based or GAN-based, that condition on the unmasked context and try to keep lighting and texture continuous. That is a real upgrade for photographs. It is also a new way to be wrong. A generative fill can invent a plausible brick pattern that was never there, or continue a highlight through the hole in a way that bends the light. For lettering removal, “plausible” is not the spec. The spec is “the surface that was already there, with the ink gone.”&lt;/p&gt;

&lt;p&gt;Mask thickness is an engineering parameter, not a default you forget. Too tight, and a halo or a partial stroke remains. The next stage will sample that halo and treat it as part of the style. Too loose, and the fill eats a logo edge, a face, a rule line, or the neighboring word you meant to keep. Dilate and feather on purpose, and log the kernel you used. A removal demo will often describe this step as reading the surround and rebuilding whatever sat behind the glyphs. That description is the right mental model even when the implementation is a latent fill rather than a patch copy. Judge the result by whether a person can find the old baseline, not by whether the hole is “creative.”&lt;/p&gt;

&lt;p&gt;Lighting gradients and texture are where this stage earns its keep or gives up. A word on a wrinkled cloth, a word on foliage, a word on a chrome edge: the conditional model has to continue a non-repeating signal through a hole shaped like letters. Letter-shaped holes are adversarial. They are thin, they have high-frequency boundaries, and they sit on top of the very signal you wish had been observed. Expect scars there. A flat printed sheet does not ask for this heroics, which is why so many demos choose it.&lt;/p&gt;

&lt;p&gt;If you only delete, you are done after a successful fill. If you replace, the fill is an intermediate, not the product. It has to leave a surface the renderer can sit on. A fill that still contains ghost strokes will show through antialiased glyphs. A fill that changed the local noise profile will make the new word look like a sticker even when the font is right. Look at the hole before you look at the new word. Developers who only screenshot the final composite debug the wrong stage.&lt;/p&gt;

&lt;p&gt;One more implementation note. Run the fill on the original pixels, not on a recompressed preview. Compression blocks along the mask boundary become part of the context the model trusts. If your UI shows a small proxy and your server fills the full raster, log both sizes in the sidecar or you will “fix” a bug that was only a proxy artifact. The same rule applies when the client downscales for upload and the server never sees the stems of the letters. You cannot inpaint detail you already threw away. Prefer a crop of the region plus a ring of context over a blind full-frame downscale, and keep the crop coordinates so the composite lands back on the original grid.&lt;/p&gt;

&lt;h3&gt;
  
  
  Match style before you draw
&lt;/h3&gt;

&lt;p&gt;New lettering should match the original’s typeface, color, shadow, stroke, and distortion. That is its own stage, not a side effect of the fill. You are trying to separate a word’s content from its style, then apply the style to a string the user just typed. If you skip the separation, the renderer either uses a default font or asks a generative model to remember the font, and generative models are bad at remembering fonts.&lt;/p&gt;

&lt;p&gt;Meta Research's TextStyleBrush extracts a text style — font, stroke weight, warp — from a single example and applies it to new content. That is one-shot style transfer. It is a research prototype, not a product in this test, but it shows the split is real: content in one vector, appearance in another. Commercial tools approximate the split with a built-in font match for a similar family, size, and color. Clipfly, for example, advertises editing lettering in the same font format. Approximation is the right word. A match against a library is not the same as a shader that reproduces a custom logo outline, a warped baseline, or a hand-painted terminal.&lt;/p&gt;

&lt;p&gt;What the style stage must emit, if you want the renderer to be dumb and predictable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A family guess that maps to a font you can actually rasterize, plus a flag when the guess is weak.&lt;/li&gt;
&lt;li&gt;Size in pixels, measured on the quad, not on an axis-aligned box that inflated the height.&lt;/li&gt;
&lt;li&gt;Fill color and an optional stroke, sampled from the glyphs, not from the halo you forgot to dilate away.&lt;/li&gt;
&lt;li&gt;A shadow or extrusion description, even if the description is “none.”&lt;/li&gt;
&lt;li&gt;A warp or perspective mapped from the quad, so a word on a receding sign does not come back as a front-facing sticker.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If any of those fields is missing, do not pretend the render is style-preserving. Say the match failed and fall back to a visible default, or stop and ask. A silent fallback to a popular grotesque is how “AI edited my poster” becomes “AI replaced my brand.”&lt;/p&gt;

&lt;p&gt;Length is part of style even though it feels like layout. The user’s new string is rarely the same width as the old one. The stage that owns style has to say whether the renderer may scale to fit, track tighter, wrap, or refuse. Scaling to fit changes the weight and breaks the match you just measured. Tracking tighter can collide with the decoration you did not mask. Refusal is a valid output. A pipeline that always squeezes is a pipeline that lies about fidelity.&lt;/p&gt;

&lt;p&gt;Color sampling has its own trap. Glyphs are antialiased, so a naive average of the bounding box mixes ink with background and returns a muddy color. Sample the cores of the strokes, or the darkest or lightest decile depending on whether the type is positive or reversed. Reversed type, light letters on a dark photo, is where a sloppy sampler returns the background color and the new word vanishes. Store the polarity. The renderer needs it as much as it needs the family name.&lt;/p&gt;

&lt;p&gt;Warped and logo typefaces are the honest limit of a library match. A match can find a near weight and a near width. It cannot become a custom wordmark. When the style stage’s weak-guess flag is set, the product should say so in the UI before the user spends a render. That flag is also what a later human proofread sorts on. You do not want those images in the same “looks done” pile as a clean reprint of a gothic on a white menu.&lt;/p&gt;

&lt;h3&gt;
  
  
  Render glyphs, do not hope the model spells
&lt;/h3&gt;

&lt;p&gt;The last job paints the new content into the image so it belongs: layout, alignment, perspective, composite. There are two implementations, and they do not fail the same way.&lt;/p&gt;

&lt;p&gt;The first asks a generative model to draw the letters. Asking a model to draw a specific string, the way DALL·E renders lettering, rarely produces clean, readable glyphs. You get extra strokes, fused characters, and spelling that drifted because the model does not have a character grid. It has a prior over pictures that contain something letter-shaped. That path can be useful for a texture or a sign that only has to look like language from across a room. It is the wrong path when a person will read a price.&lt;/p&gt;

&lt;p&gt;The second path is the one that behaves like a word processor. Recognition produced a string. The user edits the string. A real text rasterizer draws glyphs from an actual font. The composite blends those glyphs through the warp you measured. In a purpose-built editor, clicking a region and typing a replacement makes the backend erase the old ink and imitate those letterforms with the new content. Imitation can mean “pick the nearest library font and match color,” which is honest, or “synthesize outlines,” which is research. Either way the letters are rendered, not dreamed. Spelling then fails only if the target string was wrong, which is a data bug you can test, not a sampling bug you cannot.&lt;/p&gt;

&lt;p&gt;Composite order matters. Fill the hole first, on the original plate, then draw glyphs on top. If you draw glyphs and fill in one joint sample, you have gone back to the first path and you will not be able to correct a single character without resampling the whole patch. Joint sampling is why a one-word change alters the background noise and the neighboring letter you did not mean to touch. Keep the operations separable so a proofread can rerun the renderer without paying for another fill.&lt;/p&gt;

&lt;p&gt;Perspective is a rasterizer feature, not a prompt adverb. If the source quad is a trapezoid, the glyph run has to be transformed into that quad after rasterization, or the rasterizer has to draw in that space directly. A rectangular overlay on a receding storefront is the sticker look, and no amount of color match hides it. Shadows and strokes belong in the same transform. A shadow that falls in screen space while the word falls in sign space is another sticker cue.&lt;/p&gt;

&lt;p&gt;If you want one browser component to run every stage on a finished raster, that is the job people mean when they ask a tool to &lt;a href="https://rewordsai.app/" rel="noopener noreferrer"&gt;edit text in image&lt;/a&gt;. Judge that component as a pipeline with a confirmable string and a mask, not as a magic button. If it cannot show you the string it read, you cannot debug it. If it cannot leave the original file untouched, you should not run it on the only copy.&lt;/p&gt;

&lt;p&gt;The render stage is also where critical information goes to die if you picked the generative drawer. A discount, a date, a phone number, a dosage: these are strings with a checksum in the reader’s head. A pretty wrong string is worse than a visible failure. Prefer a rasterizer that cannot misspell over a model that usually spells. When the style match is weak and you still choose the generative drawer, put a human proofread in the path and do not auto-publish.&lt;/p&gt;

&lt;h2&gt;
  
  
  The harness behind the comparison
&lt;/h2&gt;

&lt;p&gt;What follows is a method, not a table of rates. The quantitative part of this project is a literature review plus a reproducible comparison plan. I leaned on official documentation and product notes, on academic papers, and on third-party reviews. Docs, papers, and reviews are restricted to the 2020–2026 source window, so this review year is the end of that window and the notes are not stale. The one-shot style prototype from the style stage is in that literature. So are the vendor descriptions of how each product wants to be driven.&lt;/p&gt;

&lt;p&gt;The sample plan is 3 categories, about 20 images each, 60 total.&lt;/p&gt;

&lt;p&gt;The categories are the ones that change which stage fails:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple printed text. Black type on white, or any clean ink on a quiet ground. This is the distribution demos already live on. If a tool cannot do this, it cannot do anything harder.&lt;/li&gt;
&lt;li&gt;Text on complex backgrounds. Street signs, billboards, words with busy artwork or photography behind them. This is the inpaint stress test, and it is also a detection stress test when the artwork has its own edges.&lt;/li&gt;
&lt;li&gt;Special-style text. Handwriting, or commercial logo typefaces. This is the style-stage stress test. A library match can look confident and still be the wrong brand.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each image uses moderately sized target lettering, not tiny lettering, so detection starts fair. I did not want a failure that was really “the stems were barely a few pixels tall and the task was unreadable to a person.” Tiny type is a separate experiment. Mixing it into this set would let a detector problem masquerade as a renderer problem.&lt;/p&gt;

&lt;p&gt;The edit itself is fixed per image. Either replace the selected lettering with a new phrase, or delete the lettering. Use each tool’s intended method: recognition and a click, a direct replacement, or a prompt. Do not force a prompt-only tool through a click-to-edit UI it does not have, and do not refuse to use the auto boxes on a tool that spent its engineering budget on them. You are testing the product’s path, not your ability to misuse it.&lt;/p&gt;

&lt;p&gt;These metrics were planned. This article does not report results for any of them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recognition accuracy on the result. Run a standard reader on the edited region and check that the new string came out. From those checks, compute a correct-replacement rate. The rate is a method. I am not publishing one.&lt;/li&gt;
&lt;li&gt;Visual consistency. Human raters would score each edit from 1–5 on how well the new lettering blends in tone, lighting, and sharpness. An image-similarity metric such as SSIM could compare the original background with the repaired background. No average of that ordinal score appears here, and no similarity figure appears here. If you compute similarity, compute it on the repaired region plus a ring of context. A full-frame score stays flattering because most pixels never changed, which hides a bad local repair.&lt;/li&gt;
&lt;li&gt;Subjective aesthetics. Reviewers compare before and after and judge naturalness and visible flaws. An A/B blind pass is optional, not something I am claiming to have tallied.&lt;/li&gt;
&lt;li&gt;Automatic quality around the scar. Where you can, quantify the repair footprint with color balance or texture consistency in a band around the edit. Also planned. Also not a number in this piece.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The statistics plan matches the metrics. Per tool, compute the average replacement success and the average visual score, plus a variance so a single lucky image cannot define the tool. Where the sample allows, a t-test or a non-parametric test would check whether a difference between camps, or between a dedicated editor and a general scene fill, is more than noise. This article has no test statistic and no p-value. Without measured data, the expectation is stated in words. Vendor claims and industry feedback point the same way: font matching in the dedicated camp is expected to land high, and a general scene fill is expected to drift when the background is complex. Read that as an expectation, not as a rate I measured and then rounded away.&lt;/p&gt;

&lt;p&gt;Reproducible steps are part of the method, or the comparison is a vibe. Log every tool’s real workflow. For an OCR editor: upload, automatic detection, click the region, type the replacement, download. For a desktop fill: record the selection geometry and the fill parameters. For a chat editor: save the prompt and the steps that indicated the region. Capture before and after for every scenario. Have more than one rater repeat the scoring so one person’s taste is not the metric. Hold the environment as still as you can: similar network conditions, the same image resolution across tools, the same target phrase on a given source. With more resources I would add type style and multiple languages as factors, and I would measure editing time and the feel of the UI. This write-up does not report those times.&lt;/p&gt;

&lt;p&gt;A note on leakage, because this is where image comparisons usually lie to themselves. Do not tune the target phrase after you have seen which tool fails it. Do not drop an image from the set because one tool looked bad, unless you drop it for every tool and write down why. Do not score a tool on a screenshot of a screenshot if the other tools got the original file. The harness is boring on purpose. Boring is what makes a later number mean something. I am not inventing that later number in this text.&lt;/p&gt;

&lt;p&gt;The same comparison, told as a full pass over the products rather than as a stage contract, is the piece on whether current models can &lt;a href="https://rewordsai.app/blog/can-ai-edit-text-inside-an-image" rel="noopener noreferrer"&gt;edit text inside an image&lt;/a&gt; well enough to trust. This page stays with the pipeline, the harness, and the matrix.&lt;/p&gt;

&lt;h2&gt;
  
  
  The matrix, row by row
&lt;/h2&gt;

&lt;p&gt;The dimensions that matter when you integrate one of these products, or when you refuse to, are narrower than a feature grid. What does it actually edit: a string, a region of pixels, or a background with no concept of glyphs? What is it good at when the stage matches the product? Where does it structurally give up? What is the price shape, without pretending a price is a quality score? Where do the bytes go? Who is the best caller?&lt;/p&gt;

&lt;p&gt;Read the rows in that order. A dedicated-camp fit means a font-matching editor. A general-camp fit means a scene tool whose lettering is the unreliable stage. A removal-camp fit means delete only. One row never leaves the device and is not a lettering editor. One row only cuts out a background. One row is an unreleased demo for garbled glyphs in generated pictures. The pattern, once you sort that way, is stable. Some products are creative processors with no dedicated lettering editor. Some are friendly brush or prompt entry points. One family only deletes. The purpose-built lettering editors are the rows that prioritize font matching and automation.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What it edits&lt;/th&gt;
&lt;th&gt;Strengths&lt;/th&gt;
&lt;th&gt;Limits&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Privacy&lt;/th&gt;
&lt;th&gt;Best fit&lt;/th&gt;
&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Photoshop&lt;/td&gt;
&lt;td&gt;Delete or replace selected elements, including lettering, and generate image content to fill the erased area. The fill step is Generative Fill.&lt;/td&gt;
&lt;td&gt;Powerful scene context, fine control over selections and parameters, and it works with layer effects. The generative model family here is Firefly.&lt;/td&gt;
&lt;td&gt;No dedicated text recognition or font matching. Generated lettering is often generic and not guaranteed legible. Steep learning curve, and the work is manual.&lt;/td&gt;
&lt;td&gt;Subscription.&lt;/td&gt;
&lt;td&gt;Edits upload to the Adobe cloud. Login is required. Copyright rules apply.&lt;/td&gt;
&lt;td&gt;General camp, for professional scene work: complex scenes, object replacement, background extension. Not for precise lettering replacement; that still needs a manual font match on a real type layer.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Canva Express&lt;/td&gt;
&lt;td&gt;Brush-select plus a text prompt to replace a selected element, for example deleting or replacing lettering. Magic Erase removes objects or lettering. Magic Edit is that prompt brush.&lt;/td&gt;
&lt;td&gt;Simple and browser-based, with no install. It integrates with templates. Element replacement is fast on ordinary images.&lt;/td&gt;
&lt;td&gt;Still in beta, with limited precision. Weak on complex backgrounds and fine detail. No auto-OCR, so you mark the region yourself.&lt;/td&gt;
&lt;td&gt;Basically free. Advanced features need a paid Pro plan. A chat plugin can call it without a separate charge.&lt;/td&gt;
&lt;td&gt;Online processing, and an account is required. The privacy policy stresses asset safety, but processing is still in the cloud. Output is subject to copyright and community rules.&lt;/td&gt;
&lt;td&gt;General camp. Content creators doing quick element edits, or deleting and replacing lettering on flat design and social graphics, where pixel-perfect fidelity is not required.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ChatGPT + image editing&lt;/td&gt;
&lt;td&gt;Upload an image and describe edits in natural language, including adding or removing lettering. In plugin mode it can call a desktop editor or a design app, for example blurring a background or replacing lettering through those plugins.&lt;/td&gt;
&lt;td&gt;Flexible and iterative, with multi-turn consistency. The Images 2.5 model focuses on precise editing. Templates such as Sketch, plus prompt sharing, are part of the workflow.&lt;/td&gt;
&lt;td&gt;Limited recognition and rendering. Expect errors or garbled spelling when lettering is drawn by the model. No exact font match.&lt;/td&gt;
&lt;td&gt;Free, and Plus, Pro, and Enterprise tiers. Image editing is a general capability. Desktop plugins are reachable through the chat.&lt;/td&gt;
&lt;td&gt;OpenAI is privacy-respecting in its framing, but uploads may be used for training, with an opt-out. Plugins require login and follow their own rules.&lt;/td&gt;
&lt;td&gt;General camp. Creative prototyping and fast iteration: natural-language edits, quick slogans, color changes. Not for fine typographic proofing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pixelmator Pro&lt;/td&gt;
&lt;td&gt;General editing and repair, including machine-learning content fill and object removal, plus built-in enhancement and canvas tools.&lt;/td&gt;
&lt;td&gt;A friendly interface, Apple machine-learning features, and a smooth feel. Multi-layer and vector tools for creative work.&lt;/td&gt;
&lt;td&gt;No dedicated text recognition or replacement. Mac and iPad only.&lt;/td&gt;
&lt;td&gt;One-time purchase or a Mac App Store subscription. Cheaper than a full professional desktop subscription.&lt;/td&gt;
&lt;td&gt;Mostly on-device. Whether anything is uploaded depends on what you do. No extra privacy exposure from the editor itself.&lt;/td&gt;
&lt;td&gt;Routine editing for Mac designers: object removal and color adjustment. Not a lettering editor.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remove.bg&lt;/td&gt;
&lt;td&gt;Automatic background removal only. No lettering edit.&lt;/td&gt;
&lt;td&gt;Focused and efficient. Fast, accurate deep-learning segmentation.&lt;/td&gt;
&lt;td&gt;Single-purpose, and unrelated to lettering edits.&lt;/td&gt;
&lt;td&gt;Basic free. Paid plans cover batch and high-resolution removal.&lt;/td&gt;
&lt;td&gt;Web or API use requires an upload. The policy says content is not stored, or is kept only briefly in order to process.&lt;/td&gt;
&lt;td&gt;Background removal for commerce and cut-outs. Useful as preprocessing before manual lettering work. Not a lettering editor.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Runway ML&lt;/td&gt;
&lt;td&gt;Cloud image and video generation and editing, including object removal, expansion, and video inpainting.&lt;/td&gt;
&lt;td&gt;A creation platform for stills and motion, with collaboration and an API. Frontier models include Gen-4.5 and GWM.&lt;/td&gt;
&lt;td&gt;Aimed at creative generation and video, not dedicated lettering-object editing. Some advanced features need paid credits.&lt;/td&gt;
&lt;td&gt;Free basic tier, pay-as-you-go, plus team and enterprise plans.&lt;/td&gt;
&lt;td&gt;A cloud service that caches processed content. Check the terms on using assets for product improvement and on commercial licensing.&lt;/td&gt;
&lt;td&gt;Creative video and interactive work. It can delete lettering as a side effect. It is not a font match.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ClipDrop&lt;/td&gt;
&lt;td&gt;Cleanup removes a selected object, person, or lettering. Text Remover deletes lettering and, as the product describes it, rebuilds what was behind the text.&lt;/td&gt;
&lt;td&gt;Simple, generally natural results, including on complex backgrounds, plus a free allowance.&lt;/td&gt;
&lt;td&gt;Can only delete. It cannot replace or add lettering, cannot keep the original style, and cannot re-typeset. Needs a network.&lt;/td&gt;
&lt;td&gt;Free daily quota. Premium is a subscription.&lt;/td&gt;
&lt;td&gt;Account login for the web app. Images are uploaded to the cloud under Stability AI policies.&lt;/td&gt;
&lt;td&gt;Removal camp. Clearing unwanted lettering, watermarks, or blemishes. Replacement is a different tool’s job.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fotor&lt;/td&gt;
&lt;td&gt;Auto-OCR on text regions. Click a detected region and type the replacement. The backend removes the old lettering and imitates the same letterforms with the new content. Prompt-based edits are also available.&lt;/td&gt;
&lt;td&gt;Purpose-built for lettering in images. Auto-matches font, color, and effects. The flow is close to a word processor. It can delete, replace, and add lettering.&lt;/td&gt;
&lt;td&gt;Needs a network, and server time varies. Weak on tiny type, handwriting, and warped type.&lt;/td&gt;
&lt;td&gt;Free tier can watermark. Premium unlocks batch and high-res.&lt;/td&gt;
&lt;td&gt;Images are transferred encrypted. The policy claims no retention for online editing.&lt;/td&gt;
&lt;td&gt;Dedicated camp. Content marketing, ads, promo pages, social images, and typo fixes where font fidelity matters.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ReWords AI&lt;/td&gt;
&lt;td&gt;Detects existing lettering, removes it, rebuilds the background, and renders a translation or replacement with matching font, color, and size. Built for finished images when there is no source file.&lt;/td&gt;
&lt;td&gt;Aimed at flyers, posters, menus, and labels in the browser. The everyday job is localization and correction without rebuilding the layout.&lt;/td&gt;
&lt;td&gt;Results depend on image quality, font complexity, and background texture. Complex photographic backgrounds are best-effort. Not for IDs, invoices, or official documents.&lt;/td&gt;
&lt;td&gt;Free first edit after sign-in. Credit packs and subscriptions cover volume and higher-resolution exports.&lt;/td&gt;
&lt;td&gt;Cloud processing. Read the privacy terms before a sensitive upload.&lt;/td&gt;
&lt;td&gt;Dedicated camp. You do not have the design file, and you need the wording changed rather than the scene reinvented.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Textify (Storia.ai)&lt;/td&gt;
&lt;td&gt;Mainly fixes garbled lettering inside generated images, replacing wrong glyphs with a meaningful string.&lt;/td&gt;
&lt;td&gt;Designed for generated-art workflows. It improves readability somewhat and offers a one-click replacement.&lt;/td&gt;
&lt;td&gt;Only pseudo-text in generated images, not real photos. Current results are limited, and examples still show spelling errors.&lt;/td&gt;
&lt;td&gt;Not officially released. It is a project demo.&lt;/td&gt;
&lt;td&gt;No public privacy policy. The project is still in development and testing.&lt;/td&gt;
&lt;td&gt;Hobbyists repairing garbled lettering in generated pictures such as Stable Diffusion. Immature, and not for real photos.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Baidu Netdisk AI retouching&lt;/td&gt;
&lt;td&gt;Adds image-text recognition and editing inside the drive app. Select a region and change font, color, and size.&lt;/td&gt;
&lt;td&gt;Short steps. Auto-detects regions and offers edit controls. Advertises editing in the same font format. Saving and sharing stay inside the same ecosystem.&lt;/td&gt;
&lt;td&gt;The app is required. Accuracy depends on scene complexity. Output quality is thinly verified in public.&lt;/td&gt;
&lt;td&gt;Built into the drive app. Access may depend on a VIP tier. Described as currently free.&lt;/td&gt;
&lt;td&gt;An internal feature. Processing may happen on the vendor’s servers under the drive’s general privacy rules, including encrypted storage.&lt;/td&gt;
&lt;td&gt;Dedicated camp. Quick replacement for people already in that ecosystem, such as ads and layout notes. Watch the output.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That finished-image row — detect, remove, rebuild, render, in a browser, with no design file — is the one you open when the export is all you have. The matrix is the integration view. The passes themselves were less tidy than any single row.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the passes showed, without a scoreboard
&lt;/h2&gt;

&lt;p&gt;Automatic lettering edits inside images are not a mature, single-purpose capability, and coverage is still split by what each product actually automated.&lt;/p&gt;

&lt;p&gt;The dedicated camp is the one that preserves font style and turns a replacement around quickly. That matches the architecture: a box, a string, a fill, a rasterizer that imitates letterforms instead of sampling them. The general camp wins on image consistency and on creative flexibility, and it lacks fine control of type. A scene fill can remove lettering and rebuild the background without an obvious seam, and the letters it invents are still not style-consistent. A natural-language editor can add or change wording in one pass, and it still returns typos or warped glyphs often enough that you cannot skip a proofread. Those are qualitative splits. They are not recognition rates, not similarity scores, and not significance tests.&lt;/p&gt;

&lt;p&gt;One observation held across the set, and it maps directly onto the inpaint stage. Lettering on complex backgrounds — texture, lighting gradients — failed or left artifacts far more often. Printed lettering on a quiet ground came out well in almost all of the tools. If your image is in the easy category, you are in the easy zone, and you should not brag about it as if it were the hard zone. If busy photography sits behind the words, expect a fight, and budget a human look at the hole before you accept the composite.&lt;/p&gt;

&lt;p&gt;I am not going to dress that observation up as a computed footprint. The color-balance and texture checks in the harness are how I would quantify “artifact” on the next pass. They were not run to a published figure for this piece. The human ordinal score was not averaged. What I will stand behind is the direction: quiet grounds are kind to every camp, and textured grounds expose the fill. The style stage has its own direction, separate from the fill. Logo typefaces and handwriting are where imitation stops being imitation and becomes a different word in a nearby font. If the brand lives in the outline, do the change on a real type layer or do not do it.&lt;/p&gt;

&lt;p&gt;Spelling failures deserve a developer’s reading, not a shrug. When a rasterizer misspells, the target string was wrong or the font did not contain the character, and you can assert on that in a test. When a generative drawer misspells, the sample drifted, and the next sample may drift differently. The second bug is not something you patch with a prompt adjective. You route critical strings away from that drawer. The passes made the routing obvious even without a rate beside it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short answer the stack forces
&lt;/h2&gt;

&lt;p&gt;Shipped products fall into three camps, and each camp wins on a different axis.&lt;/p&gt;

&lt;p&gt;Dedicated editors lead on font fidelity and speed. They are built to keep the original style, to box the words, and to let you type. That is the path that respects the stage contract: a string you can see, a mask, a fill, a rasterizer.&lt;/p&gt;

&lt;p&gt;General generative tools lead on scene context and on creative changes to the picture as a picture. They understand more of the surrounding scene than a font matcher does. Their generated lettering is often blurry, misaligned, or misspelled, because lettering is the stage they refuse to isolate. Use them when the job is the scene. Do not use them as a type engine.&lt;/p&gt;

&lt;p&gt;Removal-only tools delete lettering cleanly and cannot put words back. They are a fill stage with a UI, not an editor. That is useful, and it is not the feature the headline promised.&lt;/p&gt;

&lt;p&gt;No single tool does everything well. The headline feature everyone wants — type new text and have it look native — is still the weakest link. In the passes I cared about, clean removal was easy. Convincing replacement was not. The stack explains why. Removal can stop after a decent fill. Replacement has to survive detection, style, and a renderer, and readers notice a bad glyph faster than they notice a slightly wrong brick.&lt;/p&gt;

&lt;p&gt;Do not read the camp split as “only the dedicated camp is allowed.” Scene reconstruction, object removal, and extending a background are real jobs, and the general camp is built for them. The mistake is asking a scene model to also be a type setter, or asking a type setter to invent a new background object. Pick the camp that owns the stage you are actually calling. If you need two stages from two camps, run them as two calls and keep the intermediate, so you can throw away the bad call without rerunning the good one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who should run which camp
&lt;/h2&gt;

&lt;p&gt;If you are a content creator, the usual job is small and specific. A discount changes. A date changes. A label gets a translated line. Prefer a dedicated editor for that. The flow feels like a word processor: select the words, type, let the backend rebuild the ground and keep the style. The barrier is low because you are not asked to become a scene compositor. For a price, a date, or a translated line on an export, &lt;a href="https://rewordsai.app/edit-text-in-image" rel="noopener noreferrer"&gt;edit text in image on the finished file&lt;/a&gt; instead of reconstructing the layout from scratch. For heavier creative changes — overall color, background objects, a different composition — add a general scene edit, and plan to touch up the output. Avoid relying on directly generated in-image lettering to carry critical information. The error mode is wrong characters that still look intentional. That is worse than an obvious hole.&lt;/p&gt;

&lt;p&gt;If you are a designer, the bar is precise visual consistency, and a font match you do not control is not precise. Use a scene fill as an aid: remove the old lettering with it, then set the new wording yourself on a type layer so the family, the kerning, and the brand rules are yours. A chat product’s desktop-editor extension can streamline part of that flow, especially when you are still deciding what the new line should say. A browser brush-and-prompt edit can speed prototypes and internal reviews. Check the pixels before they leave the review. Treat automatic replacement as an assistant, not as a one-stop type department. The assistant is allowed to be wrong. Your file is not.&lt;/p&gt;

&lt;p&gt;If you are on a legal or compliance team, the risk is privacy and copyright, and it is a data-flow risk rather than a style opinion. Every cloud service in this set — chat, browser design tools, dedicated web editors — requires the image to be uploaded. Upload implies a leak surface and, on some of those services, a training-use question. Read the vendor’s privacy terms. Confirm that retention, region, and authorization match the policy you already apply to customer artwork. An opt-out that exists only in a personal account setting is not an enterprise control until you have tested that it binds the workspace you actually use. Output raises a second issue: a rewritten logo outline can step on the original creator’s rights, and a generated sentence can state a fact you did not approve, including a price or a claim. For official documents and for ID photos, do not use an automated tool to edit the lettering. The downside is a dispute, not an ugly kerning pair.&lt;/p&gt;

&lt;p&gt;On-device editing is the exception that proves the rule. If the pixels never leave the machine, the training-use question changes shape. The moment a “local” app calls a cloud fill for the hard stage, you are back in the upload regime for that stage. Ask which stage is local. Do not accept the word local for the whole pipeline because the chrome is a desktop app.&lt;/p&gt;

&lt;p&gt;The safest approach is a mixed toolkit, with the original file kept untouched. For a simple string change, start with recognition plus a dedicated editor. For a creative edit, or when the source file is missing and the scene itself has to change, use a desktop fill or a chat model as a first pass, then proofread. For clearing unwanted lettering, use a removal tool, and do not expect it to type. Stay critical of the output. Compliance teams should write a policy for image editing and for the review of generated content, including who is allowed to upload customer files and which document classes are out of scope no matter how good the demo looked.&lt;/p&gt;

&lt;p&gt;A practical policy is short enough to fit on one page. Keep the source object immutable. Store the edited object beside it, not instead of it. Require a human proofread when the string is a price, a date, a name, a legal line, or anything regulated. Forbid automated edits on identity documents and on official records. Record which vendor processed the file, because the privacy review is per vendor, not per category. None of that requires a new model. It requires the sidecar the stack section already asked for: operation, target string, and whether a person confirmed the read.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would actually ship
&lt;/h2&gt;

&lt;p&gt;The models can change pixels that used to be letters. Whether they can do it well is a separate question, and the answer still depends on which stage you needed. Dedicated editors, built to detect, erase, match, and rasterize, are the ones that take the headline feature seriously. General-purpose generators still cannot reliably draw lettering that belongs in a design. Removal tools remain good at the job their name implies, which is the fill, and only the fill.&lt;/p&gt;

&lt;p&gt;If I were reviewing a pull request that added “edit the text in the picture” to a product, I would block it unless the interface showed the detected string, the mask, and a way to edit the string before the fill ran. I would block a path that sent a price or a legal line through a generative drawer. I would block any path that overwrote the only copy. I would ask which camp owns each stage, and I would not accept one vendor checkbox as an answer for all of the stages. I would also ask what the harness is. A single hero screenshot is not a harness. The category split in the method section is the minimum: quiet type, type on a hard ground, and type whose style is the brand. If those situations were not tried, the feature is a demo.&lt;/p&gt;

&lt;p&gt;Ship the mixed toolkit. Keep the original. Proofread the glyphs at actual pixel size, not in a thumbnail. Write the policy before someone pastes an identity document into a cloud fill because the button was convenient. The stack is understandable. The weakness is specific. It sits in the last mile, where new letters have to look as if they had been printed with the old ones, on a surface the fill had to imagine. That mile is still the hard part, and any roadmap that marks it done because a clean word on a white card looked fine has tested the easy category and called it the product.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>ai</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Detection Boxes to Redrawn Glyphs: A Developer Pipeline for Text Inside Images</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Fri, 09 Oct 2026 08:43:05 +0000</pubDate>
      <link>https://dev.to/baiwei/detection-boxes-to-redrawn-glyphs-a-developer-pipeline-for-text-inside-images-kp8</link>
      <guid>https://dev.to/baiwei/detection-boxes-to-redrawn-glyphs-a-developer-pipeline-for-text-inside-images-kp8</guid>
      <description>&lt;p&gt;&lt;em&gt;Ten ways to change the words baked into a finished image — and keep the layout, type, and background a designer already signed off.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You do not translate an image by translating a string. You find boxes, read what is inside them, and put different glyphs back into the same pixels. A campaign poster leaves design as English. A menu leaves as Japanese. A product label leaves as German. A diagram leaves with Spanish callouts. What you hold is the export: PNG or JPEG, layers gone, type painted into the raster. The brief does not change. Ship the other language. Do not ship a different design.&lt;/p&gt;

&lt;p&gt;A document translator can let the layout flex. An image cannot. Column width, drop shadow, and the texture under a headline are pixel counts. Erase the source word and you also erase the pixels it covered. Image localization is that constraint: meaning has to change, and the picture is not allowed to.&lt;/p&gt;

&lt;p&gt;This piece follows the pipeline a developer would build, then the ten real ways to own each stage. Scripts, OCR, and APIs come before any phone-camera story. Fidelity, cost, and failure modes stay attached to the method that has them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Detection Box Is the Unit of Work
&lt;/h2&gt;

&lt;p&gt;Treat every text run as a rectangle, then as a string, then as a hole you have to fill, then as ink you have to put back. If you build the loop in Python, the stages are boring on purpose. Boring is what you can test.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Detect.&lt;/strong&gt; Find the regions that contain glyphs. OpenCV edge or contour detection will give you boxes on high-contrast labels. A deep OCR model — EasyOCR, or Tesseract in a mode that returns word boxes — does better on photos. You want coordinates, not one blob of page text. A box that is too tight clips diacritics. A box that is too loose eats a logo or an arrowhead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read.&lt;/strong&gt; OCR the crop. Language hints matter. Spanish on a label is not the same pass as Chinese on a package. Keep the confidence score. A low-confidence box is a box you should not silently translate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Translate.&lt;/strong&gt; Send the string, not the image, to a machine-translation API or to a person. Google Translate, DeepL, and Baidu Translate are the usual engines here. Lock tokens that must survive unchanged: brand names, SKUs, registered marks, and numbers whose meaning is not linguistic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Erase.&lt;/strong&gt; Cut the glyphs out and reconstruct the background. On a flat fill this is a rectangle of the sampled color. On a photo, gradient, or texture you need an inpaint. A small script usually fills with a flat color or a neighborhood average. A diffusion inpainter is what you call when that average looks like a bandage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redraw.&lt;/strong&gt; Draw the translation into the box with Pillow or OpenCV. You choose the closest font you actually have a file for. You set weight, fill, and size. You measure the advance width. If the string does not fit, you shrink, wrap, or track. You do not pretend it fits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write.&lt;/strong&gt; Save a bitmap at the same resolution you loaded. Keep the original. Diff them. The diff should light up inside the old text boxes and almost nowhere else.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the whole product, whether a person runs it by hand or a job runs it overnight. Hosted tools hide steps 1 through 5 behind one request. Multimodal models hide them inside a prompt. Diffusion models ask you for the mask and then invent the pixels. A designer does the erase and the redraw with a stylus and a font menu. The phone in your pocket does a coarse version of the loop and stamps a reading overlay on top, which is a different product.&lt;/p&gt;

&lt;p&gt;Atlas Cloud has described the same split: after OCR lifts the words, someone still has to place them back into the design. A pure raster edit merges the change onto a new layer and gives you less control over individual letters. Manual typesetting is slower and, when the font is right, the most precise. A script sits between those two. You get coordinates. You do not get the original text frame, the original leading, or the original OpenType features unless you reconstruct them.&lt;/p&gt;

&lt;p&gt;Input is a bitmap. Output is a bitmap of the same size. The value every method either computes or fakes is a list of boxes with strings. If you cannot see those boxes, you cannot debug a single bad caption.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four Constraints a Redraw Has to Survive
&lt;/h2&gt;

&lt;p&gt;The layout is frozen. The words are not. Every method below is a trade against the same four limits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Length is not preserved.&lt;/strong&gt; A short English phrase often grows by 30% or more in German or French, and usually shrinks in Chinese or Japanese. The box does not grow with the grammar. You resize, re-wrap, or re-track. Assuming the translation fits unchanged is how buttons overflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type has to be rebuilt.&lt;/strong&gt; Family, weight, color, letter-spacing, and any shadow, stroke, or outline are part of the design. A right sentence in a default sans still reads as a patch. Without the identical font file, a full match is hard. Photoshop and Pillow share that limit: they can only render a face you can load.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The background under the glyphs is destroyed when you erase them.&lt;/strong&gt; Solid color is easy. A photo, gradient, or texture is reconstruction. Feather the edge and check the seam at 1:1. A visible rectangle means the fill failed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Non-text geometry is in scope.&lt;/strong&gt; Arrows, callouts, numbering, and legends contain text or point at it. OCR returns strings. It does not return "this arrow belongs to this caption." A person, or a model that sees the whole figure, has to.&lt;/p&gt;

&lt;p&gt;The right method depends on fidelity, how much text is in the frame, and whether the source file still exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scripts Before Buttons: a Custom Pipeline and OCR Typesetting
&lt;/h2&gt;

&lt;p&gt;Own the batch job before you rent a button. The phone-camera path is last on purpose.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 8: A computer-vision script you run yourself
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; This is the loop from the first section, as code. Detect regions with OpenCV edge or contour detection, or with a deep OCR model. OCR and translate each box. Cut the glyphs out and fill the background. Draw the new string. Write the file. There is no off-the-shelf GUI. The script is the product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; Python with Pillow, OpenCV, EasyOCR, and pytesseract. A Baidu or Google Translate API for the string. The same job exists in Adobe PixelSense and in C# or .NET image code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input and output.&lt;/strong&gt; A normal bitmap in. A same-resolution bitmap out. Keep the box list beside the file so a bad label can be blamed on OCR, translation, or the draw.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation.&lt;/strong&gt; High once the script is actually finished, and fully batchable. Thresholds, language packs, and font fallbacks are the unfinished part.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fidelity.&lt;/strong&gt; Medium, and it depends on those details. You can roughly honor layout by drawing into the original boxes. You usually cannot match fonts automatically — you pick the closest face by hand. The fill is commonly a flat color or a neighborhood average. That is less natural than a diffusion inpaint, and it fails on complex backgrounds and non-standard lettering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time and cost.&lt;/strong&gt; Development cost is high. Runtime is on the order of seconds per image. Money can sit near zero next to a third-party service if the pieces are open source or already licensed. The invoice is the coding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros and cons.&lt;/strong&gt; Full control, batch, and a path that can stay off the public network. Design-detail fidelity trails a dedicated image model. You will tune parameters and correct misses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; An enterprise process requirement, or small-scale label replacement. The usual case is a merchant scripting OCR, translation, and write-back on product-image labels. Demanding, and flexible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 2: OCR, then typeset like you still have a layout
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; Same front half as Method 8 — OCR for content and position — then a person or a layout app owns the back half. Translate by machine or by a translator. Re-render at the original positions and styles. The pipeline is recognition, translation, layout reconstruction, output image.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; Tesseract, EasyOCR, and Adobe Acrobat OCR. Google Translate, DeepL, and Baidu Translate. Layout in Adobe InDesign or Photoshop, or in Pillow and Matplotlib when the figure is a chart.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input and output.&lt;/strong&gt; PNG or JPEG in, a new image out. A PDF or AI detour is worth taking: a text frame can change leading without you repainting a gradient.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation.&lt;/strong&gt; Medium. OCR and translation script cleanly. Final typesetting usually does not, once source and target lengths diverge and someone must change size and line spacing without hitting a photo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fidelity.&lt;/strong&gt; High when fonts and frames match. Expansion still breaks the original spacing, so you scale or re-wrap. A bad box on a busy figure hurts more than a weak synonym. Kerning and ligatures drift even in the right family. Leader lines and numbering are not handled. They stay manual.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time and cost.&lt;/strong&gt; OCR plus translation is seconds to minutes. Typesetting is minutes to tens of minutes. Money stays low on open-source OCR and an API you already pay for. The labor is the typesetting hour.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros and cons.&lt;/strong&gt; Faster than a blank-layer redraw, and reviewable while the text is still text. You depend on OCR accuracy and font matching. One button will not publish this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Chart annotations, technical manuals, and educational diagrams. PDF translators follow the same idea: parse structure, translate region by region, replace in place, preserve the layout. On a flat image you are running that algorithm without a text layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Call an API When You Want the Model to Repaint
&lt;/h2&gt;

&lt;p&gt;Delegating detection or inpainting does not delegate the check on numbers and names.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 6: Multimodal models that take an image and an instruction
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; GPT-4V, a later vision-capable GPT-4-class model, ChatGPT image editing, or a DALL·E edit takes the image plus an instruction to translate the text and leave the design alone. The model is supposed to detect, understand, and generate together. What you can operate is: image and instruction in, recognition and translation, a new image, then a human proofread. Do not treat a follow-up question as a box list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; OpenAI ChatGPT with image features such as GPT-4V. The DALL·E 3 image-editing API when you call it. Google Imagen Editor, mostly research-stage rather than a production control. Inside a service, developer access is the OpenAI API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input and output.&lt;/strong&gt; Image plus prompt in. A new image out, at the original resolution or a size you set. You do not get layers back. If the model regenerates the frame, inspect more than the caption.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation.&lt;/strong&gt; High. One prompt can carry the job. Log the prompt, the model, and the image hash anyway. A prompt is a bad audit log.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fidelity.&lt;/strong&gt; Generally high on layout and style. OpenAI's examples include a coffee-machine instruction diagram translated into Spanish with the layout kept. Atlas Cloud has reported GPT-4V translating infographic text and leaving the rest of the figure intact. Models still miss strings, misspell them, and shift elements when the new length is far from the old one. Budget a fix. This is not fine typesetting. It is often good enough for marketing art, which is a different bar from a regulated label.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time and cost.&lt;/strong&gt; Medium. One image is often seconds to tens of seconds, plus an API or subscription cost and your review time. Quota is finite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros and cons.&lt;/strong&gt; Arrows, legends, and hierarchy can survive, because the model sees the figure rather than a bag of boxes. Fine control is limited. Expect spelling errors, leftover source language, or compositing artifacts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Infographics, posters, and illustrated promotions. A usable prompt is concrete: translate all text into Chinese, and do not change anything else. When one line overflows, redo that region. Redoing the poster is how the background drifts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 7: Diffusion inpainting, where you own the mask
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; Mask the text, then prompt a replacement that keeps the background. DALL·E 3 or Stable Diffusion inpainting fills the mask. The flow is detect, build a mask, prompt ("replace X with Y, keep the background unchanged"), fill, inspect. Uploading the original and a mask to an editing API is the same idea over HTTP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; The OpenAI DALL·E 3 editing API. Adobe Firefly Generative Fill. HuggingFace Diffusers, including &lt;code&gt;runwayml/stable-diffusion-inpainting&lt;/code&gt;, when you run the weights. ControlNet on text detection, and LaMa for the inpaint, when the mask should follow glyphs instead of a hand-drawn blob.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input and output.&lt;/strong&gt; Original, text mask, and prompt in. An image out. The model is supposed to take language and style from the prompt. Check the glyphs. These models are not spellcheckers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation.&lt;/strong&gt; Medium-high. Generation is one call. The mask is not. A person draws it, or OpenCV or OCR emits it. Too small and old serifs remain. Too large and the model repaints a product that was fine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fidelity.&lt;/strong&gt; High, a step under models built to edit text. Long strings break words. Style tracks the prompt. The strength is background repair: a fill can blend into a complex texture more naturally than a neighborhood average. The weakness is letterforms — slight blur, a bad shape, an extra detail. Tuned masks and prompts are the difference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time and cost.&lt;/strong&gt; Medium. Typically ten to tens of seconds, or your local GPU. Cloud adds queue time. You pay in compute or an API fee.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Creative work where a slight style shift is acceptable: concept art, slogans in illustrations. The banner fixture is Stable Diffusion taking "Summer sale — 30% off everything" to "Sommer-Sale — 30 % auf alles," background held, lettering re-rendered. Short lines survive more often than paragraphs. Set a regulated number with a real font.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 3: Format-preserving document services
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; Document translators parse layout and fonts, machine-translate each block, and re-typeset. Steps: layout parsing (coordinates and fonts), translation by a cloud service or a local engine, re-rendering, file write. Graphic images are typically left untouched, which is right for a scanned brochure and wrong for a figure whose labels had to change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; PDFTranslator, routing through Gemini and ChatGPT engines, the Pangeanic ECO platform, Pairaphrase, and Smartcat. Many accept a PDF or an image and return a translated PDF or graphic in the original styling. Integrate them as a service unless you also have an API you are allowed to call.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input and output.&lt;/strong&gt; Scans, images, or PDFs — JPG, PNG, or PDF — in. A file in the same general format out, with layout, tables, and graphic positions essentially where they started. A table that reflows by a row is still a defect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation.&lt;/strong&gt; High, end to end, with a light human proofread and a heavier one where numbers live. Unattended publishing is a different claim.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fidelity.&lt;/strong&gt; High. Careful OCR plus a dedicated translation system or an LLM, aimed at coordinate-level mapping. Layout and fonts are preserved. Document-level fidelity in this class is described as reaching 90% or better. Remaining errors are mostly length, such as a German cell in an English-sized column. Unusual layouts and handwriting are weak. A strong financial report does not imply a strong whiteboard photo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time and cost.&lt;/strong&gt; Seconds to minutes for most jobs. A 60-page PDF is a matter of minutes. Paid service, or purchased API quota. Bulk and long documents are where the bill shows up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros and cons.&lt;/strong&gt; Automation and fidelity, against fees. Weird layouts and handwriting are poorly supported. A flat PDF back means the next fix looks like Method 2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Enterprise technical documents, product manuals, training material, and financial reports that must keep their layout. Under the hood it is still OCR, translation, and automatic typesetting. Debug it like a pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Hosted Loop When You Do Not Want to Own the Mask
&lt;/h2&gt;

&lt;p&gt;When the source file is gone and the image is ordinary marketing art, a tool built for this loop is the short path that still tries to keep the design.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 4: Online AI that detects, translates, and repaints
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; Upload. Auto-OCR the regions. Translate, with a chance to proofread. The model erases the source glyphs and repaints the translation in a similar face. Download. OCR, machine translation, and image completion are one flow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; ReWords AI, ImageGPT, EditTextImage, Codia, and VisualGPT. Useful interfaces let you edit a suggested line and lock a line that must not change. A lock is how a brand name survives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input and output.&lt;/strong&gt; PNG or JPEG in. A same-resolution bitmap out, translation rendered close to the original style. Not a layered source file. Layers mean Method 10 or Method 1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation.&lt;/strong&gt; High for one asset: upload and generate. Batch becomes credits, an API, or a queue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fidelity.&lt;/strong&gt; High overall. Fills often match font style and background texture well enough that the edit is not obvious. Dense text, complex lighting, and decorative fonts still flaw. OCR tracks source quality. Neural translation varies and needs a human review. A clean look is a draft, not a proof.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time and cost.&lt;/strong&gt; Low to medium. Seconds to a minute. Nothing to install. A free allowance is normal. ReWords includes a few free generations per image, then paid credits. Bulk means payment or credits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros and cons.&lt;/strong&gt; You replace text on the image without the design file. Some images need a retry or a tighter instruction. Copyright and sensitive content stay yours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; E-commerce images, ads, social graphics, menus, flyers, and comics. On packaging, "SUMMER SALE" becomes "夏季特卖" with the background unchanged. An EditTextImage-style line turns "Summer sale — 30% off everything" into "Sommer-Sale — 30 % auf alles" with the layout left in place. A dense plate with leader lines belongs back in Method 2 or Method 3.&lt;/p&gt;

&lt;p&gt;On a service built for this, you &lt;a href="https://rewordsai.app/" rel="noopener noreferrer"&gt;translate text in an image&lt;/a&gt; with a short runbook. Upload and choose the image-text function — a "SUMMER SALE" banner is the fixture. Pick the language, correct the line-by-line suggestions, and lock brand names. Generate or apply: the original glyphs come out, and the translation is redrawn in the original color, a similar face, and the existing background. Download and review at 1:1. That is the default when there is no source file and the clock is short. Numbers and proper nouns still fail, for the same reason they fail in a script.&lt;/p&gt;

&lt;h2&gt;
  
  
  Source Files, a Designer, a Studio, and a Phone
&lt;/h2&gt;

&lt;p&gt;These four are what you do when you still hold the design, when fidelity outranks speed, or when you only need to read a sign. Two of them are the highest-fidelity options. One is the cleanest path if the source exists. One is never the file you publish.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 10: Edit the source, not the export
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; If the bitmap came from vector or layout software, replace the string in the text frame. InDesign or Illustrator, with scripts or plugins, can pull text out by OCR or by conversion, translate it, and put it back. Another route is PDF, then OCR and translate, then import. Effects and layers already exist. You are not guessing them from a JPEG.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; Adobe Acrobat for OCR and an export to Word. Illustrator find-and-replace. InDesign scripts. Lokalise, or Transifex's InDesign plugin, when the strings belong in a translation memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input and output.&lt;/strong&gt; An editable document or a PDF in. Text replaced in the original file out. The PNG is a build product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation.&lt;/strong&gt; Medium, and only as scriptable as the design app. Swapping strings in tagged frames is automation. Guessing which outlined text used to be which sentence is not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fidelity.&lt;/strong&gt; Very high, because you edit the source and layers survive — if you actually have the file. A flattened export is Method 2, whatever someone named it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time and cost.&lt;/strong&gt; Medium. Replacement still needs a person for overflow. Cost stays low when the licenses already exist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros and cons.&lt;/strong&gt; Precise typesetting from the real file. No file, no method.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Work where you hold the design source, such as an InDesign manual. The emergency variant is a rough OCR pass for reviewers, then a refine inside the frames before anyone prints.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 1: A designer redraws it
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; A person runs the pipeline. Extract the text by OCR or by typing it off. Translate and proofread. Find or recreate the face. In Photoshop, Illustrator, or a similar tool, erase, set the translation, and rebuild effects. Order: extract, translate and proof, match the font, erase, insert, adjust.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; Adobe Photoshop, Illustrator, InDesign, plus GIMP and Figma. Tesseract can speed extraction. It should not speed approval.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input and output.&lt;/strong&gt; Any image in, including PNG or JPEG. A new image out, or better a layered PSD or AI file. A flatten-only delivery throws away the next edit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation.&lt;/strong&gt; Low. Only OCR reasonably scripts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fidelity.&lt;/strong&gt; Highest from a person on the pixels. The designer controls font, position, and style. Closeness depends on skill. It is slow and sensitive to expansion. Without the identical font, a full match is hard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time and cost.&lt;/strong&gt; High. Minutes to hours, plus a learning curve on the software, so the tool is not free before the labor. Wrong default at volume. Often right for one flagship piece.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros and cons.&lt;/strong&gt; Layout and style can be held for demanding brand work, including arrows and callouts. Slow, expensive, and easy to miss an accent or a shadow left over from the old word.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Ad posters, packaging, UI prototypes, and print that must stand next to the original. Atlas Cloud's point sits here: after OCR lifts the words, placing them back is still a design act. A pure raster edit merges onto a new layer with less control over individual letters. Manual setting is slower and, in skilled hands, the most precise option.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 9: A translator plus a DTP studio
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; You hire the pipeline. A translator translates. A desktop-publishing designer replaces the text. Steps: identify and edit the source if it exists (PSD or InDesign), translate, adjust the layout, re-render in the same software. A bitmap-only job is Method 1 with a real translation process. An InDesign package is Method 10 with bilingual review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; The Adobe suite, InDesign, Illustrator. CAT tools such as Trados or MemoQ keep terminology stable. The CAT tool does not export the poster. The design tool does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input and output.&lt;/strong&gt; Any image or source package in. A high-quality localized image, and usually an editable file, out. Ask for the editable file. A flatten-only delivery is the wrong artifact at this price.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation.&lt;/strong&gt; Low. People intervene at every stage that matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fidelity.&lt;/strong&gt; Highest, shared with careful manual design and often stricter, because a translator handles cultural nuance and a DTP operator handles format. You still review against the source and the glossary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time and cost.&lt;/strong&gt; Highest of the ten. Translation fees plus design time, usually far above any machine option. Correct for sensitive work. Wrong for a tile that expires on Thursday.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros and cons.&lt;/strong&gt; The quality ceiling, and the bill. Time and money sit above every automated method.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Brand campaigns, major trade-show pieces, image content in government or legal documents, and publications that need a human proofread. A wrong numeral is an incident. Put this method next to Method 1, not next to a camera app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 5: Phone camera apps, for reading and only for reading
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How it works.&lt;/strong&gt; Google Translate, Baidu Translate's camera, Microsoft Translator, or WeChat scan-translate takes a photo or an import, runs OCR, translates, and overlays the result or saves a snapshot. Capture, recognize, translate, mark the original, show it. Comprehension on the spot. Not a master.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; Those four, and the cousins inside other apps. No project file. No font menu that matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input and output.&lt;/strong&gt; A phone photo or screenshot in. An overlay or extracted text out. Some apps save an annotated image. That image is a reading aid.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation.&lt;/strong&gt; Fully automatic. You point the camera.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fidelity.&lt;/strong&gt; Low, the bottom of this set. Default face, coarse mask, original layout and style not preserved. OCR and translation can sit near professional engines. The render is still not a design file you can publish. People who photograph text with Baidu Translate and save it often get the app's own mark, or a patch, on the frame.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time and cost.&lt;/strong&gt; A few seconds, often real time, usually a free app. Right price for "what does this say." Wrong price to treat as production art.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros and cons.&lt;/strong&gt; Fast, no expertise, enough for daily life. They cannot preserve the original design. A logo or watermark may land on the output. Reference reading only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Foreign menus, street signs, and manuals while traveling. Not the ad, not the label, not the file you print. A camera-roll screenshot is a hint at best. Rebuild with one of the other nine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ten Methods Side by Side
&lt;/h2&gt;

&lt;p&gt;Fidelity here means how closely the translated image matches the original design, not how fluent the sentence is. Phone apps sit at the bottom of that column because they help you read and they add a large mask. Manual design and a human DTP pass sit at the top because a person protects layout and type. Do not read "low cost" as "best." A cheap path that wrecks the file is expensive on the day you reprint.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Design fidelity&lt;/th&gt;
&lt;th&gt;OCR / recognition&lt;/th&gt;
&lt;th&gt;Multilingual&lt;/th&gt;
&lt;th&gt;Technical difficulty&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;Speed&lt;/th&gt;
&lt;th&gt;Best fit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. Pro design software (manual)&lt;/td&gt;
&lt;td&gt;Very high&lt;/td&gt;
&lt;td&gt;N/A (human)&lt;/td&gt;
&lt;td&gt;Any&lt;/td&gt;
&lt;td&gt;High (needs a designer)&lt;/td&gt;
&lt;td&gt;Highest (labor)&lt;/td&gt;
&lt;td&gt;Slow (manual)&lt;/td&gt;
&lt;td&gt;High-spec brand / marketing assets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. OCR + typesetting&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;High (structured text)&lt;/td&gt;
&lt;td&gt;Many&lt;/td&gt;
&lt;td&gt;Medium-high (software/scripts)&lt;/td&gt;
&lt;td&gt;Low (open source)&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Technical docs, labeled diagrams, structured charts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Document translation service&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;High (professional OCR)&lt;/td&gt;
&lt;td&gt;Very many&lt;/td&gt;
&lt;td&gt;Low (turnkey)&lt;/td&gt;
&lt;td&gt;Medium-high (service fee)&lt;/td&gt;
&lt;td&gt;Fast&lt;/td&gt;
&lt;td&gt;Bulk PDF/scans, professional documents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Online AI tools (ReWords and similar)&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;High (AI)&lt;/td&gt;
&lt;td&gt;Many&lt;/td&gt;
&lt;td&gt;Low (turnkey)&lt;/td&gt;
&lt;td&gt;Low/medium (free allowance + paid)&lt;/td&gt;
&lt;td&gt;Fast&lt;/td&gt;
&lt;td&gt;E-commerce posters, comics, everyday multi-image localization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5. Phone camera apps&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Medium-high (handheld)&lt;/td&gt;
&lt;td&gt;Many&lt;/td&gt;
&lt;td&gt;Very low (turnkey)&lt;/td&gt;
&lt;td&gt;Low (free)&lt;/td&gt;
&lt;td&gt;Real-time&lt;/td&gt;
&lt;td&gt;Quick reading for travel / daily life&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6. Multimodal large-model editing&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;High (model)&lt;/td&gt;
&lt;td&gt;Very many&lt;/td&gt;
&lt;td&gt;Low (turnkey)&lt;/td&gt;
&lt;td&gt;Medium-high (API fee)&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Infographics, ad posters, UI screenshots needing fast reasoning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7. Diffusion models (DALL·E and others)&lt;/td&gt;
&lt;td&gt;Medium-high&lt;/td&gt;
&lt;td&gt;Medium (needs a mask)&lt;/td&gt;
&lt;td&gt;Many&lt;/td&gt;
&lt;td&gt;Medium (prompt craft)&lt;/td&gt;
&lt;td&gt;Medium (API/compute)&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Creative design, where a style shift is acceptable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8. Custom Python pipeline&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Medium (tool-dependent)&lt;/td&gt;
&lt;td&gt;Many&lt;/td&gt;
&lt;td&gt;High (programming)&lt;/td&gt;
&lt;td&gt;Low (open source)&lt;/td&gt;
&lt;td&gt;Flexible (batch)&lt;/td&gt;
&lt;td&gt;Automation environments, private or enterprise batch jobs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9. Professional human + DTP&lt;/td&gt;
&lt;td&gt;Very high&lt;/td&gt;
&lt;td&gt;N/A (human)&lt;/td&gt;
&lt;td&gt;Any&lt;/td&gt;
&lt;td&gt;Very high (expert team)&lt;/td&gt;
&lt;td&gt;Highest (service fee)&lt;/td&gt;
&lt;td&gt;Very slow (manual)&lt;/td&gt;
&lt;td&gt;High-end publications, strict text and format demands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10. Direct source-file translation&lt;/td&gt;
&lt;td&gt;Very high&lt;/td&gt;
&lt;td&gt;High (from the source)&lt;/td&gt;
&lt;td&gt;Many&lt;/td&gt;
&lt;td&gt;Medium (design software)&lt;/td&gt;
&lt;td&gt;Low (if the software already exists)&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Projects that still have an editable source&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Phone apps are for comprehension and add a large mask, so fidelity is low. Professional design and a human DTP pass preserve layout and type, so they score at the top. Method 8 is medium fidelity: open-source cheap to run, expensive to build. Method 4 is fast, with a free allowance and a paid tier after it. Method 7 is medium-high because long text breaks. Do not read the cheapest row as the best row.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three Tutorials With the Code in the Fence
&lt;/h2&gt;

&lt;p&gt;The three tutorials are complete enough to run or to reject. The first calls an image edit API with a mask. The second is the hosted runbook. The third is Tesseract, a translation client, and Pillow. Hash comments stay inside the fences. They are notes to the interpreter, not headings.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tutorial 1: GPT-4 Vision, or a masked image edit
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview.&lt;/strong&gt; This is the smallest program that asks a vision-capable OpenAI model, or a DALL·E-style edit endpoint, to change text inside an image. The fixture translates the English "Summer sale" into the Chinese "夏季特卖."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prep.&lt;/strong&gt; An OpenAI account and an API key. A sample image that contains the source words. A mask aligned to that image. The filenames below are &lt;code&gt;orig.png&lt;/code&gt; and &lt;code&gt;mask.png&lt;/code&gt;. The mask covers the "Summer sale" region and as little else as you can manage. Mask polarity differs by API version. Read the current field definition before you burn a batch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flow.&lt;/strong&gt; Load the original. Call the GPT-4V path or the DALL·E editing endpoint. The model recognizes and translates. The model generates. You download and proofread. Skip the last verb and you have a demo, not a pipeline.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Align the files.&lt;/strong&gt; &lt;code&gt;orig.png&lt;/code&gt; is the source. &lt;code&gt;mask.png&lt;/code&gt; matches its pixel size. The mask covers the source phrase and not the product, the logo, or a legal line you did not mean to regenerate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Call the API.&lt;/strong&gt; The snippet uses the OpenAI Python SDK shape that takes an image, a mask, a prompt, a count, and a size. The prompt tells the model to translate the masked words into Chinese and to leave the rest untouched.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt;
&lt;span class="n"&gt;openai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Ask the model to translate the text in the masked area into Chinese
# while leaving everything else unchanged.
&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create_edit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;orig.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rb&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;mask&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mask.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rb&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;用中文翻译上面的文字，不改变其他内容。&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1024x768&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Save the returned image to disk
&lt;/span&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;output.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;wb&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;image&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The prompt asks for Chinese and forbids other changes. &lt;code&gt;n=1&lt;/code&gt; requests one image. &lt;code&gt;size="1024x768"&lt;/code&gt; sets the size in this example. The first returned image is written to &lt;code&gt;output.png&lt;/code&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Review &lt;code&gt;output.png&lt;/code&gt;.&lt;/strong&gt; "Summer sale" should now read "夏季特卖," with a similar face and the same background. A second fixture for this class of model is Korean in and Vietnamese out: same picture, different glyphs. Compare files, not memories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save it as the deliverable only after that look.&lt;/strong&gt; If position or weight is slightly off, nudge it in an editor instead of regenerating the whole frame.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Caveats.&lt;/strong&gt; Proofread every string, including type you thought the mask excluded. A missing line means a tighter prompt or a smaller block. The API bills by image size and by generation count. If &lt;code&gt;Image.create_edit&lt;/code&gt; is not the symbol in your installed SDK, keep the contract — &lt;code&gt;orig.png&lt;/code&gt;, &lt;code&gt;mask.png&lt;/code&gt;, that prompt, one image, an explicit size — and map it to the current client.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tutorial 2: A hosted tool, exercised like a test
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview.&lt;/strong&gt; Use ReWords, or a similar site such as EditTextImage, to run Method 4 on one fixture. This walkthrough uses ReWords. No local install. The test is whether you can explain the output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prep.&lt;/strong&gt; Open the site. Have one image whose source text you can read yourself. If you cannot read the source, you cannot grade the translation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flow.&lt;/strong&gt; Upload. The system detects and OCRs. It shows a suggested translation. You edit and lock. It renders. You download and compare.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Upload.&lt;/strong&gt; Choose the function that translates text in the picture and upload the fixture, an ad that contains "SUMMER SALE." Learn the clicks on a short banner before you try a menu or a comic panel. Short text makes a bad read obvious.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick the language and edit the strings.&lt;/strong&gt; Detection should return every line. Select the target. Chinese is the example. Correct mistranslations in the suggestion list before you generate. Lock tokens that are not translations: brand names, model numbers, a price already in the target currency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate.&lt;/strong&gt; The render removes the original glyphs and draws the translation back in the original color, on the original background, in a face that tries to match. Same erase-and-redraw contract as the Python tutorial. You inspect the result as if you had watched the draw call.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Download and compare.&lt;/strong&gt; In the example, one side still says "SUMMER SALE" and the ReWords result says "夏季特卖," with the package or banner background still in place. Flip them at 1:1. Look at edges, shadows, and any character that might have been invented.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;How to judge the run.&lt;/strong&gt; These products usually include a free allowance. ReWords includes several free generations per image. Past that you pay or you spend credits. That is enough to learn the tool and not enough to pretend a catalog is free. Quality on this class of banner is often high, and it is still a draft until someone checks numbers and proper nouns. The method earns its place when you cannot get the design source and you still need a localized image rather than a caption under the old picture.&lt;/p&gt;

&lt;p&gt;If you need the same loop named as a product action, &lt;a href="https://rewordsai.app/" rel="noopener noreferrer"&gt;edit text in an image&lt;/a&gt; is the job the upload-and-generate flow is for. The acceptance strings are the spec: "SUMMER SALE" to "夏季特卖," and, on the EditTextImage-style banner, "Summer sale — 30% off everything" to "Sommer-Sale — 30 % auf alles." There is no screenshot in this article on purpose. Grade the strings and the seam, not a caption under a missing figure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tutorial 3: Python, Tesseract, and a redraw you can debug
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview.&lt;/strong&gt; A script reads text off an image, translates it, and paints the translation back. The stack is Tesseract, OpenCV or Pillow, and a translation client. The fixture is Spanish into English. The example output is &lt;code&gt;translated_image.png&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flow.&lt;/strong&gt; Load the original. Detect and OCR with Tesseract. Call a translation engine — here, the Google Translate client in &lt;code&gt;googletrans&lt;/code&gt;. Clear the original region with a draw. Paint the English with Pillow. Save. The first version uses one known rectangle so the draw call is visible. Production uses the boxes OCR returns.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Install the binary and the libraries.&lt;/strong&gt; The Python package does not include Tesseract. On a Debian-family machine:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install Tesseract (example for Ubuntu)&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;tesseract-ocr

&lt;span class="c"&gt;# Install Python libraries&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;pytesseract pillow &lt;span class="nv"&gt;googletrans&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;4.0.0-rc1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The pin on &lt;code&gt;googletrans==4.0.0-rc1&lt;/code&gt; matches the &lt;code&gt;Translator&lt;/code&gt; class used below. On macOS the Python packages stay the same and the system package does not. Do not skip language data. &lt;code&gt;lang='spa'&lt;/code&gt; fails in a boring way when the Spanish traineddata is missing. If you later swap in an official translation client, keep the OCR, the rectangle erase, and the measured draw. Replace only the client.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Run the script.&lt;/strong&gt; The image is &lt;code&gt;image_with_text.png&lt;/code&gt;. Recognition is Spanish. The destination is English. The rectangle is a stand-in, not a detector.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;PIL&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ImageDraw&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ImageFont&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pytesseract&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;googletrans&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Translator&lt;/span&gt;

&lt;span class="c1"&gt;# Load the original image
&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image_with_text.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Run OCR (recognize Spanish text)
&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pytesseract&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;image_to_string&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lang&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;spa&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Recognized text:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Translate the text
&lt;/span&gt;&lt;span class="n"&gt;translator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Translator&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;translator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;translate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;es&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dest&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;en&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Translation:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# For this example the text position is known; in production you would
# use pytesseract.image_to_boxes to get a box per character.
&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;  &lt;span class="c1"&gt;# example coordinates
&lt;/span&gt;
&lt;span class="c1"&gt;# Erase the original text on the image
&lt;/span&gt;&lt;span class="n"&gt;draw&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ImageDraw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Draw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;draw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rectangle&lt;/span&gt;&lt;span class="p"&gt;(((&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt; &lt;span class="n"&gt;fill&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;white&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# cover with white
&lt;/span&gt;
&lt;span class="c1"&gt;# Draw the translated text
&lt;/span&gt;&lt;span class="n"&gt;font&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ImageFont&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;truetype&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;arial.ttf&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;draw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;text&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fill&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;black&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Save the output
&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;translated_image.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What the script actually did.&lt;/strong&gt; Tesseract reads Spanish from the whole image and prints it. &lt;code&gt;googletrans&lt;/code&gt; translates &lt;code&gt;es&lt;/code&gt; to &lt;code&gt;en&lt;/code&gt; and prints that too. The rectangle &lt;code&gt;x, y, w, h = 50, 50, 300, 50&lt;/code&gt; is a known stand-in: origin (50, 50), width 300, height 50. Pillow covers it with white, draws the English in &lt;code&gt;arial.ttf&lt;/code&gt; at 36 pixels, and writes &lt;code&gt;translated_image.png&lt;/code&gt;. One fixed region, one flat fill, one face you did not match. That is the illustration, not a localizer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What production changes.&lt;/strong&gt; Take boxes from &lt;code&gt;pytesseract.image_to_boxes&lt;/code&gt;, union them into a line, and erase the line rather than each character. Sample a nearby color instead of hard-coding white. Measure width with Pillow and wrap or shrink when the string no longer fits — German often will not, by 30% or more. Loop for multiple lines. Use OpenCV contours when the boxes are noisy. Layout fidelity still trails an inpainting model, so review one image before you batch. A useful split is JSON of boxes and strings, then a second process that renders, so a bad name is caught before it is painted across a catalog.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Pick From the Constraint You Actually Have
&lt;/h2&gt;

&lt;p&gt;Choose with three facts: how faithful the file must be, what the work may cost, and whether anyone can still open the source. A preference for a vendor is not a fact.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No source file, and the calendar is short.&lt;/strong&gt; This is the common case. Use an online AI tool in the Method 4 family, one you can use to &lt;a href="https://rewordsai.app/" rel="noopener noreferrer"&gt;translate the text inside an image&lt;/a&gt; without rebuilding the design by hand. Upload, choose the language, correct and lock lines, generate, download, then proofread. The render itself is seconds to a minute, plus the review you owe the file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The image is text-heavy and structured.&lt;/strong&gt; Charts, manuals, diagrams. Use OCR plus typesetting (Method 2). If the job is a pile of PDFs or scans, a format-preserving document service (Method 3) can own the reflow. A 60-page PDF in minutes is a Method 3 story. A labeled schematic with leader lines is a Method 2 story, because the arrows will not survive a blind reflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The file is print-bound or brand-critical.&lt;/strong&gt; Use manual design (Method 1) or a translator plus DTP (Method 9). These are the slow, expensive, very-high-fidelity rows. Pick them when a visible patch costs more than the labor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The work has to live inside a system you run.&lt;/strong&gt; Use a multimodal API (Method 6) when a prompt-and-review loop is acceptable and the images may leave the network. Use a custom Python pipeline (Method 8) when you need batch control, a private network, or a box list you can store. Use diffusion inpainting (Method 7) when the background is the hard part and the text is short enough not to shatter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You only need to understand the picture.&lt;/strong&gt; Use a phone camera app (Method 5). A few seconds. Not a brand review. Overlay, default font, possible watermark or patch. Reading only. Never the file you publish.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The editable source is still available.&lt;/strong&gt; Edit it directly (Method 10). This is the cleanest path that exists. The moment the file is a flattened export, you are on Method 2, even if someone named it like a source.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When two constraints conflict, fidelity wins on anything public and durable, and speed wins on anything internal and temporary. A slide for tomorrow can be a Method 6 draft. A package that will be printed cannot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five Habits That Keep the Layout From Slipping
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Plan for length before you draw.&lt;/strong&gt; German and French commonly expand by 30% or more. Chinese and Japanese commonly contract. Resize, re-wrap, or re-track. Never assume the new string fits the old box. Measure the rendered width and fail on overflow instead of clipping glyphs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Match the type, not only the language.&lt;/strong&gt; Reproduce weight, color, letter-spacing, and any stroke or shadow. A correct sentence in the wrong face still looks wrong. If you lack the identical font, record the substitution where a reviewer will see it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rebuild the background until the seam disappears.&lt;/strong&gt; Feather the edge and check it at 1:1. On a script, leave the tutorial's white rectangle behind once the background is not white. Texture that suddenly goes smooth is an erase that did not heal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Account for what is not a paragraph.&lt;/strong&gt; Arrows, callouts, numbering, and legends carry meaning or point at it. A pipeline that returns only strings will skip them. Put them on the review list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proofread the words, not only the pixels.&lt;/strong&gt; Machine translation is fast and imperfect. Numbers, units, brand names, and proper nouns need a human check before you publish. A clean fill around a wrong price is worse than a visible seam around a right one.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Keep the source image, the box list, the glossary, and the output in one job record. Otherwise a retired claim walks back in through a cached render.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You Should Ship
&lt;/h2&gt;

&lt;p&gt;Match the method to the file, not to the demo that was easiest to click.&lt;/p&gt;

&lt;p&gt;Labels you can batch are Method 8: detect, OCR, translate, erase, redraw, seconds per image, and a fill that may be flat color or a neighborhood average. Diagrams with leader lines are Method 2, seconds to minutes for the read and the translation, then minutes to tens of minutes of typesetting. A long paid document is Method 3: fidelity described as 90% or better, a 60-page PDF in minutes, handwriting and strange layouts left out. A poster, package, menu, or comic with no source is the hosted repaint, free generations on a fixture and credits after that. "SUMMER SALE" to "夏季特卖" on the same background is a pass. An InDesign or Illustrator file is Method 10. A flatten is Method 2. A flagship, a trade-show wall, or a legal artifact is Method 1 or Method 9 — highest fidelity, highest time, highest cost.&lt;/p&gt;

&lt;p&gt;A multimodal call is the coffee-machine diagram in Spanish, or an infographic whose words move and whose geometry stays: seconds to tens of seconds, and a miss when a line is skipped, misspelled, or far longer than the box. Diffusion is ten to tens of seconds, stronger on texture, weaker on long words. A phone app is a few seconds of reading and not a master.&lt;/p&gt;

&lt;p&gt;Detection boxes are how you know which pixels may change. Pick the owner of that loop whose failure you can see before the file ships, and proofread the words before you trust the redraw.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>Replace Raster Glyphs on an Exported Flyer: Inputs, Branches, and Failures</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Thu, 08 Oct 2026 12:37:42 +0000</pubDate>
      <link>https://dev.to/baiwei/replace-raster-glyphs-on-an-exported-flyer-inputs-branches-and-failures-3ed2</link>
      <guid>https://dev.to/baiwei/replace-raster-glyphs-on-an-exported-flyer-inputs-branches-and-failures-3ed2</guid>
      <description>&lt;p&gt;A finished flyer is not a document you can edit. It is a bitmap, sometimes wrapped in a PDF container, and the words you want to change are paint. The date moved, the price changed, or a headline typo survived review. The PSD is gone. The Canva link is gone. The person who built the file may be gone too. Rebuilding the whole design is the expensive default, and it is usually the wrong branch.&lt;/p&gt;

&lt;p&gt;Treat the job as a router. Name the input. Name the edit. Name the failure you will not accept. Then pick one of ten paths. A solid-color title block and a full-bleed photograph are different programs. Spending a Photoshop subscription on a five-second wording change is waste. Sending a dense texture through a one-click fill and hoping the scar disappears is also waste. The rest of this runbook is the branch logic, the procedure inside each branch, and the condition that should make you abort or switch.&lt;/p&gt;

&lt;p&gt;The output you want is a new bitmap or PDF whose unchanged regions still look like the source, and whose changed strings say the new thing. You do not get the original layers back. Every method below is a different way to fake that recovery well enough for the medium you are shipping to. Almost nobody in this situation needs the original design file. They need the path that matches the flyer that is actually on disk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Name the Artifact Before You Edit It
&lt;/h2&gt;

&lt;p&gt;Start with the file you actually have, not the file you wish you had. Write four labels at the top of the job before any tool opens: file class, background class, edit intent, and the failure you refuse to ship. If you cannot fill those four labels, you are not ready to edit. You are still guessing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input classes&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A JPEG, PNG, WebP, or TIFF. Text, logo, photo, drop shadow, and background are one grid of pixels. There is no text object to select. JPEG is the common handover, and it has already thrown away high-frequency edge detail, so the fringe around each letter is mushier than it looked in the design app.&lt;/li&gt;
&lt;li&gt;A PDF that still contains real text objects. You can drag across a headline and the characters highlight. That is a different program from a scanned page.&lt;/li&gt;
&lt;li&gt;A PDF that is only a placed image. It looks like a flyer in a PDF viewer and behaves like a JPEG. Do not trust the extension.&lt;/li&gt;
&lt;li&gt;A vector export that was flattened on the way out. Illustrator or CorelDRAW may have been the authoring tool. You do not have the AI or CDR. You have the picture of it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Edit intent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Write the change down before you open a tool. Replace string A with string B. Or remove string A and leave the background. Or change several strings that must stay aligned to the same grid. Length matters. A three-letter price and a two-line disclaimer do not stress the background the same way. If the new line is much longer or much shorter than the old one, say so now. That single fact knocks several "just retype it" paths out of the running, because the repaired hole will not match the new measure.&lt;/p&gt;

&lt;p&gt;Also decide remove versus replace as a boolean, not as a vibe. Remove means the replacement string is empty and the only success test is the background. Replace means the new glyphs have to survive the same glance as the old ones. Mixing those two tests is how people approve a clean hole and then hate the new word, or approve the new word and ignore a scar around it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Constraints you must record&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Destination. Screen, social, or print. Print usually wants about 300 ppi so the new type is not softer or harder than the rest of the sheet. A social crop can tolerate a softer edge that a press PDF will punish.&lt;/li&gt;
&lt;li&gt;Budget. Zero, a free browser tier, or a Photoshop subscription in the rough range of $20–$50 a month, with a trial available. Do not invent a cheaper plan to make the route sound easier. If the seat is not there, you are on a free branch.&lt;/li&gt;
&lt;li&gt;Time. A clean background in the browser is usually under a minute. A complex photographic salvage is about 40 minutes of sampling and painting, not a two-minute typo fix. Put the number on the ticket so nobody schedules the hard branch into a five-minute gap.&lt;/li&gt;
&lt;li&gt;Fidelity bar. "Close enough for a chat screenshot" and "this goes to a commercial printer" are different exit tests. Name which one you are being paid, or blamed, for.&lt;/li&gt;
&lt;li&gt;Forbidden inputs. This work is not for IDs, invoices, official documents, or design source files. If the asset is one of those, stop. Do not route it through a cleanup tool to make it look editable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The probe that classifies a PDF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open the PDF. Try to select the headline with the text cursor, not the hand tool. If characters highlight and you can copy them, you are holding vector or live text, and the PDF path is the first branch to try. If the cursor never finds a text run, the page is an image. Converting that image "to PDF" does not create text. It creates a PDF-shaped bitmap, and you are back in the raster paths. Do this probe on every page you intend to touch. Mixed files exist: page one is live type, page two is a scan someone dropped in. Those are two jobs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The probe that classifies the background&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Zoom to 100 percent on the pixels directly behind the words you will change. Fit-to-window hides the exact texture that will betray the repair.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flat color, or a color block with a hard edge: simple.&lt;/li&gt;
&lt;li&gt;A long, smooth gradient with no detail: simple to moderate. Gradients fail when the fill averages them into a flat slab, so look for a vignette before you call the field simple.&lt;/li&gt;
&lt;li&gt;Wood, brick, paper fiber, fabric, foliage, a crowd, or a face: complex.&lt;/li&gt;
&lt;li&gt;Type that is also a texture (chalk, brush, neon, heavy outline, extruded shadow): complex, even if the wall behind it is flat. You are reconstructing an effect, not only a hole.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Write that label on the job. It decides whether you are allowed to take the short path. If two text blocks on the same flyer have different backgrounds, they are allowed to take different paths. The headline on a red bar can go through a fast fill while the date stamped on a photograph goes through sampling. Forcing one method onto both blocks is how a simple job inherits the scars of the hard block.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three Failures a Flattened Flyer Always Creates
&lt;/h2&gt;

&lt;p&gt;Once the designer exported JPEG, PNG, or PDF-as-image, every layer collapsed. Headline, body, logo, background, and shadow became colored dots arranged to look like letters. The software no longer knows a glyph from a leaf. That single fact produces three failures. Every path in this runbook is a different repair for the same three. If a tool claims to skip all three and you cannot name which one it actually automated, you do not understand the branch yet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The glyph boundary is not a selection.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You have to decide which pixels are the letter. Cut inside the edge and a halo of the old word remains. The next person who zooms will read both strings at once. Cut outside the edge and you delete background you cannot sample back from anywhere else. Thin strokes, diacritics, and the gap inside a counter (the hole in an O, the bowl of a B) are where this fails first. Anti-aliased edges make it worse: the "letter" is a ramp of mixed pixels, not a hard mask. On a JPEG, that ramp is also full of compression mosquitoes. A rectangular marquee around the word is fast and often wrong, because it includes background you did not need to destroy and still misses a descender or a shadow offset to one side.&lt;/p&gt;

&lt;p&gt;The practical test: after you remove the word and before you type the new one, look at the hole. If you can still read the old word, the boundary failed. If a neighboring rule, logo edge, or face has a bite taken out of it, the boundary failed the other way. Fix the hole before you typeset. New letters are a terrible concealment layer. They only hide the middle of the scar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The font is no longer data.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There is no font name, no point size, no tracking value, and no layer style. You identify the face by eye, hunt a close match, install it if you do not own it, then set size, weight, color, letter spacing, and effects such as a stroke or a drop shadow. Experienced designers still miss this by a small margin. Weight is the usual tell. A correct family in the wrong weight looks like a different flyer. Tight headline tracking is the second tell. If you leave default spacing on type that was originally crushed together, the replacement announces itself.&lt;/p&gt;

&lt;p&gt;Color is the third tell, and it is cheaper to fix than the font. Sample the old ink. If the old word had a one-pixel stroke or a soft shadow, a naked fill will look like a sticker even when the family is right. You are matching a treatment, not a Unicode string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The background under the words is already gone.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Erasing text does not reveal a hidden layer. Those pixels were never stored. On a solid color, filling the hole is trivial: you sample the swatch and the repair is invisible because there was nothing to invent. On a photograph, a gradient with a vignette, or a busy texture, you are inventing the missing image. That invention is how a "two-minute typo" becomes about a 40-minute salvage. If you cannot invent that region convincingly, no amount of careful typesetting on top will save the job.&lt;/p&gt;

&lt;p&gt;Hold those three failures in mind while you read the paths. A method that only solves one of them will leave you doing the other two by hand. OCR solves the string and abandons the look. Clone tools solve the background and abandon the font. A PDF editor solves all three only when the glyphs were never flattened. Automatic image replacement tries to solve all three at once and must be judged by the residual, not by the demo thumbnail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Short Path: Browser Replacement on a Simple Background
&lt;/h2&gt;

&lt;p&gt;If the background behind the target words is a solid or a gentle gradient, do not open a desktop editor first. Modern tools built to replace text on a finished image collapse detection, a font-like match, and background reconstruction into one upload. For flyers, posters, menus, labels, and covers that only exist as exported pictures, that is the path that usually ends the job.&lt;/p&gt;

&lt;p&gt;Use a product aimed at this task when you want to &lt;a href="https://rewordsai.app/" rel="noopener noreferrer"&gt;edit text on a finished flyer&lt;/a&gt; without reconstructing layers. ReWords AI is the one specified for this runbook. It does not drop a fresh text box on top of the old word and hope you hide the difference. It detects the text already in the picture, removes it, rebuilds the surrounding background, and generates replacement text that aims to follow the original font, color, and size.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe2ixvgiusb5f4y58lnxq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe2ixvgiusb5f4y58lnxq.png" alt="Replacing the words on a finished flyer image when the original design file is gone" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input.&lt;/strong&gt; PNG, JPG, or WebP. A straightforward flyer, not an identity document and not a layered source file. If you only have a PDF-shaped bitmap, export a PNG or JPG of the page first. Do not expect the short path to edit PDF text objects. That is a different branch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the tool in the browser. Nothing to install. You do not need a local font folder for the first pass, because the point of this branch is that the model aims at the letters already in the picture.&lt;/li&gt;
&lt;li&gt;Upload the flyer. Wait until the preview is the real file, not a tiny placeholder. A downscaled preview can hide the exact block you need.&lt;/li&gt;
&lt;li&gt;Read the detected blocks. Click the block you intend to change. If the detector missed a line, draw a box around that line yourself. Missed blocks are normal on low contrast, on type that sits on a photograph, and on decorative lettering. Drawing the box is part of the procedure, not a failure of the run.&lt;/li&gt;
&lt;li&gt;To remove the text, leave the replacement empty. To change it, type the new copy. Do not paste a paragraph into a box that used to hold one word unless you have accepted a layout change. Keep the new string in the same script the design used unless the brief really is a translation.&lt;/li&gt;
&lt;li&gt;Sign in. Generate. New users typically get one free edit after signing in. No credit card is required for that first edit. It is a single starting edit, not an open meter. If you have more than one flyer, assume later runs are outside that first edit.&lt;/li&gt;
&lt;li&gt;Review at full resolution, not at the fit-to-window preview. Check the boundary, the weight, and the background separately. Download only after that review.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Why this branch wins.&lt;/strong&gt; The whole pass stays in the browser. On a clean background it is usually under a minute. You are not sampling textures, installing fonts, or rebuilding a frame in a layout app. For the majority of flyers, which really do sit on simple backgrounds, this is the correct first execution, not a demo you try after Photoshop fails. Using a desktop subscription for that five-second case is the wasteful mirror image of using a one-click tool on a texture so dense it will scar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure conditions — switch or stop&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The result depends on image sharpness, font complexity, background texture, and how much text you changed. Solid and gradient backgrounds come out cleanest. If the source itself is a tiny, heavily compressed JPEG, no branch will invent a crisp outline that was never captured. Re-export from a larger master if you still have one. If you do not, lower the fidelity bar before you blame the tool.&lt;/li&gt;
&lt;li&gt;A dense photograph behind the words is handled as best as possible. It will not always disappear when you inspect at 100 percent zoom. If you can still see a smear, a repeated motif, or a soft patch shaped like the old word, this branch missed. Move to a sampling path (clone and heal in Photoshop, or the same idea in GIMP) or accept a redesign.&lt;/li&gt;
&lt;li&gt;The generated letters are not pixel-accurate. Font style and exact edge rendering can drift. If the job is a logotype with a custom letterform, do not pretend the match is exact. Either accept the drift or redraw that one word by hand on top of a cleaned background.&lt;/li&gt;
&lt;li&gt;Proof every character, including non-Latin copy. A wrong glyph is a failed run even if the background looks clean. Dates and prices fail this way: the texture is fine and the digit is wrong.&lt;/li&gt;
&lt;li&gt;Abort entirely if the file is an ID, an invoice, an official document, or a design source file. The tool is not for those inputs. A design source file should be edited in the app that still has the layers, not flattened and then repaired.&lt;/li&gt;
&lt;li&gt;If you need the original layers, styles, or a still-editable source for the next campaign, this path will not produce them. It produces a new finished image. Store that limit in the handoff so the next person does not ask you for the PSD you never recovered.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the short path passes the 100 percent check, stop. Do not "improve" a clean result by running it through a second inpainter. A second pass is how you invent new artifacts. Ship the download, and keep the source file next to it so you can rerun from the original if the copy changes again. Rerunning from your own previous output stacks compression and repair error.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 1: Content-Aware Fill, Then a New Type Layer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; Adobe Photoshop, paid subscription, roughly $20–$50 a month, trial available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input.&lt;/strong&gt; Any bitmap: JPG, PNG, or TIFF. Best when the words sit on a flat color or a smooth gradient, such as a solid title block, and you are replacing a small amount of type.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preconditions.&lt;/strong&gt; You can already make a selection and use the Type tool. You do not need to be a retoucher. You do need the subscription. If the trial is what you have, do the job inside the trial window and export before it ends. A half-finished PSD you cannot reopen is not a deliverable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the flyer. If the background is locked, double-click the layer so you can stack a real type layer above it. Do that before you forget, or the new text gets baked into the only pixels you have and you cannot nudge it.&lt;/li&gt;
&lt;li&gt;Select the text area with the Rectangular Marquee or the Lasso. Include the anti-aliased fringe and any shadow that belongs to the old word. Exclude neighboring letters you intend to keep. For a single bad word inside a sentence, the Lasso is safer than a rectangle that eats the words beside it.&lt;/li&gt;
&lt;li&gt;Choose Edit, then Fill. Set the fill type to Content-Aware. Let Photoshop rebuild the background behind the text.&lt;/li&gt;
&lt;li&gt;Deselect. Inspect the patch at 100 percent before you type. If the fill already looks wrong, do not hide it under new letters. Undo and reselect. Feather the selection edge with Shift+F6 when the blend line is obvious, then fill again.&lt;/li&gt;
&lt;li&gt;Switch to the Type tool and set the new string in the same spot.&lt;/li&gt;
&lt;li&gt;Sample the original text color with the Eyedropper. Match a similar font and size. Copy stroke or shadow treatments if the old word had them. Layer styles are not recovered automatically from a flattened file. You recreate them.&lt;/li&gt;
&lt;li&gt;Nudge position and layer order. The new type should sit in the same stacking place as the old word, not above a logo that used to cover it, and not underneath a photo that used to sit behind it.&lt;/li&gt;
&lt;li&gt;If Content-Aware left a repeated speck or a blurry island, clean it with the Healing Brush at low opacity. Low opacity is the point. A full-strength dab paints a new scar.&lt;/li&gt;
&lt;li&gt;Export at the resolution you actually need. For print, stay near the source, usually about 300 ppi. Upscaling a small JPEG at export time does not create the detail the fill failed to rebuild.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What this path solves.&lt;/strong&gt; Boundary, by your selection. Background, by Content-Aware Fill, which is strong on flat color and clear gradients and produces a natural transition there. Font, entirely by you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure conditions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Busy texture: the fill repeats a motif or goes soft. Small type and fine detail leave traces of the old strokes. That is the cue to leave this path, not to run Fill five more times on the same pixels.&lt;/li&gt;
&lt;li&gt;A selection that is too tight leaves a rim in the shape of the old letters. Expand it slightly and include the fringe. A selection that is too wide eats a border, a face, or a second line of type.&lt;/li&gt;
&lt;li&gt;Content-Aware Fill does not know your new sentence. If the new string is longer than the hole, it will cover unrepaired flyer. Either repair a larger region first or shorten the copy.&lt;/li&gt;
&lt;li&gt;This path does not remove the need to match weight, tracking, and color. A perfect fill under the wrong type still fails the exit check.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Difficulty.&lt;/strong&gt; Medium, if you already know basic Photoshop. In the comparison matrix that is two stars, not four. &lt;strong&gt;Cost.&lt;/strong&gt; The subscription above, on the high side versus free tools. &lt;strong&gt;Time.&lt;/strong&gt; Medium, not the one-minute browser pass. &lt;strong&gt;Formats.&lt;/strong&gt; JPG and PNG in the matrix. TIFF is also a normal Photoshop bitmap for this fill, so do not refuse a TIFF just because the summary column says JPG/PNG. &lt;strong&gt;Fidelity.&lt;/strong&gt; Three stars when the background matches what this path is for. It is not the most faithful repair in the toolkit, and it should not be sold as one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to refuse this path.&lt;/strong&gt; Portraits, wood grain, brick, and other photographic backgrounds. Those belong to sampling. Also refuse it when you do not have Photoshop and will not subscribe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 2: Clone, Heal, or Patch, Then Retype
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; Photoshop again. Clone Stamp, Healing Brush, or the Patch tool. Same subscription as Path 1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input.&lt;/strong&gt; A bitmap whose background is a real texture or a photograph: wood, brick, a portrait, a complex gradient, handwritten or artistic type. This is the path for backgrounds that Content-Aware Fill smears.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preconditions.&lt;/strong&gt; You are comfortable sampling. Beginners leave repeating stamps that look like a rubber stamp of the neighboring pixels. If that description is you, do not start a client delivery on this path today. Practice on a copy, or hand the texture to someone who already has the hand, or accept a lower fidelity bar on another branch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the flyer. Duplicate the background layer before you paint. The duplicate is your rollback. Flattening your only copy and then painting is how you lose the job.&lt;/li&gt;
&lt;li&gt;Select the Clone Stamp or the Patch tool. Hold Alt and sample clean background beside the text, not from a region that already contains a different edge, a highlight from the wrong side, or a logo.&lt;/li&gt;
&lt;li&gt;Paint over the words. Follow the direction of the texture or the color block. On a brick wall, follow the courses. On wood, follow the grain. On a face, stop and reconsider. Skin is where this path embarrasses people.&lt;/li&gt;
&lt;li&gt;Keep the brush large enough to cover a stroke and soft enough that the edge does not draw a circle. Lower the hardness. Work in passes, not one opaque smear. Change the sample point often so you do not tile one lucky patch across the hole.&lt;/li&gt;
&lt;li&gt;The Healing Brush is the better default when color has to blend as you cover the text. The Clone Stamp is the better default when you must preserve a hard structural line the healer would melt. The Patch tool is useful when the region is a coherent block you can drag onto a clean neighbor. Use the one that matches the texture, not the one you opened first.&lt;/li&gt;
&lt;li&gt;Deselect or release the tool once the old word is gone. Check for tiny repeated blocks and color shifts at 100 percent.&lt;/li&gt;
&lt;li&gt;Make a new type layer. Match font and color with the Eyedropper, then use a color adjustment if the new word still floats. Set the new copy. Tune position and opacity so the type sits in the scene instead of hovering over it.&lt;/li&gt;
&lt;li&gt;Export from the repaired file. Keep the duplicate layer until the client has accepted the pixels.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What this path solves.&lt;/strong&gt; Background reconstruction on complex patterns. The Healing Brush blends color as you cover the text, so the patch can look natural if your samples were honest. The font is still your job.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure conditions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Large areas need many passes. You will see repeated tiles if you sample one small spot and spray it everywhere. When you see a tile, stop and resample. Do not cover the tile with type and call it done.&lt;/li&gt;
&lt;li&gt;Faces and skin tones shift easily. If the old word crossed a cheek, an eye, or hair, budget the full salvage. This is the branch where a two-minute typo becomes about 40 minutes.&lt;/li&gt;
&lt;li&gt;You cannot rush the sample. A sample taken from the wrong side of a highlight will paint the highlight into the shadow.&lt;/li&gt;
&lt;li&gt;Seamless work is precision work. If you need the file in five minutes and the background is a crowd photo, this path will not meet the clock. Switch to the short path only if you can accept a visible repair, or to a full regeneration if you can accept a redesign.&lt;/li&gt;
&lt;li&gt;Working on the only layer, with no duplicate, means a bad stroke can become the new source. That is an operator failure, not a tool failure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Difficulty.&lt;/strong&gt; High. The matrix gives it four stars. &lt;strong&gt;Time.&lt;/strong&gt; High. &lt;strong&gt;Cost.&lt;/strong&gt; Photoshop subscription, on the high side relative to free tools. &lt;strong&gt;Formats.&lt;/strong&gt; Any bitmap. The matrix lists JPG/PNG. &lt;strong&gt;Fidelity.&lt;/strong&gt; Four stars, higher than Content-Aware Fill, which is why the slower procedure exists. Do not invert that. Free is not "better." Slow is not "worse" when the texture is the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 3: Generative Fill on Photoshop 27.10 or Newer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; Photoshop 27.10 or newer. That version is the floor for Generative Fill in this runbook. Adobe Firefly is the model family included with the Photoshop subscription. Third-party plugins such as StartAI or Luminar AI can sit beside it. Plugins may have a free tier and a paid tier. StartAI's basic features are free. You still need a network connection, and the generative step spends credits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input.&lt;/strong&gt; A bitmap, or a file that still has usable layers. The ask is a wording change you can describe in a short prompt, including larger type or a complicated scene where painting by hand is the wrong spend. This is a speed branch with a high fidelity ceiling relative to a casual fill, not a promise that every pixel will match.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the flyer. Confirm the version is 27.10 or newer before you hunt for the command. On an older seat the menu item is simply absent. That is a version failure, not a selection failure.&lt;/li&gt;
&lt;li&gt;Select the whole image or only the target region. A tighter selection gives the model less room to redraw a logo, a face, or a QR code you needed to keep. A half-selection plus a precise prompt is often better than selecting the entire poster and asking for a small wording change.&lt;/li&gt;
&lt;li&gt;Right-click or choose Generative Fill, or Prompt to Edit, on Photoshop 27.10 or newer.&lt;/li&gt;
&lt;li&gt;Describe the change in words. The useful shape is short: replace the text A with B. If the source string is Chinese, say that you are replacing that Chinese text rather than hoping the model infers the script. Keep adjectives out unless they constrain color or position.&lt;/li&gt;
&lt;li&gt;Pick a model, such as Firefly. If you also have StartAI available, generate on both and compare. One of them will usually keep the surrounding layout better. You cannot know which before you look.&lt;/li&gt;
&lt;li&gt;Generate several variations. Do not accept the first frame because it loaded fastest. Reject any frame that moves elements you did not name.&lt;/li&gt;
&lt;li&gt;Choose the best composite. Photoshop puts the repaired background and the new text together. If color or shadow still drifts, fix those yourself. The model will not reliably copy a layer style it was never given.&lt;/li&gt;
&lt;li&gt;Proof the actual characters at 100 percent, then export.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What this path solves.&lt;/strong&gt; All three failures in one automatic pass, with more than one candidate, which is why the time rating is low. It is usable by someone who is not a retoucher. It can take on large type and complex backgrounds that Content-Aware Fill smears. Difficulty stays in the low-to-medium band: two stars in the matrix, because basic Photoshop plus an automatic step is enough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure conditions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Output is not pixel-accurate. Treat that as a hard limit, not a wording quibble. Font, layout, and small geometry can drift away from the source. You do not get to claim the pixels match. "High realism" in a thumbnail can still fail a logo at 100 percent.&lt;/li&gt;
&lt;li&gt;Chinese-language support varies by model. Some runs need an English prompt or a manual correction after the fact. Artistic lettering is not guaranteed. If the characters are wrong, the variation is trash no matter how pretty the paper texture looks.&lt;/li&gt;
&lt;li&gt;A big change can take several prompt attempts. If the third variation still redraws the logo or the QR code, stop prompting and mask more tightly, or leave this path.&lt;/li&gt;
&lt;li&gt;You need the 27.10 or newer baseline and an Adobe subscription for the native command. A plugin does not erase that floor when the command you are using is Photoshop's own Generative Fill. Firefly rides with the subscription. A plugin's paid tier is a separate medium cost, which is why the matrix allows "subscription (high) or plugin (medium)."&lt;/li&gt;
&lt;li&gt;Results are unpredictable. Friendly to non-experts does not mean safe for a print deadline you cannot miss. Generate, compare, then decide.&lt;/li&gt;
&lt;li&gt;No network, or no remaining credits, means this path is closed. Fall through to clone and heal or to a browser tool. Do not keep clicking a grayed-out generate button.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Difficulty.&lt;/strong&gt; Low to medium. &lt;strong&gt;Cost.&lt;/strong&gt; Adobe CC subscription on the high side, or a plugin at a medium cost. &lt;strong&gt;Formats.&lt;/strong&gt; Bitmaps, or files with usable layers. The matrix says JPG/PNG. &lt;strong&gt;Time.&lt;/strong&gt; Low, because the fill itself is automatic. Your time goes into rejecting bad variations, not into painting. &lt;strong&gt;Fidelity.&lt;/strong&gt; Four stars is the ceiling rating, not a guarantee for the variation you happened to click. Pick the frame that earns it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for.&lt;/strong&gt; Fast passes over e-commerce and creative posters, complex scenes, and operators who want speed more than a hand-built match.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 4: GIMP, When the Budget Is Zero
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; GIMP, free and open source, from gimp.org. No subscription. This is the zero-budget desktop branch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input.&lt;/strong&gt; A common bitmap. The job is a small edit on a simple poster, or you specifically need Windows, Mac, and Linux without buying Photoshop. If the file is a complex photograph and you do not have painting skill, free will not save you. It only removes the license blocker.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the flyer. Duplicate the layer you will paint on. GIMP's history is not a strategy.&lt;/li&gt;
&lt;li&gt;Choose the Clone or Heal tool.&lt;/li&gt;
&lt;li&gt;Alt-click a clean patch of background to sample. Sample close to the hole so the lighting matches, but not from inside the old strokes.&lt;/li&gt;
&lt;li&gt;Paint over the text region until the old word is gone. Follow the texture the same way you would in Photoshop. The brush physics are less forgiving, so check more often.&lt;/li&gt;
&lt;li&gt;Use the Text tool. Create a new text layer. Match font and position by eye. Set opacity and alignment on that text layer rather than merging early.&lt;/li&gt;
&lt;li&gt;If the edge of the paint looks harsh, smooth it with the Blur tool. A light blur on the repair fringe only. Do not blur the whole poster.&lt;/li&gt;
&lt;li&gt;Optional: install the Resynthesizer plugin when you want behavior closer to a content-aware fill. It is still not Photoshop's fill. Do not expect the same success rate on a texture, and do not skip the visual check because a plugin ran.&lt;/li&gt;
&lt;li&gt;Use Layer Copy (Ctrl+Shift+D) often enough that a bad stroke is undoable as a layer, not only as a history step you might have overwritten.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What this path solves.&lt;/strong&gt; The same manual reconstruction as cloning in Photoshop, without the subscription. Layers exist. Import and export cover a wide set of formats. PSD compatibility is limited, so do not promise a round-trip of Photoshop layer styles. Some layer effects are simply not there. If the client hands you a PSD full of effects, open it somewhere that understands those effects, or accept that GIMP will flatten the look.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure conditions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automatic repair is less capable than Photoshop's. Quality is your painting, full stop. There is no hidden smarter pass waiting in a menu you have not found.&lt;/li&gt;
&lt;li&gt;Matching fonts and effects is manual. There is no style token stored in the flattened file for GIMP to read.&lt;/li&gt;
&lt;li&gt;Time stays high. Free does not mean fast. The matrix marks time as high, difficulty at three stars, fidelity at three stars, cost free. Keep that shape. Do not promote this row to the top of the fidelity column because the price is zero.&lt;/li&gt;
&lt;li&gt;If you needed a one-click result and you opened GIMP, you picked the wrong branch. Go back to the browser replacement or to a one-click inpainter.&lt;/li&gt;
&lt;li&gt;Cross-platform is real: Windows, Mac, and Linux. That is a reason to choose this path in a mixed shop. It is not a reason to choose it for a face retouch you cannot already do.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Difficulty.&lt;/strong&gt; Medium to high. You must know GIMP's basics. &lt;strong&gt;Formats.&lt;/strong&gt; Common bitmaps, plus many import and export options. The matrix summarizes them as JPG/PNG. &lt;strong&gt;Best for.&lt;/strong&gt; Zero-budget edits and cross-platform work. Not for a commercial printer who will inspect a face near 300 ppi unless you already have the painting skill the Photoshop clone path assumes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 5: Photopea in the Browser
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; &lt;a href="https://www.photopea.com" rel="noopener noreferrer"&gt;Photopea&lt;/a&gt;, a free browser editor that can open PSD-style files along with JPG, PNG, AI, PDF, and more. Most ordinary features are free. AI features need Photopea Premium or a third-party API such as Dezgo. The free tier is limited. Do not discover the paywall after you have already talked the client through a Magic Replace workflow you cannot run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input.&lt;/strong&gt; You cannot install Photoshop, or you will not. The file might even be a PSD you were handed without a Photoshop seat. The edit is an occasional small text swap, or you need PSD-like layer access on a machine you do not administer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the editor in the browser and import the flyer. Wait for the full file. A large print board can lag. If the tab is struggling, export a cropped region of just the text and repair that, then composite back, rather than forcing the entire 300 ppi sheet through a tired browser.&lt;/li&gt;
&lt;li&gt;Work in the Photoshop-shaped way. Use a selection tool, then Edit, then Content-Aware Fill, to remove text. That fill is still in beta. Plan on manual touch-up. It is not as strong as Photoshop's Content-Aware Fill. Complex areas need a manual patch. Budget the patch. Do not budget a miracle.&lt;/li&gt;
&lt;li&gt;Or use the Healing tool and paint the words out yourself, with the same sample discipline as the desktop clone path.&lt;/li&gt;
&lt;li&gt;When the old text is gone, add the new string with the Type tool (T). Match size, color, and tracking by eye against the original, which you should keep open beside the edit.&lt;/li&gt;
&lt;li&gt;If you use Magic Replace, sign in. Usage limits apply. Enter an English prompt to swap the text. Review the frame before you trust it. If you are logged out, Magic Replace is not a step you can execute. Fall back to heal plus the Type tool.&lt;/li&gt;
&lt;li&gt;If the repair looks speckled, try Filter, then Despeckle, lightly. One pass. A second pass starts to melt edges you wanted.&lt;/li&gt;
&lt;li&gt;For Chinese type, pick a font the system actually has, then nudge letter spacing until the line matches the visual density of the original. Average recognition on the AI step means you proof the string yourself. Do not assume the prompt's Chinese came back intact.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What this path solves.&lt;/strong&gt; No install, broad format support, layers and masks, and an interface people who know Photoshop can learn quickly. It is the right branch when the blocker is the machine, not the complexity of the texture. Difficulty is low to medium, two stars. Time is medium. Fidelity is three stars. Cost is free for the basics. That is a real advantage, and it is not the same advantage as five-star PDF text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure conditions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Content-aware fill here is weaker than Photoshop's. If the beta fill leaves a blotch on a photograph, switch to the Healing tool inside the same session or move the file to a desktop clone path. Do not repeat a beta fill and hope the average improves.&lt;/li&gt;
&lt;li&gt;The browser session depends on the network. Large files lag. A high-resolution print board can be miserable in a tab. If the brush trails seconds behind your hand, you will make bad samples. Stop.&lt;/li&gt;
&lt;li&gt;AI results depend on the model behind Magic Replace. Chinese recognition accuracy is average. Proof it character by character.&lt;/li&gt;
&lt;li&gt;A paid upgrade or an API key is a real gate for the AI features. The basic editor being free does not make the AI step free.&lt;/li&gt;
&lt;li&gt;You can open many formats, including PSD, AI, Sketch, JPG, PNG, and PDF. Opening is not the same as preserving every Photoshop effect. Check the layers you care about before you promise the client the file "came across fine."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pro move from the field.&lt;/strong&gt; Roughly clear the text in some other pass first, then do the last edges here, if the file is large enough to fight the browser. The browser editor is a finisher for small swaps more often than it is the place to reconstruct a billboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 6: Edit the PDF, and Only If the Glyphs Are Still Text
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; Adobe Acrobat Pro, Foxit PDF Editor, WPS PDF or WPS Word, and Inkscape. Inkscape is free and can edit PDF, SVG, and AI. Acrobat Pro is expensive. Foxit's advanced tier is paid. WPS PDF's free tier is usually sufficient for a straightforward text change. Pick the app you already have that can actually enter text-edit mode. Do not buy Acrobat for a one-line price change if WPS can already select the line.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input.&lt;/strong&gt; A flyer that is already a PDF. The high-fidelity outcome exists only when that PDF still holds real vector text. Five-star fidelity in the comparison table means that case, and only that case. A scanned page or a PDF made by dropping a JPEG onto a blank page does not inherit those five stars. If you skip the probe and edit anyway, you will either be refused by the tool or you will be typing into an invisible layer while the old raster word still shows through.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run the text-cursor probe. If the headline highlights, continue. If it does not, leave this path. Do not convert an image into a PDF in order to qualify. That produces a container change, not text.&lt;/li&gt;
&lt;li&gt;Open the PDF in the editor. Use Edit Text. Change the string, and if you must, the font or style. Change as little styling as you can. Every unnecessary font change is a new way to miss the original.&lt;/li&gt;
&lt;li&gt;If a font was not embedded, the editor will substitute. A substitution is a visible failure even when the words are correct. Install the face or pick the closest face that is actually available, on purpose. Do not accept a silent swap to a default serif.&lt;/li&gt;
&lt;li&gt;Exit edit mode so the styling locks again. Save, or save a copy, so the incoming file remains the rollback. Prefer a high-quality PDF export so you do not add a needless compression pass. Compression is how a clean vector headline becomes soft on the next hop.&lt;/li&gt;
&lt;li&gt;Alternative inside this family: export the PDF to Word or InDesign, edit, and write a PDF back. That is useful when the change is structural. It is also how layout drifts. Or open vector text in Inkscape, which is often the easiest free way to reach real text objects and to edit SVG or AI siblings of the same artwork.&lt;/li&gt;
&lt;li&gt;WPS can convert PDF to Word when you want the strings in a writing app quickly. Foxit's OCR can turn a scan into editable text, but the moment you rely on OCR you have left the five-star branch. You are now doing recognition plus reflow, and you should judge the result by the OCR path's limits, not by this path's stars.&lt;/li&gt;
&lt;li&gt;For a multi-page handout, repeat the probe per page, edit the live pages in place, and route the scanned pages elsewhere. Saving the whole file out of a Word conversion because one page was hard is how you wreck the pages that were already perfect.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What this path solves.&lt;/strong&gt; When the text is actually text, you keep layout and sharpness because you never rasterized the glyphs. You can also annotate or highlight, but annotation is not the edit. The edit is the string change. Difficulty is two stars. Time is low to medium. Cost is partly free, for example on WPS. Formats are PDF and, if you exported, Word. That combination is why this row can sit at five stars while cheaper raster tools do not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure conditions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Image-only PDFs need OCR before any honest edit. Pretending otherwise wastes the afternoon.&lt;/li&gt;
&lt;li&gt;A large change reflows the line and collides with a photo, a rule, or a page number. The layout can break even though the text engine is real. If the new string is much longer, reduce the point size deliberately or rewrite the copy. Do not let the line crash into the logo and then "fix" it by converting the page to an image.&lt;/li&gt;
&lt;li&gt;Missing fonts force a substitute. That substitute fails the "same flyer" test. Embed fonts on the way out if the printer needs to open the file somewhere else.&lt;/li&gt;
&lt;li&gt;Bulk edits across a multi-page document are a reason to stay here, but only after the probe succeeds on each page you will touch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Fidelity.&lt;/strong&gt; Five stars only for real vector text. Say that every time you quote the table. A scan edited after OCR is not this row.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 7: OCR the Words, Then Typeset a New Layout
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; An OCR engine or service: ABBYY FineReader, Tesseract, Baidu OCR, Tencent OCR, or the image-to-text path in WPS or OneDrive. Then a layout app: WPS Word or PowerPoint, Adobe Illustrator, Canva, Inkscape, or whatever you already design in. OCR often has a free tier, including mobile and online options, and open-source Tesseract is the usual zero-license engine. The design app is a separate cost. Office, WPS, or Inkscape can keep that second half free.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input.&lt;/strong&gt; A text-heavy flyer with a regular layout: a promo sheet, a simple brochure. You can accept some design drift. You need the wording changed more than you need the original shadow style. If the value of the flyer is the photograph, this is the wrong branch. You would be rebuilding a poster in order to change a caption.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If the scan is noisy, denoise it in Photoshop or GIMP before OCR. Garbage in the bitmap becomes garbage in the text run. A high-quality scan or a clean export beats a clever engine on a muddy photo.&lt;/li&gt;
&lt;li&gt;Run OCR. Read every line against the flyer before you design anything. Recognition errors are normal. Chinese recognition is a strength of several of these engines, and you still proof it. A wrong digit in a price is a failed job that looks finished. Dates, phone numbers, and names get a second human pass. Do not skip them because the paragraph "looked right."&lt;/li&gt;
&lt;li&gt;Create a new document at the same pixel dimensions or the same page size as the source. Build a matching background. You are not editing the old file. You are reconstructing a cousin of it. Start from the original's measurements so the cousin at least has the same frame.&lt;/li&gt;
&lt;li&gt;Paste the corrected text. Set font, size, color, and alignment. Use a face close to the original. If you have Photoshop's Match Font available, use it as a hint, not as a verdict. Then tune tracking and leading. Default leading is the usual reason a reconstructed text block looks looser than the flyer.&lt;/li&gt;
&lt;li&gt;Rebuild rules, photos, and logos as separate elements. OCR did not capture them as editable art. Leave a placeholder if you do not have the logo source, and do not trace a bad JPEG logo inside this branch unless you have also accepted the vector path's cost.&lt;/li&gt;
&lt;li&gt;Save an image or a PDF. If the destination is print, set the new type at the resolution of that destination, about 300 ppi, so the only soft thing in the file is whatever photograph you placed, not the words you just retyped.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What this path solves.&lt;/strong&gt; You get real, editable strings quickly, in an app you already know how to type in, and the new text can be sharp because it is fresh type, not a healed bitmap. That is valuable when the flyer is mostly words and a slight redesign is acceptable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure conditions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The layout is rebuilt from scratch. Complex designs make this slow, which is why the time rating is medium and tagged as re-layout, not as a one-click. If the flyer has overlapping art, angled type, or a dense grid, the "medium" estimate is optimistic. Say so before you start.&lt;/li&gt;
&lt;li&gt;You should not expect a pixel-accurate copy of the original. Shadows, textures inside the letterforms, and exact spacing are the first things you will fail to reproduce. State that limit up front. The rebuild is a new layout that says the right words, not a restoration.&lt;/li&gt;
&lt;li&gt;Fidelity in the table is two stars. Difficulty is two stars. The work is conceptually straightforward and visually loose. Do not upgrade this row because you spent all day on it. Effort moved the time. It did not move the star that says the result diverges.&lt;/li&gt;
&lt;li&gt;Photos and illustrations are a second project. Leaving a hole where the product shot was is not done. Either place the original crop or commission the art. Do not stretch a fragment OCR happened to ignore.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cost.&lt;/strong&gt; OCR is often free or open source. Word or an equivalent is enough for regular layouts. &lt;strong&gt;Formats.&lt;/strong&gt; JPG, PNG, or PDF in. The matrix writes the output side as DOCX. From there you can go to PowerPoint, SVG, or AI if the layout needs it. &lt;strong&gt;Best for.&lt;/strong&gt; Wording changes on regular, text-heavy layouts. Not for a poster whose value is the photograph.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 8: Inpaint the Background, Then Add Type Elsewhere
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; One-click cleanup and inpainting sites such as Cleanup.pictures, ClipDrop's web Remove, Pixelcut, Inpaint, and Img.LL. They are a family, not identical products. Try more than one on a difficult hole and keep the best plate. Do not average them by stacking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input.&lt;/strong&gt; JPG or PNG is the format class you should count on. The task is to remove words, a stray object, or a watermark, then place new type. Some of these tools let you add text in the same session. Many do not, and you should assume you will set the new type in Photoshop or another editor afterward. The cleanup and the retype are two steps. Finishing only the first one is a missed delivery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the site and upload the flyer. Confirm you are looking at your file and not a sample asset the homepage left in the canvas.&lt;/li&gt;
&lt;li&gt;Use the erase brush. Cover the whole text region, including the anti-aliased fringe and the shadow. A brush that only hits the stems leaves ghosts. A brush that slops over a face deletes evidence you needed for the reconstruction. Err a little past the fringe, not a lot past the subject.&lt;/li&gt;
&lt;li&gt;Let the tool reconstruct the background. Download the full file it actually offers, not the preview screenshot.&lt;/li&gt;
&lt;li&gt;Inspect at 100 percent before you typeset. Look for a soft rectangle, a plastic texture, or an edge that does not continue a line from outside the mask.&lt;/li&gt;
&lt;li&gt;Add the new string in that tool or in a second app. Note the surrounding colors and sample them with an Eyedropper so the new type matches the repaired scene. If you guess the color from memory, you will miss it.&lt;/li&gt;
&lt;li&gt;If a residue remains, finish with Photoshop's Patch or Clone tools. Do not stack three different inpainters on the same hole. Each one invents a slightly different texture, and the overlap looks worse than the first miss.&lt;/li&gt;
&lt;li&gt;If you are comparing tools, use the same source crop and the same mask so the comparison means something. A flattering crop is not a test.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What this path solves.&lt;/strong&gt; Speed. No Photoshop skill, a brush and a click, sometimes a Chinese interface, sometimes batch processing on a paid plan. Time in the table is very low. Difficulty is two stars. Fidelity is three stars: useful, not the top of the scale. Cost is free to start, with a paid fast tier for some features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure conditions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complex patterns will not be perfect. The repair can look slightly synthetic, with blurry edges on a large removal. That is a weaker result than a careful manual clone, and the matrix already says so. Switch rather than arguing with the preview.&lt;/li&gt;
&lt;li&gt;Output resolution may be capped. Ultra-HD or an HD download often sits on a paid plan. If the print spec is about 300 ppi and the download is a small preview, the path failed the output contract even if the words are gone. Check pixel dimensions before you celebrate.&lt;/li&gt;
&lt;li&gt;Some free tiers stamp their own watermark in the corner. You removed one mark and inherited another. That is not a finished flyer. Either pay for the clean download or choose a different tool. Do not ship someone else's bug as your design.&lt;/li&gt;
&lt;li&gt;Stripping a watermark you do not own, for commercial use, carries copyright risk. The fact that a brush can cover it is not permission. If the mark is a stock-photo or template watermark, stop and get a legitimate file.&lt;/li&gt;
&lt;li&gt;You usually still have to set new type somewhere else. An empty clean background is only half the ticket. Leave time for the type match. The "very low" time rating is about the removal, not about becoming a typographer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Formats.&lt;/strong&gt; JPG and PNG. If you were handed a PDF, rasterize a page only after you have confirmed it is not live text. Rasterizing live text in order to inpaint it is a downgrade you chose.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 9: Regenerate a Lookalike From a Prompt
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; DALL·E 3, which means a ChatGPT subscription, because DALL·E needs ChatGPT Plus. Midjourney, on its own subscription. Stable Diffusion through a WebUI and hosted variants. Regional tools such as Baidu's Wenxin Yige, some of which are free. Cost for this class sits in the medium-to-high subscription band, not at zero, unless you are on one of those regional free tools. Do not quote a price the source does not give you. "Subscription" is the fact. A made-up monthly number is not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input.&lt;/strong&gt; You are willing to leave the original layout. You want a fast creative variant, or you are not attached to the exact styling. You can supply the original flyer to a service that actually edits images, such as DALL·E's edit mode. If the brief says "change only the date and touch nothing else," this path is probably dishonest. Read the brief again before you prompt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload the source flyer where the service supports image input. A text-only prompt that describes the flyer from memory will drift further. Use the picture.&lt;/li&gt;
&lt;li&gt;Prompt in a tight shape: based on this poster, replace the original text A with B. Constrain the exact wording and where it sits. Name colors and the overall style. If you need print-oriented detail, you can say high-resolution print quality in the prompt. That phrase is a hint to the model, not a guarantee of a file at about 300 ppi. Check the exported pixel size yourself.&lt;/li&gt;
&lt;li&gt;If the model supports a mask, erase the old text first and let it regenerate only that region. An unmasked run will redraw the whole poster, including pieces you wanted frozen.&lt;/li&gt;
&lt;li&gt;Generate more than once. Expect several prompt-and-output rounds to get close. Save the prompt text beside the images so you can tell which constraint actually helped.&lt;/li&gt;
&lt;li&gt;Composite QR codes, logos, and any legal line back by hand. The model will not faithfully keep them. A regenerated QR code that "looks like a QR code" is a broken code. Replace it with the real asset.&lt;/li&gt;
&lt;li&gt;Proof the words, especially if the copy is Chinese. Comprehension can be off. A beautiful poster with a wrong character is a failed run.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What this path solves.&lt;/strong&gt; A new string and a new overall style in one generation, without drawing. It is a redesign branch. Difficulty is low, two stars, if you can already use the service. Time is low, and it is generation time, not painting time. Fidelity is two stars, the same low band as OCR, for a different reason: the picture diverges on purpose. That low fidelity is not an insult. It is the contract. You asked for a new picture in the manner of the old one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure conditions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Layout and font distort. If the output moved the photo, changed the logo, or reflowed the grid, and the brief was a wording fix, this path failed the brief. Do not ship it because it looks polished.&lt;/li&gt;
&lt;li&gt;Quality is capped by the model. More adjectives do not remove that cap. Switching from one service to another is allowed. Promising that the third service will match pixels is not.&lt;/li&gt;
&lt;li&gt;You must plan a manual composite for anything that has to stay exact. If you do not have the logo file, the QR asset, or the legal line as real text, regeneration has nothing correct to paste back.&lt;/li&gt;
&lt;li&gt;Unpredictable output means you schedule rounds, not a single click, even though each round is fast.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Formats.&lt;/strong&gt; The matrix lists JPG/PNG. In practice you are feeding the service an image plus a prompt and taking an image back. &lt;strong&gt;When this is the honest choice.&lt;/strong&gt; You already decided a redesign is acceptable. It is not a fallback you pretend is a restoration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 10: Trace to Vectors and Rebuild
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; Adobe Illustrator, CorelDRAW, or Inkscape. Illustrator and CorelDRAW are paid, subscription or license. Inkscape is free. Use Inkscape when the budget is the blocker and you can live with its trace controls. Use Illustrator or CorelDRAW when a printer or a brand team expects those files and you already have the seat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input.&lt;/strong&gt; A bitmap that came from a vector design, especially if the logo or the icons must change too, and you are comfortable in a vector editor. High source resolution helps. A soft JPEG traces into mud. If the flyer is a photograph with a caption, do not trace the photograph. Trace is for shapes that want to become paths.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Place the flyer image in the vector app. Do not assume Place creates editable type. It creates a linked or embedded picture. The type tool will not land inside those pixels.&lt;/li&gt;
&lt;li&gt;Run Image Trace, or the equivalent command in your app, to convert the bitmap into paths. Prefer a crop of the logo or the text block over tracing the entire photographic page.&lt;/li&gt;
&lt;li&gt;Expand and break the result into pieces you can select. Immediately inspect anchor points. A clean contour is a keeper. A cloud of nodes around a soft edge is noise.&lt;/li&gt;
&lt;li&gt;Try to select the paths that used to be letters, and delete those if you intend to retype. Or ignore the traced letters and cover that area with a clean shape you draw yourself, then put live text on top.&lt;/li&gt;
&lt;li&gt;Retype with the Type tool. You can reuse traced shapes that are actually the logo, if they traced cleanly. If the font was not traced into outlines and somehow remains live text, edit it directly. A bitmap trace rarely gives you that. Do not plan on it.&lt;/li&gt;
&lt;li&gt;If the auto-trace welds the letters to a shadow or a gradient, stop tracing the whole page. Trace only a text crop. Use a high-threshold black-and-white preset when the art is really line art. Release the anchor points that are noise and keep the ones that describe the contour.&lt;/li&gt;
&lt;li&gt;If you still cannot get a clean cut, use the Pen tool and redraw the contour yourself. Then smooth jagged paths. Jagged paths are the normal failure of a sloppy trace, not a style.&lt;/li&gt;
&lt;li&gt;Adjust the layout. Save PDF or PNG for delivery. Save SVG or AI if the next person needs the paths. A PNG-only handoff throws away the reason you traced.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What this path solves.&lt;/strong&gt; After a successful trace, graphics are paths you can keep editing, and new words are real text on top. Fidelity can be high, which is why the table gives this path four stars, not five. Five remains reserved for a PDF whose text was already real text. Time and difficulty are both high, four stars on difficulty. This is professional-user work. It is the right branch when the logo or the icons must change and the flyer really did start as vectors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure conditions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Image trace is bad at separating type from artwork. Shadows and gradients fuse into the background. When you see the letter and its shadow as one black blob, the trace has already failed. Switch to the Pen, or abandon the path.&lt;/li&gt;
&lt;li&gt;You get jagged edges and a pile of useless nodes. That is not a finished logo. Cleaning every node by hand can cost more than redrawing the mark. Choose redrawing earlier than your pride wants.&lt;/li&gt;
&lt;li&gt;Multi-color gradients trace poorly. A flyer that is mostly a photograph should not be traced at all. Use clone and heal.&lt;/li&gt;
&lt;li&gt;The procedure is slow. Starting here because "vectors are cleaner" is how an afternoon disappears. Cleaner is only true after a good trace. Before that, you have a worse file than the JPEG you started with.&lt;/li&gt;
&lt;li&gt;Conversion can demand a high-quality source. If you do not have one, this branch's fidelity rating is theoretical. Do not quote four stars to the client while you trace a thumbnail.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Formats.&lt;/strong&gt; Bitmap in. SVG, AI, or PDF out. The matrix names JPG/PNG on the way in. &lt;strong&gt;Cost.&lt;/strong&gt; Paid for Illustrator or Corel, free for Inkscape.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure Signals and the Branch They Imply
&lt;/h2&gt;

&lt;p&gt;After any path, read the picture before you read your own hope. These signals are observable. Each one maps to a next action. None of them requires a new product.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can still read the old word through the new one. The boundary was too tight, or a shadow was left outside the mask. Expand the repair to include the fringe and the shadow. Do not add a second copy of the new word on top.&lt;/li&gt;
&lt;li&gt;A hard rectangle of slightly wrong color sits behind the new line. Content-Aware Fill or an inpainter was aimed at a texture it cannot invent. Switch to clone, heal, or patch, and sample along the grain.&lt;/li&gt;
&lt;li&gt;The same pebble, brick, or skin pore repeats like a stamp. The clone source was too small or never moved. Resample from several neighboring points. If the region is a face and the repeat is already obvious, budget the long salvage, about 40 minutes, or stop and tell the requester the photograph cannot be invisibly rewritten on this clock.&lt;/li&gt;
&lt;li&gt;The whole poster moved: the photo is different, the QR is nonsense, the logo grew a new shape. You are in the regeneration branch and it did what regeneration does. Composite the real logo and the real code back, or leave the branch. Do not prompt again with more adjectives and expect the code to become valid.&lt;/li&gt;
&lt;li&gt;The PDF text cursor never highlights. You are not in the five-star path. Stop editing the container and classify the page as a bitmap.&lt;/li&gt;
&lt;li&gt;After a PDF text edit, the letters are suddenly a different family. The font was not embedded and the editor substituted. Install the face or choose the closest available face on purpose, then re-export with fonts embedded if the printer requires it.&lt;/li&gt;
&lt;li&gt;A watermark appears in a corner you did not paint. A free tier of an inpainter signed the file. Pay for the clean export or switch tools. Do not crop the signature off and pretend the license allowed the edit.&lt;/li&gt;
&lt;li&gt;A traced logo is jagged and has far too many anchors. Image trace lost the contour. Use the Pen tool on the important outlines, or stop. Do not send the noisy paths to a vinyl cutter or a sign shop.&lt;/li&gt;
&lt;li&gt;Generative Fill or a text-to-image model mangled Chinese, or ignored the script. Language support varies by model. Retry with a short explicit prompt, or set the string yourself on a cleaned background. Wrong characters are a hard fail.&lt;/li&gt;
&lt;li&gt;The new line is longer than the repaired hole and now covers a photo edge or a border. The edit intent was underspecified. Repair a wider region before you typeset, or cut the copy. The tool will not negotiate with the grid for you.&lt;/li&gt;
&lt;li&gt;The file is an ID, an invoice, an official document, or a design source. There is no next branch. Stop, including when a previous click already produced a preview. Do not download and "just see."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Write the signal you actually see into the ticket. "Looks weird" is not an input the next path can use. "Repeated brick tile to the right of the date" is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparison Matrix
&lt;/h2&gt;

&lt;p&gt;Read the stars in one direction only. More filled stars means harder, in the difficulty column, or closer to the original design, in the fidelity column. Difficulty tops out at four filled stars. Fidelity reaches five filled stars on the PDF row alone, and only when that PDF still contains real vector text. An empty outline star is not a filled one. Do not reorder the rows because a tool is newer or cheaper. Fidelity means how closely the result can resemble the original design, not how new the feature is. Time follows complexity. Cost is the subscription or the free option, not a moral score. A free row is not the most faithful row. The PDF row is the most faithful row only when the text is still real vector text. AI rows do not become more accurate because the time cell says low.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Difficulty&lt;/th&gt;
&lt;th&gt;Fidelity to original&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;Input formats&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;PS Content-Aware Fill&lt;/td&gt;
&lt;td&gt;★★☆☆☆&lt;/td&gt;
&lt;td&gt;★★★☆☆&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Paid subscription (high)&lt;/td&gt;
&lt;td&gt;JPG/PNG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PS Clone/Heal&lt;/td&gt;
&lt;td&gt;★★★★☆&lt;/td&gt;
&lt;td&gt;★★★★☆&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Paid subscription (high)&lt;/td&gt;
&lt;td&gt;JPG/PNG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PS Generative Fill / AI&lt;/td&gt;
&lt;td&gt;★★☆☆☆&lt;/td&gt;
&lt;td&gt;★★★★☆&lt;/td&gt;
&lt;td&gt;Low (automatic)&lt;/td&gt;
&lt;td&gt;Paid subscription (high) or plugin (medium)&lt;/td&gt;
&lt;td&gt;JPG/PNG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GIMP Clone/Heal&lt;/td&gt;
&lt;td&gt;★★★☆☆&lt;/td&gt;
&lt;td&gt;★★★☆☆&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;JPG/PNG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Photopea (online)&lt;/td&gt;
&lt;td&gt;★★☆☆☆&lt;/td&gt;
&lt;td&gt;★★★☆☆&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Free (basic)&lt;/td&gt;
&lt;td&gt;Multi-format (PSD/PNG, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PDF editor&lt;/td&gt;
&lt;td&gt;★★☆☆☆&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;td&gt;Low–medium&lt;/td&gt;
&lt;td&gt;Partly free (e.g., WPS)&lt;/td&gt;
&lt;td&gt;PDF/Word&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OCR + re-typeset&lt;/td&gt;
&lt;td&gt;★★☆☆☆&lt;/td&gt;
&lt;td&gt;★★☆☆☆&lt;/td&gt;
&lt;td&gt;Medium (re-layout)&lt;/td&gt;
&lt;td&gt;OCR free/open source; Word, etc.&lt;/td&gt;
&lt;td&gt;JPG/PNG/PDF → DOCX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI image repair&lt;/td&gt;
&lt;td&gt;★★☆☆☆&lt;/td&gt;
&lt;td&gt;★★★☆☆&lt;/td&gt;
&lt;td&gt;Very low&lt;/td&gt;
&lt;td&gt;Free/paid (fast tier)&lt;/td&gt;
&lt;td&gt;JPG/PNG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text-to-image generation&lt;/td&gt;
&lt;td&gt;★★☆☆☆&lt;/td&gt;
&lt;td&gt;★★☆☆☆&lt;/td&gt;
&lt;td&gt;Low (generation)&lt;/td&gt;
&lt;td&gt;Paid subscription (medium–high)&lt;/td&gt;
&lt;td&gt;JPG/PNG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vectorize + rebuild&lt;/td&gt;
&lt;td&gt;★★★★☆&lt;/td&gt;
&lt;td&gt;★★★★☆&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Illustrator paid / Inkscape free&lt;/td&gt;
&lt;td&gt;JPG/PNG&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Use the matrix as a filter, then use the path section as the procedure. A few readings people get wrong:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Path 1, Content-Aware Fill, is medium difficulty and medium fidelity. It is the simple-background manual tool. It is not weak, and it is not the best you can do on a face.&lt;/li&gt;
&lt;li&gt;Path 2, clone and heal, costs the same kind of Photoshop subscription and spends more time to buy a higher fidelity on hard textures. About $20–$50 a month is the subscription band for that seat, trial available. The matrix saying "high" means that band, not a second surprise price.&lt;/li&gt;
&lt;li&gt;Path 3, Generative Fill, keeps difficulty low and fidelity high on the rating scale, with automatic time. The version floor is still Photoshop 27.10 or newer. The output is still not pixel-accurate on any given run. The stars describe the ceiling of a good variation.&lt;/li&gt;
&lt;li&gt;GIMP and Photopea are the free or free-to-start seats. Their fidelity sits in the middle. Do not move them above clone-and-heal because they are easier to obtain.&lt;/li&gt;
&lt;li&gt;The PDF editor's five fidelity stars collapse the moment the page is a scan. WPS on a live text file is allowed to be both inexpensive and excellent. Acrobat being expensive does not raise a scan's rating.&lt;/li&gt;
&lt;li&gt;OCR and text-to-image share the low fidelity mark for different reasons: one rebuilds a layout loosely, the other invents a new picture. Neither is a restoration path.&lt;/li&gt;
&lt;li&gt;One-click image repair is the fastest row and only a mid fidelity row. Very low time is real. So is the synthetic look on a complex pattern, the paid gate on high-resolution output, and the risk that a free tier watermarks the corner.&lt;/li&gt;
&lt;li&gt;Vector rebuild matches clone-and-heal on difficulty, fidelity, and time, with a different cost shape: Illustrator or CorelDRAW paid, Inkscape free. It does not outrank live PDF text.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Path 1 can also open TIFF even though the summary column says JPG/PNG. Read the column as the common delivery formats, not as a ban on other bitmaps Photoshop already opens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Routing Procedure
&lt;/h2&gt;

&lt;p&gt;Do not pick by habit or by whichever icon is already in your dock. Walk the artifact in this order and take the first branch that fits. If a later check fails, fall through. Do not stack every tool on principle.&lt;/p&gt;

&lt;p&gt;The same logic in the order a script would evaluate it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If the asset is an ID, an invoice, an official document, or a design source file, reject it.&lt;/li&gt;
&lt;li&gt;If the PDF probe finds live text and the edit is a string change, take the PDF editor path. This is the five-star case.&lt;/li&gt;
&lt;li&gt;If the background is solid or a gentle gradient and you only need the words changed, take the browser replacement first.&lt;/li&gt;
&lt;li&gt;If you need a manual desktop pass on that same simple background and you have Photoshop, take Content-Aware Fill.&lt;/li&gt;
&lt;li&gt;If the background is photographic or heavily textured and fidelity matters more than the clock, take clone, heal, or patch. If you cannot spend the subscription, take GIMP or Photopea and accept the lower ceiling.&lt;/li&gt;
&lt;li&gt;If you have many files, you need speed, and you can reject bad frames, take Generative Fill on Photoshop 27.10 or newer, or a one-click inpainter.&lt;/li&gt;
&lt;li&gt;If the layout is mostly regular text and a redesign of the styling is acceptable, take OCR and re-typeset.&lt;/li&gt;
&lt;li&gt;If a redesign is not only acceptable but welcome, take text-to-image.&lt;/li&gt;
&lt;li&gt;If the art started as vectors and the logo or icons must change, take trace and rebuild.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Reject the input if it is out of scope.&lt;/strong&gt; IDs, invoices, official documents, and design source files do not enter the router. There is no clever path and no "just this once." A source file that still opens in the original app should be edited there. Flattening it in order to use a bitmap trick is a self-inflicted loss.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Classify the background at 100 percent.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple background, solid or a gentle gradient. Use automatic replacement and &lt;a href="https://rewordsai.app/" rel="noopener noreferrer"&gt;change the words on a finished image&lt;/a&gt; in the browser. That pass is usually under a minute. New users typically get one free edit after signing in, and that edit does not require a credit card. On a desktop, if you already have Photoshop, Content-Aware Fill is the manual equivalent. If the probe found live PDF text, the PDF path is cleaner than either, because you are editing characters instead of inventing pixels.&lt;/li&gt;
&lt;li&gt;Complex background: photograph, portrait, dense texture. Do not stay on the one-click path unless you have looked at 100 percent and accepted the scar. Continue to the speed-versus-fidelity choice.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Choose speed or fidelity. You do not get to maximize both.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speed first, many flyers, routine wording changes. Stay with automatic text replacement, or use Photoshop Generative Fill, or a one-click inpainter. Accept that the AI result is not pixel-accurate. Schedule a human proof of the actual string. The model does not know which digit makes the event land on the wrong weekend.&lt;/li&gt;
&lt;li&gt;Fidelity first, high-end print, commercial delivery. Use Photoshop's Clone Stamp or Healing Brush, GIMP, or Photopea. You will sample and paint. Budget about 40 minutes when the texture is genuinely hard, not two minutes with a hopeful filename. About 300 ppi remains the print target while you paint, so you are not matching a thumbnail and then discovering the scar at the printer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Apply the constraint that actually binds.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No budget, and you need something that runs on your platform. GIMP, or Photopea for a browser session that also opens PSD-style files.&lt;/li&gt;
&lt;li&gt;The flyer is a PDF with real text. A PDF editor is the cleanest result when the probe succeeds. Inkscape belongs in this conversation when the text is vector and you want a free editor that also speaks SVG and AI.&lt;/li&gt;
&lt;li&gt;Text-heavy, regular layout, and a redesign of the styling is acceptable. OCR and a fresh typeset.&lt;/li&gt;
&lt;li&gt;You want creative variants and you are willing to redesign. Text-to-image, with DALL·E under ChatGPT Plus, Midjourney's subscription, Stable Diffusion, or a regional tool such as Wenxin Yige.&lt;/li&gt;
&lt;li&gt;The flyer came from a vector export and the logo must change too. Trace and rebuild in Illustrator, CorelDRAW, or Inkscape.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Write the abort line before you export.&lt;/strong&gt; If the background patch is visible at 100 percent, or the new word's weight is obviously different, you are not done. Switching paths is cheaper than shipping the miss. A second generation on a failed mask is allowed. A third tool that you cannot explain is not a process. Record which branch shipped so the next edit starts from the truth. If the shipped file is a new bitmap, the next edit is a bitmap edit. You did not secretly regain layers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five Exit Checks
&lt;/h2&gt;

&lt;p&gt;Whichever branch you ran, the difference between a file that looks fixed and a file that looks like the same flyer is mechanical. Run these five checks in order. They do not require a new product. They require zoom, an Eyedropper, and half a minute of attention you were about to skip.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Match the color, not only the spelling.&lt;/strong&gt; Sample the original ink with the Eyedropper. Copy a stroke or a shadow if the old word had one. The correct font in the wrong color is obvious at a glance. If the old word was knocked out of a photo and the new word is solid black, you skipped this check. Sample again from the old file, not from your repaired patch, or you will sample your own mistake and lock it in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep the resolution consistent with the destination.&lt;/strong&gt; About 300 ppi for print. If you typeset at screen resolution and drop the word onto a print file, the new type looks softer or sharper than the sheet around it. Match the source to the output before you hunt for a better font. The font is often innocent. Also match sharpness the other way: a razor-sharp vector word dropped on a soft JPEG looks pasted on, even when the family is right. A tiny blur or the original's texture, used sparingly, is a match technique, not a defect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Set weight, then spacing.&lt;/strong&gt; Weight is the usual reason replacement type looks wrong. Fix weight first. Then tighten or loosen letter spacing, especially on headlines and logo lines that were tracked tight. Do not start by changing the font family if the family is already close. You will wander through a font menu and still miss the tracking. For a price, also check the figure style. A lining figure next to old-style figures, or a much wider currency sign, can make a correct font look wrong.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Feather and blend the repair.&lt;/strong&gt; A feathered selection and a low-opacity cleanup pass make Content-Aware fills and heals much harder to see. A hard rectangular patch shaped like the old bounding box fails this check even when the colors are close. Shift+F6 is the feather shortcut in Photoshop. In the other editors, use whatever feather or expand control you have, then a soft cleanup. The principle is the same. On GIMP, the Blur tool on the fringe is the cousin of that feather. On a PDF text edit you usually skip this check, because you never made a hole. If you did make a hole, you are no longer in the PDF-text success case.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Review at full resolution for about 30 seconds before export.&lt;/strong&gt; Artifacts and small font mismatches hide in a thumbnail and shout at 1:1. Thirty seconds here is the cheap catch. Finding the same miss after the flyer is distributed is a different, worse ticket. Look specifically at counters inside letters, diacritics, the shadow side of the patch, any edge where the old word met a photo, and the characters of the date or price. Fit-to-screen is not this review. If you cannot zoom to 100 percent in the tool you used, download and zoom somewhere else before you send the file.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If check 5 fails, return to the path you were on. Do not export and fix it in a chat thread. Name the signal, using the list above, and either repair inside the same path or switch. Shipping a known halo because the meeting started is how the flyer gets reprinted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Branch to Run First
&lt;/h2&gt;

&lt;p&gt;Losing the PSD or the Canva link does not mean you must rebuild the flyer from a blank page. It means the input is a finished picture, or a PDF that might still be text, and you owe it a branch choice based on what a probe actually shows.&lt;/p&gt;

&lt;p&gt;Run the probes first. Text cursor on a PDF. One hundred percent zoom on the background behind the target words. A written edit intent that says remove or replace, and that records whether the new string is longer. A scope check that throws out IDs, invoices, official documents, and design source files. Those four actions take less time than opening the wrong desktop app and painting yourself into a hole.&lt;/p&gt;

&lt;p&gt;If the background is clean or simple, which is true of most flyers, run the automatic replacement first. Upload, change the words, download. On a straightforward file that is usually under a minute, and the first edit after sign-in typically does not ask for a card. If that 100 percent view is clean, stop spending. If the background is genuinely hard and the sheet has to survive a print inspection, the sampling tools still earn the subscription. Clone and heal is the high-fidelity, high-time branch for that texture, and the clock for a real salvage is about 40 minutes, not a coffee break. Generative Fill can sit between those poles when you have Photoshop 27.10 or newer and you will reject bad variations instead of shipping the first one. Remember that those variations are not pixel-accurate. Live PDF text outranks all of the pixel repairs, and only then does the five-star rating apply. A scan does not borrow it.&lt;/p&gt;

&lt;p&gt;Use the other branches for the constraints they actually answer. GIMP when the budget is zero and you can paint. Photopea when you need a browser and PSD-style files more than you need Photoshop's fill. OCR when the flyer is a regular, text-heavy layout and a cousin of the design is good enough. One-click inpainting when removal speed matters and you will still typeset afterward, watching for a free-tier watermark and a resolution cap. Text-to-image when a redesign is the point, with the logo and the QR pasted back from real assets. Vector trace when the mark itself has to change and the source was line art, knowing the trace can fail into jagged nodes.&lt;/p&gt;

&lt;p&gt;Take the flyer that is stuck in the queue. &lt;a href="https://rewordsai.app/" rel="noopener noreferrer"&gt;Replace the copy on a flattened flyer&lt;/a&gt; and see how close the one-minute pass gets before you commit to the 40-minute Photoshop salvage. If the full-resolution view is clean, ship it and keep the original beside the export. If it is not, name the failure signal in front of you and switch to the branch that repairs that signal. You still do not need the missing design file to make that choice. You need the input class, the background class, and a refusal to ship the scar you can already see.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Treat Burned-In Text as a Build Artifact: A 2026 Developer Workflow Without Photoshop</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Thu, 08 Oct 2026 10:52:53 +0000</pubDate>
      <link>https://dev.to/baiwei/treat-burned-in-text-as-a-build-artifact-a-2026-developer-workflow-without-photoshop-5ce6</link>
      <guid>https://dev.to/baiwei/treat-burned-in-text-as-a-build-artifact-a-2026-developer-workflow-without-photoshop-5ce6</guid>
      <description>&lt;p&gt;A finished photo is a compiled artifact. The letters are not a text layer you can retype. They are pixels blended into a wall, a label, a face, or a gradient. If your first move is still “open Photoshop and learn the clone stamp,” you are debugging the binary with a tutorial that can take hours to absorb, then spending dozens of minutes on a single file.&lt;/p&gt;

&lt;p&gt;I hit that wall often enough that I stopped collecting tips and started treating removal as a routing problem. Over about a week I ran hundreds of images through 10 non-Photoshop tools: flat color, product shots, ID-style portraits, indoor rooms, outdoor scenes, fine grids, and backgrounds dense enough that a healing brush has to guess. The result was not a universal winner. No single tool handles every background. Simple fields and complex ones — faces, gradients, dense detail — need different logic. AI repair already covers about 80% of daily needs. The other 20% is where sampling, layers, and a slow hand still earn their keep.&lt;/p&gt;

&lt;p&gt;What actually changed my speed was refusal. Matched tools compress work that used to take dozens of minutes down to a few seconds. Unmatched tools smear texture or trap you in pixel nudging. The rest of this piece is the workflow I now use: classify the background, decide whether a human should touch the pixels at all, then call one operator with the shortcuts and limits that operator actually has.&lt;/p&gt;

&lt;h2&gt;
  
  
  Guard clauses: classify the background before you touch a brush
&lt;/h2&gt;

&lt;p&gt;Think of the image as an input, not as a canvas you are morally obliged to paint. The first function in the pipeline is a classifier, and it only has to answer one question: is the area behind the type predictable?&lt;/p&gt;

&lt;p&gt;A predictable background is a solid color, a simple gradient, or a repeating texture a fill can copy from next door. An unpredictable background includes a face, architectural detail, uneven light, or any patch where neighboring pixels do not agree with each other. Using a heavy manual editor on the first kind wastes the afternoon. Using a one-click eraser on the second kind leaves a smudge that you will notice in review, even if a thumbnail looks fine.&lt;/p&gt;

&lt;p&gt;That split is the whole method. I do not open a healing brush because a file “looks important.” I open it because the background failed the simple-case test and the delivery needs a careful sample. For everything else I want a narrower program: a batch eraser, a phone heal for a corner date, or a text-specific editor that boxes the existing line and writes a replacement.&lt;/p&gt;

&lt;p&gt;Three refusals keep me out of manual mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The mark is small, the field behind it is simple, and I am on a phone. A finger-sized heal is enough. A desktop layer stack is ceremony.&lt;/li&gt;
&lt;li&gt;I have a pile of stock frames and the only defect is a watermark on a flat or lightly textured field. Sampling each one by hand does not scale.&lt;/li&gt;
&lt;li&gt;The job is to change or clear type that is already printed on a label, badge, poster, menu, or cover. I do not need a general paint program, and I should not be anywhere near an ID card, an invoice, an official document, or someone’s design source file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Manual retouching stays on the table for portraits, fussy commercial posters, and any complex texture where I can point at a clean neighbor and trust the blend. That work has a high ceiling. It is also the wrong default. If I cannot explain, in one sentence, why the automated path would fail this file, I do not get to spend several minutes stroking pixels.&lt;/p&gt;

&lt;h2&gt;
  
  
  The manual runtime: layers, samples, and three editors
&lt;/h2&gt;

&lt;p&gt;When the guard clause fails, the implementation is old and still correct. You protect the original, you read a clean pixel, you write over the glyph, and you let a blend mode or a heal kernel hide the seam. The keyboard is the API. The mouse is just how you aim it.&lt;/p&gt;

&lt;p&gt;I keep three editors in this branch. They are not substitutes for each other, even though all three can end with new type on top of a repaired patch.&lt;/p&gt;

&lt;h3&gt;
  
  
  Photopea
&lt;/h3&gt;

&lt;p&gt;Photopea is the free, no-install editor I open when I want Photoshop-shaped control inside a browser tab. There is no registration. It runs on the site, it opens a normal image, and it also opens a PSD, which matters when someone hands you a half-finished file instead of a flat export.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbjt4flodb7cgz2pi3rbv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbjt4flodb7cgz2pi3rbv.png" alt="Photopea in the browser" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I run it&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the Photopea site. Nothing to install, and no account is required before the canvas loads.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;File → Open&lt;/code&gt; and import the image or the PSD.&lt;/li&gt;
&lt;li&gt;If the background is simple, press &lt;code&gt;B&lt;/code&gt; for the paint brush. Hold &lt;code&gt;Alt&lt;/code&gt;, click a clean patch of the background to sample that color, then paint straight across the letters.&lt;/li&gt;
&lt;li&gt;If the background is complex, press &lt;code&gt;J&lt;/code&gt; for the heal brush. Hold &lt;code&gt;Alt&lt;/code&gt; and sample close to the text, not from a random corner of the frame. Paint over the glyphs. The heal pass blends the edges instead of dropping a flat color onto texture.&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;T&lt;/code&gt;, set the new wording, adjust layer styles until the type sits in the same light as the photo, then use &lt;code&gt;Export As&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What it costs in time, and what the pixels look like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A careful pass takes several minutes. That is the point. Done properly, the repair reaches a professional seamless level that the one-click tools do not promise. Done carelessly — sampling from the wrong side of a highlight, or painting a hard brush across a gradient — it looks like every other bad clone job. The ceiling is high only if you treat &lt;code&gt;Alt&lt;/code&gt; as a read and the brush as a short write.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I keep it for, and where it breaks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I keep Photopea because the feature set is deep and PSD files survive the round trip. I drop it when the network is unreliable, because the whole runtime lives in the browser, and when the person doing the job has not learned the shortcuts yet. The learning curve is steeper than an upload-and-download eraser. I also do not use it as the first stop for a simple wall of color. Several minutes of sampling is a bug if a few-second tool would have filled the same patch.&lt;/p&gt;

&lt;p&gt;One implementation habit: decide simple versus complex before you press &lt;code&gt;B&lt;/code&gt; or &lt;code&gt;J&lt;/code&gt;. The paint brush is a solid-color write. The heal brush is a neighborhood blend. Mixing them up is how flat walls get textured noise and how detailed walls get muddy discs.&lt;/p&gt;

&lt;h3&gt;
  
  
  GIMP
&lt;/h3&gt;

&lt;p&gt;GIMP is the open-source desktop option for the same class of job, aimed at someone who already knows what a sample source is and wants authority over every pixel. I use it when the file should not depend on a website staying up, and when I expect the repair to take long enough that a local undo stack matters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fani8qd2ewhlcp2x0u4db.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fani8qd2ewhlcp2x0u4db.png" alt="GIMP clone and heal tools" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I run it&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install GIMP if it is not already on the machine, open it, and import the image.&lt;/li&gt;
&lt;li&gt;Create a new layer before any repair. That layer is the patch. The imported image stays untouched underneath, which is the only sane way to keep a manual session reversible.&lt;/li&gt;
&lt;li&gt;For the Clone tool, hold &lt;code&gt;Ctrl&lt;/code&gt; and click a clean area with no text. That click is the sampling source. Then paint only on the glyphs. If the source and the destination drift apart in brightness, stop and sample again instead of scrubbing harder.&lt;/li&gt;
&lt;li&gt;For a gradient or a more complex texture, switch to the Heal tool. Sample the same way and paint over the text. GIMP matches color as it blends, which is what you want when the background is not one RGB value.&lt;/li&gt;
&lt;li&gt;Move to the Text tool, set the replacement copy, add layer styles such as a shadow if the original type had depth, and export.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What it costs in time, and what the pixels look like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Budget several minutes to dozens of minutes. There is no batch shortcut hiding in this path. In exchange, background detail can come out smooth and natural, and the ceiling is as high as your sampling discipline. A new source click every time the texture changes will beat one heroic brushstroke every time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I keep it for, and where it breaks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GIMP is completely free, and the control is 100% manual. That second fact is also the drawback. The learning curve is steep. I do not put a teammate who has never sampled a clone source in front of GIMP on a deadline. I also do not use it to wipe a date stamp off a corner of sky. The tool will do it. The time accounting will not survive.&lt;/p&gt;

&lt;p&gt;The layer rule is non-negotiable in my own files. Repairing on the base layer feels faster for the first minute and becomes expensive the moment a stroke crosses from the letter into a highlight you needed to keep. A separate layer is a commit you can hide, mask, or throw away without reopening the original export.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pixlr
&lt;/h3&gt;

&lt;p&gt;Pixlr sits between the two manual editors and the upload-and-forget AI tools. It ships as a professional editor, Pixlr E, and a simpler editor, Pixlr X. I open it when I want layers and a selection, but I do not want to install a desktop suite, and I am willing to live with whatever the free session puts on screen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fabyttyqt5ap3t5pn6kdc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fabyttyqt5ap3t5pn6kdc.png" alt="Pixlr editor" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I run it&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the Pixlr site and load the image. No registration is required to start.&lt;/li&gt;
&lt;li&gt;If the type is high contrast against the background, select it with the magic wand or the lasso, then run content-aware fill from the edit tools. The selection is doing the work a brush would do. A tight selection matters more than a second pass.&lt;/li&gt;
&lt;li&gt;If the selection route is awkward, switch to AI Object Remove and paint across the text so the reconstruction can run on that stroke.&lt;/li&gt;
&lt;li&gt;Add the new wording with the text tool and save from the browser session.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What it costs in time, and what the pixels look like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Wall-clock time follows the network. On simple scenes the fill behaves well, and the stated output clarity goes up to 1200 dpi. I do not treat that number as a promise that a busy background will reconstruct cleanly. It is a ceiling on the file you can get out, not a description of every inpaint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I keep it for, and where it breaks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Layers are available, and you can work without creating an account. The free session carries a lot of ads. AI removal may require a premium plan, so I do not depend on the Object Remove path for a workflow I have to repeat on a free seat. When the type sits on a face or a messy texture, I would rather sample in Photopea or GIMP than hope a wand selection understood the edge.&lt;/p&gt;

&lt;p&gt;Pixlr is the editor I recommend when someone asks for “Photoshop in a tab” and then admits they only need a selection plus a fill. It is not the editor I leave open for a fifty-image queue.&lt;/p&gt;

&lt;h2&gt;
  
  
  The batch runtime: call an eraser, then review the seam
&lt;/h2&gt;

&lt;p&gt;Most daily files never deserve the manual runtime. Once I know the background is ordinary — a product sweep, a room, a landscape, a reasonably even surface — I want an algorithm to find the ink and rebuild the patch. That is the 80%. My job becomes review: zoom to 100%, look at edges, and only then decide whether a human sample is required.&lt;/p&gt;

&lt;p&gt;Three tools live on this path. They feel similar from the outside and fail in different places.&lt;/p&gt;

&lt;h3&gt;
  
  
  LightPDF
&lt;/h3&gt;

&lt;p&gt;LightPDF is the browser tool I use when the priority is throughput and the scene is a natural landscape or an indoor shot. The backend model detects type and reconstructs the background. On those scenes the fill has been strong enough that I stopped assuming “automatic” meant “blurry.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftwt8osoz4a65vmj71c2x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftwt8osoz4a65vmj71c2x.png" alt="LightPDF text removal" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I run it&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the image text-removal page on the LightPDF site in a browser.&lt;/li&gt;
&lt;li&gt;Upload a JPG, a PNG, a HEIC, or another format the page accepts.&lt;/li&gt;
&lt;li&gt;Let it detect and remove the text on its own, or mark a specific area if you only want one line gone.&lt;/li&gt;
&lt;li&gt;Wait a few seconds while the reconstruction finishes, then download the result.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What it costs in time, and what the pixels look like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The pass is a few seconds, not a coffee break. The file I get back keeps the original resolution, and detail on ordinary photographs holds up. I still inspect fine structure before I ship the frame. Speed does not excuse a skipped review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I keep it for, and where it breaks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The operation is about as short as a consumer web tool gets, and batch processing covers up to 50 images at once. That is the feature that retires a weekend of clone-stamping. The free tier limits how many high-quality runs you can take, so a large queue can stall even when the model itself is fast. Extremely fine grids are the visual failure I watch for: the reconstruction occasionally breaks the pattern. If the background is a mesh, a screen, or a tight repeating lattice, I do not trust the first download without a zoomed check, and I am ready to move that one file to a sampling editor.&lt;/p&gt;

&lt;p&gt;I also do not send LightPDF a job whose real goal is “set this label to a new sentence in a similar style.” It is an eraser and a reconstructor. Replacement copy is a later step in some other tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Meitu
&lt;/h3&gt;

&lt;p&gt;Meitu, on PC or on the web, is the AI editor I reach for when the lettering is Chinese, printed or handwritten, and the frame is the kind of product photo or ID photo that shows up in domestic social posts. The recognition work is where it has a real edge. I am not using it as a general Western-layout compositor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I run it&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the Meitu desktop app or the web design tool.&lt;/li&gt;
&lt;li&gt;Import the image and go into the seamless text-modification mode inside AI image editing.&lt;/li&gt;
&lt;li&gt;Select the characters or symbols that should disappear. The model reads the surrounding texture and fills it.&lt;/li&gt;
&lt;li&gt;If a stroke or a shadow remains, switch to the AI smart-erase tool in local image editing and clean that residue by hand. This is a small correction, not a full manual repaint.&lt;/li&gt;
&lt;li&gt;Use the text tool to set new type, then export.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What it costs in time, and what the pixels look like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A single removal is about 3 seconds. On product images and ID photos the fill has been clean, without an obvious scar where the old line sat. That is the quality bar I hold it to. If I can see a patch in the first look, I do not talk myself into shipping it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I keep it for, and where it breaks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Chinese text handling is the reason it stays installed, and the same session can add the replacement line, so removal and retypesetting are one path instead of an export to a second app. Some advanced features need a VIP membership. Very complex backgrounds are a limited case: the three-second fill is not a substitute for a sampled heal when the texture behind the type is fighting the model. I keep Meitu on the speed branch of the router, next to LightPDF, and I take it off that branch as soon as the background stops being regular.&lt;/p&gt;

&lt;p&gt;There is no screenshot in my notes for Meitu. I judge it from the exported file, not from a marketing page.&lt;/p&gt;

&lt;h3&gt;
  
  
  PhotoWorks
&lt;/h3&gt;

&lt;p&gt;PhotoWorks is desktop software built to feel foolproof: repair and watermark removal sit under a small interface, with a stack of photo filters behind them if the frame also needs ordinary finishing. I use it when the person running the job wants one installed app and does not want to learn brush shortcuts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fozu710h0pgzjvkyevmhs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fozu710h0pgzjvkyevmhs.png" alt="PhotoWorks desktop editor" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I run it&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install PhotoWorks, launch it, and load the photo.&lt;/li&gt;
&lt;li&gt;Choose the repair tool or the watermark-removal tool.&lt;/li&gt;
&lt;li&gt;Mark the text yourself, or turn on automatic recognition and let the software replace that area in one action.&lt;/li&gt;
&lt;li&gt;If the frame needs new wording, use the built-in editor to add it, then export a high-quality file.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What it costs in time, and what the pixels look like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The edit finishes within about a dozen seconds. Clarity and the general natural look usually hold. “Usually” is doing real work in that sentence. I have seen the AI repair come back slightly smudged, which is acceptable for a casual post and not acceptable for a file someone will print large.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I keep it for, and where it breaks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The filter set makes it a reasonable place to finish a photograph after the type is gone, so removal and light grading do not require a second install. The software is paid. I do not put it on a machine just to erase one date. I also do not trust the one-click replace on a background where a smudge would show, such as skin or a sharp repeating pattern. When that risk is real, a dozen seconds saved is not worth the retake. Photopea’s &lt;code&gt;J&lt;/code&gt; shortcut or GIMP’s Heal tool is the slower, more honest path.&lt;/p&gt;

&lt;p&gt;PhotoWorks belongs with the other AI erasers because the human is mostly marking a region. It does not belong with GIMP. The minimal UI hides the algorithm; it does not give you a sample source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Narrow binaries: one defect, one program
&lt;/h2&gt;

&lt;p&gt;A general editor is the wrong shape for some jobs. Two tools in this set do not try to be Photoshop. That restraint is the feature.&lt;/p&gt;

&lt;h3&gt;
  
  
  Inpaint
&lt;/h3&gt;

&lt;p&gt;Inpaint is a desktop eraser I keep for stock frames and other batches where the only task is to wipe a mark off a solid or textured field. It does not try to be a layout program. You select, you erase, you nudge with a healing brush if a trace remains.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd04eo5wbycw3112gc9kl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd04eo5wbycw3112gc9kl.png" alt="Inpaint eraser" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I run it&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install the Inpaint client.&lt;/li&gt;
&lt;li&gt;Select the text with the rectangle or the lasso. Include the full glyph and the immediate fringe, not a loose region of innocent background.&lt;/li&gt;
&lt;li&gt;Hit &lt;code&gt;Erase&lt;/code&gt;. The program fills the selection from the surrounding texture immediately.&lt;/li&gt;
&lt;li&gt;If a halo or a repeated chunk of texture remains, use the healing brush on that residue only, then save.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What it costs in time, and what the pixels look like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Figure a few seconds per image. On solid color and on ordinary texture the fill is as close to ideal as this kind of tool gets. The selection still matters. A rectangle that slices through a shadow will rebuild the shadow wrong, and no amount of “it’s only a watermark tool” fixes a bad mask.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I keep it for, and where it breaks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The focus is the advantage. Batch watermark cleanup is the job I assign it, because I am not paying the overhead of a full editor for a mark on an otherwise usable stock photo. The same focus is the limit. Inpaint does not add new text by itself. If the next requirement is a replacement headline, I export and finish the type somewhere else. I also do not expect it to invent a plausible face behind a caption. Solid and textured backgrounds are its range. Outside that range I am back to a sampled heal.&lt;/p&gt;

&lt;p&gt;Treat Inpaint as a filter in a directory script, not as a design suite. Input frame, mask the words, write the cleaned file, stop.&lt;/p&gt;

&lt;h3&gt;
  
  
  ReWords AI
&lt;/h3&gt;

&lt;p&gt;ReWords AI is the narrow web tool I use when the artifact is already finished and the task is the type itself. It fits labels, badges, posters, menus, and covers: either clear the line or set a new one in that same printed spot. People who need to &lt;a href="https://rewordsai.app/en/remove-text-from-image" rel="noopener noreferrer"&gt;remove text from images&lt;/a&gt; and then put different wording in the same place are the audience. It is not a tool for ID cards, invoices, official documents, or design source files. If the job is any of those, I stop. Editing the bitmap is the wrong operation, and this product is the wrong program.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://rewordsai.app/en/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx3dw0uw38eoyh64wlmq0.png" alt="Replace existing text in finished images" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I run it&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the page in the browser and upload a finished image. PNG, JPG, and WebP are the formats I actually feed it.&lt;/li&gt;
&lt;li&gt;Box-select the existing text. The box is the whole contract. Sloppy bounds pull in neighboring print or miss a descender, and the fill has to guess at a region you defined badly.&lt;/li&gt;
&lt;li&gt;Leave the replacement field blank if the line should simply disappear. Type the new wording if the line should change.&lt;/li&gt;
&lt;li&gt;Sign in. Generation happens after login. Then download the image the page returns.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What it costs in time, and what the pixels look like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The session stays in the browser. Fonts, colors, and the surrounding background stay as close to the original as the model can manage. The fill is best-effort. On a complex background I do not expect a seamless result, and I do not tell anyone else to expect one. Close and seamless are different outcomes. I zoom the boundary between the new patch and the original print before I accept the file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I keep it for, and where it breaks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nothing has to be installed, and a free trial is available without a credit card. The trial quota is limited, so a long queue still runs out of tries. It will not recover the original font file; you get pixels that resemble the source, not an editable font you can drop into a design app. On complex backgrounds it only does its best. That is an honest limit, and it is why a commercial poster with a difficult texture still goes to Photopea or GIMP when the seam has to disappear.&lt;/p&gt;

&lt;p&gt;I also keep the scope tight on purpose. A label, a badge, a poster, a menu, or a cover is in range because the type is already part of a finished picture. A source file that still has live text objects should be edited in the authoring tool, not flattened and repainted. An identity document or an invoice should not be in the pipeline at all.&lt;/p&gt;

&lt;p&gt;The developer habit that matters here is the blank field. Removal and replacement are the same control. Empty means erase. A string means change. I do not look for a separate “delete text” mode and then a second product to typeset, unless the background complexity has already kicked the file out to a manual editor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Edge devices: the phone is a workstation only for small jobs
&lt;/h2&gt;

&lt;p&gt;Leaving the desk does not mean the pipeline disappears. It means the input device changes and the acceptable defect size shrinks. A phone is a good heal for a corner mark and a good layout toy for a social cover. It is a bad place to sample a commercial face at full resolution.&lt;/p&gt;

&lt;h3&gt;
  
  
  PicsArt
&lt;/h3&gt;

&lt;p&gt;PicsArt is the phone app I use when the output is a short-video cover or a social image and I want object removal plus a loud font, not a forensic rebuild. The asset library is the product as much as the eraser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1xhr8kxbs4sm9e9es9j3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1xhr8kxbs4sm9e9es9j3.png" alt="PicsArt on a phone" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I run it&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the image on the phone, go to the tools tab, and choose text inside object removal.&lt;/li&gt;
&lt;li&gt;Brush around the words, or let the app detect them, then run remove.&lt;/li&gt;
&lt;li&gt;Open the text tools, pick an effect font, and set the new title.&lt;/li&gt;
&lt;li&gt;Export to the camera roll or share from the app.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What it costs in time, and what the pixels look like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The automatic reconstruction keeps a natural read of the original texture and color. Large images run a bit slower than a small cover. If I am processing a full-resolution photo just to change a caption, I would rather move that file to a desktop eraser than wait on the handset and then discover the seam at export size.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I keep it for, and where it breaks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The font and sticker library is large, and the gestures are obvious, which is why it wins for a poster remade on a phone. Some of the more advanced AI models sit behind a subscription. I do not plan a production step around a model I might not have on a free account. PicsArt is the mobile remake path in the router. It is not the path for a batch of 50, and it is not the path when I need desktop sampling.&lt;/p&gt;

&lt;h3&gt;
  
  
  Snapseed
&lt;/h3&gt;

&lt;p&gt;Snapseed is the free Google editor I use for the smallest version of this problem: a date in a corner, or a small watermark, on a simple background. There is no ad layer in the way. There is also no ambition to rebuild a busy scene.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc9jis4bc5lzq4zepw84m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc9jis4bc5lzq4zepw84m.png" alt="Snapseed healing tool" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I run it&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Import the photo on the phone and choose healing from the bottom toolbar.&lt;/li&gt;
&lt;li&gt;Paint over the text with a finger. Short strokes. The tool erases by pulling in the nearby field, so a small target on a calm background is the whole design.&lt;/li&gt;
&lt;li&gt;If the frame needs new wording, open the text tool and apply one of the artistic templates.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What it costs in time, and what the pixels look like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is a quick swipe. On a small area with a simple background the result is genuinely good, which is why I keep the app on the phone at all. The moment the area grows, or the background stops being simple, the same swipe piles into a smudge. Overworking the spot makes it worse, not better. I stop at the first clean pass or I abandon the file to a desktop tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I keep it for, and where it breaks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Completely free and free of ads is a rare combination, and for a corner date it is the right amount of software. It does not support a serious removal across a large region or a complex background. I do not use it on a face, a storefront full of detail, or a poster that has to be retyped precisely. Those files feel editable because the heal gesture is always available. They are not editable well. Knowing that is the difference between a ten-second fix and a file I have to reshoot or rebuild.&lt;/p&gt;

&lt;p&gt;Snapseed is the mobile exception inside the simple-background branch. If I am at a desk, I usually will not bother. If I am holding the phone and the defect is tiny, I will not wait until I can sit down.&lt;/p&gt;

&lt;h2&gt;
  
  
  The routing function I actually run
&lt;/h2&gt;

&lt;p&gt;Intuition is a bad scheduler. After the week of tests, the dispatch I follow is short, and I keep it in this order so I do not “just try Photoshop” out of habit.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if background is solid or a simple gradient:
    if the edit is small and I am on a phone:
        Snapseed healing, then stop
    else:
        ReWords AI
        blank replacement -&amp;gt; remove
        typed replacement -&amp;gt; new wording
elif background is complex (portrait, architecture, dense texture):
    if the queue is large or the need is daily speed:
        LightPDF on the web, or Meitu on PC
    elif the delivery needs a careful commercial finish:
        Photopea (J + Alt) or GIMP (Heal, new layer, Ctrl sample)
elif the job is a batch of watermarks on stock frames:
    Inpaint, then add type elsewhere if type is required
elif the job is a poster remade on a phone:
    PicsArt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read that as policy, not as a scoreboard. A simple background goes to ReWords AI when I need to &lt;a href="https://rewordsai.app/en/edit-text-in-image" rel="noopener noreferrer"&gt;edit text in images&lt;/a&gt;: leave the replacement blank to remove the line, or type the new line and generate. The same simple case, if it is only a small mobile touch-up, still goes to Snapseed. I do not promote a simple file into Photopea just because Photopea can do it.&lt;/p&gt;

&lt;p&gt;A complex background does not skip the second question. Speed, large batches, and ordinary daily images go to LightPDF in the browser or to Meitu’s AI on the PC, and the algorithm does the fill. Ultimate quality — a high-end poster, a commercial file where a smudge would be a rejection — goes to Photopea or GIMP, and I sample with the heal brush by hand. Architecture and portraits are the usual reasons I take that slower branch. A fine grid that already failed inside LightPDF can take it too, even if the rest of the scene looked easy.&lt;/p&gt;

&lt;p&gt;Batch watermarks stay with Inpaint. A poster I am remaking away from the desk stays with PicsArt. PhotoWorks remains available inside the “dozen seconds, accept a possible smudge, filters afterward” niche, not as the quality path and not as the fifty-image path. Pixlr remains the in-between browser editor when I want a wand, a lasso, or content-aware fill and I can tolerate ads, with AI removal treated as optional rather than guaranteed on a free plan.&lt;/p&gt;

&lt;p&gt;Two sentences keep the policy honest. AI repair is enough for about 80% of what shows up in a normal week, which is why manual sampling is a branch and not a lifestyle. And the tools that feel primitive — a heal swipe, a rectangle and an Erase button, a box and a replacement string — are faster than a famous paint program precisely because they refuse every job that is not theirs.&lt;/p&gt;

&lt;p&gt;If you want the difference on your own files, do not start with the easiest thumbnail on the desktop. Pull the frame with the most complicated background, open Photopea or the LightPDF web tool, and run that one image through the branch the classifier picked. The shortcut, or the decision not to use a shortcut, shows up immediately. The hours you might have spent learning a clone stamp for a flat wall do not.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>software</category>
      <category>tools</category>
    </item>
    <item>
      <title>SeedAudio: natural AI voice audio from scripts in your browser</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Mon, 28 Sep 2026 23:20:31 +0000</pubDate>
      <link>https://dev.to/baiwei/seedaudio-natural-ai-voice-audio-from-scripts-in-your-browser-3166</link>
      <guid>https://dev.to/baiwei/seedaudio-natural-ai-voice-audio-from-scripts-in-your-browser-3166</guid>
      <description>&lt;p&gt;Designed for content creators and production teams, SeedAudio turns written scripts into natural AI voice audio inside your internet browser. Users have access to comprehensive delivery controls to modify pace, pitch, and vocal dynamics before finalizing tracks.&lt;/p&gt;

&lt;p&gt;The platform emphasizes permission-aware voice workflows, ensuring that voice creation complies with authorizations. Direct audio downloads are supported for finished tracks, and a freemium plan keeps core workflows accessible.&lt;/p&gt;

&lt;p&gt;Learn more at &lt;a href="https://seedaud.io/" rel="noopener noreferrer"&gt;https://seedaud.io/&lt;/a&gt; — SeedAudio focuses on authorized script-to-speech with natural voice output for everyday production work.&lt;/p&gt;

</description>
      <category>audio</category>
    </item>
    <item>
      <title>Introducing iptv-org pro: A Public TV Channel Directory</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Tue, 01 Sep 2026 17:00:59 +0000</pubDate>
      <link>https://dev.to/baiwei/introducing-iptv-org-pro-a-public-tv-channel-directory-5fpe</link>
      <guid>https://dev.to/baiwei/introducing-iptv-org-pro-a-public-tv-channel-directory-5fpe</guid>
      <description>&lt;p&gt;iptv-org pro is an independent web directory indexing public television channels sourced from the open-source iptv-org dataset. Functioning as a public TV channel directory, it provides a centralized platform to browse publicly available television information.&lt;/p&gt;

&lt;p&gt;Each entry brings together official station websites, language tags, category classifications, and listed public stream endpoints into a single searchable record. This structure allows users to explore and look up channel details, classifications, and public endpoints in one place.&lt;/p&gt;

&lt;p&gt;You can explore the directory at &lt;a href="https://iptv-org.pro/" rel="noopener noreferrer"&gt;iptv-org pro&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>tools</category>
    </item>
    <item>
      <title>AI Text Watermark Remover: Detect Invisible Characters and Clean AI Residue</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Tue, 01 Sep 2026 16:59:49 +0000</pubDate>
      <link>https://dev.to/baiwei/ai-text-watermark-remover-detect-invisible-characters-and-clean-ai-residue-40c1</link>
      <guid>https://dev.to/baiwei/ai-text-watermark-remover-detect-invisible-characters-and-clean-ai-residue-40c1</guid>
      <description>&lt;p&gt;AI Text Watermark Remover is a free tool designed to detect invisible characters, strip Markdown residue, and regenerate drafts when AI models embed watermarks into the wording itself. It supports text generated by systems such as Claude, ChatGPT, Gemini, and more.&lt;/p&gt;

&lt;p&gt;The invisible-character detection and Markdown cleaning run locally in your browser, and the tool does not store text entered into the free version. Its core focus is to clean hidden marks while keeping your meaning intact.&lt;/p&gt;

&lt;p&gt;You can try the tool at &lt;a href="https://aitextwatermarkremover.com/" rel="noopener noreferrer"&gt;AI Text Watermark Remover&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>Clean Paste AI: Strip Hidden Unicode and Markdown Residue</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Tue, 01 Sep 2026 05:50:05 +0000</pubDate>
      <link>https://dev.to/baiwei/clean-paste-ai-strip-hidden-unicode-and-markdown-residue-ph1</link>
      <guid>https://dev.to/baiwei/clean-paste-ai-strip-hidden-unicode-and-markdown-residue-ph1</guid>
      <description>&lt;p&gt;Unwanted markdown and hidden characters can easily disrupt your documents. &lt;a href="https://cleanpasteai.com/" rel="noopener noreferrer"&gt;Clean Paste AI&lt;/a&gt; is a clipboard sanitizer designed to strip invisible Unicode spaces, zero-width tags, and unwanted markdown before you paste into docs. It serves as an invisible character cleaner and markdown stripper to keep your formatting clean.&lt;/p&gt;

&lt;p&gt;You can inspect exact residue counts to see what was cleaned from your clipboard. The invisible character and markdown cleaners run directly inside your browser. No private text is ever uploaded for free cleaning.&lt;/p&gt;

</description>
      <category>tools</category>
    </item>
    <item>
      <title>IPTV Playlist: A Web Tool to Inspect and Test Public M3U Streams</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Tue, 01 Sep 2026 05:49:02 +0000</pubDate>
      <link>https://dev.to/baiwei/iptv-playlist-a-web-tool-to-inspect-and-test-public-m3u-streams-ind</link>
      <guid>https://dev.to/baiwei/iptv-playlist-a-web-tool-to-inspect-and-test-public-m3u-streams-ind</guid>
      <description>&lt;p&gt;&lt;a href="https://iptvplaylist.app/" rel="noopener noreferrer"&gt;IPTV Playlist&lt;/a&gt; is a public IPTV playlist directory and web tool designed to help you discover public IPTV playlist links from community sources. The directory organizes public streams by country and topic, allowing you to browse curated lists or paste a playlist URL directly. From there, you can open a country list and pick a channel.&lt;/p&gt;

&lt;p&gt;The platform includes built-in browser-based M3U playlist tools to inspect, test, and analyze M3U streams online. Functioning as an IPTV stream checker and M3U playlist analyzer, it lets you test stream links and inspect public M3U playlist URLs. This makes it simple to open an M3U playlist and play a channel in your browser.&lt;/p&gt;

</description>
      <category>tools</category>
    </item>
    <item>
      <title>AI Text Cleaner: Strip Hidden Characters and Invisible Formatting Locally</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Mon, 31 Aug 2026 08:57:58 +0000</pubDate>
      <link>https://dev.to/baiwei/ai-text-cleaner-strip-hidden-characters-and-invisible-formatting-locally-k6d</link>
      <guid>https://dev.to/baiwei/ai-text-cleaner-strip-hidden-characters-and-invisible-formatting-locally-k6d</guid>
      <description>&lt;p&gt;When working across different editors, hidden characters, unusual whitespace, and unwanted Markdown formatting can easily disrupt your draft. AI Text Cleaner, accessible at &lt;a href="https://aitextcleaner.pro/" rel="noopener noreferrer"&gt;https://aitextcleaner.pro/&lt;/a&gt;, helps you strip these formatting artifacts in seconds.&lt;/p&gt;

&lt;p&gt;Privacy and speed are core to the tool: invisible character removal and Markdown stripping run entirely locally in your browser. Your draft text is never uploaded to servers during free scans, keeping your content safe and private.&lt;/p&gt;

&lt;p&gt;For deeper refinement, you can also use Pro rewriting to address wording-level statistical traces. It offers a practical solution to streamline your writing workflow and keep your text clean.&lt;/p&gt;

</description>
      <category>aitools</category>
      <category>texttools</category>
      <category>productivity</category>
      <category>writingtools</category>
    </item>
    <item>
      <title>ReWords AI: An AI Image Text Editor to Replace Text in Images</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Mon, 31 Aug 2026 07:37:30 +0000</pubDate>
      <link>https://dev.to/baiwei/rewords-ai-an-ai-image-text-editor-to-replace-text-in-images-2e21</link>
      <guid>https://dev.to/baiwei/rewords-ai-an-ai-image-text-editor-to-replace-text-in-images-2e21</guid>
      <description>&lt;p&gt;&lt;a href="https://rewordsai.app/" rel="noopener noreferrer"&gt;ReWords AI&lt;/a&gt; is an AI image text editor designed to replace existing text within images. Users can upload PNG, JPG, or WebP images and edit text in image files directly.&lt;/p&gt;

&lt;p&gt;The tool edits text in place and matches the original font, color, and background. This enables seamless AI image editing whether used as a PNG text editor or a JPG text editor to replace text in image uploads.&lt;/p&gt;

&lt;p&gt;ReWords AI is available under a freemium pricing model. You can check it out and edit your image text at &lt;a href="https://rewordsai.app/" rel="noopener noreferrer"&gt;https://rewordsai.app/&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>Programming Video Generation: 7 Prompt Engineering Techniques for MiniMax H3 (From 20 Viral X Posts)</title>
      <dc:creator>baiwei</dc:creator>
      <pubDate>Wed, 05 Aug 2026 12:10:32 +0000</pubDate>
      <link>https://dev.to/baiwei/programming-video-generation-7-prompt-engineering-techniques-for-minimax-h3-from-20-viral-x-posts-e37</link>
      <guid>https://dev.to/baiwei/programming-video-generation-7-prompt-engineering-techniques-for-minimax-h3-from-20-viral-x-posts-e37</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-08-04&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Reading time:&lt;/strong&gt; ~12 min&lt;br&gt;&lt;br&gt;
&lt;strong&gt;TL;DR:&lt;/strong&gt; MiniMax H3 accepts multimodal inputs (9 images + 3 videos + 3 audio clips) and outputs 2K/15s video with built-in subtitle rendering and lip-sync. We analyzed 20 high-performing posts on X and extracted 7 reproducible prompt patterns that turn this API into a production-grade video pipeline.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you've worked with video generation APIs before, you know the drill: throw a text description at the model, pray for something usable, iterate 20 times, settle for "good enough." MiniMax H3 changes the game because its input schema is fundamentally richer than "one string in, one clip out." You're not prompting a model — you're &lt;strong&gt;programming a director&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This post breaks down 7 techniques distilled from 20 viral X posts, each with working prompt templates you can drop into your pipeline today. Every example includes the original creator's output and a link to their post.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Input Schema: Why H3 Prompts Are Structurally Different
&lt;/h2&gt;

&lt;p&gt;Before diving into techniques, let's look at what you're actually working with:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;
&lt;th&gt;Input Type&lt;/th&gt;
&lt;th&gt;Max Slots&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Text prompt&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Timeline, scene description, style directives, camera movement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reference images&lt;/td&gt;
&lt;td&gt;Up to 9&lt;/td&gt;
&lt;td&gt;Character identity, environment, product shots, style references&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reference video&lt;/td&gt;
&lt;td&gt;Up to 3&lt;/td&gt;
&lt;td&gt;Motion rhythm, transition style, camera behavior&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reference audio&lt;/td&gt;
&lt;td&gt;Up to 3&lt;/td&gt;
&lt;td&gt;Mood, pacing, music sync&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt; 2K resolution, 15 seconds, native subtitle rendering, lip-sync, music synchronization.&lt;/p&gt;

&lt;p&gt;This multimodal input model means your prompt isn't just a text string — it's a &lt;strong&gt;configuration object&lt;/strong&gt; where each input has a defined role. The techniques below are essentially patterns for wiring these inputs together effectively.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technique 1: Embed Timeline Markers in Your Prompt — Control Pacing Programmatically
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The pattern:&lt;/strong&gt; Instead of describing a single frame, describe a sequence of timed events. Think of it as keyframe animation expressed in natural language.&lt;/p&gt;

&lt;p&gt;Traditional video generation APIs treat your prompt as a single scene description. MiniMax H3 interprets time-anchored instructions (&lt;code&gt;"at 3s"&lt;/code&gt;, &lt;code&gt;"[0s-4s]"&lt;/code&gt;) as &lt;strong&gt;timeline markers&lt;/strong&gt;, giving you frame-accurate control over pacing and transitions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Working Example: Anime Opening with Music-Synced Prompt
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/fal/status/2083267196625535159" rel="noopener noreferrer"&gt;@fal&lt;/a&gt; generated a 15-second anime opening from 5 static frames. The key insight: &lt;strong&gt;embed music timing directly into the prompt text&lt;/strong&gt; so the model synchronizes visual changes to beat drops.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd8p659yrr7nhdh1yme2m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd8p659yrr7nhdh1yme2m.jpg" alt="@fal anime opening frame: BRIDGE title card with Japanese-English bilingual text, timeline-driven pacing" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Output frame: Title card and subtitles at the opening's climax (~12s). Text is clearly readable — the result of timeline markers + music beat anchoring working in concert.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;画面从黑屏渐入，背景出现城市天际线轮廓。
低频鼓点在第 3 秒敲响，画面随节奏推进到角色特写。
爵士贝斯在第 6 秒加入，镜头拉远展示全景。
弦乐在第 12 秒推向高潮，画面切换为标题卡。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why this works for developers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Time anchors (&lt;code&gt;第 3 秒&lt;/code&gt;, &lt;code&gt;第 6 秒&lt;/code&gt;) act like &lt;strong&gt;keyframes in an animation curve&lt;/strong&gt; — the model interpolates between them&lt;/li&gt;
&lt;li&gt;Each marker pairs a visual action with an audio event, creating deterministic sync&lt;/li&gt;
&lt;li&gt;The model treats missing intermediate frames as interpolation targets, similar to CSS keyframe animations&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Original post: &lt;a href="https://x.com/fal/status/2083267196625535159" rel="noopener noreferrer"&gt;@fal — anime opening&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiu5pqr6kdl7dy040wk84.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiu5pqr6kdl7dy040wk84.png" alt="Original post screenshot @fal" width="800" height="1128"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Technique 2: Dual-Image Role Separation — Lock Identity and Environment Independently
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The pattern:&lt;/strong&gt; Assign each reference image a single responsibility — character OR environment — and state this explicitly in the prompt. Never let one image carry both.&lt;/p&gt;

&lt;p&gt;Character consistency is the hardest problem in AI video generation. MiniMax H3's multi-image input gives you a clean solution: &lt;strong&gt;constraint-based reference assignment&lt;/strong&gt;. Think of it like dependency injection — each input has one job.&lt;/p&gt;

&lt;h3&gt;
  
  
  Working Example: Realistic Thriller Short Film
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/Diplomeme/status/2082770042630943156" rel="noopener noreferrer"&gt;@Diplomeme&lt;/a&gt; built a realistic war thriller using two reference images with strict role separation:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;
&lt;th&gt;Reference 1: Character Lock&lt;/th&gt;
&lt;th&gt;Reference 2: Environment Lock&lt;/th&gt;
&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpub-a7cfa758ec37465bb9e8480fdc886cff.r2.dev%2Fblog%2Fminimax-h3-prompt-guide-20260804%2Fdiplomeme-ref1.jpg" alt="Character reference" width="675" height="1199"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpub-a7cfa758ec37465bb9e8480fdc886cff.r2.dev%2Fblog%2Fminimax-h3-prompt-guide-20260804%2Fdiplomeme-ref2.jpg" alt="Environment reference" width="799" height="450"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Image 1&lt;/strong&gt; → facial features, clothing, hairstyle (identity anchor)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image 2&lt;/strong&gt; → bridge, city skyline, color palette (environment anchor)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then storyboard timecodes drive the sequencing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;参考图 1 为角色 A，保持其面部特征和服装不变。
参考图 2 为城市桥梁环境，作为全片背景基调。

[0s-4s] 角色 A 站在桥头，低头看向河面，逆光剪影。
[4s-8s] 镜头缓慢推近，角色抬头，表情紧张。
[8s-15s] 角色转身奔跑，镜头跟随，城市天际线在背景中展开。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg15givz45yvsyobgigdo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg15givz45yvsyobgigdo.jpg" alt="@Diplomeme output frame: character on rooftop operating antenna, twilight city with smoke" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Output frame: Same character, same city, same dawn color palette — all maintained across shots thanks to the dual-image constraint.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The developer takeaway:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One image per dimension. If you need character + environment + style reference, use 3 images — don't cram everything into one&lt;/li&gt;
&lt;li&gt;Explicitly state &lt;code&gt;"保持其面部特征和服装不变"&lt;/code&gt; (maintain facial features and clothing unchanged) — the model respects these &lt;strong&gt;constraint declarations&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;This is analogous to type hints in code: the more specific your input declaration, the less the model "guesses"&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Original post: &lt;a href="https://x.com/Diplomeme/status/2082770042630943156" rel="noopener noreferrer"&gt;@Diplomeme — realistic thriller short&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Technique 3: Explicit Text Rendering Directives — Get Crisp On-Screen Typography
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The pattern:&lt;/strong&gt; Add a dedicated sentence for text clarity, specifying font style, color, and outline. Treat it as a &lt;strong&gt;rendering hint&lt;/strong&gt; the model needs to be told explicitly.&lt;/p&gt;

&lt;p&gt;Most video generation models produce pseudo-text — shapes that look like letters but aren't legible. MiniMax H3 has genuine text rendering capability, but only if you &lt;strong&gt;opt in&lt;/strong&gt; via prompt. Think of it as enabling a feature flag.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example A: Large Title Text in Anime Openings
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/slash1sol/status/2083214689975034350" rel="noopener noreferrer"&gt;@slash1sol&lt;/a&gt; produced an anime opening with razor-sharp title text behind the character:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmesjbxe00sftx7wib63c.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmesjbxe00sftx7wib63c.jpg" alt="@slash1sol output frame: ARDEN VOSS in large sharp text" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Output: The &lt;code&gt;ARDEN VOSS&lt;/code&gt; text has clean edges and remains legible even during motion — a textbook example of H3's text rendering when properly prompted.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;屏幕中央出现标题文字「XXX」，字体清晰锐利，边缘无模糊，
白色文字带黑色描边，确保在动态画面中保持可读性。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example B: Mobile UI Text for Client Ads
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/0xInk_/status/2083364450900549639" rel="noopener noreferrer"&gt;@0xInk_&lt;/a&gt; used other models for main footage but &lt;strong&gt;switched to MiniMax H3 specifically for scrolling text shots&lt;/strong&gt; — because H3's text output is cleaner and more controllable for UI-type content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwz7vbit6o4i49ar7nx1v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwz7vbit6o4i49ar7nx1v.jpg" alt="@0xInk_ French client ad output frame" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Output: Scrolling French text on a mobile screen, sans-serif, clean, uniform scroll speed. This shot was generated by H3 while the rest of the ad used a different model.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;手机屏幕显示滚动的法语文本，字体为无衬线体，
文字清晰可读，滚动速度均匀，屏幕反光自然。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key directives for text rendering:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always specify: &lt;code&gt;清晰锐利&lt;/code&gt; (clear and sharp), &lt;code&gt;边缘无模糊&lt;/code&gt; (no edge blur), &lt;code&gt;可读性&lt;/code&gt; (readability)&lt;/li&gt;
&lt;li&gt;Declare font style: &lt;code&gt;无衬线体&lt;/code&gt; (sans-serif) vs &lt;code&gt;衬线体&lt;/code&gt; (serif)&lt;/li&gt;
&lt;li&gt;Declare color + outline: &lt;code&gt;白色文字带黑色描边&lt;/code&gt; (white text with black outline)&lt;/li&gt;
&lt;li&gt;For mixed-model pipelines: use H3 only for text-heavy shots, other models for non-text scenes&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Original posts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://x.com/slash1sol/status/2083214689975034350" rel="noopener noreferrer"&gt;@slash1sol — anime OP title&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/0xInk_/status/2083364450900549639" rel="noopener noreferrer"&gt;@0xInk_ — French client ad&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Technique 4: Multimodal Input Orchestration — Assign Each Input a Role
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The pattern:&lt;/strong&gt; Map each input to a specific output dimension: images → visual content, video → motion/rhythm, audio → mood/atmosphere. Declare each role in the prompt.&lt;/p&gt;

&lt;p&gt;This is where MiniMax H3's Omni capability really shines. The model can process images, video, and audio simultaneously, but only if you &lt;strong&gt;tell it what each input is for&lt;/strong&gt;. Otherwise it guesses — and guessing leads to incoherent output.&lt;/p&gt;

&lt;p&gt;Think of it like passing arguments to a function with unlabeled parameters. Label your arguments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example A: 6-Image Asset Composition + Video as Rhythm Template
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/influencer_seo/status/2082599462233633125" rel="noopener noreferrer"&gt;@influencer_seo&lt;/a&gt; used a particularly clean separation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;6 reference images&lt;/strong&gt; → each is a visual "building block" for one shot&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1 reference video&lt;/strong&gt; → not for visuals, but purely for editing rhythm and transition timing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9qroix1d998mfhg0369y.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9qroix1d998mfhg0369y.jpg" alt="@influencer_seo output frame: 6-image + video rhythm synthesis" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;参考图 1-6 分别为 6 个镜头的视觉参考。
参考视频用于提取剪辑节奏和转场风格，不要直接复制画面。
整体节奏：前 5 秒慢推，中间 7 秒快切，最后 3 秒定格。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example B: Full Omni Workflow
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/YaseenK7212/status/2083211322129293410" rel="noopener noreferrer"&gt;@YaseenK7212&lt;/a&gt; demonstrated the complete Omni pipeline: text → intent, images → visuals, audio → atmosphere, video → motion. His key insight: &lt;strong&gt;the value of multimodal input isn't "more data" — it's "more consistent output."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feqhs5djilaw79mr7ycr7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feqhs5djilaw79mr7ycr7.jpg" alt="@YaseenK7212 output frame: Omni multimodal demo" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Example C: After Effects Motion Proxy
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/seiiiiiiiiiiru/status/2083388000726396964" rel="noopener noreferrer"&gt;@seiiiiiiiiiiru&lt;/a&gt; created a rough AE graphic animation and fed it as a motion reference. The model doesn't copy the AE visuals — it extracts the &lt;strong&gt;motion vector&lt;/strong&gt; (direction, speed, easing) and applies it to the static reference image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvz14132vdmcdvngwqss6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvz14132vdmcdvngwqss6.jpg" alt="@seiiiiiiiiiiru output frame: AE motion proxy driving static image" width="800" height="1062"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;参考视频为运动参考，提取其运动节奏和方向。
画面内容以参考图为准，保持静帧的构图和色调。
按照参考视频的节奏让画面缓慢运动。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Input role mapping (use this as a template):&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;Prompt Declaration&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;Visual content / character identity&lt;/td&gt;
&lt;td&gt;`参考图为视觉参考，保持构图和色调`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Video&lt;/td&gt;
&lt;td&gt;Motion / rhythm / transitions&lt;/td&gt;
&lt;td&gt;`参考视频用于提取运动节奏，不要复制画面`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audio&lt;/td&gt;
&lt;td&gt;Mood / pacing / music sync&lt;/td&gt;
&lt;td&gt;`参考音频用于控制整体氛围和节奏`&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Original posts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://x.com/influencer_seo/status/2082599462233633125" rel="noopener noreferrer"&gt;@influencer_seo — 6-image + video synthesis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/YaseenK7212/status/2083211322129293410" rel="noopener noreferrer"&gt;@YaseenK7212 — Omni commercial workflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/seiiiiiiiiiiru/status/2083388000726396964" rel="noopener noreferrer"&gt;@seiiiiiiiiiiru — AE motion proxy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Technique 5: Single-Image Product Ads — Prompt Template for E-Commerce Pipelines
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The pattern:&lt;/strong&gt; One product image + a structured prompt with camera movement instructions + timeline markers = a 15-second commercial ad. No filming crew, no post-production.&lt;/p&gt;

&lt;p&gt;This is the technique most directly applicable to automated content pipelines. If you're building a product that generates ad videos from product photos, this is your base template.&lt;/p&gt;

&lt;h3&gt;
  
  
  Working Example: Single Image → 15-Second Product Ad
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/ai_for_success/status/2083377048723304519" rel="noopener noreferrer"&gt;@ai_for_success&lt;/a&gt; demonstrated the complete flow from a single product image to a polished 15-second ad:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2dbl7isgq4z63dcgqru4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2dbl7isgq4z63dcgqru4.jpg" alt="@ai_for_success output frame: underwater smartwatch product shot" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Output: Commercial-grade product shot — coral, sea turtle, and watch in frame, watch face text legible. All from one input image.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;产品图作为主视觉参考。

镜头从产品正面开始，缓慢环绕拍摄，展示产品细节。
背景为浅灰色渐变，光线柔和，营造高级质感。
第 8 秒镜头推近到产品 LOGO 特写。
第 12 秒拉远，展示产品全貌，背景出现品牌标语。

整体风格：简洁、高级、商业广告质感。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creator &lt;a href="https://x.com/thisismariaa25/status/2083194269867663690" rel="noopener noreferrer"&gt;@thisismariaa25&lt;/a&gt; applied the same pattern to a menu concept image, producing a vertical food video for local business marketing:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fee4106q3ogmihlj501fg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fee4106q3ogmihlj501fg.jpg" alt="@thisismariaa25 output frame: summer menu vertical video" width="800" height="1422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reusable prompt template for product ads:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[产品图] 作为主视觉参考。

镜头从产品正面开始，缓慢环绕拍摄，展示产品细节。
背景为 [背景描述]，光线 [光线描述]。
第 [N] 秒镜头推近到 [重点部位] 特写。
第 [M] 秒拉远，展示产品全貌。

整体风格：[风格关键词]。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;For vertical (9:16) output:&lt;/strong&gt; append &lt;code&gt;竖屏&lt;/code&gt; or &lt;code&gt;9:16&lt;/code&gt; to the prompt.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Original posts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://x.com/ai_for_success/status/2083377048723304519" rel="noopener noreferrer"&gt;@ai_for_success — single-image product ad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/thisismariaa25/status/2083194269867663690" rel="noopener noreferrer"&gt;@thisismariaa25 — summer menu vertical&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Technique 6: Style Composition — Combine 2-3 Style Tags for Novel Aesthetics
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The pattern:&lt;/strong&gt; Don't use a single style label. Compose 2-3 specific style keywords, add color grading directives, and reference well-known visual styles by name.&lt;/p&gt;

&lt;p&gt;"Anime style" gives you generic anime. "赛璐珞着色 + 新海诚式光影 + 丁达尔效应" gives you something nobody else is producing. MiniMax H3's style encoder responds strongly to &lt;strong&gt;specific, composable style tokens&lt;/strong&gt; — similar to how SD models respond to weighted prompt tokens.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example A: Fashion Editorial × Cyber-Grunge × Rap MV
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/Strength04_X/status/2083380767347093653" rel="noopener noreferrer"&gt;@Strength04_X&lt;/a&gt; fused three visual languages:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fybscks7iswsxbzp67wgm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fybscks7iswsxbzp67wgm.jpg" alt="@Strength04_X output frame: fashion editorial × cyber-grunge MV" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;时尚 editorial 质感 + cyber-grunge 字体 + 地下说唱 MV 剪辑节奏。
画面在高端时装秀场和地下停车场之间切换。
字体风格：粗体无衬线，带霓虹光晕。
色调：高对比，暗部偏青，亮部偏橙。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example B: Photo-to-Illusion Morph
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/aichof21/status/2083368074091339802" rel="noopener noreferrer"&gt;@aichof21&lt;/a&gt; used a real photo as reference and prompted a &lt;strong&gt;continuous style transition&lt;/strong&gt; — realism dissolving into watercolor illustration:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc4hte3o4leju74apray0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc4hte3o4leju74apray0.jpg" alt="@aichof21 output frame: photo-to-illustration morph" width="800" height="1422"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;参考图为实拍照片。
画面从写实照片开始，逐渐过渡为手绘插画风格。
过渡过程中保持构图不变，只改变画面的笔触和色彩。
最终画面为水彩插画风格，保留照片的光影关系。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example C: Anime with Specific Art Direction
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/hafuma/status/2083377862602608830" rel="noopener noreferrer"&gt;@hafuma&lt;/a&gt; went beyond "anime style" with precise art direction:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqz915kc2f0xq6rvcrtnw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqz915kc2f0xq6rvcrtnw.jpg" alt="@hafuma output frame: anime short film" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;日式动画风格，赛璐珞着色，线条清晰。
角色表情丰富，动作流畅。
背景为新海诚式光影，天空有丁达尔效应。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Style composition formula:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[渲染风格] + [字体/线条风格] + [色调/调色] + [知名参考风格名]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Pro tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Specific color grading (&lt;code&gt;暗部偏青，亮部偏橙&lt;/code&gt;) is 100× more effective than vague descriptors (&lt;code&gt;好看&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Naming real artists/styles (&lt;code&gt;新海诚式&lt;/code&gt;, &lt;code&gt;赛璐珞着色&lt;/code&gt;) gives the model a concrete reference point&lt;/li&gt;
&lt;li&gt;Camera movement + style composition together create the "cinematic" feel — don't rely on style alone&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Original posts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://x.com/Strength04_X/status/2083380767347093653" rel="noopener noreferrer"&gt;@Strength04_X — fashion × rap MV&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/aichof21/status/2083368074091339802" rel="noopener noreferrer"&gt;@aichof21 — photo × illustration fusion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/hafuma/status/2083377862602608830" rel="noopener noreferrer"&gt;@hafuma — anime original short&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Technique 7: Storyboard Timecodes — Treat the Prompt as a Shot List
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The pattern:&lt;/strong&gt; Split the 15-second output into 3-5 time segments. Each segment gets one action or camera change. Use &lt;code&gt;[0s-3s]&lt;/code&gt; format with no gaps.&lt;/p&gt;

&lt;p&gt;This is the most powerful technique and the closest to "programming" a video. When you write timecodes into the prompt, the model stops &lt;strong&gt;interpreting&lt;/strong&gt; and starts &lt;strong&gt;executing&lt;/strong&gt;. You're no longer hoping for a good output — you're specifying it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example A: Jet Formation Aerial
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/Kuriyama890/status/2082710190823231717" rel="noopener noreferrer"&gt;@Kuriyama890&lt;/a&gt; produced a three-jet formation video with smooth, precise shot transitions:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa8u1ywsglpuwm6mkm74c.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa8u1ywsglpuwm6mkm74c.jpg" alt="@Kuriyama890 output frame: jet formation + cloud text" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Output: Three jets leaving contrails spelling "is coming" — storyboard timecodes + text rendering firing simultaneously.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[0s-3s] 广角航拍，三架战斗机以 V 字编队飞过雪山。
[3s-7s] 切换到座舱特写，飞行员戴上头盔。
[7s-11s] 编队拉升，喷出白色尾迹。
[11s-15s] 仰角镜头，三架飞机在天空中拉出「H3」字样。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example B: Story Trailer Structure
&lt;/h3&gt;

&lt;p&gt;Creator &lt;a href="https://x.com/john_my07/status/2083207002516533325" rel="noopener noreferrer"&gt;@john_my07&lt;/a&gt; demonstrated H3's combined strength in prompt following, text rendering, and camera control by encoding a classic trailer structure:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fylx1p3tfrabku95ni3hv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fylx1p3tfrabku95ni3hv.jpg" alt="@john_my07 output frame: story trailer" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[0s-4s] 黑屏，白色字幕淡入片名。
[4s-8s] 快速闪切 3 个场景镜头，每个约 1.3 秒。
[8s-12s] 主角正面特写，缓慢推近。
[12s-15s] 黑屏，出现上映日期文字。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Timecode rules (treat these as constraints):&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;
&lt;th&gt;Rule&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Each segment: 3-5 seconds&lt;/td&gt;
&lt;td&gt;Too short → model can't complete the action; too long → pacing drags&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;One action per segment&lt;/td&gt;
&lt;td&gt;Multiple actions per segment cause the model to "average" them&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No gaps between timecodes&lt;/td&gt;
&lt;td&gt;Gaps create dead frames or unpredictable interpolation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use `黑屏渐入` / `淡出黑屏` at edges&lt;/td&gt;
&lt;td&gt;Creates cinematic fade-in/fade-out framing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Format: `[0s-3s]`, `[3s-7s]`, `[7s-15s]`&lt;/td&gt;
&lt;td&gt;Consistent format improves model adherence&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Original posts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://x.com/Kuriyama890/status/2082710190823231717" rel="noopener noreferrer"&gt;@Kuriyama890 — jet formation aerial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/john_my07/status/2083207002516533325" rel="noopener noreferrer"&gt;@john_my07 — story trailer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Additional Cases Worth Studying
&lt;/h2&gt;

&lt;p&gt;Beyond the 7 core techniques, these posts showcase edge cases and advanced patterns:&lt;/p&gt;

&lt;h3&gt;
  
  
  Cinematic Multi-Shot Test — &lt;a href="https://x.com/maxescu/status/2082563241062875568" rel="noopener noreferrer"&gt;@maxescu&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;~280 likes. The most detailed storyboard prompt we found — specifies timeline, camera physics, lighting, and dialogue for every shot. If you want to see how far you can push H3's prompt adherence, start here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flq3ph4ra2p3mx1un2bdj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flq3ph4ra2p3mx1un2bdj.jpg" alt="@maxescu output frame: cinematic multi-shot test" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Japanese Spec Sheet + Demo — &lt;a href="https://x.com/seiiiiiiiiiiru/status/2082558386441461989" rel="noopener noreferrer"&gt;@seiiiiiiiiiiru&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Benchmark case from the Japanese community. Combines a product specification breakdown with live demo output.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpei4dbsw1xbzsso7c4xn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpei4dbsw1xbzsso7c4xn.jpg" alt="@seiiiiiiiiiiru output frame: Japanese spec explanation" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PixVerse Platform Demo — &lt;a href="https://x.com/PixVerse_/status/2083206866314936372" rel="noopener noreferrer"&gt;@PixVerse_&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Product launch–quality output. Useful as a style ceiling reference for your own experiments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbpm7ws26yi7j7ukx1lly.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbpm7ws26yi7j7ukx1lly.jpg" alt="@PixVerse_ output frame: platform demo" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;
&lt;th&gt;Case&lt;/th&gt;
&lt;th&gt;Creator&lt;/th&gt;
&lt;th&gt;Why It's Useful&lt;/th&gt;
&lt;th&gt;Link&lt;/th&gt;
&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cinematic multi-shot test&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/maxescu" rel="noopener noreferrer"&gt;@maxescu&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Ultra-long prompt with every parameter specified&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/maxescu/status/2082563241062875568" rel="noopener noreferrer"&gt;Post&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Japanese spec + demo&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/seiiiiiiiiiiru" rel="noopener noreferrer"&gt;@seiiiiiiiiiiru&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;JP community benchmark&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/seiiiiiiiiiiru/status/2082558386441461989" rel="noopener noreferrer"&gt;Post&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vertical lip-sync&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/qaHEqxyzUF99214" rel="noopener noreferrer"&gt;@qaHEqxyzUF99214&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Lip-sync capability test&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/qaHEqxyzUF99214/status/2083351013940138033" rel="noopener noreferrer"&gt;Post&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Platform demo&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/PixVerse_" rel="noopener noreferrer"&gt;@PixVerse_&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Production-quality reference&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/PixVerse_/status/2083206866314936372" rel="noopener noreferrer"&gt;Post&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pure text-to-2K 15s&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/MrDavids1" rel="noopener noreferrer"&gt;@MrDavids1&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;T2V baseline test (no images/video input)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/MrDavids1/status/2082554899423019442" rel="noopener noreferrer"&gt;Post&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MV production&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/apilpirman" rel="noopener noreferrer"&gt;@apilpirman&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Music video workflow exploration&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x.com/apilpirman/status/2083357615904718960" rel="noopener noreferrer"&gt;Post&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  The Golden Formula: A Complete Prompt Template
&lt;/h2&gt;

&lt;p&gt;All 7 techniques collapse into one composable structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Timeline Markers] + [Camera Movement] + [Scene Content] + [Style/Color Grading] + [Multimodal Input Roles]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here's a complete, production-ready prompt example combining every technique:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;参考图 1 为角色 A（女性，黑色短发，白色衬衫）。
参考图 2 为办公室环境（落地窗，城市天际线）。
参考视频用于提取运镜节奏。

[0s-4s] 中景，角色 A 坐在办公桌前，低头看电脑，自然光从落地窗洒入。
[4s-8s] 角色抬头，表情惊讶，镜头缓慢推近到面部特写。
[8s-12s] 角色站起身，走向落地窗，镜头跟随。
[12s-15s] 角色背影站在窗前，城市天际线在窗外展开，画面定格。

整体风格：电影感，色调偏冷，浅景深，自然光线。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What makes this prompt work:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Input role declarations&lt;/strong&gt; at the top — the model knows what each reference image does&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No-gap timecodes&lt;/strong&gt; — every second of the 15s output is accounted for&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One action per segment&lt;/strong&gt; — clean, deterministic shot transitions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explicit style directives&lt;/strong&gt; — &lt;code&gt;电影感&lt;/code&gt; + &lt;code&gt;色调偏冷&lt;/code&gt; + &lt;code&gt;浅景深&lt;/code&gt; + &lt;code&gt;自然光线&lt;/code&gt; = 4 composable style tokens&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reference video declared for motion only&lt;/strong&gt; — prevents the model from copying the video's visuals&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Practical Recommendations for Pipeline Integration
&lt;/h2&gt;

&lt;p&gt;If you're integrating MiniMax H3 into a production workflow, keep these principles in mind:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Storyboard first, details second.&lt;/strong&gt; Split the 15 seconds into 3-5 segments. Define the core action for each segment before adding style or camera details.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;One image, one job.&lt;/strong&gt; Character image, environment image, style reference image — keep them separate. Combining roles in a single reference image degrades consistency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Name your styles explicitly.&lt;/strong&gt; "赛璐珞着色，新海诚式光影" outperforms "anime style" every time. The model's style encoder has stronger associations with specific named styles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Label every multimodal input.&lt;/strong&gt; Don't make the model guess whether a video input is for visuals or for motion. Declare &lt;code&gt;参考视频用于提取运动节奏，不要复制画面&lt;/code&gt; and remove the ambiguity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use H3's text rendering strategically.&lt;/strong&gt; If your video needs titles, subtitles, or UI text, route those shots to H3 even if the rest of the pipeline uses a different model. It's currently one of the strongest models for readable on-screen text.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Iterate on the timecode structure, not the prose.&lt;/strong&gt; If the output doesn't match your vision, check the timecodes first — wrong pacing or gaps between segments are the most common failure mode.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;All output frames and tweet screenshots in this post are from the original creators linked above. Click through to their X posts to see the full videos and prompt details.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you'd like to try MiniMax H3, visit: &lt;a href="https://minimaxh3.art/" rel="noopener noreferrer"&gt;https://minimaxh3.art/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
