↖ 回到作品目录徐赛龙 / Xu SaiLong研究与空间设计 · 01
AI × URBAN REGENERATION / 硕士研究

一条街道,
多种生活的可能。

AI 辅助城市街道更新
从真实场地的问题出发,让图像生成参与设计推演。

探索项目 ↓
项目类型城市更新 / AI 辅助设计
场地尺度约 300 米 · 0.77 公顷
研究方法场地分析 → LoRA → 节点推演
设计工具Stable Diffusion / ComfyUI
01 / CONTEXT

先理解街道,
再开始生成。

这是一条“通学 + 生活”的复合型街道。

沾丁路位于杭州市临平区崇贤新城。西侧是中学和幼儿园,东侧是居住区底层商业。设计范围覆盖人行道、道路与两侧建筑前区,主要服务儿童与周边居民。

01 等待与停留

学校外的家长等候点与人流聚集处缺少休息设施,日常停留需求没有得到充分回应。

02 停车与通行

非机动车占用人行道,机动车占用非机动车道,停车与通行空间相互挤压。

03 铺装与绿化

部分路面老旧、易积水,沿街绿化和植物层次不足,街道界面有待改善。

沾丁路区位分析图
场地区位 · 学校、居住区与社区生活交织
02 / MODEL

让生成模型,
更贴近街道场景。

以 SDXL 1.0 为基础,训练街道设计 LoRA。

收集街道图像,经过图像整理、自动打标与人工标签核验,建立包含 1152 张图像和对应标签文件的训练集。将模型训练与生图对比连接起来,筛选适用于后续设计探索的模型。

1152训练图像
25训练轮次
0.8最终选择的权重
训练第23至25轮与0.6至0.8权重的图像比较矩阵
模型筛选矩阵 · 横向为轮次,纵向为权重
DATA ANNOTATION / 图像打标

自动识别,再用设计知识校准。

通过 GPT-4 API 批量识别街道图像,生成初步标签;随后对照街道设计知识图谱逐张核验,将标签聚焦于街道设施、路面、绿化与建筑界面。

人工检查分为两步:删除天气、行人等与本次训练目标无关的描述;补充图像中遗漏的设计要素,并统一标签用语。最终将每张图像与对应的 TXT 标签文件配对,作为 LoRA 训练输入。

论文中的人工标签核验界面,展示删除冗余描述与补充遗漏标签
人工处理标签
TRAINING MONITOR / 训练监测

观察 Loss 的下降,也检查生成结果。

训练共进行 25 轮。平均 Loss 在前期下降较快,后期逐渐趋缓;按轮次观察,Loss 从约 0.125 降至约 0.09,末段有小幅回升。单步 Loss 波动明显,因此结合平均值与每轮趋势观察训练过程。

论文原始 Loss 曲线:平均损失、单步损失及每轮损失,整体下降,末段小幅回升
从左到右为 loss/average、loss/current、loss/epoch。数值为原图约读。

Loss 用于监测训练状态,不能单独证明生成质量或排除过拟合。模型选择仍结合相同提示词下的生图对比,检查设计要素、空间布局和整体协调性。

03 / DESIGN ITERATION

先展开可能,
再控制细节。

01

明确设计导向

把场地问题转为具体空间要素:座椅、树池、停车棚、铺装与街边花园。

02

生成并筛选方案

结合现场照片、提示词与 LoRA,比较不同场景表达,选取继续深化的方向。

03

控制结构与局部

生成并修改线稿,借助 ControlNet 和局部重绘,进一步调整结构和细节。

五个节点,五种回应。

点击节点,查看现状与 AI 设计表达。

现状 / BEFORE
AI 方案 / PROPOSAL
04 / WORKFLOW

将生成过程
组织成工作流。

从图生图到分块放大,连接完整的生成流程。

以下节点图根据导出的 ComfyUI 工作流重建,保留节点编号、连接关系及参数。紫色边框标记停用或旁路节点;拖动空白处平移画布,拖动节点移动位置,拖动节点右下角调整大小;单独调整节点时文字字号保持不变。

01 / 图生图

