aardio 文档

aardio 范例: ModelScope 文生图(Qwen-Image)

相关范例:Z-Image 文生图

//相关范例:Z-Image 文生图 https://www.aardio.com/zh-cn/doc/example/AI/image/modelscope-z-image.html
import inet.http;//界面线程导入 inet.http 则 plus 控件可支持从网址加载图像
import win.ui;
/*DSG{{*/
var winform = win.form(text="ModelScope 文生图(Qwen-Image)";right=800;bottom=600)
winform.add(
generateBtn={cls="button";text="生成图像";left=610;top=536;right=777;bottom=586;db=1;dr=1;z=2};
picturebox={cls="plus";left=20;top=20;right=780;bottom=452;db=1;dl=1;dr=1;dt=1;notify=1;repeat="scale";z=1};
progress={cls="plus";left=19;top=447;right=766;bottom=461;db=1;dl=1;dr=1;hide=1;z=4};
promptEdit={cls="edit";left=20;top=463;right=607;bottom=589;autohscroll=false;db=1;dl=1;dr=1;edge=1;multiline=1;z=3}
)
/*}}*/

winform.progress.setProgressRange(1,100);

winform.generateBtn.oncommand = function(){
    var prompt = winform.promptEdit.text;
    if(!prompt) return winform.msgbox("请输入提示词"); 
    winform.generateBtn.disabledText = {"✶";"✸";"✹";"✺";"✹";"✷"};

    thread.invoke(
        function(winform, prompt){

            import web.rest.jsonClient;

            // 创建 HTTP 客户端
            var http = web.rest.jsonClient();

            //设置认证 HTTP 头,请替换为自己的 API key。
            http.setAuthToken('your_api_key');//请自行到 ModelScope 申请一个 Key

            //设置其他 HTTP 头
            http.setHeaders({
                "X-ModelScope-Async-Mode":"true",
                "X-ModelScope-Task-Type":"image_generation"
            });

            //声明 HTTP API
            var ai = http.api("https://api-inference.modelscope.cn/v1");

            //向服务器提交生成任务
            var imageData, err = ai.images.generations(
                model = "Qwen/Qwen-Image-2512";
                prompt = prompt;
                size = "1080x1440";// 3:4 图像
            );

            //获取任务 ID,直接下标 [[]] 操作符遇到 null 值返回 null 而不报错
            var taskId = imageData[["task_id"]];
            if(taskId){
                winform.progress.show(true);

                for(i=1;60){ // 最多尝试 60 次(5分钟)
                    winform.progress.progressPos = 40 + i;

                    thread.delay(5000); // 等待5秒

                    //查询任务执行结果
                    var result, err2 = ai.tasks[taskId].get();
                    err = err2;

                    var status = result[["task_status"]];
                    if(status == "SUCCEED"){
                        var url = result.output_images[1];
                        winform.picturebox.background = url;

                        //下载图像
                        http.receiveFile("/test.png").get(url);
                        break
                    }
                    elseif(status == "FAILED"){
                            err = "FAILED"
                    }

                    if(err) break;
                }
            }

            if(err) winform.msgboxErr( err );
            winform.generateBtn.disabledText = null;

        }, winform, prompt);
};

winform.promptEdit.text = `科技感蓝色渐变背景,中央悬浮渐变色立体文字‘aardio’,使用霓虹外发光效果,立体文字是一个由智能水晶方块组成的神秘编程机器人,文字下方呈现半透明全息界面展示,两侧有动态数据粒子环绕。一个可爱的小孩站在立体字 ‘aardio’ 前面,正在用手指操作立体字 ‘aardio’,脸上充满好奇。主色调建议科技蓝/星际紫渐变,画面整体搭配柔光滤镜与光斑特效,辅助元素为流动的数据粒子/全息界面,有一些 AI 小机器人在画面四处或立或坐或者玩耍或工作。整体营造未来科技感与神秘氛围。所有文字避开上下 250 像素安全区。`;

winform.show();
win.loopMessage();
Markdown 格式