快速摘要
京东探索研究院于2026年4月正式开源了JoyAI-Image-Edit,这是一个总参数量达240亿的图像编辑模型,也是业内首个将"空间智能"深度融入架构底层的开源模型。 它由一个80亿参数的多模态语言模型(MLLM)和一个160亿参数的多模态扩散Transformer(MMDiT)耦合而成,能够在保持场景几何一致性的前提下完成视角变换、物体旋转、空间位移等操作——这是此前绝大多数开源模型无法做到的。模型以Apache 2.0协议开源,推理代码全部公开,已兼容ComfyUI和Diffusers。往下看,莫潇羽@源码七号站将为你拆解它的架构原理、三大核心空间编辑能力、具体操作方法,以及实际部署时的注意事项。
一、为什么图像AI需要"空间智能"?
过去两年,图像生成领域可以说是百花齐放。无论是文生图还是图像编辑,各类模型层出不穷,画面质量也在快速迭代。从Stable Diffusion到DALL·E、从Midjourney到各种国产开源模型,我们见过太多"画面惊艳"的案例——画猫比真猫还毛茸茸,画赛博朋克街道比电影还炫,甚至画一只手有六根手指也能让你觉得是某种先锋艺术。整个行业弥漫着一种"图像AI已经快到头了"的乐观情绪,仿佛再优化几轮,AI就能完美地画出任何你想要的东西。
但如果你真正上手用这些模型做过"正经活儿",大概率会遇到一个让人抓狂的问题:模型会画画,却不懂空间。
什么意思呢?举几个非常典型的场景来说明这个问题。首先,你想把一张客厅照片的视角往右偏转30度,模型给你输出的画面里,沙发像在半空中漂浮,落地灯穿墙而过,地板的透视关系瞬间崩塌,完全不像是同一个房间从另一个角度拍出来的样子。再比如,你想把画面前景的苹果挪到桌子另一头、和后面的书交换一下前后位置,模型处理后遮挡关系完全错乱,苹果的大小比例也跟着失衡,画面看起来像一场灾难现场。又或者,你在做电商产品展示图的时候,想把一个水杯从正面视角转到45度侧面视角,模型虽然"画"出来了一张侧面图,但杯子的形状、光影都对不上,根本不像是同一个杯子。
这些问题背后指向的是同一件事:传统图像模型缺乏对三维空间结构的真正理解。 它们能生成非常漂亮的像素,但并不理解这些像素所描述的那个有前后、有深度、有光影遮挡逻辑的真实世界。用一个形象的比喻来说,它们是技术精湛的"平面裱糊匠",能把墙纸贴得又平又整,却从来不去想墙后面是什么结构;它们不是"空间观察者",无法像人类一样看到一张照片就能在脑海中还原出完整的三维场景。
从技术层面看,造成这个问题的根源在于:大多数图像模型是在二维图像数据上训练的。它们学会了像素之间的统计规律——什么颜色挨着什么颜色、什么纹理出现在什么位置——但从来没有被教过"深度"、"遮挡"、"透视"这些三维概念。就好比一个人看了一万张照片,但从来没有走出过房间,他可以画出非常逼真的画,却无法回答"如果我往左走两步,这个场景会变成什么样"这类问题。
事实上,"空间智能"这个概念在AI领域并不是一个全新的提法。早在计算机视觉的传统时代,研究者们就通过多视角几何、立体匹配、结构光等技术来获取三维信息。但那些方法要么需要多张图片输入,要么需要专用硬件(如深度相机、激光雷达),无法从单张二维图像中推断出完整的三维结构。近年来,随着NeRF(神经辐射场)和3D Gaussian Splatting等技术的兴起,从少量图像重建三维场景成为可能,但这些方法通常是"先建模、再渲染"的两步走流程,并没有把空间理解能力直接嵌入到图像生成和编辑的过程中。
JoyAI-Image-Edit的做法是一条完全不同的路径:它不是先做三维重建再渲染,而是让模型在"端到端"的推理过程中同时完成空间理解和图像生成。这意味着模型不需要显式地构建三维点云或网格模型,而是在潜空间(latent space)中隐式地完成了对三维结构的理解和操控。这种方式的好处是效率更高、流程更简洁,对硬件的要求也相对更低,用户不需要关心中间的三维表示,只需要给一张图和一句指令,就能拿到空间正确的结果。
这也正是JoyAI-Image-Edit想要解决的核心问题。在莫潇羽@源码七号站看来,这个模型的意义不在于"又一个更好用的AI修图工具",而在于它尝试从根本上把AI图像编辑从"二维平面操作"推向"三维空间重塑"。这是一次维度上的跃迁,而不仅仅是效果上的优化。
二、JoyAI-Image-Edit 是什么?
JoyAI-Image-Edit是京东探索研究院自主研发并开源的一个统一多模态基础模型,覆盖三大核心功能:图像理解、文生图以及指令引导的图像编辑。
这里有几个关键信息值得注意:
- 开源时间:2026年4月7日正式对外发布
- 开源协议:Apache 2.0,允许自由使用、修改和商用
- 总参数量:约240亿(8B MLLM + 16B MMDiT)
- GitHub仓库:https://github.com/jd-opensource/JoyAI-Image
- 在线体验:https://huggingface.co/spaces/stevengrove/JoyAI-Image-Edit-Space
- 模型权重(ModelScope):https://modelscope.cn/models/jd-opensource/JoyAI-Image-Edit
模型的论文标题也直白地表达了它的核心主张——《JoyAI-Image: Awakening Spatial Intelligence in Unified Multimodal Understanding and Generation》,意为"在统一的多模态理解与生成中,唤醒空间智能"。
截至莫潇羽撰写本文时(2026年4月),官方已经释出了JoyAI-Image-Und(图像理解模块)和JoyAI-Image-Edit(图像编辑模块)的权重,文生图模块和多图编辑模块(JoyAI-Image-Edit-Plus)标注为即将发布。对于迫不及待想要上手体验的读者来说,现在已经可以完整使用图像理解和图像编辑两大核心功能了。
三、架构原理:MLLM + MMDiT 的双引擎耦合
要理解JoyAI-Image-Edit为什么能做到"空间智能",需要先看懂它的底层架构。这个模型的核心设计思路可以概括为一句话:把"理解"和"生成"通过一个共享接口连成闭环。
3.1 两大核心模块
整个模型由两个主体部分组成:
MLLM(Multimodal Large Language Model,多模态大语言模型),参数规模8B(80亿),负责图像理解和指令解析。它接收用户的自然语言指令和输入图像,对场景进行深层分析——不只是识别"图中有什么",而是理解"这些东西在哪里、彼此之间是什么空间关系、光从哪个方向来、哪个物体遮住了哪个物体"。在传统图像模型中,这种深层次的空间语义分析是严重缺失的。大部分模型只做到了物体级别的识别,比如"图中有一只猫和一张桌子",但对于"猫在桌子上方还是下方、猫离相机多远、如果我绕到桌子后面会看到什么"这类问题则无能为力。JoyAI-Image中的MLLM模块恰恰补上了这一块——它不仅输出"图中有什么",还会输出结构化的空间关系描述,为下游的生成和编辑提供精确的空间约束。
MMDiT(Multimodal Diffusion Transformer,多模态扩散Transformer),参数规模16B(160亿),负责图像生成和编辑执行。它接收MLLM传递过来的编辑意图和空间约束信息,通过扩散过程生成符合空间约束的目标图像。和传统的扩散模型不同,MMDiT在去噪过程中不是"自由发挥"地生成像素,而是在MLLM提供的空间约束下"有纪律地"生成——每一步去噪都需要满足前面分析出来的透视关系、遮挡关系和光影逻辑。这就是为什么JoyAI-Image-Edit生成的空间变换图像在几何一致性上远超同类模型。
这两个模块之间通过一个共享接口(MLLM-MMDiT Interface)进行信息传递。这个接口不是一个简单的"传话筒",它需要完成一系列复杂的信息转换工作:把MLLM输出的自然语言级别的空间理解信息,转换成MMDiT可以直接使用的条件向量。打个不太严谨但比较好理解的比方——MLLM是"建筑设计师",它看完现场后画出了一份详细的空间结构图纸;MMDiT是"施工队",它按照图纸来盖房子;而共享接口就是"翻译官",负责把设计师的专业语言翻译成施工队能执行的操作指令。
3.2 闭环协作机制
这套架构真正的精髓在于它建立了"理解-生成-编辑"三者之间的闭环协作。
用通俗的话来解释:更强的空间理解能力,让模型在生成和编辑图像时可以更精准地把控场景结构——比如遮挡关系、光影方向、透视比例这些细节。而反过来,当模型完成一次视角变换这样的生成操作后,新生成的视角又会为模型的空间推理提供新的"证据"和"参考"。
打个比方:一个人如果只看过一栋楼的正面照,他对这栋楼的三维结构理解是有限的——他不知道楼的侧面是什么样子,不知道楼的后面有没有阳台,不知道屋顶是平的还是尖的。但如果他又看到了这栋楼45度角的照片,他的空间理解就会立刻变得更完整——他能推断出侧面的窗户排列,能估算出楼的实际深度。JoyAI-Image的设计逻辑与此类似——模型一边"看"一边"画",一边"画"又帮它看得更清楚。 每一次生成操作的结果,都会反馈到模型的空间认知系统中,让它对整个三维场景的理解更加深入和准确。
这和此前大部分图像模型"理解归理解、生成归生成"的割裂式设计形成了鲜明对比。在以往的技术路线中,图像理解模型和图像生成模型是两套独立的系统,它们之间没有信息回路。理解模型告诉你"图中有什么",但这个信息不会帮助生成模型画得更好;生成模型画了一张新图,但这张新图不会让理解模型变得更聪明。JoyAI-Image打破了这道墙。
3.3 数据与训练流水线
模型的训练采用了一条精心设计的可扩展数据流水线。在空间智能模型中,数据质量和多样性的重要程度甚至超过了模型架构本身——再好的架构,如果喂的数据里没有足够丰富的空间信息,模型也学不会"看空间"。JoyAI-Image在数据侧的投入非常扎实,包含以下几个关键数据来源:
OpenSpatial(空间理解数据集):这是专门为训练空间理解能力而构建的数据集,对外开源在 https://github.com/VINHYU/OpenSpatial 。数据集提供了丰富的空间关系标注信息,涵盖物体之间的相对位置(前后、左右、上下)、距离估计、遮挡关系、支撑关系等维度。这些标注为MLLM模块学习空间推理提供了坚实的监督信号。
SpatialEdit(空间编辑数据集):这是为训练空间编辑能力而构建的配对数据集,对外开源在 https://github.com/EasonXiao-888/SpatialEdit 。数据集包含大量的"编辑前-编辑指令-编辑后"三元组,其中编辑指令包括视角变换、物体移动、物体旋转等空间操作。通过这些配对数据,模型学会了"什么样的空间操作指令应该产生什么样的图像变化"。
Blender渲染多视角数据集:这是一个规模约100万组的合成数据集,使用Blender 4.5渲染引擎生成。每一组数据包含同一个三维场景从多个不同角度拍摄的图像,以及对应的相机参数(位置、朝向、焦距等)。这个数据集的价值在于它提供了完美的"ground truth"——因为是从真实的三维模型渲染出来的,所以每一对多视角图像之间的空间关系都是数学上精确的。模型通过学习这些数据,获得了对相机运动与图像变化之间因果关系的深刻理解。
长文本渲染数据:支持模型处理含有大量文字的图像场景。在电商海报、信息图表、社交媒体配图等实际应用中,图像中常常包含大段文字,而大部分图像模型在处理文字时表现很差。这个数据集专门强化了模型的文字渲染能力。
在训练策略上,模型采用了多阶段优化方案,逐步从基础能力训练过渡到空间智能的精调,最后通过对齐阶段确保各项能力之间的协调。莫潇羽@源码七号站提醒对训练细节感兴趣的开发者,可以重点关注上述两个开源数据集项目。
四、三大核心空间编辑能力详解
JoyAI-Image-Edit在空间编辑层面有三大标志性能力,也是它区别于其他图像编辑模型的核心优势。下面逐一拆解。
4.1 相机控制(Camera Control)
这是最直观也最硬核的能力。通俗来说,相机控制就是"不动场景,只动相机"——你可以用一句自然语言告诉模型"把相机往右偏转45度,俯仰角不变,焦距拉近",模型就会在保持场景几何一致性的前提下,给你生成一张全新视角的图像。
这听起来似乎简单,但实际上是一个极其困难的任务。因为当你换一个角度看同一个场景时,几乎所有的视觉信息都会发生变化:原本被遮挡的物体会露出来、原本可见的物体会被挡住、所有物体的大小比例关系会因为透视而改变、光影的方向和强度也会随之调整。模型需要在一次推理中同时处理好所有这些变化,才能生成一张"看起来真的像是从那个角度拍出来的"图像。生成的图像中,透视关系、遮挡关系、光影关系都能保持正确。这在此前的开源模型中几乎是不可能做到的。
使用方法很简单,遵循官方推荐的Prompt模板即可:
Move the camera.
- Camera rotation: Yaw {偏航角}°, Pitch {俯仰角}°.
- Camera zoom: in/out/unchanged.
- Keep the 3D scene static; only change the viewpoint.
各参数的含义如下:
- Yaw(偏航角):控制相机水平方向的旋转。正值表示向右偏转,负值表示向左偏转。比如Yaw 90°就是把相机水平向右旋转90度,你会看到原来正对你的场景的右侧面。
- Pitch(俯仰角):控制相机垂直方向的旋转。正值表示向上仰视,负值表示向下俯视。比如Pitch -30°就是让相机稍微低头俯视30度,你会看到场景的俯瞰效果。
- Camera zoom:焦距控制,可选
in(拉近,放大画面)、out(拉远,缩小画面)或unchanged(保持不变)。 - 最后一行
Keep the 3D scene static; only change the viewpoint.是必须包含的固定后缀,它明确告诉模型只改变相机位置,不要修改场景本身的任何内容。
实际指令示例:
Move the camera.
- Camera rotation: Yaw 90.0°, Pitch 0.0°.
- Camera zoom: unchanged.
- Keep the 3D scene static; only change the viewpoint.
这条指令的意思是:将相机水平向右旋转90度,垂直方向不变,焦距不变,场景保持静止。执行后你会看到场景的右侧面。
Move the camera.
- Camera rotation: Yaw -45.0°, Pitch 22.5°.
- Camera zoom: unchanged.
- Keep the 3D scene static; only change the viewpoint.
这条指令的意思是:将相机水平向左旋转45度,同时向上仰视22.5度。你会得到一个偏左上方的视角。
莫潇羽@源码七号站在这里给大家几个实用建议。角度的选择需要根据实际场景合理设定,过大的角度变化(比如一次旋转180度直接看场景背面)可能会导致生成质量下降,因为模型需要"脑补"大量它从未见过的场景信息。建议分多步完成大幅度的视角变化,比如先转90度、看看效果、再转90度。另外,Yaw和Pitch可以同时设置,但同时变化幅度过大也会增加生成难度。
4.2 物体旋转(Object Rotation)
如果说相机控制是改变"你站在哪里看",那物体旋转就是改变"物体朝哪个方向摆"。相机控制时,整个场景不动,只有观察视角在变;物体旋转时,场景背景不动,只有指定的物体在三维空间中转动到新的朝向。
这个功能支持你通过一句指令,让画面中的某个物体旋转到指定的朝向。比如一双运动鞋,原图拍的是侧面,你可以让它转到正面视角,看到鞋头的设计细节。再比如一个人物,原图是正面照,你可以生成她的背面视角,看到发型和衣服背面的样子。
更厉害的是,它支持连续的视角移动,能够生成一整串逻辑连贯的多视角图像序列。就好像你戴着一台虚拟相机,真的在一个三维场景里绕着物体"走了一圈",每一帧都保持结构和细节的一致性。这在电商产品360度展示、三维重建的数据准备等场景中有着非常直接的应用价值。
Prompt模板:
Rotate the <物体描述> to show the <朝向> side view.
支持的朝向参数包括:front(正面)、right(右侧)、left(左侧)、rear(背面)、front right(右前方)、front left(左前方)、rear right(右后方)、rear left(左后方)。一共八个方向,可以覆盖物体的主要观察角度。
实际指令示例:
Rotate the sneaker to show the front view.
Rotate the chair to show the rear left side view.
Rotate the girl to show the rear left side view.
使用这个功能时需要注意的是,物体的身份特征(颜色、纹理、形状等)和周围场景会尽量保持一致,但物体本身的朝向会按照你的指令发生变化。如果物体的背面或侧面在原图中完全不可见,模型会基于它对该类物体的先验知识进行合理推断——比如它知道运动鞋的正面长什么样、椅子的背面是什么结构。不过这也意味着,对于外观高度不对称的物体(比如一个正面和背面设计完全不同的手机壳),模型推断出来的不可见面可能和实际产品有所出入。在这种情况下,建议尽量提供物体不同角度的参考图,或者在Prompt中加入对不可见面外观的文字描述作为补充信息。另外,连续生成多个角度的图像序列时,建议使用相同的seed值,这样可以提高不同角度之间的一致性。
4.3 物体空间关系操控(Object Move)
第三个核心能力是直接操控画面中物体的空间位置关系。你可以把画面中的任何一个物体挪到指定位置,场景的整体结构保持稳定,遮挡关系自然合理,光影过渡顺滑——不会再出现变形、错位、比例失衡那些恼人的老毛病。
这个能力解决的是一个非常实际的问题:在以往的图像编辑中,如果你想把一个物体从A位置移到B位置,通常需要"先抠图、再贴图、然后修边缘、最后调光影"这样一套复杂的手动操作流程。即便使用AI辅助,结果往往也不够自然——物体移动后和新位置的光影环境不匹配,遮挡关系也容易出错。JoyAI-Image-Edit通过端到端的空间理解,在一次推理中同时完成物体的"取出"、"放置"和"环境融合"三个步骤。
使用方法:在输入图像上,你需要先用红色方框标注出目标位置(即你希望物体被移到的位置),然后在Prompt中描述要移动的物体。红色方框只是一个引导标记,在最终输出中不会保留。
Prompt模板:
Move the <物体描述> into the red box and finally remove the red box.
其中"finally remove the red box"这句是必需的后缀,它告诉模型在最终输出中不要保留那个红色引导框。如果忘记加这句,输出图像中可能会残留红色方框的痕迹。
实际指令示例:
Move the coffee into the red box and finally remove the red box.
这条指令的意思是:把画面中的咖啡杯移到红色方框标注的位置,然后去掉红框。
Move the red car into the red box, remove the red box, remove the red car.
这个例子更复杂:把红色汽车移动到指定位置,同时移除引导框和原位置的汽车。最终效果是汽车"挪"了一个位置,原位置变成了干净的背景。
使用这个功能时有几个细节值得注意。首先,红色方框的大小会影响物体放置后的缩放比例——如果方框画得比物体大,物体放进去后可能会被适当放大;反之则可能缩小。其次,物体被移动后,它原来所在的位置会被模型自动"修复"填充,填充的内容会尽量与周围环境保持一致。最后,如果画面中有多个相似的物体(比如三个苹果),建议在Prompt中用更具体的描述来指定你要移动的是哪一个(比如"the apple on the left"而不仅仅是"the apple")。
五、15类通用编辑能力一览
除了上述三大空间编辑能力之外,JoyAI-Image-Edit同时兼容15类通用编辑能力,覆盖了日常图像编辑的绝大多数高频需求。这意味着它不是一个只能做空间变换的"偏科生",而是一个实实在在的"全科选手"。
这些通用编辑能力包括但不限于以下几个方面:
物体替换——将画面中的某个物体替换为另一个物体。比如把桌上的苹果换成橘子,把墙上的油画换成一面镜子。模型不仅会替换物体本身,还会自动调整光影关系,让新物体看起来像是"一直就在那里"。
物体删除——从画面中移除指定物体,背景自动修复填充。比如把街景照片中的路人移除,或者把室内照片中多余的家具清理掉。填充的区域会尽量和周围环境保持纹理和光影的连贯性。
物体添加——在画面中的指定位置添加新元素。比如在空旷的桌面上放上一盆绿植,或者在天空中添加几只飞鸟。
风格迁移——改变整张图像的艺术风格。比如把一张普通照片转换成油画风格、水彩风格或者赛博朋克风格。
细节精修——对画面局部进行精细化调整。比如修改衣服的颜色、调整物体的材质质感、优化人物的表情等。
长文本渲染——这是一个特别值得单独拿出来说的能力。在图像中准确渲染大段文字,一直是图像AI的老大难问题。大部分模型生成的文字要么模糊不清、要么字符错误(经典的"拉丁文字母汤")、要么排版混乱得没法看——文字重叠、行距不均、甚至出现不存在的乱码字符。JoyAI-Image-Edit在这方面做了大量专项优化,支持多面板漫画中的对话框文字、密集多行文本、多语言排版(中英文混排)、长篇幅布局、真实场景中的招牌文字、甚至手写体模拟等场景。在实际测试中,它可以在一张海报上清晰地渲染出数十个中文字符,每个字都清晰可辨、排版整齐——这在开源模型中是相当难得的表现。对于做海报设计、信息图表、电商详情页、社交媒体配图的用户来说,这个能力的实用价值非常高。
六、实操指南:从环境搭建到推理运行
说了这么多原理和能力,接下来进入实操环节。莫潇羽@源码七号站手把手带你跑通整个流程。
6.1 环境要求
在动手之前,先确认你的硬件和软件环境满足以下条件:
- Python版本:>= 3.10
- GPU:需要CUDA支持的显卡,考虑到模型总参数量240亿,建议显存不低于24GB(如A100 40GB/80GB、RTX 4090等)
- 操作系统:Linux(推荐Ubuntu 22.04及以上)
- 磁盘空间:模型权重文件体积较大,建议预留至少100GB的磁盘空间用于存放模型文件和中间产物
这里有一个容易被忽视的细节:即使你的显卡显存达到了要求,系统内存(RAM)也不能太小。因为模型权重在加载到GPU之前,需要先加载到系统内存中。建议系统内存不低于64GB。如果内存不足,加载过程中可能会触发系统的OOM(内存不足)保护机制,导致进程被强制终止。
6.2 环境搭建
首先创建一个独立的Conda虚拟环境:
conda create -n joyai python=3.10 -y
conda activate joyai
然后克隆项目仓库并安装依赖:
git clone https://github.com/jd-opensource/JoyAI-Image.git
cd JoyAI-Image
pip install -e .
核心依赖包及版本要求如下:
|
依赖包 |
版本要求 |
用途 |
|
|
>= 2.8 |
深度学习框架 |
|
|
>= 4.57.0, < 4.58.0 |
文本编码与多模态处理 |
|
|
>= 0.34.0 |
扩散模型推理工具 |
|
|
>= 2.8.0 |
Flash Attention加速 |
关于Flash Attention的安装,这是实际部署中最常见的"坑"之一。Flash Attention 2对CUDA版本和PyTorch版本有严格的匹配要求,版本不对就会编译失败。首先确认你的CUDA版本是11.8或12.x,PyTorch版本是2.0以上。如果pip直接安装失败,可以尝试从源码编译:
pip install flash-attn --no-build-isolation
如果仍然报错,大概率是CUDA toolkit版本不匹配。可以通过nvcc --version检查CUDA版本,通过python -c "import torch; print(torch.version.cuda)"检查PyTorch关联的CUDA版本,确保两者一致。
6.3 模型权重下载
模型权重可以从HuggingFace或ModelScope两个渠道下载。对于国内用户来说,ModelScope通常速度更快更稳定:
# 方式一:使用huggingface-cli下载
huggingface-cli download jdopensource/JoyAI-Image-Edit --local-dir ./ckpts_infer
# 方式二:使用git lfs下载
git lfs install
git clone https://huggingface.co/jdopensource/JoyAI-Image-Edit ./ckpts_infer
# 方式三:从ModelScope下载(国内推荐)
# 访问 https://modelscope.cn/models/jd-opensource/JoyAI-Image-Edit
# 按页面引导进行下载
下载完成后,请务必确认权重文件的目录结构完整,特别是text_encoder/等子目录不能有缺失。权重总大小约为数十GB,请确保磁盘空间充足。如果使用git lfs下载中断了,可以进入目录后执行git lfs pull来续传。
6.4 图像理解推理
图像理解功能使用inference_und.py脚本。这个功能可以让模型分析一张或多张图片的空间关系、内容细节等信息,并用自然语言输出分析结果。
python inference_und.py \
--ckpt-root ./ckpts_infer \
--image "test_images/test_1.jpg" \
--prompt "详细描述这张图片中的空间关系。" \
--max-new-tokens 1024
也支持同时输入多张图片进行对比理解:
python inference_und.py \
--ckpt-root ./ckpts_infer \
--image "test_images/test_1.jpg,test_images/test3.png" \
--prompt "Compare these two images." \
--max-new-tokens 1024
主要参数说明:
|
参数 |
类型 |
默认值 |
说明 |
|
|
str |
必填 |
模型权重根目录 |
|
|
str |
必填 |
输入图片路径,多张图用逗号分隔 |
|
|
str |
"Describe this image in detail." |
用户指令 |
|
|
int |
2048 |
最大生成token数 |
|
|
float |
0.7 |
采样温度,设为0时为贪心解码 |
|
|
float |
0.8 |
nucleus采样阈值 |
|
|
int |
50 |
top-k采样阈值 |
6.5 图像编辑推理
图像编辑功能使用inference.py脚本:
python inference.py \
--ckpt-root ./ckpts_infer \
--prompt "Turn the plate blue" \
--image test_images/test_1.jpg \
--output outputs/result.png \
--seed 123 \
--steps 30 \
--guidance-scale 5.0 \
--basesize 1024
主要参数说明:
|
参数 |
类型 |
默认值 |
说明 |
|
|
str |
必填 |
模型权重根目录 |
|
|
str |
必填 |
编辑指令或文生图提示词 |
|
|
str |
None |
输入图片路径(编辑模式必填,文生图模式可省略) |
|
|
str |
example.png |
输出图片路径 |
|
|
int |
50 |
去噪步数,步数越多质量越高但速度越慢 |
|
|
float |
5.0 |
CFG引导强度,越大越忠实于指令 |
|
|
int |
42 |
随机种子,用于结果可复现 |
|
|
str |
"" |
负向提示词 |
|
|
int |
1024 |
输入图像的基础分辨率 |
莫潇羽在这里给大家几个实用的参数调优建议:
关于steps(去噪步数):默认50步可以获得不错的质量。如果你追求速度,可以降到30步,质量会略有下降但通常可以接受。空间编辑任务(相机控制、物体旋转等)建议保持在30步以上,因为这些任务需要更精细的去噪过程来确保几何一致性。
关于guidance-scale(引导强度):默认5.0是个比较平衡的值。如果你发现模型"不听话"、没有按照指令执行,可以适当提高到7.0甚至更高。但过高的值(超过10)可能导致画面过于饱和、出现伪影或色块。
关于basesize(基础分辨率):1024是推荐值,可以获得较高质量的输出。如果显存紧张,可以降到768甚至512,但空间编辑效果会受到一定影响——分辨率越低,模型能"看到"的空间细节就越少。
6.6 文生图与空间编辑实操示例
如果省略--image参数,模型就会进入文生图模式:
python inference.py \
--ckpt-root ./ckpts_infer \
--prompt "一只金色的拉布拉多犬坐在秋天的公园长椅上,阳光透过落叶洒下斑驳的光影" \
--output outputs/t2i_result.png \
--seed 42 \
--steps 50 \
--guidance-scale 5.0
下面给出三种空间编辑的完整命令示例:
相机控制——将视角水平向右旋转45度并拉近:
p