模型、提示词、参考图与结构控制连接至采样和输出。
打开完整节点图 ↗
LoadImage ["2 (13).jpg", "image"]59 · LoadImage · 停用IMAGEMASK2 (13).jpgimage输入图片ImageScaleBy ["nearest-exact", 0.4]60 · ImageScaleBy · 停用imageIMAGEnearest-exact0.4ImageToMask ["red"]64 · ImageToMask · 停用imageMASKredVAEEncodeForInpaint [6]65 · VAEEncodeForInpaint ·停用pixelsvaemaskLATENT6LoadImage ["微信图片_20250610190120 (2).jpg", "image"]62 · LoadImage · 停用IMAGEMASK微信图片_20250610190120 (2).jpgimage输入图片SaveImage ["ComfyUI"]127 · SaveImageimagesComfyUIImage Levels Adjustment [1.025, 127.5, 255]134 · Image LevelsAdjustmentimageIMAGE1.025127.5255ImageUpscaleWithModel []129 · ImageUpscaleWithModelupscale_modelimageIMAGEVAEEncode []126 · VAEEncodepixelsvaeLATENTIPAdapterModelLoader ["ip-adapter-plus_sdxl_vit-h.safetensors"]167 · IPAdapterModelLoaderIPADAPTERip-adapter-plus_sdxl_vit-h.safetensorsImageScaleToTotalPixels ["lanczos", 10.000000000000002]125 ·ImageScaleToTotalPixelsimageIMAGElanczos10.0TTP_Tile_image_size [3, 2, 0.05000000000000001]131 · TTP_Tile_image_sizeimagetile_widthtile_height320.05TTP_Image_Tile_Batch [1024, 1024]130 · TTP_Image_Tile_Batchimagetile_widthtile_heightIMAGESPOSITIONSORIGINAL_SIZEGRID_SIZE10241024IPAdapterUnifiedLoader ["PLUS (high strength)"]146 ·IPAdapterUnifiedLoadermodelipadaptermodelipadapterPLUS (high strength)dynamicThresholdingFull [2.5, 1, "Constant", 0, "Constant", 0, 1, "enable", "MEAN", "AD", 1]150 ·dynamicThresholdingFullmodelMODEL2.51Constant0Constant01enableMEANAD1UpscaleModelLoader ["4x-UltraSharp.pth"]138 · UpscaleModelLoaderUPSCALE_MODEL4x-UltraSharp.pthImageSharpen [1, 0.3, 1]121 · ImageSharpenimageIMAGE10.31easy imageListToImageBatch []123 · easyimageListToImageBatchimagesIMAGETTP_Image_Assy [256]124 · TTP_Image_Assytilespositionsoriginal_sizegrid_sizeRECONSTRUCTED_IMAGE256PrepImageForClipVision ["LANCZOS", "pad", 0]152 ·PrepImageForClipVisionimageIMAGELANCZOSpad0ControlNetLoader ["Yuan-union-controlnet-union-sdxl-1.0.safetensors"]186 · ControlNetLoaderCONTROL_NETYuan-union-controlnet-union-sdxl-1.0.safetensorsCheckpointLoaderSimple ["02-元技能_Yuan_SDXL_0.2_建筑室外大模型.safetensors"]4 · CheckpointLoaderSimpleMODELCLIPVAE02-元技能_Yuan_SDXL_0.2_建筑室外大模型.safetensorsLoraLoader ["03-景观\\01-地产园林景观.safetensors", 0.25000000000000006, 0.25000000000000006]37 · LoraLoadermodelclipMODELCLIP03-景观\01-地产园林景观.safetensors0.250.25ControlNetLoader ["Yuan-union-controlnet-union-sdxl-1.0.safetensors"]189 · ControlNetLoader · 旁路CONTROL_NETYuan-union-controlnet-union-sdxl-1.0.safetensorsImageToMask ["red"]58 · ImageToMask · 旁路imageMASKredGrowMask [2, true]82 · GrowMask · 旁路maskMASK2TrueSetLatentNoiseMask []55 · SetLatentNoiseMask ·旁路samplesmaskLATENTVAEEncode []57 · VAEEncodepixelsvaeLATENTVAEDecode []120 · VAEDecodesamplesvaeIMAGELoadImage ["上海☁️动漫里的街头成真_1_Littwo_来自小红书网页版.jpg", "image"]151 · LoadImageIMAGEMASK上海☁️动漫里的街头成真_1_Littwo_来自小红书网页版.jpgimage输入图片CLIPTextEncode ["blur, blurry, "]7 · CLIPTextEncodeclipCONDITIONINGblur, blurry,VAEDecode []8 · VAEDecodesamplesvaeIMAGECLIPTextEncode ["sunny, summer, shadow, sunshine, blue_sky, sharp image, realistic portrayal,high-resolution,no words,"]136 · CLIPTextEncodeclipCONDITIONINGsunny, summer, shadow,sunshine, blue_sky, sharpimage, realisticportrayal,high-resolution,nowords,CLIPTextEncode ["blur, blurry, "]137 · CLIPTextEncodeclipCONDITIONINGblur, blurry,IPAdapterAdvanced [0.5000000000000001, "style transfer", "concat", 0, 1, "V only"]149 · IPAdapterAdvancedmodelipadapterimageimage_negativeattn_maskclip_visionMODEL0.5style transferconcat01V onlyCLIPVisionLoader ["CLIP-Vit-H-14-laion2B-s32B-b79K.safetensors"]148 · CLIPVisionLoaderCLIP_VISIONCLIP-Vit-H-14-laion2B-s32B-b79K.safetensorsControlNetApplyAdvanced [0.4000000000000001, 0, 1]191 ·ControlNetApplyAdvanced ·旁路positivenegativecontrol_netimagevaepositivenegative0.401PreviewImage []22 · PreviewImageimageseasy imageSize ["Width: 3722 , Height: 2817"]133 · easy imageSizeimagewidth_intheight_intWidth: 3722 , Height: 2817KSampler [474634008716441, "randomize", 20, 2.5, "euler_ancestral", "sgm_uniform", 0.20000000000000004]128 · KSamplermodelpositivenegativelatent_imageLATENT474634008716441randomize202.5euler_ancestralsgm_uniform0.2SaveImage ["ComfyUI"]192 · SaveImageimagesComfyUILoadImage ["image (41).png", "image"]190 · LoadImage · 旁路IMAGEMASKimage (41).pngimage输入图片LoadImage ["微信图片_20250626021513.jpg", "image"]56 · LoadImage · 旁路IMAGEMASK微信图片_20250626021513.jpgimage输入图片Image Comparer (rgthree) [[{"name": "A", "selected": true, "url": "/api/view?filename=rgthree.compare._temp_oosxn_00091_.png&type=temp&subfolder=&rand=0.06941951934262536"}, {"name": "B", "selected": true, "url": "/api/view?filename=rgthree.compare._temp_oosxn_00092_.png&type=temp&subfolder=&rand=0.47421524958623207"}]]122 · Image Comparer (rgthree)image_aimage_bControlNetApplyAdvanced [0.6000000000000001, 0, 1]187 ·ControlNetApplyAdvancedpositivenegativecontrol_netimagevaepositivenegative0.601CLIPTextEncode ["city street,commercial street,wooden facade,building facade,glass doors and windows,glass door,shop sign,storefront,awning,trees,street greening,green belt,bluestone floor,sidewalk,sunny day,shadow,clouds,shrub,asphalt road,"]6 · CLIPTextEncodeclipCONDITIONINGcity street,commercialstreet,wooden facade,buildingfacade,glass doors andwindows,glass door,shop sign,storefront,awning,trees,streetgreening,green belt,bluestonefloor,sidewalk,sunnyday,shadow,clouds,shrub,asphaltroad,LoadImage ["图层 0 (4).png", "image"]141 · LoadImageIMAGEMASK图层 0 (4).pngimage输入图片LoadImage ["image (47) (1).png", "image"]188 · LoadImageIMAGEMASKimage (47) (1).pngimage输入图片KSampler [241257814455887, "randomize", 20, 2.5, "euler_ancestral", "sgm_uniform", 0.55]3 · KSamplermodelpositivenegativelatent_imageLATENT241257814455887randomize202.5euler_ancestralsgm_uniform0.55ImageScaleBy ["lanczos", 0.5000000000000001]36 · ImageScaleBy · 旁路imageIMAGElanczos0.5LoraLoader ["13-城市街道\\城市街道.safetensors", 0.6000000000000001, 0.6000000000000001]10 · LoraLoadermodelclipMODELCLIP13-城市街道\城市街道.safetensors0.60.6

