1、Anime / illustration to photorealistic converter, built for MOSS-Image.
Only the rendering style changes — composition, pose and clothing stay exactly the same.
Works on full images and on face close-ups.
ComfyUI — 2026-10-16 or newer. Native MOSS-Image support was added on 2026-10-16 (PR #17095). Stable releases,ComfyUI v0.41.0-17-gc06bf5f56
提交号 c06bf5f5,日期 2026-10-18
v0.41.0 to v0.41.3 do NOT include the MOSS nodes.
Base model — MOSS-Image.
2、采样参数
采样器 euler
调度器 sgm_uniform(simple 也行)
步数 8~20 日常 / 50 官方参考画质
加速lora8步+CFG 3.5+分辨率最长边1536效果最佳
CFG 1-3
LoRA 权重 1
附上工作流和插件,官方已更新节点,可装官方节点https://github.com/ostris/ComfyUI-MOSS-Image-Ostris-Edit
Description
Converts anime, illustration and 2.5D renders into photographic-realistic images, built for MOSS-Image.
Keeps the original composition, pose and outfit — only the rendering style changes.
Works on full images and on face close-ups.
Trigger word: convert to photorealistic
FAQ
Comments (10)
It is a text to image model, can you explain how you did it ?
The ai-toolkit moss_image trainer now supports edit-model training — it's already built in
@manbaout1 thank you for your reply, are you talking about this: https://github.com/ostris/ai-toolkit ? So, it does not use Comfy-ui, if it use comfy ui, can you share the workflow.
# ComfyUI Error Report ## Error Details - Node ID: 313 - Node Type: KSampler - Exception Type: RuntimeError - Exception Message: RuntimeError: 认不出 MOSS 的 RoPE 实现(既没有 rope._default_bands 也没有 pe_embedder) ## Stack Trace ``` File "D:\AITools\StabilityMatrixData\Packages\ComfyUI\execution.py", line 548, in execute output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)Before anything else, two things to check:
1. Loader — this node pack only supports MOSS loaded through ComfyUI's own loader. The original / standalone
MOSS repo loader is NOT supported. The two differ in how RoPE is wired up, so the edit path will throw exactly
this kind of error if you load MOSS the original way.
2. ComfyUI version — check the version line in your ComfyUI startup log and make sure it's one that matches
what this pack was built against. After confirming, fully restart ComfyUI (not just refresh the page or hit
"Restart" in the web UI) so the custom nodes are reloaded clean.
If both of those are already correct and it still fails, please just hand the whole thing over to an agent
(Claude Code, Codex, Cursor, whatever you use) to debug on your machine — honestly I can't tell what's
actually going on from the error alone, since I don't have access to your environment.
When you give it to the agent, pass along these three things and it should be able to work it out:
- the full traceback, not just the first line (the lower frames name the exact file and function that failed)
- the folder names inside your custom_nodes that contain "moss", plus the ComfyUI version string
- how you loaded the model — via ComfyUI's loader node, or the original MOSS repo's own script
ComfyUI v0.42 changed the MOSSImage RoPE implementation to comfy.ldm.flux.math.rope and added MOSSImage.rope_axes_dim. The old _rope_from_coords() in comfyui-manba-moss-edit/edit_core.py still checks the legacy rope._default_bands / pe_embedder attributes, so it always falls through to the raise.
Until the plugin author updates it, replacing the whole _rope_from_coords() function in custom_nodes/comfyui-manba-moss-edit/edit_core.py fixes it for me on v0.42.0+:
def _rope_from_coords(inner, coords):
"""(B, L, 4) coords -> RoPE (ComfyUI v0.42+ flux.math.rope)."""
axes_dim = getattr(inner, "rope_axes_dim", None)
if axes_dim is not None:
import comfy.ldm.flux.math
pe_parts = []
for i, d in enumerate(axes_dim):
pe_parts.append(comfy.ldm.flux.math.rope(coords[..., i], d, 10000))
pe = torch.cat(pe_parts, dim=-3)
return pe.unsqueeze(1).transpose(1, 2).contiguous()
# legacy fallback
rope = getattr(inner, "rope", None)
if rope is not None and hasattr(rope, "_default_bands"):
bands = rope._default_bands(coords.device)
phase = coords.unsqueeze(-1) * bands
return torch.cat((phase.sin(), phase.cos()), -2).flatten(-2)
pe = getattr(inner, "pe_embedder", None)
if pe is not None:
return pe(coords).transpose(1, 2).contiguous()
raise RuntimeError("认不出 MOSS 的 RoPE 实现(没有 rope_axes_dim,也没有旧版接口)")Make sure you replace the entire old function, and fully restart ComfyUI after saving (custom_nodes modules are not hot-reloaded). This worked for me with the official MOSSImage model loaded via UNETLoader on ComfyUI v0.42.0.
@Yumu2497 谢谢
I just installed this with this PR:
https://github.com/ostris/ComfyUI-MOSS-Image-Ostris-Edit/pull/2
It works with the ComfyUI loaders fine, don't see any point to using the node supplied with this lora.
@phazei Is the official one available now? When I finished training, I couldn't find an official node anywhere, so I
built my own. If there's an official version, the official one is always better
@manbaout1 Ostris is the one who created the trainer, so his is as official as it gets. I do hope he merges my PR soon though. One issue with my PR is it's not backwards compatible... hmm, maybe I should be it be.




