This week my feeds got taken over by AI-generated images. OpenAI shipped ChatGPT Images 2.5, and within days the tech press was full of it: user creations got called "increasingly unhinged soul paintings", and commentators labeled it "the first image model of the AGI era". Generation latency cut by up to 50%, details that survive multiple editing rounds, a Sketch mode that finishes your rough drawings.
I got the itch too. But the path between the itch and actually generating is familiar friction: queue on the website, subscribe, sort out network access.
Then it hit me. I talk to my coding agent all day already. It runs commands for me, reads docs, edits files. But it has never handed me a media file. When I ask for an image, it suggests I "use a design tool". When I ask for a video, it simply can't. The problem isn't that the agent is dumb; the problem is it has no generation tool in its hands.
Fixing that takes one step: install the Bailian CLI into your agent. bl is the CLI for Alibaba Cloud's Bailian model platform, it ships an official agent skill package, and once it's in, generating images and videos becomes a single sentence in the conversation. This week the Wan3.0 video model also just landed on Bailian with a 30%-off promo until September 23, so I had my agent run everything the hype had seeded. Two rounds of testing, nine scenarios, real outputs, a real bill: 10.4 CNY, about a dollar and a half.
How to set it up
Install with one command, grab a free API key, and every scenario below is reproducible. Terminal diehards can npm-install the CLI directly; the commands are identical. Saying one sentence to your agent is just easier than memorizing flags.
Once set up, the workflow looks like this. I tell my agent:
Generate a video: a corgi chasing a frisbee on a beach at dusk, slow motion, warm backlight, 1080P, five seconds.
The agent calls the Bailian CLI's video generation tool, and the command it actually runs looks like this:
bl video generate --model wan2.7-t2v-2026-06-12 \
--prompt "A corgi chasing a frisbee on a beach at dusk, slow motion, warm backlight" \
--resolution 1080P --duration 5 --download corgi.mp4
You can read it at a glance: --model picks the model (wan2.7 runs on the free quota), --prompt carries the scene description, --resolution and --duration set the output, --download names the local file. But you don't have to remember any of it. Describing what you want is your job; assembling flags is the agent's. Two minutes later, an 8.3 MB 1080P file lands in the project directory.
Scenario one: text-to-video, on the free quota
That's the corgi above. I then asked for a portrait version, the proportions short-video platforms want, no manual cropping:
Another one, vertical: a night city skyline timelapse, neon lights flowing, portrait framing.
The agent added --ratio 9:16 and out came an 8.1 MB vertical cityscape. Both videos ran on the text-to-video model's free quota, zero dollars.
One field-tested note: the free quota is charged per second, not per clip. Two 1080P five-second videos took mine from 45 to 35, one unit per second at 1080P. Checking the balance is also a sentence: say "check my free quota" and the agent runs bl usage free, which lists every model's remaining balance.
Another field-tested note: prompt density decides the shot. Same corgi, same model, same settings. The two prompts, in full:
a corgi running on a beach
A corgi chasing a frisbee on a beach at dusk, slow motion, warm backlight
The stripped-down one produced a flat midday shot with no backlight and shadows pointing straight down. The rich version had the sun on the horizon, lens flare, long shadows. The whole difference lived in a few camera words, and those cost nothing.
Scenario two: image-to-video, one chain
First I asked for a still:
Generate an illustration: a round robo-cat sitting on a windowsill watching the rain, pastel palette, flat style.
Fifteen seconds, one image. Then:
Turn this image into a video: the cat blinks slowly, raindrops falling, camera pushing in.
The agent chained two commands: bl image generate for the base, then bl video generate --image to animate it. Didn't like the still? Ask for another one, fifteen seconds, pennies. Liked it? Animate it. Content covers and product visuals work exactly this way.
Scenario three: multi-round editing, the hype's signature move
What people envied most in the ChatGPT wave was multi-round consistency: edit it five times, nothing set earlier gets lost. The Bailian-side command is bl image edit, and I ran the robo-cat base through three rounds:
Shift the whole scene to a warm dusk mood, sunlight from the setting sun coming through the window.
Add a small succulent on the windowsill, with a steaming cup of cocoa next to it.
Convert everything to Ghibli-studio watercolor style, keep the composition and all elements unchanged.
Each round takes the previous round's output as input:
bl image edit --image ./base.png \
--prompt "Shift the whole scene to a warm dusk mood, sunlight from the setting sun coming through the window" \
--watermark false --out-prefix edit1
# round two: --image ./edit1.png, round three: --image ./edit2.png
Round three converted the image to watercolor, and the succulent and cocoa from round two were still sitting where they'd been placed, composition untouched. An edit costs about the same as a generation, roughly 0.2 CNY, so the whole chain ran about 0.6. Every intermediate stays on disk; roll back to any round you like.
Scenario four: first frame plus last frame, a timelapse from two stills
Day-to-night transitions normally mean waiting on a rooftop with a tripod. Here, two stills do the job: generate a daytime skyline, edit it into a night version with the composition frozen, then:
bl video generate --image ./day.png --last-frame ./night.png \
--prompt "Day-to-night timelapse transition, light gradually shifting, city lights coming on" \
--resolution 720P --duration 5 --download day2night.mp4
--last-frame opens first-and-last-frame mode (officially kf2v): the model fills in how the light travels between your two frames. I extracted the first and last frames to verify: same tower, same composition, day walked into night. 720P, five seconds, 2.1 CNY at the current discount.
Scenario five: document-to-video, the Wan3.0 trick
The most impressive one this week. I wrote a small three-section document (release cadence, three plays, cost scale), then:
Turn this document into a demo video, infographic style, milestones lighting up in sequence.
Wan3.0 has a --file entry point that parses the document first, then generates. About eight minutes later (parsing included) I had an infographic-style demo animation with milestones actually lighting up.
One pit worth sharing: the first run reported a timeout, and my instinct was to tell the agent to rerun it. Good thing I stopped. A polling timeout is not a failed task. The job was still running server-side (and billing). Rerunning blindly pays twice for one video. And your agent will trip on this too: its first instinct on an error is also to retry. The fix is a bigger --timeout, or async mode with a task ID.
Knowing it isn't enough; the agent has to know it too. I wrote the rule into its project notes:
When
bl video generatereports Polling timed out, runbl video task get --task-id <id>first and check status before any rerun; document-to-video always gets--timeout 900.
On a raw command line you carry the pits in your head; an agent carries them as written rules.
Three image facts worth knowing
First, Chinese text rendering: write the copy straight into the prompt (I had it render a WeChat-style header with a large Chinese headline and a small corner tag) and every character comes out correct, layout clean. Pushing the same idea further, I ran a follow-up test with a vertical event poster that packs every element into the prompt: aspect ratio, background, subject and placement, layered text (letter-spacing and width ratio included), a badge, style, colors, whitespace. The prompt is Chinese because the render target is Chinese; the structure works in any language:
竖版科技活动海报。深蓝到藏青的渐变背景;画面上方三分之一处是一个发光的终端窗口图形,窗口里一行绿色提示符和闪烁的光标;中央是白色无衬线大标题「一句话,出活」,字距放宽,占画面宽度的三分之二;标题下方一行浅灰色小字「Agent 时代的生成工具」;底部中央是一个圆形徽标,内部一个简约的闪电图形。整体极简科技风,霓虹蓝点缀,大量留白,排版干净
One generation, everything landed: terminal window, headline, subtitle, lightning badge, correct Chinese throughout, usable as an event hero image as-is. The fuller the prompt, the better the odds of one-shot success: a sparse prompt lets the model make the decisions, a structured prompt makes them yourself. Second, batch candidates: --n 4 produces four options in one command, billing multiplied by four. Third, the --seed debunking: the docs say "reproducible results", but the same prompt with the same seed produced two entirely different images on two runs, different composition, different props, different MD5. It's closer to "reduced randomness" than a replay button; save the artifact if you want the same image again.
The money part, in one paragraph
Before any paid run I had the agent check the quota, so I knew where I stood. Two-round total: 10.4 CNY. Round one: 6.5 CNY (two text-to-videos at zero on free quota, one image-to-video at 2.1, document-to-video at 4.2 including the timed-out run's lesson fee, one image at two mao). Round two: 3.7 CNY for the edit chain, the first/last-frame video, and the batch candidates. Plus the complex-prompt poster follow-up at 0.2. If you want the fine-grained numbers, the agent can look those up too. My rule is one line: validate ideas on free quota and 720P, graduate to 1080P only when confirmed, check the balance before any paid run.
Who this is for
People seeded by this week's hype who already live in a coding agent; for them this is one extra sentence in a conversation they're having anyway. Anyone producing content covers, product demos, or short-video material who wants the pipeline repeatable. If you want a WYSIWYG canvas, this route doesn't have one; what it trades you instead is the peace of mind of "say one sentence, get a file".
The fun of generative AI is at the moment you make your own. The moment after I said that sentence and the file landed, two minutes later, beat scrolling a hundred of other people's posts.
Install Bailian's CLI into your agent: one command install, free API key here. Once you're set up, drop a scene you'd like generated in the comments; I'll pick a few and run them for you.


Top comments (0)