--- title: ImageGen Studio emoji: 🖼 colorFrom: indigo colorTo: purple sdk: gradio sdk_version: "5.50.0" app_file: app.py python_version: "3.12.12" startup_duration_timeout: 1h short_description: 中文优先的多任务图片生成与编辑工作台 license: gpl-3.0 pinned: true models: # This Space supports a wide variety of image generation pipelines. To maintain transparency, credit the original creators, and help users explore the Hugging Face ecosystem, we list and link several types of models in our metadata: # 1. **Directly Run Models:** Models and checkpoints actively loaded by our pipelines (configured via `yaml/file_list.yaml`). # 2. **Upstream Base Models:** The original foundation architectures from which our optimized ports, quantized versions, or wrappers are derived. # Directly Run Models - AiAF/Illustrious-XL-v0.1.safetensors - alibaba-pai/Z-Image-Turbo-Fun-Controlnet-Union-2.1 - black-forest-labs/FLUX.1-Redux-dev - black-forest-labs/FLUX.2-dev-NVFP4 - black-forest-labs/FLUX.2-klein-4b-nvfp4 - black-forest-labs/FLUX.2-klein-9b-nvfp4 - black-forest-labs/FLUX.2-klein-9b-kv-fp8 - black-forest-labs/FLUX.2-klein-base-4b-nvfp4 - black-forest-labs/FLUX.2-klein-base-9b-nvfp4 - bluepen5805/4nima_pencil-XL - bluepen5805/anima-models - bluepen5805/anima_pencil-XL - bluepen5805/blue_pencil-XL - bluepen5805/illustrious_pencil-XL - bluepen5805/mellow_pencil-XL - bluepen5805/noob_v_pencil-XL - bluepen5805/pony_pencil-XL - cagliostrolab/animagine-xl-3.1 - cagliostrolab/animagine-xl-4.0 - ChenkinNoob/ChenkinNoob-XL-V0.5 - circlestone-labs/Anima - Clybius/Chroma-fp8-scaled - comfyanonymous/ControlNet-v1-1_fp16_safetensors - comfyanonymous/cosmos_1.0_text_encoder_and_VAE_ComfyUI - comfyanonymous/flux_text_encoders - Comfy-Org/Anima-LLLite - Comfy-Org/Boogu-Image - Comfy-Org/ERNIE-Image - Comfy-Org/FLUX.1-Krea-dev_ComfyUI - Comfy-Org/flux2-dev - Comfy-Org/HiDream-I1_ComfyUI - Comfy-Org/HiDream-O1-Image - Comfy-Org/HunyuanImage_2.1_ComfyUI - Comfy-Org/Ideogram-4 - Comfy-Org/Krea-2 - Comfy-Org/Lens - Comfy-Org/LongCat-Image - Comfy-Org/Lumina_Image_2.0_Repackaged - Comfy-Org/Mage-Flow - Comfy-Org/NewBie-image-Exp0.1_repackaged - Comfy-Org/Omnigen2_ComfyUI_repackaged - Comfy-Org/Ovis-Image - Comfy-Org/PixelDiT - Comfy-Org/Qwen-Image_ComfyUI - Comfy-Org/Qwen-Image-Edit_ComfyUI - Comfy-Org/sigclip_vision_384 - Comfy-Org/stable-diffusion-3.5-fp8 - Comfy-Org/vae-text-encorder-for-flux-klein-4b - Comfy-Org/vae-text-encorder-for-flux-klein-9b - Comfy-Org/Wan_2.1_ComfyUI_repackaged - Comfy-Org/z_image - Comfy-Org/z_image_turbo - conradlocke/krea2-identity-edit - cyberdelia/CyberRealisticPony - diffusionmodels1254ani/hassakuAnima - diffusionmodels1254ani/kirazuriAnima_v30AnimaBase1 - diffusionmodels1254ani/waiANIMA - duongve/AnimaYume - Eugeoter/noob-sdxl-controlnet-canny - Eugeoter/noob-sdxl-controlnet-depth - Eugeoter/noob-sdxl-controlnet-lineart_anime - Eugeoter/noob-sdxl-controlnet-lineart_realistic - Eugeoter/noob-sdxl-controlnet-manga_line - Eugeoter/noob-sdxl-controlnet-normal - Eugeoter/noob-sdxl-controlnet-softedge_hed - Eugeoter/noob-sdxl-controlnet-tile - fal/AuraFlow-v0.3 - frankjoshua/novaAnimeXL_ilV180 - h94/IP-Adapter - h94/IP-Adapter-FaceID - InstantX/FLUX.1-dev-IP-Adapter - InstantX/Qwen-Image-ControlNet-Inpainting - InstantX/Qwen-Image-ControlNet-Union - InstantX/SD3.5-Large-IP-Adapter - jdopensource/JoyAI-Image-Edit-ComfyUI - jdopensource/JoyAI-Image-Edit-Plus-ComfyUI - kandinskylab/Kandinsky-5.0-T2I-Lite - Kijai/flux-fp8 - Laxhar/noob_openpose - Laxhar/noobai-XL-1.1 - Laxhar/noobai-XL-Vpred-1.0 - licyk/sd_control_collection - lightx2v/Qwen-Image-2512-Lightning - lightx2v/Qwen-Image-Edit-2511-Lightning - LyliaEngine/Pony_Diffusion_V6_XL - MIC-Lab/illustriousXLv0.1_controlnet - MIC-Lab/illustriousXLv1.1_controlnet - misri/hassakuXLIllustrious_v30 - nvidia/Cosmos-Predict2-2B-Text2Image - nvidia/Cosmos-Predict2-14B-Text2Image - OnomaAIResearch/Illustrious-XL-v1.0 - OnomaAIResearch/Illustrious-XL-v1.1 - OnomaAIResearch/Illustrious-XL-v2.0 - ostris/krea2_turbo_style_reference - Patil/Krea-2-depth-controlnet - RedRayz/hikari_noob_v-pred_1.2.4 - Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro-2.0 - silveroxides/Chroma1-Radiance-fp8-scaled - stabilityai/sdxl-turbo - stabilityai/stable-diffusion-3.5-controlnets - stabilityai/stable-diffusion-xl-base-1.0 - stable-diffusion-v1-5/stable-diffusion-v1-5 - tsukiyomi/krea2_raw-nvfp4 - Wenaka/NoobAI_XL_Inpainting_ControlNet_Full - xinsir/anime-painter - xinsir/controlnet-canny-sdxl-1.0 - xinsir/controlnet-depth-sdxl-1.0 - xinsir/controlnet-openpose-sdxl-1.0 - xinsir/controlnet-scribble-sdxl-1.0 - xinsir/controlnet-tile-sdxl-1.0 - xinsir/controlnet-union-sdxl-1.0 - XLabs-AI/flux-controlnet-collections - zhenshipo/waiIllustriousSDXL_v170 # Upstream Base Models - AIDC-AI/Ovis-Image-7B - Alpha-VLLM/Lumina-Image-2.0 - baidu/ERNIE-Image - baidu/ERNIE-Image-Turbo - black-forest-labs/FLUX.1-dev - black-forest-labs/FLUX.1-Krea-dev - black-forest-labs/FLUX.1-schnell - Boogu/Boogu-Image-0.1-Turbo - Boogu/Boogu-Image-0.1-Base - Boogu/Boogu-Image-0.1-Edit - Boogu/Boogu-Image-0.1-Edit-Turbo - HiDream-ai/HiDream-I1-Dev - HiDream-ai/HiDream-I1-Fast - HiDream-ai/HiDream-I1-Full - HiDream-ai/HiDream-O1-Image - HiDream-ai/HiDream-O1-Image-Dev - ideogram-ai/ideogram-4-fp8 - kohya-ss/Anima-LLLite - krea/Krea-2-Raw - krea/Krea-2-Turbo - lodestones/Chroma1-HD - lodestones/Chroma1-Radiance - mage-flow-community/Mage-Flow - mage-flow-community/Mage-Flow-Base - mage-flow-community/Mage-Flow-Edit - mage-flow-community/Mage-Flow-Edit-Base - mage-flow-community/Mage-Flow-Edit-Turbo - mage-flow-community/Mage-Flow-Turbo - meituan-longcat/LongCat-Image - microsoft/Lens - microsoft/Lens-Turbo - NewBie-AI/NewBie-image-Exp0.1 - nvidia/PiD - nvidia/PixelDiT-1300M-1024px - OmniGen2/OmniGen2 - Qwen/Qwen-Image - Qwen/Qwen-Image-2512 - Qwen/Qwen-Image-Edit - Qwen/Qwen-Image-Edit-2509 - Qwen/Qwen-Image-Edit-2511 - stabilityai/stable-diffusion-3.5-large - stabilityai/stable-diffusion-3.5-medium - tencent/HunyuanImage-2.1 - Tongyi-MAI/Z-Image - Tongyi-MAI/Z-Image-Turbo --- # ImageGen Studio 这是 [RioShiina/ImageGen](https://huggingface.co/spaces/RioShiina/ImageGen) 与 [Dekonstruktio/Fluxus](https://huggingface.co/spaces/Dekonstruktio/Fluxus) 的整合重构版,保留 YAML 配方、动态工作流和 92 个模型目录,重做任务切换、并发调度、中文指导与移动端体验。 Fluxus 与 ImageGen 共享同一 Git 历史,Fluxus 当前版本只调整了品牌文案和 MCP 开关,没有第二套推理核心。因此本项目使用一个 ImageGen 引擎,并兼容两边的 API 契约,避免双后端、双状态和重复下载。 ## 主要改进 | 项目 | 原版 | 本整合版 | |---|---|---| | 任务界面 | 5 个完整 Tab,重复创建全部高级控件 | 1 个共享工作台,动态切换 5 类任务 | | 任务切换 | 模型、Prompt 和素材分散在各 Tab | 保留模型、Prompt、参数与上传素材 | | 模型切换 | 会覆盖正负 Prompt 和推荐参数 | 保留用户 Prompt;推荐采样参数可自动跟随、关闭或一键恢复 | | 复杂度 | 约 4,033 组件 / 506 事件 | 烟测为 881 组件 / 120 事件 | | GPU 并发 | UI 与 MCP 可绕过彼此并发执行 | 各入口有界,最终汇合到公平的单 GPU 闸门 | | 异步 MCP | 每次请求创建无上限 daemon 线程 | 有界线程池、队列满错误、任务表上限与锁 | | 临时文件 | 4 位随机后缀,可能碰撞 | UUID 文件名 | | 启动依赖 | 运行时拉取最新版并覆盖项目根 | 固定 commit,隔离在 `_vendor/ComfyUI` | | 中文体验 | 英文界面,无模型语言提示 | 中文任务指导、模型用途说明、可操作错误信息 | | MCP 兼容 | ImageGen 与 Fluxus 接口名不同 | 同时保留新版接口与两个 Fluxus 旧别名 | ## 支持能力 - 任务:文生图、参考图编辑 / 融合、图生图(整体重绘)、局部重绘、扩图、高清修复。 - 模型:由 `yaml/model_list.yaml` 驱动,当前包含 30 类架构、92 个显示模型。 - 扩展:LoRA、ControlNet、IP-Adapter、Embedding、区域提示、多图编辑、VAE、PiD 等。 - 输出:PNG 内写入生成参数和完整 ComfyUI 工作流元数据。 - 中文 Prompt:不做隐式翻译或扩写;只统一显式图片编号,模型说明会区分中文自然语言和英文标签型模型。 ## 批量、多图与模型 PK 这些能力只增加一个有上限的顺序编排层,不创建第二套推理引擎,也不会让多个大模型同时占用显存: | 运行方式 | 输入语义 | 输出语义 | |---|---|---| | 普通生成 | 当前任务的一组输入 | 1–4 张同组变体 | | 模型 PK | 同一 Prompt、尺寸、源图与已解析 Seed | 每个模型分别生成;默认最多 2 个模型 | | 多图独立 | A、B、C 是互不相关的源图 | A→A′、B→B′、C→C′ | | 多图 × 多模型 | 多张独立源图和两个模型 | 按模型分组顺序执行图片×模型组合 | | 多图融合 | 多张图共同作为一组参考 | 由兼容的编辑模型融合为 1–4 张结果 | - 多图独立目前支持图生图、扩图和高清修复;局部重绘需要逐张图片配对蒙版,暂不做批量。 - 按指令改图请选择“参考图编辑 / 融合”:一张图编辑,多张图整组参考。内部走 `txt2img + 模型专属参考链`,不与整体重绘的源图 latent 混用;兼容旧的“文生图 + 多图融合”选择。 - 图片列表按显示顺序从 1 编号,可拖动排序;有效图片预览中的 `图1 = img1 = image1` 指向同一张图,送入模型时统一为 `image 1`。空槽位不编号;重排/删除后编号随预览更新。编号只是输入对应关系,不保证每种模型都能精确执行空间或身份指令。 - 提示词中的 `图1`、`图 1`、`参考图1`、`图片1`、`img1`、`IMG1`、`image 1` 均可使用;不存在的编号会在模型下载 / GPU 生成前报错。双引号、中文引号或反引号内的编号视为需要显示的文字,不解析;文件名和标识符不替换。 - 高层图片列表是当前任务的唯一图片来源,不合并下方旧参考槽位。切换任务/模型会保留隐藏素材供切回,但隐藏或不兼容的原生参考图不参加生成。普通文生图仍兼容下方原生参考槽位;多个原生参考链同时使用时不能用统一编号引用,推荐高层入口。 - 多图独立 / 图片×模型共用一条 Prompt,请写“当前图片”,不能用 `img2` 跨图引用;需要两图同时参与时改用参考图编辑 / 融合。超出张数限制明确报错,不静默丢图。 - 多图融合是生成式参考,不保证无损拼接、角色逐像素保留或确定性元素替换。 - PK 默认采用各模型推荐采样参数;关闭后才严格复用当前步数、CFG、采样器和调度器。同一 Seed 在不同架构之间只是尽量控制变量,不表示初始噪声数学等价。 - PK V1 会关闭 LoRA、ControlNet、IP-Adapter、参考链、自定义 VAE 和 PiD,只比较所有基础 checkpoint 都具备的 Prompt / 源图能力,避免某个模型偷偷多一层条件。 - 单进程始终一次只执行一个 GPU 任务。模型文件按需缓存在磁盘;只在 PK 的实际模型边界和 GPU 异常后释放 ComfyUI 模型状态。 - 默认上限为 2 个 PK 模型、4 张输入图、4 个顺序任务、8 张预计输出。某一组合失败时保留已成功结果;取消会停止尚未开始的后续组合。 ## 部署到 Hugging Face Space 1. 新建 Gradio Space,硬件选择 ZeroGPU;README metadata 已固定 Python 3.12.12,并把冷启动上限设为 1 小时。 2. 上传本仓库内容;Space 会按 `requirements.txt` 安装 Gradio 5.50 和 MCP 额外依赖。 3. 按需要设置 Secret: - `HF_TOKEN`:访问 gated/private Hugging Face 模型。 - `CIVITAI_API_KEY`:下载需要授权的 Civitai 资源。 4. 首次启动会按 `vendor.lock.yaml` 拉取固定版本的 ComfyUI 与 5 个 custom nodes;首次使用某个模型时才下载其权重。 部署边界: - 模型目录包含 92 个可选项,但这不等于 92 个模型可同时驻留。ZeroGPU 应使用按需磁盘缓存 + 单模型顺序执行。 - Space 默认磁盘是临时盘,重启/重建后缓存可能消失。若需要长期保留模型,可把 Hugging Face Storage Bucket 挂载到 `/home/user/app/models`,并设置 `HF_HOME=/home/user/app/models/.hf-cache`,让权重实体和项目符号链接位于同一持久卷。 - 下载前会读取远端文件大小并保留默认 3 GB 安全余量;空间不足时会在下载前拒绝,而不是写满磁盘。项目不自动删除 Hub cache,避免误删仍被符号链接引用的模型。 - FLUX、SD3.5、Cosmos 等部分资源可能受访问条款限制。`HF_TOKEN` 所属账号必须先在对应模型页接受条款。 - 公共 Space 建议精选 4–8 个常用模型,并设置 `IMAGEGEN_MAX_BATCH_SIZE=2`;完整 92 模型目录更适合挂载持久存储的专用部署。 - ZeroGPU 单次 GPU 申请上限为 120 秒。大模型首次装载、超高分辨率或长采样仍可能超时;PK 会为每个模型分别申请 GPU,而不是占用一个超长租约。 完整的适配状态、推荐变量与上线实测清单见 [`docs/HF_SPACE_DEPLOYMENT.md`](docs/HF_SPACE_DEPLOYMENT.md)。 默认启动命令由 Space metadata 执行: ```bash python app.py ``` ## 本地运行 需要 Python 3.12、Git,以及与目标模型相匹配的 NVIDIA GPU 环境: ```bash python -m venv .venv source .venv/bin/activate pip install -r requirements.txt python app.py ``` 如已有 ComfyUI,可避免再次克隆: ```bash COMFYUI_PATH=/absolute/path/to/ComfyUI python app.py ``` ## 运行参数 | 环境变量 | 默认值 | 说明 | |---|---:|---| | `IMAGEGEN_GPU_CONCURRENCY` | 固定 `1` | 为兼容旧部署保留名称;单进程始终串行,扩容请增加独立副本 | | `IMAGEGEN_QUEUE_MAX_SIZE` | `24` | Gradio 等待队列上限 | | `IMAGEGEN_MCP_MAX_PENDING` | `16` | MCP 后台任务上限 | | `IMAGEGEN_MCP_TASK_RETENTION` | `200` | 内存任务记录上限 | | `IMAGEGEN_MAX_BATCH_SIZE` | `4` | 单次最大图片数 | | `IMAGEGEN_MAX_PK_MODELS` | `2` | PK 模型总数上限(含当前模型) | | `IMAGEGEN_MAX_MULTI_IMAGES` | `4` | 批量输入/参考图的全局上传上限 | | `IMAGEGEN_MAX_PLAN_JOBS` | `4` | 一次提交可展开的顺序任务上限 | | `IMAGEGEN_MAX_PLAN_OUTPUTS` | `8` | 一次提交的预计输出总数上限 | | `IMAGEGEN_MAX_INPUT_MEGAPIXELS` | `4.2` | 输入图片/文生图画布上限 | | `IMAGEGEN_MAX_REFERENCE_MEGAPIXELS` | `12` | 一组上传图片的累计像素上限 | | `IMAGEGEN_MAX_REFERENCE_IMAGES` | `10` | 一次任务中全部参考图/控制图的合计上限 | | `IMAGEGEN_MAX_OUTPUT_MEGAPIXELS` | `16` | 扩图和高清修复预计输出上限 | | `IMAGEGEN_MIN_FREE_DISK_GB` | `3` | 模型下载后必须保留的磁盘余量 | | `IMAGEGEN_OUTPUT_RETENTION` | `80` | 本地保留的生成 PNG 数量 | | `IMAGEGEN_ENABLE_MCP` | `true` | 是否启动 MCP;设为 `false` 即采用 Fluxus 的关闭方式 | | `IMAGEGEN_STARTUP_GPU_PROBE` | `false` | 是否在启动时申请一次 GPU | | `IMAGEGEN_USE_SAGE_ATTENTION` | `auto` | `auto` / `true` / `false` | | `IMAGEGEN_SKIP_CUSTOM_NODES` | `false` | 本地调试时跳过 custom nodes 拉取 | | `IMAGEGEN_GIT_TIMEOUT_SECONDS` | `180` | 单次 Git clone/fetch 超时 | | `IMAGEGEN_GIT_ATTEMPTS` | `2` | Git 网络操作尝试次数 | ## MCP / Gradio API 公开 7 个主接口: - `get_task_list` - `get_model_architecture_list` - `get_model_list` - `get_feature_list` - `get_model_features` - `run` - `get_task_status` 同时保留 Fluxus 客户端兼容别名: - `run_imagegen(json_params)` → `run(json_params)` - `get_chain_schema(chain_type)` → 返回单个扩展能力的完整 schema `get_feature_list()` 空参默认返回 Fluxus 兼容的完整 schema;如需节省 MCP token,传 `compact=true` 获取摘要。也可以传 `feature_name`,或使用 `get_chain_schema(chain_type)` 查询单项完整 schema。 `run` 会在排队前校验基础参数、chain 结构和模型扩展能力;请求未知或明显不兼容的 chain 会明确失败。数值字符串会先归一化,不要求调用方严格区分 JSON 数字与表单字符串。 所有 UI 原子事件均隐藏,不作为公共 API 暴露。 ### AI 调用图片编辑与批量任务 推荐流程:`get_task_list()` → `get_model_list()` → `get_model_features(model)` → `run(json_params)` → 轮询 `get_task_status(task_id)`。`get_model_features.image_workflows` 提供具体模型的运行方式、参考用途、图片上限、增量参数 schema 和使用规则;AI 不需要猜 `injector_type`。不传 `steps/cfg/sampler/scheduler` 时服务端沿用模型推荐值,负面提示词是否生效仍取决于模型和 CFG。 编辑两张参考图的 JSON 模板(图片值需替换为实际可访问的 URL 或完整 Base64 Data URI): ```json { "task_type": "reference", "model": "lightx2v/Qwen-Image-Edit-2511-Lightning", "prompt": "保留图1的主体,参考 img2 的背景和光线。", "images": ["https://example.com/subject.png", "https://example.com/background.png"], "reference_role": "auto", "width": 1024, "height": 1024, "async_execution": true } ``` 也可用顶层 `"img1": "...", "图2": "..."` 替代 `images`,按数值排序而非 JSON 字段顺序。编号必须连续且唯一;`img1` 与 `图1` 重复、跳号、空项、`images` 与 `image` / 原生参考 `chain` 混用都会报 `INVALID_PARAMS`。输入图片支持公网 HTTP(S) URL 和 Base64 Data URI,不接受服务端本地路径。 | 意图 | 最小图片参数 | |---|---| | 一图指令编辑 / 多图融合 | `task_type=reference`、`images`、`width`、`height`;默认 `run_mode=multi_reference` | | 普通整体重绘 | `task_type=img2img`、`image`(或单元素 `images`);可设 `denoise` | | 多图逐张重绘 | `task_type=img2img`、`run_mode=multi_independent`、`images`;Prompt 共用 | | 图片×模型 | 同上,改为 `run_mode=multi_model_grid` 并加 `extra_models` | | 模型 PK | 原任务参数加 `run_mode=model_pk`、`extra_models`;只比较基础模型 | 旧的 `image`、`txt2img + chain`、同步 / 异步调用、`run_imagegen` 保留。参考用途默认 `auto`;`identity` / `style` 只在模型 discovery 明确返回时使用,不能跨模型猜测。 Gradio Client 传参和异步轮询方式(`params` 使用上面的 JSON 内容): ```python import json import time from gradio_client import Client client = Client("BlueSkyXN/ImageGen-Studio") task = client.predict(json_params=json.dumps(params, ensure_ascii=False), api_name="/run") if "error" in task: raise RuntimeError(task["error"]) while task["status"] in {"queued", "processing"}: time.sleep(2) task = client.predict(task_id=task["task_id"], api_name="/get_task_status") if task["status"] == "failed": raise RuntimeError(task["error"]) print(task["result"]) ``` 轮询超时应重查同一 `task_id`,不要重复提交生成。`result.images` 仍是图片 URL 列表;新增 `image_references`、`effective_prompt`、`captions`、`jobs`、`partial_success` 和 `summary` 用于检查实际编号、送入模型的 Prompt、各子任务结果。批量任务的尺寸/seed 以 `jobs` 为准,顶层字段兼容保留首任务值。匿名 HF 调用仍受 ZeroGPU 额度限制,已有授权客户端可按自身认证方式传入 HF token。 ### 配置入口 - 模型清单:`yaml/model_list.yaml`;模型推荐采样参数:`yaml/model_defaults.yaml`,UI 重置按钮和 API 默认值沿用此配置。 - 架构扩展:`yaml/image_gen_features.yaml`;具体 checkpoint 的编辑能力限制:`core/model_capabilities.py`。 - 原生参考图张数:`core/reference_inputs.py` 的 `REFERENCE_CHAIN_SPECS` 与 injector 容量一致;有效上限还受 `IMAGEGEN_MAX_MULTI_IMAGES`、`IMAGEGEN_MAX_REFERENCE_IMAGES` 限制,修改后重启生效。仅提高环境变量不能突破模型容量。 - 像素和任务预算沿用上表的 `IMAGEGEN_MAX_*` 环境变量;界面、执行计划与 API discovery 共用,不需维护另一套 API 参数表。 ## 验证 ```bash python -m compileall -q . python -m unittest discover -s tests -v ``` 界面烟测在安装 Gradio 后会以 stub ComfyUI 构建完整配置,因此不需要下载模型或占用 GPU;未安装 Gradio 时相关用例会跳过。 ## 目录 ```text app.py # Space 入口与有界 Gradio 队列 core/ # 生成管线、工作流装配、统一调度 ui/shared/studio_ui.py # 单一动态工作台 ui/events/ # 切换、模型、扩展与生成事件 mcp_tools/ # 高层 API、兼容别名、任务状态 yaml/ # 模型、能力、默认参数与配方注册表 vendor.lock.yaml # ComfyUI / custom nodes 固定版本 tests/ # 并发、注册表、MCP 与 UI 烟测 ``` ## 许可与来源 本项目是 ImageGen 的修改版,整体继续采用 GPL-3.0,并保留上游署名。Fluxus 也是同一 GPL-3.0 代码谱系。模型权重、ComfyUI 与 custom nodes 各自受其上游许可证约束;本仓库不重新分发模型权重。具体版本与修改声明见 `NOTICE.md`。