
I had M.U.S.C.L.E. Men and Monsters in My Pocket toys as a kid. Small, strange characters with enough personality to make a whole world out of a handful of them. I wanted to make a few of my own.
To turn my AI-generated images into 3D-printed toys, I made front, side, and back references in plnty.app, generated a detailed GLB with Meshy through Higgsfield, repaired it into a printable STL with Polymend, and sliced it in Bambu Studio for printing. The result was two little gray figures in my hand. The same characters now tumble out of the top drawer on this website.
I turned the successful image-to-model process into my 2D to 3D Print skill, so the workflow could be repeated with the next character. The downloadable skill is the practical companion to this article: it carries the generation settings, failure checks, and Blender inspection steps, and it now ends with print-ready files instead of a GLB that still needs converting and repairing by hand.
The useful part of this experiment is that the image was a starting point. Once the character existed as a three-dimensional mesh, I could make different versions for different jobs.
The toys I wanted to make
I was after that chunky pocket-figure feeling: oversized hands, heavy boots, a face you could recognize immediately, and lots of little sculpted details. The characters are new designs inspired by the toys I grew up with. The fish king, boar warrior, and cyclops belong together without being the same figure with a different head.
The initial salmon-pink treatment helped establish a consistent molded-toy look. Later, the hot pink, green, and blue experiments gave the digital versions another direction. The actual prints shown here are gray. The material, scale, and surface finish of a physical print are separate decisions from the color of an AI image.
Start with three views
I used plnty to develop the characters and make front, side, and back views. The screenshot below shows that process for the boar warrior; the three individual images below it are the fish king references I used for its reconstruction.

Front view

Side view

Back view

The views need to agree on the things that define the character: its pose, proportions, clothing, head shape, and accessories. If a crown changes between angles or an arm moves to a different position, the reconstruction has conflicting evidence. More images are only useful when they describe the same object. A fourth image can also be a close-up of one feature, which I tested later with the cyclops.
I kept the backgrounds simple and the whole figure visible. I supplied the original image files rather than small chat previews. These are generated views, so I treated them as a design reference rather than precise measurements of an existing object.
What failed before it worked
The path above sounds much cleaner than it felt at the beginning. My first request was to turn the references into an STL through Higgsfield. If that was not possible, I suggested making a GLB and exporting it from Blender. I spent several attempts trying to reach the printable-file end of the process before I had a model that looked right.
I did produce STL files. I was not happy with the figures inside them. That distinction matters if you are trying this yourself: a successful export and a convincing reconstruction are different milestones.
A modeled approximation missed the character
The first route used Blender geometry through Higgsfield’s 3D Jutsu to construct an approximation of the fish king. It gave me a model and an STL, but the sculpt did not capture the supplied character accurately enough. I had reused an approach that worked for simpler desk objects on the website. The face, fingers, fins, and layered armor of this organic figure asked much more of it.
The lesson was to check how the geometry was actually being made. Working inside a 3D tool did not mean I was using image-to-3D reconstruction. Exporting or repairing that approximation could not recover the likeness it was missing.
Reference textures hid missing sculpted detail
Next, I tried a model built from the front silhouette, with rounded depth and front/back reference images projected onto it. It could suggest the figure from certain views, but the depth was inferred. Much of the face and armor detail lived in the images on the surface rather than in the mesh.
That was especially unsuitable for the STL handoff. STL carried the underlying shape and left those photographic details behind. The saved checks reported one connected component and zero non-manifold edges in the exported mesh. Those were useful structural checks, but they did not tell me whether the figure resembled the reference. A mesh can pass those checks and still be the wrong model.
Front view

Side view

