feat(canvas): AI 拆图 - 完善规划、图层编辑与素材复用

This commit is contained in:
Codex
2026-10-09 16:42:56 +08:00
parent 85c2aa178b
commit e9227e7941
56 changed files with 3541 additions and 162 deletions

View File

@@ -30,6 +30,7 @@ type ModelPickerProps = {
variant?: "default" | "creation";
requirements?: ModelRequirements;
showConfiguredModelName?: boolean;
modelFilter?: (model: string) => boolean;
};
export function ModelPicker({
@@ -47,6 +48,7 @@ export function ModelPicker({
variant = "creation",
requirements,
showConfiguredModelName = false,
modelFilter,
}: ModelPickerProps) {
const creditsEnabled = useUserStore((state) => state.features.creditsEnabled);
const pickerId = useId();
@@ -58,7 +60,7 @@ export function ModelPicker({
const [activeGroupKey, setActiveGroupKey] = useState<string | null>(null);
const menuRef = useRef<HTMLDivElement>(null);
const triggerRef = useRef<HTMLButtonElement>(null);
const options = useMemo(() => Array.from(new Set(selectableModelsByCapability(config, capability).filter(Boolean))), [capability, config]);
const options = useMemo(() => Array.from(new Set(selectableModelsByCapability(config, capability).filter((model) => Boolean(model) && (!modelFilter || modelFilter(model))))), [capability, config, modelFilter]);
const optionGroups = useMemo(() => groupModelsForPicker(config, options), [config, options]);
const storedCurrent = value?.trim() || "";
// 参数档位会在选中模型后由调用方归一到其能力配置,不能因为旧模型留下的参数而禁止切换。