02 / 图像放大

UltraSharp 放大 → 分块编码与采样 → 解码、色阶与锐化 → 拼合输出。
打开完整节点图 ↗
Image Levels Adjustment [1.025, 127.5, 255]1 · Image Levels AdjustmentimageIMAGE1.025127.5255VAEEncode []3 · VAEEncodepixelsvaeLATENTImageScaleToTotalPixels ["lanczos", 10.000000000000002]4 · ImageScaleToTotalPixelsimageIMAGElanczos10.0TTP_Tile_image_size [3, 2, 0.05000000000000001]5 · TTP_Tile_image_sizeimagetile_widthtile_height320.05TTP_Image_Tile_Batch [1024, 1024]6 · TTP_Image_Tile_Batchimagetile_widthtile_heightIMAGESPOSITIONSORIGINAL_SIZEGRID_SIZE10241024UpscaleModelLoader ["4x-UltraSharp.pth"]7 · UpscaleModelLoaderUPSCALE_MODEL4x-UltraSharp.pthImage Comparer (rgthree) [[{"name": "A", "selected": true, "url": "/api/view?filename=rgthree.compare._temp_cguhx_00003_.png&type=temp&subfolder=&rand=0.889333512968431"}, {"name": "B", "selected": true, "url": "/api/view?filename=rgthree.compare._temp_cguhx_00004_.png&type=temp&subfolder=&rand=0.6832454819097484"}]]8 · Image Comparer (rgthree)image_aimage_bImageSharpen [1, 0.3, 1]9 · ImageSharpenimageIMAGE10.31easy imageListToImageBatch []10 · easyimageListToImageBatchimagesIMAGETTP_Image_Assy [256]11 · TTP_Image_Assytilespositionsoriginal_sizegrid_sizeRECONSTRUCTED_IMAGE256VAEDecode []12 · VAEDecodesamplesvaeIMAGECLIPTextEncode ["sunny, summer, shadow, sunshine, blue_sky, sharp image, realistic portrayal,high-resolution,no words,"]13 · CLIPTextEncodeclipCONDITIONINGsunny, summer, shadow,sunshine, blue_sky, sharpimage, realisticportrayal,high-resolution,nowords,CLIPTextEncode ["blur, blurry, "]14 · CLIPTextEncodeclipCONDITIONINGblur, blurry,easy imageSize ["Width: 3815 , Height: 2749"]15 · easy imageSizeimagewidth_intheight_intWidth: 3815 , Height: 2749SaveImage ["ComfyUI"]17 · SaveImageimagesComfyUIImageUpscaleWithModel []2 · ImageUpscaleWithModelupscale_modelimageIMAGELoadImage ["ComfyUI_02136_.png", "image"]19 · LoadImageIMAGEMASKComfyUI_02136_.pngimage输入图片CheckpointLoaderSimple ["02-元技能_Yuan_SDXL_0.2_建筑室外大模型.safetensors"]16 · CheckpointLoaderSimpleMODELCLIPVAE02-元技能_Yuan_SDXL_0.2_建筑室外大模型.safetensorsKSampler [625821477210533, "randomize", 20, 2.5, "euler_ancestral", "sgm_uniform", 0.3]18 · KSamplermodelpositivenegativelatent_imageLATENT625821477210533randomize202.5euler_ancestralsgm_uniform0.3
REFLECTION / 项目总结

图像生成提供可能,
空间判断决定方向。

这个项目把场地分析、模型训练、节点方案和生成工作流串联起来。AI 用于概念探索与视觉表达;道路组织、设施尺度、可达性和建造条件仍需在后续深化中验证。

项目性质:硕士阶段设计与研究探索。展示图为 AI 生成概念方案,不代表建成效果。