Compare these views with the original character references above. The side view is the giveaway: the painted face and armor do not turn into the rounded, fully sculpted figure I wanted. This is why I would inspect a full rotation before spending time on the print export.
The turning point was changing the immediate goal
I decided to focus on creating a very accurate GLB and stop worrying about the STL for the moment. The improvement came when I switched to actual Meshy multi-image reconstruction through Higgsfield and inspected the result from several angles. Merely changing the output extension would not have solved the earlier problems; I needed better source geometry.
That became the order I would recommend repeating: judge the likeness and volume first, preserve the detailed GLB, then make the print export. At the time I handled the accepted model’s STL export manually in Blender and repaired it in a separate tool. It was not a one-click Higgsfield-to-printer success; it is now, because those two steps became Polymend and the skill runs it.
Tool access and failed jobs were separate problems
There was also confusion about which tool could run the generation. The connector listed Meshy in its model catalog, but its image-generation call rejected the 3D model. That was a mismatch between the tool I was calling and the job I wanted to submit. The official Higgsfield CLI provided the working route.
Even after the fish king succeeded, the cyclops failed in another session. It later succeeded with the same three source images and geometry settings after fresh uploads and a shorter material prompt. The successful attempt also happened later, so I cannot say whether the uploads, wording, or a temporary provider problem made the difference. I did not establish that those failures were caused by insufficient credits.
The useful habit is to save the job ID, inspect its status, and check charges or refunds before trying again. A timeout while waiting is not proof that a job failed. The skill below records those checks, keeps material prompts concise, and finishes with the print preparation. It preserves what I learned without presenting an unexplained retry as a guaranteed fix.
The skill behind the workflow
Once I had a result I liked, I wanted to preserve the process—not just the finished model. I packaged it as 2D to 3D Print, an authored skill that an AI agent can follow when I bring it another set of character references. The boar and cyclops gave me a chance to reuse that process and improve the instructions when something failed.
Try the 2D to 3D Print workflow
Download the skill for the generation settings, detail recipes, failure checks, Blender inspection steps, and the print-file step used here.
The ZIP includes the workflow instructions, setup guidance for Claude Code and local ChatGPT desktop/Codex work, a Blender inspection helper, and a copy of Polymend’s repair engine. It keeps six parts of the job together:
- Check the route and inputs. Use separate, consistent reference images; confirm that the available tool can submit a real Meshy 3D generation through Higgsfield. If the connector only lists the model, use the supported official CLI route.
- Generate the detailed source. Validate the current model settings, request a textured GLB, preserve the reference pose, and save the job record. Prioritize the character’s likeness before making a small web version or a print export.
- Push detail when three views fall short. Add a close-up of one feature as the fourth reference, then choose the texture recipe or the clean-detail recipe from the tests below.
- Handle failures deliberately. Inspect the existing job and credit transactions before retrying. Keep the original records and avoid duplicate paid submissions when a wait times out.
- Inspect the result in Blender. Check front, side, back, and three-quarter views, preserve the original GLB, and describe visible differences from the references. The inspection report also counts the open and non-manifold edges that a slicer will flag.
- Make the print files. Repair the mesh and write an STL and a 3MF at the height you asked for, on your own machine, with the bundled Polymend step. The agent reports what was fixed and anything it left alone.
To use it, download and unzip the package, follow its README for your agent’s setup, and attach the original reference files. A starting request is:
Use the 2D to 3D Print skill to create a detailed, textured GLB from these front, side, and back references. Preserve the pose and material, inspect the result from all four angles in Blender, and make print files at 43.2 mm.
You’ll need your own Higgsfield account and credits, a supported generation tool or authenticated CLI, Blender, and Node.js 20 or newer, in an environment where the agent can work with local files. The download contains instructions, a readable inspection helper, and Polymend’s engine as readable JavaScript; it does not include credentials, source images, generated models, or those applications.
The skill ends with a reviewed GLB and the print files made from it. The website’s simplified models are a separate step. The detailed source serves either destination.
From images to a real mesh
The result I liked came from Meshy’s multi-image-to-3D generation through Higgsfield. In my setup, the successful submission used Higgsfield’s official CLI and the multi_image_to_3d route. The official CLI documentation is the starting point for that route.
I deliberately focused on getting a detailed, convincing GLB first. Print cleanup came later. The recorded settings for the accepted fish king were:
| Setting | My run |
|---|---|
| Inputs | Separate front, side, and back images |
| Texture / PBR materials | Enabled |
| Remeshing | Enabled, triangle topology |
| Target polygon count | 300,000 |
| Symmetry | Automatic |
| Rigging / animation | Disabled |
The texture prompt asked for the salmon-pink molded-vinyl material, a softly glossy finish, and no extra colors, lettering, floor, or background. The images carried the shape and pose. Higgsfield identified the provider as Meshy, but did not expose an underlying Meshy version, so I cannot give a more specific model name.
The accepted fish king contained 312,111 triangles, with embedded 2048-pixel material images, in a roughly 20 MB GLB. That was close to my target rather than exactly 300,000 triangles. I inspected front, side, back, and three-quarter renders in Blender. The crown, hands, face, armor, and skirt had real depth, although some proportions and fine details still differed from the references.
Testing close-ups, textures, and prompts
The cyclops showed me the potential limit of only three photo references. Its first GLB had the right silhouette, but the eye was a plain dome with no iris, the teeth were fused into bars, and the skin was smooth. I also had close-up images of the face and skin, so I ran three more generations to see whether they could carry that detail into the model.
Front view

