19 | Don't make fabric look too clean. Prompt design for linen product photography using weave, wrinkles, and gravity | Airi-chan
Target Audience
People who want to generate EC/SNS images for apparel, miscellaneous goods, bedding, etc. People who want to fix the problem where fabric products look like plastic, paper, or thin boards.
What you will gain
You will be able to specify fabric-like qualities by breaking them down into weave, wrinkle sources, gravity, thickness of double-layered parts, and reflectivity, rather than relying solely on the "material name." You can use JSON and Jinja2 that can be substituted for items ranging from shirts to bags, aprons, and bedding, as well as derivations by material/medium and four types of correction prompts.
Introduction
Even though I wrote "high-quality linen," a smooth, thin board appeared. This is a common discrepancy in image generation.
Simply weakening the gloss here might make it look more like paper. The key insight is to reconstruct the fabric not as a "colored surface," but as an object where threads intersect, hang by gravity, and become thicker only at the sewn parts. This time, I will divide the realism that makes you want to touch it into five designs.
Design Intent
1. Return the weave to the surface
Linen shows warp and weft threads, with slight differences in thread thickness and short knots. If everything is the same thickness and spacing, it looks like a vector pattern, so I place small irregularities within the regularity.
2. Create wrinkles from gravity and support points
Instead of saying "many wrinkles," I specify where it is supported and in which direction it is pulled. If a wall hook and a shoulder are the support points, the main wrinkles will extend downward. Weak diagonal tension is created between buttons, and short wash wrinkles are born at the cuffs.
3. Add thickness to double-layered parts
Collars, plackets, cuffs, and hems have overlapping fabric. If these are single layers, they look like paper. I do not add thickness to the whole, but limit it only to the places necessary for sewing.
4. Determine reflectivity instead of erasing gloss
Even matte fabric receives light. However, it does not shine as a white dot, but the brightness of the wide surface changes gently. I specify not only a prohibition on gloss but also soft diffused light and low reflectivity as a set.
5. Do not leave any perfection behind
I leave a small amount of wall unevenness, wood grain, left-right asymmetry of the fabric, and short fuzz. There is no need to make everything rough. By placing small irregularities with specific roles, you can bring it closer to reality without making it dirty.
Example Commentary
The example is a product photo of a fictional unbleached linen shirt hung on an unpainted oak hook. I apply diffused light from a cloudy sky from the upper left, and leave the left side as a margin for text. While suppressing reflection, I make the material readable through the weave, vertical wrinkles from support points, and the thickness of the collar and cuffs.

Complete version of the natural language prompt
A realistic 4:5 vertical editorial product photograph of a single washed, natural-colored long-sleeved linen shirt, hung on a simple unpainted oak hook attached to a warm, light gray lime-washed wall, as a completely fictional plain product. Do not use people, mannequins, or hangers. The shirt is buttoned up, positioned slightly to the right of the center of the frame, leaving ample negative space on the left.
The fabric is assumed to be medium-weight 100% linen, showing the intersection of warp and weft threads, threads of slightly different thicknesses, short slubs, and fine fuzz to an extent that is readable upon close inspection. Do not make the surface smooth like a uniform board, paper, plastic, silk, or satin. Use matte fabric with low reflection where brightness changes gently across the surface.
Let the wrinkles follow gravity and the construction of the garment. Include long vertical wrinkles running from the shoulders and the support point of the hook to the hem, faint diagonal tension wrinkles between the buttons, and a small amount of short, broken wash wrinkles at the elbows and cuffs. Do not create wrinkles of the same width and interval, unrelated swirls, or overly deep creases. Give the collar, placket, cuffs, and hem a natural thickness where the fabric is doubled, and keep the seams subtle. Line up only five plain shell-style buttons at the correct intervals.
Apply soft, diffused light from a cloudy sky through a large window on the upper left, and use a weak white reflector from the front right. Do not use strong highlights, gloss, or rim lighting. Eye-level, 50mm lens style, with natural focus on the entire shirt. Use only natural, warm light gray, pale oak, and a small amount of charcoal, keeping saturation and contrast low. Retain natural grain as if shot with a real camera, small irregularities in the wall, wood grain, and slight asymmetry in the fabric.
Do not include text, labels, logos, brands, product tags, patterns, additional clothing, people, hands, faces, mannequins, mirrors, plants, accessories, irons, steam, water droplets, watermarks, resemblance to existing products, excessive beautification, perfect symmetry, plastic, paper, silk, satin, strong gloss, or CG/3D expressions.
JSON variable examples and Jinja2 templates
The 16 JSON items and Jinja2 template are included in the daily prompt original. The variables are usage, background, product, material, weave, wrinkles, gravity, construction, composition, light, color scheme, camera, realism, negative space, ratio, and prohibitions. Render with all variables filled and confirm that there are no unreplaced variables or empty values.
用途は「{{ use_case }}」。{{ scene }}で、{{ subject }}を主役にした、縦型{{ aspect_ratio }}のリアルな商品写真。
素材は{{ material }}。表面には{{ weave }}を、近づけば読める程度に見せる。しわは{{ wrinkle_logic }}とし、{{ gravity }}。同じ幅・同じ間隔のしわや、重力と無関係な渦巻きは作らない。縫製は{{ construction }}。
構図は{{ composition }}。{{ negative_space }}。光は{{ lighting }}。配色は{{ palette }}。{{ camera }}。{{ realism }}。
禁止事項:{{ constraints }}。Replacement variables and derivative versions
Usage: EC product details, SNS ads, note headings, catalog backgrounds
Product: Shirt, tote bag, apron, cushion cover, bedding
Composition: Wall-mounted, chair-draped, flat-lay, close-up. However, always set a support point
Size: 4:5, 1:1, 3:2, 16:9
Color scheme: Natural x light gray, indigo x stone color, sage x oak, charcoal x off-white
Material: Linen, cotton, wool, denim. Replace weave, fuzz, stiffness, and reflectance
Failure examples and correction prompts
Plasticization
Remove mirror-like highlights and uniform smooth surfaces, and add warp and weft threads, short slubs, fine fuzz, and low reflectance. Correct the gloss to matte linen where the surface brightness changes gently rather than shining at points.
Paperization
Restore the thickness of the double fabric to the collar, placket, cuffs, and hem, and create soft curved surfaces that continue from the support point in the direction of gravity. Remove sharp paper creases, flat board-like surfaces, and hard corners.
Excessive wrinkles
Leave only 3 to 5 main wrinkles running from the shoulders and hooks to the hem, a small amount of weak diagonal wrinkles between the buttons, and a few short wash wrinkles at the cuffs. Eliminate uniform wrinkles, irrelevant swirls, and deep crease lines.
Sewing defects
Correct only the collar, placket, cuffs, hem, and buttons. Place one sleeve on each side, and five buttons at equal intervals on the same placket, removing overlapping collars, twisted seams, and floating buttons.
Summary
The key to making fabric look realistic is not just writing "linen," but specifying the thread intersections, support points, gravity, double-layered parts, and reflectivity separately.
Instead of just removing the gloss if it looks too smooth, or adding more wrinkles if there aren't enough, look at which physical information is missing before you fix it. First, pick one fabric product you have on hand and try building it from the support points and the direction of the wrinkles🧵
\ Read from the beginning of this series /
\ See the next work here /
