Dev.to AI πŸ€– Ai πŸ‘ 0 πŸ“– 4 min read

I Ran a Five-Step Image Pipeline Entirely on a Phone

Most write-ups about mobile AI image apps stop at the first generation. That is the easy case. The interesting question is whether a full pipeline runs on a phone: generate, swap the model, condition on a reference, edit

I Ran a Five-Step Image Pipeline Entirely on a Phone

Most write-ups about mobile AI image apps stop at the first generation. That is the easy case. The interesting question is whether a full pipeline runs on a phone: generate, swap the model, condition on a reference, edit a region, then retrieve the artifact later.

I ran that pipeline end to end in the PixAI mobile app, on an iPhone, with the laptop closed. Below is the setup, the controls, and what each step produced.

The fixture

The prompt runs to about a hundred and twenty words and describes a character and a scene: subject, clothing, pose, environment, light direction, camera position. Five visual identifiers in the description that are easy to check in an output:

Identifier Description
Hair copper-red, cropped
Jacket dark green band jacket with a wide cream diagonal sash
Undershirt black, high collar
Trousers cream with a single green side stripe
Prop brass tuba

Everything else varied one axis at a time.

Step 1: baseline generation

The generate screen puts LoRA, model, style, mode, output size, and quantity into one horizontally scrolling row under the prompt card. One run returned four images at the quantity setting shown.

The bottleneck is text entry, not compute. With the keyboard open, the prompt field is a few lines tall, so proofreading a long description means scrolling inside a small window. If you build prompts programmatically or keep them in a notes file, paste them in rather than typing.

Step 2: model swap, seed held constant

The second run used the same prompt string and the same seed on a different base model. A seed fixes the random starting point, so holding it constant removes one variable.

The model picker has three tabs: Preset for official models, Collection for saved ones, and Market for community uploads. Every card is labeled with its architecture family, so DiT.2, DiT.1, or XL, which is the practical signal for what kind of prompt the model prefers. The swap took three taps, and the session continued without a restart.

Assertion Result
Written identifiers reappear on model B Pass, all five
Face and proportions match model A Fail
Rendering style matches model A Fail
Same seed reproduces the composition Fail

The last row is the one that changes how you store a character definition. A seed indexes noise inside one model. Across two models, the same integer produced no resemblance at all. Prompt text is the portable part of a character definition, and the seed is not.

Step 3: reference conditioning

The reference workflow is exposed as a preset in the model list rather than as a separate mode, which means selecting it replaces your base model selection. Worth knowing before you plan a session around it.

The panel enforces an order: the image loads first, and the prompt field stays inactive until it does. I had a paragraph ready and could not enter a character of it until the reference was in place.

The input came from the camera roll, where the previous step had already saved it. That is the structural argument for doing this work on a phone. The source artifact and the output destination are the same device, so the file transfer step disappears.

Conditioning on the earlier output plus a short new-scene description returned the same character in a different location. Hair, sash, collar, and instrument came back intact, with nothing about the character repeated in the prompt.

Step 4: masked edit

Edit opens a canvas with Inpaint and Outpaint as separate tabs, and mask size, brush, eraser, mask shape, and feather along the bottom. A small box in the corner previews where the masked region falls on the image.

I masked one element and requested a change there. Measured against the source file, the marked band came back about a third wider at mid-chest, while the buttons, the hand, the mouthpiece, and the collar were unchanged. Whatever else you think of the result, containment held: the diff concentrates inside the mask by a wide margin.

Step 5: retrieval

Library opens on a menu of collections, published work and likes, with Recent Tasks below it. Each run is a card titled with the opening words of its own prompt, stamped with a date and time, and the list has a search box above it.

Open a single result, and the next actions are on one screen: Download, Publish, Animate, Edit, Import to Generate, and Re-roll. Import to Generate pulls that run's prompt and model back into the generate screen, which is the resume-session path.

What a phone is bad at

Long prompt editing, because the visible field is small. Comparing several outputs at once, because a run returns thumbnails, and judging them at full size means opening one at a time. Detail review, because a small display hides errors: one of my outputs has a clearly elongated forearm that I only noticed on a laptop. And finding a rarely used control, since there is less room off the main path.

Verdict

The pipeline ran five steps on one device with no restarts, end-to-end on a phone, and the constraints are input and review rather than capability. If you want to run the same test, four checks matter: the model picker has to expose metadata, the reference input has to accept a local file, the editor has to respect a mask, and the history has to be searchable.

For where each control is in the interface, the PixAI app guide covers it screen by screen: https://blog.pixai.art/en/pixai-app-guide/

Try the same pipeline on PixAI and see how far your phone takes you.

πŸ“° Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes β€” full credit and traffic to the original publisher.