Side view

Back view

Face close-up

Skin close-up

The generator accepts up to four reference images. Every test used the front, side, and back views with the face close-up as the fourth. What changed was how I described the surface.
| Run | Surface input | Eye and teeth | Skin |
|---|---|---|---|
| Original | Three views and a short prompt; no close-ups | Plain dome; fused teeth | Smooth |
| Test A | Skin close-up as a texture image; no prompt | Raised iris and pupil; separate rounded teeth | Wrinkles and grain |
| Test B | The same texture image plus a short prompt | Pupil; separate teeth | Smooth |
| Test C | A detailed 557-character prompt; no texture image | Pupil; separate pointed teeth | Smooth, with bolder features |
Original

Test A

Test B

Test C

Original

Test A

Test B

Test C

What the tests showed
The face close-up did the most. All three tests that included it produced a pupil and separate teeth. The original, made from three views alone, had neither. The extra image did not disturb the pose or proportions.
The texture image and the prompt compete. Test A, with the skin close-up and no prompt, was the only model with grain and wrinkles in the mesh. When I added a short prompt in Test B, that grain was gone and the model came back in the salmon color the prompt named rather than the hot pink of the image. Meshy’s documentation says that when both are supplied, the prompt is used to texture the model, which matches what I saw.
A detailed prompt changed the character of the surface, not its texture. Test C did not add skin grain. Its surfaces came out cleaner, and the beads, belt medallion, seams, and boot bands read more strongly to me. That is my impression from the renders. A rough measurement of relief depth across the four meshes found them within a few percent of each other.
Prompt length mattered. My first detailed prompt was 772 characters. That job was rejected a few seconds after it started, and the credits were refunded. The same job completed at 557 characters. Meshy documents an 800-character limit, so I cannot say for certain that length was the cause.
I had an AI agent draft the prompt from the reference photos. The rules were to lead with the material, describe raised detail rather than pose, and leave out color, because a single-color print ignores it:
Molded soft rubber toy, satin finish, crisp raised relief. One large domed eyeball with a clearly raised iris ring and small central pupil bump, framed by thick folded eyelids. Open mouth with a thick curled lip holding separate rounded teeth and long curved tusks with deep gaps between them, never fused. Whole body covered in fine leathery pebbled reptile grain of small irregular cells and shallow creases. Raised studs, bead necklace, banded forearms, scalloped skirt, flower medallion belt, studded boot bands. No added lettering, background or floor.
Original

Test A

Test B

Test C

Two recipes I would reuse
Both start with three views and one feature close-up as the fourth image. After that I would pick one route, because they cannot be combined in a single job.
| Aspect | Texture recipe | Clean-detail recipe |
|---|---|---|
| Surface input | A close-up photo of the surface as the texture image; no prompt | A detailed prompt under about 550 characters; no texture image |
| Result in my test | Grain and wrinkles in the mesh (Test A) | Cleaner surfaces and more pronounced features (Test C) |
| When I would use it | Surface texture matters and the print can resolve it: a 0.2 mm nozzle and slow, detailed settings | Stronger contrast between features, a larger nozzle, or quicker prints |
Each test was a single generation at 30 Higgsfield credits, so some of the difference could be ordinary variation between runs. I have not printed these test versions yet; the cyclops in the print photo below is the original model. The nozzle guidance is what I expect from the meshes, not a measured print result. Both recipes are now part of the 2D to 3D Print skill.
From GLB to a file your slicer accepts
Expect your slicer to report errors in an STL made straight from one of these models. When I first brought the figures into Bambu Studio, they arrived with warnings. This is one of the cyclops exports just after import, with the warning in the lower right corner of the window:

These are small faults in the surface of the mesh. An open edge belongs to only one triangle, which leaves a gap beside it. A non-manifold edge is shared by more than two triangles, so the slicer cannot tell which side is inside the model. A reversed face points inward when it should point out. None of this was visible in my renders.
The faults come from the generated model, not from the Blender export. I checked twelve exported figures and every one had them: between 6 and 54 non-manifold edges and between 16 and 114 open edges, mostly stray single triangles attached to the surface. The crocodile warrior’s GLB had the same counts before the export as its STL had after. My original fish king export had 26 non-manifold edges and 59 open edges by the same count.
For the first figures I exported an STL by hand in Blender (File → Import → glTF 2.0, then File → Export → STL with Selection Only), uploaded it to a repair site, downloaded the fixed file, and only then sliced it. That was three tools and a round trip for every model, and the repair happened on someone else’s server. So I built the repair I wanted and made it free: Polymend. Drop in a GLB or STL and it fixes the small faults a slicer objects to, shows you before and after side by side with every change marked, and gives back an STL, a 3MF, or both. It runs entirely in your browser; the file is never uploaded. You can try it right here:
Polymend removes stray triangles stuck to the surface, patches small holes, turns wrongly facing triangles, and leaves everything else alone; it never moves an existing point of the model, and it says plainly when something was left. It reads the GLB directly, so the Blender export is no longer needed either. All twelve of my figures went from 16 to 114 open edges and 6 to 54 non-manifold edges to zero, imported into Bambu Studio without a warning, and passed a second slicer’s mesh check as well.
The skill now does this step itself. The download carries Polymend’s engine, and the agent runs it on the reviewed GLB at the height you ask for, on your own machine, then hands you the STL and 3MF with a short report of what was fixed. Nothing is uploaded and there is nothing left to do by hand before slicing.

To try the repair yourself, drop my unrepaired fish king export (15.6 MB) on the Polymend box above. It has 59 open edges and 26 non-manifold edges; the repair removes 27 stray triangles, patches one hole and turns three triangles, and takes about a second. I would still look over thin parts such as fingers and teeth after any automatic repair, and keep the unrepaired export.
Printing at 43.2 mm
I imported the STL into Bambu Studio and set the figure height to 43.2 mm, matching the M.U.S.C.L.E. Men scale I was aiming for. I printed on a Bambu X2D using PLA. I also tried PETG for a color I wanted, but it did not perform as well on these figures. That is the outcome of this experiment, not a claim that PETG cannot print small models.
At this size, the outside surfaces matter a lot. A beautifully detailed screen model is being reduced to a figure that fits between two fingers. I adjusted the settings to reduce visible layer lines while leaving the less-visible internal work faster:
| Setting | What I used or adjusted |
|---|---|
| Figure height | 43.2 mm, with uniform scaling |
| Layer height | 0.12 mm |
| First layer | 0.20 mm for reliable adhesion |
| Variable layer height | Adaptive, with Smooth Mode enabled |
| Outer wall speed | 50 mm/s |
| Outer wall acceleration | 1,500–2,000 mm/s² |
| Inner walls and infill | Kept faster than the exterior |
| Wall generator | Arachne |
| Top surface pattern | Monotonic line |
| Seam | Aligned or painted toward a hidden edge |
Ironing the topmost solid layers is another option for smoother flat tops; it is not a way to smooth every curved surface on a figurine. I would also inspect the sliced layers around the fingers, crown, chin, and arm overhangs before committing to a print. Orientation and support decisions need to follow the particular figure and your printer profile. This table is my surface-quality approach, not a complete slicer preset.
The tradeoff is time. For the same height at a uniform layer thickness, moving from 0.20 mm to 0.12 mm means roughly two-thirds more layers. Adaptive heights and the thicker first layer change the exact count, and slower exterior walls add time too. Keeping inner walls and infill faster puts more of that extra time into the surfaces you actually see.
Print your own fish king
My fish king, repaired and scaled by Polymend · 15.6 MB. It is already 43.2 mm tall and standing on the bed, so import it and choose your print settings.
The photo is the useful comparison with the original images. These are small layered prints, with their own finish and limitations. But the characters made the trip: I can recognize the faces and armor, and hold all three figures in one hand.
A second life in the drawer
Making the 3D file opened up another use that had nothing to do with the printer. I brought the same three characters into the desk scene on my homepage.
The original detailed GLBs would have been excessive for toys that appear only a few pixels high. I made separate web derivatives at roughly 800 triangles per character. All three simplified GLBs total about 208 KB. The detailed source models stayed intact for other uses.
Each click of the top drawer launches three figures. They receive a random character and a hot pink, green, blue, or coral color, then bounce and scatter around the rug. They keep piling up until the page reloads. The toy layer uses an isometric floor, approximate furniture collision shapes, depth masks, and lighting tuned to the scene’s lamp and rug highlights.

The drawer movement is a separate piece of the illusion. Higgsfield’s Kling 3.0 generated an opening clip, and I used only its first second so the drawer stops at a small crack. The site plays that portion as a short, reversible hover animation, with matching light and dark image sheets. The figures originate inside the opening and render in front of the moving drawer face.
That distinction matters: the desk is still artwork with animation layered over it, while the little figures are actual 3D meshes. The collision and shadow approximations make the two feel like they occupy the same space. You can try the top drawer on the homepage.
Repeat the workflow
To turn another set of AI images into a 3D print, I would repeat these five steps:
- Create consistent reference images of the same character from the front, side, and back.
- Use the 2D to 3D Print skill to submit a textured Meshy reconstruction and preserve the generation record. If small features matter, add a close-up and pick one of the two detail recipes.
- Inspect the GLB from every angle. Check the actual sculpted shape, not just the surface texture or whether the mesh passes structural checks.
- Let the skill make the print files with Polymend, or drop the GLB on polymend.xyz yourself. Keep the original detailed GLB for other uses.
- Set the scale and inspect the sliced layers in Bambu Studio. My figures were 43.2 mm high and printed in PLA; supports and other settings depend on the model and printer.
For a different starting point, my guide to 3D printing The Met’s open-access scans follows existing museum models through the GLB-to-STL handoff.
The 2D to 3D Print skill is what makes the whole run repeatable. I can bring it a new character’s views and start from the lessons recorded here, then decide whether the result belongs on a print bed, in a browser, or somewhere else.
My favorite part is how far the original image traveled. A little creature on a canvas became something I could turn around in Blender, hold in my hand, and scatter across a website. Each version needed its own decisions, but I did not have to start the character over every time.