MaybeRichard commited on
Commit
1fe9f75
·
verified ·
1 Parent(s): eb518d1

OCTFlow 2026-06-10: base_v2+stageA_v3+v3b2 (stripped) + results bundle (report/figs/manuscript)

Browse files
.gitattributes CHANGED
@@ -33,3 +33,9 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ results/figs/fd_onestep_sanity.png filter=lfs diff=lfs merge=lfs -text
37
+ results/figs/hero_matrix.png filter=lfs diff=lfs merge=lfs -text
38
+ results/figs/qual_denoise.png filter=lfs diff=lfs merge=lfs -text
39
+ results/figs/radar.png filter=lfs diff=lfs merge=lfs -text
40
+ results/figs/spectrum.png filter=lfs diff=lfs merge=lfs -text
41
+ results/manuscript/octflow_main.pdf filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,70 +1,49 @@
1
  ---
2
  license: other
3
  tags:
4
- - oct
5
  - ophthalmology
6
- - segmentation
7
- - stable-diffusion-3
8
- - instruction-tuning
9
  - medical-imaging
10
  ---
11
 
12
- # OCTFlow — Path 1 (SD3 backbone) code + weights
13
 
14
- Reusable code and checkpoints for the OCTFlow pilot: an ophthalmic multimodal
15
- generative model that does **prompt-controlled OCT retinal-layer segmentation**
16
- (Vision-Banana-style instruction tuning on a Stable Diffusion 3 medium backbone).
 
17
 
18
- This repo is for **continuing the work on a new machine** — the dataset is hosted
19
- separately. Optimizer state has been stripped from the checkpoints (warm-start and
20
- inference only need `model` weights).
21
 
22
- ## Contents
23
 
24
- | File | What |
25
- |---|---|
26
- | `octflow-raev2-code.tar.gz` | Full RAEv2 working tree (src/ engine + pilot/path1/ Path-1 code, configs, scripts). Excludes results/, .git/, pretrained_models/, data/. |
27
- | `weights/sd3_oct_stageA_v3_step20000.pt` | **Stage A\*** — SD3 medium fine-tuned on Topcon OCT (T2I domain adaptation). The warm-start base for all Stage C runs. |
28
- | `weights/sd3_vb_stageC_v3a_step30000.pt` | **v3a (best)** multi-prompt instruction tuning. Follows prompts for 9/5/3-layer + arbitrary colors + single-layer selection; zero-shot adapts to new layer schemes. |
29
- | `weights/sd3_vb_stageC_v1_step20000.pt` | (optional) v1 specialist, prob_seg=0.3, single fixed 10-color prompt. |
30
- | `weights/sd3_vb_stageC_v2_step20000.pt` | (optional) v2 specialist, prob_seg=0.5. |
31
 
32
- Each `.pt` holds `{step, model, ema, config}` (no optimizer). `model` is a
33
- `SD3Transformer2DModel` with `pos_embed.proj` expanded 16→32 input channels
34
- (channel-concat image conditioning).
35
 
36
- ## Key results (v3a)
37
 
38
- - **Instruction following**: prompt 9/5/3 layers outputs 6.95/4.36/2.85 layers; shuffled-color prompt mIoU 0.456 ≈ canonical 0.461 (the model reads the prompt's color map).
39
- - **Cross-device zero-shot (OCTA500, native 5-layer prompt)**: binary retina IoU **0.538 0.897** vs the single-prompt pilot.
40
- - **per-scheme mIoU (incl bg, N=150)**: 9-layer 0.461 / 5-layer 0.526 / 3-layer 0.610.
41
- - vs OCT-RAE backbone: 10-class strict mIoU 0.023 → 0.507 (22×).
42
 
43
- ## Restore on a new server
44
-
45
- ```bash
46
- # 1. download this repo
47
- hf download <this-repo-id> --repo-type model --local-dir octflow_restore
48
 
49
- # 2. unpack code
50
- mkdir RAEv2 && tar xzf octflow_restore/octflow-raev2-code.tar.gz -C RAEv2
51
- cd RAEv2
52
 
53
- # 3. env (uv) + put weights back where run.sh expects them
54
- uv sync # or: conda env + pip install diffusers transformers torch ...
55
- mkdir -p pilot/path1/results/sd3_oct_stageA_v3/checkpoints
56
- mkdir -p pilot/path1/results/sd3_vb_stageC_v3a/checkpoints
57
- cp octflow_restore/weights/sd3_oct_stageA_v3_step20000.pt pilot/path1/results/sd3_oct_stageA_v3/checkpoints/step-0020000.pt
58
- cp octflow_restore/weights/sd3_vb_stageC_v3a_step30000.pt pilot/path1/results/sd3_vb_stageC_v3a/checkpoints/step-0030000.pt
59
 
60
- # 4. point configs/scripts at the new dataset root, then see pilot/path1/run.sh
 
 
 
61
  ```
62
-
63
- SD3 medium base weights (`stabilityai/stable-diffusion-3-medium-diffusers`) are
64
- downloaded from HF at runtime, not bundled here.
65
-
66
- ## Reproduce / next step
67
-
68
- The full pipeline is `pilot/path1/run.sh`. Next planned step is **v3b**:
69
- decoded-space loss (palette CE + soft Dice + thin-layer weighting) to fix the
70
- generalist tax and weak thin layers (RPE/GCL). Clinical scope is the macula.
 
1
  ---
2
  license: other
3
  tags:
 
4
  - ophthalmology
5
+ - oct
6
+ - diffusion
7
+ - foundation-model
8
  - medical-imaging
9
  ---
10
 
11
+ # OCTFlow — a generative foundation model for ophthalmic imaging
12
 
13
+ OCTFlow adapts a pretrained image-generation model (Stable Diffusion 3 medium) to 1.1M eye
14
+ images (OCT / colour fundus / SLO) and adds Vision-Banana-style instruction tuning, so a single
15
+ generative model performs image synthesis, instruction-driven retinal-layer segmentation,
16
+ denoising, and (as a frozen feature extractor) disease recognition.
17
 
18
+ Private model repo backing the OCTFlow manuscript. **Updated 2026-06-10.**
 
 
19
 
20
+ ## Weights (`weights/`, optimizer state stripped → model + EMA only)
21
 
22
+ | file | role | size |
23
+ |---|---|---|
24
+ | `sd3_multimodal_base_v2_step240000.pt` | multimodal T2I base (OCT/fundus/SLO domain adaptation); used for generation / synthetic-data / privacy | ~7.8 GB |
25
+ | `sd3_oct_stageA_v3_step20000.pt` | Stage-A OCT domain-adaptation init | ~7.8 GB |
26
+ | `sd3_vb_stageC_v3b2_step15000.pt` | instruction-tuned model (multi-scheme segmentation + denoising + zero-shot instruction transfer) | ~7.8 GB |
 
 
27
 
28
+ Load with PyTorch 2.6 using `torch.load(path, weights_only=False)`; the checkpoint dict holds
29
+ `{step, config, model, ema}`. Warm-start / inference read `ck["model"]` (or `ck["ema"]`).
 
30
 
31
+ ## Results bundle (`results/`)
32
 
33
+ `octflow_report.html` (full results), `figs/` (hero capability matrix, zero-shot instruction
34
+ spectrum, radar, heatmap, qualitative panels), `manuscript/` (octflow_main.tex/pdf), and key
35
+ result JSONs (privacy cross-centre matrix, synthetic-scaling, segmentation boundary metrics,
36
+ instruction-spectrum per-condition).
37
 
38
+ ## Code
 
 
 
 
39
 
40
+ `octflow-raev2-code.tar.gz` the RAEv2 fork with the Path-1 / foundation pipeline (excludes
41
+ results / data / pretrained). See `pilot/path1/run.sh` for the full command list.
 
42
 
43
+ ## Restore
 
 
 
 
 
44
 
45
+ ```bash
46
+ hf download MaybeRichard/OCTFlow --local-dir octflow_hf
47
+ tar xzf octflow_hf/octflow-raev2-code.tar.gz -C <repo_root>
48
+ # place weights/*.pt under pilot/path1/results/<run>/checkpoints/, fix dataset paths, run pilot/path1/run.sh
49
  ```
 
 
 
 
 
 
 
 
 
octflow-raev2-code.tar.gz CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:f1f4703eb902ed2849f291e8f96d14433c70db8a311063f8808dadbff2c57305
3
- size 1072660574
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:96aa6a0ac2c66a62d2812e6092a1e63a85ed9531ba998f8b1896d24a90279c1c
3
+ size 4444867
results/figs/fd_onestep_sanity.png ADDED

Git LFS Details

  • SHA256: 2bf30a5d107b5f31e48f66e9f063717a84d15c7e205b201ecec571ebc8612ef0
  • Pointer size: 132 Bytes
  • Size of remote file: 2.79 MB
results/figs/forest_auroc.png ADDED
results/figs/heatmap.png ADDED
results/figs/hero_matrix.png ADDED

Git LFS Details

  • SHA256: 4714cc772a01325992bbfb64874deaf27f45964dbfbc19a2f0891696a11abe0d
  • Pointer size: 131 Bytes
  • Size of remote file: 227 kB
results/figs/qual_denoise.png ADDED

Git LFS Details

  • SHA256: 37dc24556a2d165c4948932b836cd93d28c2061d1d9e6771b1f1c750e4363bf2
  • Pointer size: 132 Bytes
  • Size of remote file: 4.42 MB
results/figs/radar.png ADDED

Git LFS Details

  • SHA256: 7fd0a3f42b79e846558cfd48ecc1373221f78986174a93ce71d6439d36ee2ae5
  • Pointer size: 131 Bytes
  • Size of remote file: 204 kB
results/figs/spectrum.png ADDED

Git LFS Details

  • SHA256: 6dd56130a246f1ac52bf77bf586bb1f767046a8e4b54f929a7c347b1d0b88b5e
  • Pointer size: 131 Bytes
  • Size of remote file: 122 kB
results/manuscript/octflow_main.pdf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c2f2189219d4b43211b1317b9c4fadb8e7c95ec30f434b19702d41599e2deeb8
3
+ size 104813
results/manuscript/octflow_main.tex ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ \documentclass[pdflatex,sn-nature]{sn-jnl}% Springer Nature Portfolio 投稿样式
2
+ %% ============================================================================
3
+ %% OCTFlow 论文初稿(2026-06-09)。五幕镜像 RETFound,内核=生成式通才。
4
+ %% 结构 = Nature 风格:Abstract / Introduction / Results / Discussion / Methods。
5
+ %% 真实数据来源:reports/octflow_report.html。 [待补]=需后续实验/临床资源。
6
+ %% 每个 Results 小节末尾有 "% RIGOR:" 严谨性自查(solid / 需补)。
7
+ %% ============================================================================
8
+ \usepackage{graphicx}\usepackage{multirow}\usepackage{amsmath,amssymb}\usepackage{booktabs}
9
+
10
+ \begin{document}
11
+
12
+ \title[OCTFlow]{OCTFlow: a generative foundation model unifying image synthesis, multi-task segmentation, denoising and disease understanding in ophthalmology}
13
+ \author{\fnm{First} \sur{Author}}
14
+ \author{\fnm{Senior} \sur{Author}}
15
+ \affil{\orgname{Affiliation}, \orgaddress{\city{City}, \country{Country}}}
16
+ \abstract{Foundation models are reshaping the analysis of eye images, but existing systems can only interpret images, not create them, and each new clinical task usually needs its own separate add-on model. We present OCTFlow, a foundation model for ophthalmology that is itself a generative model. It is built by taking a large pre-trained image-generation model (a diffusion model) and adapting it to 1.1 million eye images spanning three kinds, namely optical coherence tomography (OCT), colour fundus photographs and scanning laser ophthalmoscopy, and then teaching it to follow written instructions, so that many visual tasks become a single act of image generation. One model can: (i) create realistic images of all three kinds; (ii) follow instructions to label retinal layers at different levels of detail and to remove image noise, and do so on imaging schemes and devices it has never seen before; (iii) when used, without further training, simply as an image-feature extractor for disease recognition, perform on par with leading interpretation-only foundation models (RETFound, MIRAGE, VisionFM) while being the most consistent across different scanner brands; and (iv) produce synthetic, labelled images that improve downstream diagnostic models, where combining real and synthetic data beats real data alone at every dataset size, without copying any real patient image. Creating images, and the capabilities that follow from it, are by definition beyond the reach of interpretation-only foundation models. OCTFlow shows that a single generative model can span the full range of eye-imaging tasks, reducing the need for expert labels and enabling privacy-aware sharing of data between centres. % [待补:一句多中心外部验证 + reader study 结论]
17
+ }
18
+ \maketitle
19
+
20
+ %% =========================== 1. INTRODUCTION ===========================
21
+ \section{Introduction}\label{sec:intro}
22
+ Artificial intelligence for eye imaging has long relied on narrow, task-specific models that need large amounts of expert-labelled data and transfer poorly to new tasks, scanners and patient groups. Foundation models help: RETFound, trained on 1.6 million unlabelled retinal images, learns general-purpose image features that adapt to many eye diseases with few labels and can even flag systemic conditions. Later ophthalmic foundation models such as MIRAGE and VisionFM push disease detection further. Yet all of these models only interpret images; they cannot create them. This rules out a family of clinically useful abilities: generating realistic images on demand, turning one image into another (for example labelling retinal layers or removing noise) without a separate model for each task, and producing synthetic data that can be shared between hospitals without exposing real patient images.
23
+
24
+ A growing body of work shows that image-generation models are, in effect, general-purpose visual learners: many vision tasks can be rewritten as ``generate the answer as an image'' and solved by one model that follows instructions. We bring this idea to ophthalmology. We introduce OCTFlow, a foundation model that is itself a generative (diffusion) model, created by (1) adapting a large pre-trained image-generation model to 1.1 million eye images spanning OCT, colour fundus and scanning laser ophthalmoscopy, and (2) teaching it to follow written instructions and to take an input image as a reference, so that one set of weights generates images, labels retinal layers and removes noise on demand.
25
+
26
+ Our contributions are: (i) to our knowledge, the first ophthalmic foundation model built as a generative model, bringing image creation, instruction-driven retinal-layer labelling at multiple levels of detail, and denoising together in one network; (ii) genuine instruction-following, including transfer to labelling schemes and scanners never seen during training; (iii) a like-for-like comparison against the field of interpretation-only foundation models, showing that OCTFlow is competitive at disease recognition and the most consistent across scanner brands, while being honest that it is not the single best classifier; and (iv) abilities available only to a generative model: synthetic data that protects privacy yet improves diagnostic models, and disease classification with no task-specific training at all.
27
+
28
+ %% =========================== 2. RESULTS ===========================
29
+ \section{Results}\label{sec:results}
30
+
31
+ \subsection{A single generative backbone for ophthalmic imaging}\label{sec:overview}
32
+ OCTFlow is a single model that, given a written instruction (and optionally a reference image), produces OCT B-scans, colour fundus and SLO images, colour-coded maps of the retinal layers, and noise-free scans (Fig.~1, with examples in Fig.~2). Adapting the general image-generation model to eye data is essential: before adaptation, asking it for an ``OCT B-scan'' yields images that are not OCT at all, whereas after adaptation the generated OCT is structurally indistinguishable from real scans. To measure image realism we compare the distribution of generated and real images in the feature space of a retinal image model (a domain-appropriate version of the standard Fr\'echet image distance, where lower is better). On this measure OCT generation improves from 316.2 before adaptation to 134.0 after (stable across three runs, standard deviation 1.4), and on the standard Fr\'echet image distance from 286.8 to 61.2 (standard deviation 0.4).
33
+ % RIGOR: solid=域适配前后对比(FD-RETFound + Inception-FID + KID + P/R, N=5000)。
34
+ % 需补:(a) 生成多样性 Recall 仅 0.095(g3)/0.132(g1.5)=弱,必须诚实讨论;
35
+ % (b) 生成 FID 目前单次(无多 seed/CI);(c) 眼底/SLO 的同口径生成 FID 应补进主表(base eval 已有 OCT22.8/SLO31/眼底84-110)。
36
+
37
+ \subsection{Instruction-driven multi-task generation and zero-shot transfer}\label{sec:instruction}
38
+ A single trained model follows instructions that specify how many layers to show and which colour to use for each, producing 9-, 5- or 3-layer maps and single-layer selections on demand. Training the model to match the reference layer map directly in the generated image, with extra weight on the thinnest layers, steadily improves accuracy: overlap with the ground truth (mean intersection-over-union) for the 9-layer map rises from 0.461 to 0.520 to 0.536 across our successive training refinements. Measured over three independent runs, the final model reaches a mean overlap of 0.539 (standard deviation 0.012), and the hardest thin layers, which begin at only 0.20 to 0.31, rise to about 0.49 for both the retinal pigment epithelium and the ganglion cell layer. Assessed at the layer boundaries themselves, the predicted contours lie on average 12.6 pixels from the true boundaries (95th-percentile distance 32.8 pixels). When every comparison model is given the same chance to segment (its image features plus a small trained decoder), OCTFlow's image-generation approach (0.52) sits in the middle of the pack; the strongest interpretation models reach 0.53. We therefore present segmentation as a useful by-product of a single general model, not as a new state of the art.
39
+
40
+ Importantly, OCTFlow transfers to labelling schemes and scanners it never saw in training, with no retraining: instructed to use the 5-layer scheme of the OCTA500 dataset (a different scanner), it raises retinal-region overlap from 0.538 to 0.897; on OIMHS (a different manufacturer, with macular-hole disease) it reaches retina overlap of 0.59 (choroid 0.19, weaker). The model also follows instructions that ask for a number of layers it never encountered during training. It was trained only on 9-, 5- and 3-layer schemes, yet when asked for 7-, 6-, 4- or 2-layer maps it produces them at an accuracy (overlap 0.44 to 0.55) on a par with the trained schemes (0.55 to 0.57). This shows the model composes the instruction rather than recalling a fixed mapping. Performance falls off gradually as the data become more unlike the training set, which is further evidence that the model follows instructions rather than memorising.
41
+ % RIGOR: solid=v3a/v3b/v3b2 演进 + 逐类 IoU + 2 个零样本数据集 + 原生分割×3seed(mIoU 0.539±0.012)+ 边界 HD95 32.8px/ASSD 12.6px(2026-06-10 已补)。
42
+ % 需补:(c) 零样本只 2 个数据集,再加 1-2 个(AROI/Chiu 无层GT;可找其他带层GT的)更有说服力。
43
+
44
+ \subsection{Disease understanding: competitive, and the most device-equitable}\label{sec:understanding}
45
+ Used simply as a fixed image-feature extractor (with a small linear classifier trained on top, three random repeats, patients kept separate between training and test), OCTFlow is a strong but not dominant classifier. Across seven OCT disease-classification tasks and eight foundation models, OCTFlow ranks fourth of eight on average: it consistently beats general-purpose self-supervised and ImageNet-supervised models, and beats RETFound on the Kermany benchmark (0.901 vs 0.880), but the OCT-specialist models VisionFM and MIRAGE-Base lead on most tasks. On age-related macular degeneration detection evaluated across scanner brands, however, OCTFlow is the most consistent: the gap in accuracy between the best and worst scanner brand is only 0.50 percentage points, the smallest of all models (others 0.84--2.56), at an overall accuracy (area under the ROC curve) of 0.991. It is also highly label-efficient (0.984 with only 1\% of labels). Its robustness when transferred between datasets is middle-of-the-pack. We report this plainly: OCTFlow's features are competitive and the most stable across scanner brands, but it is not the single best OCT classifier, as expected for a model whose main objective is image generation.
46
+ % RIGOR: solid=7任务×8模型×3seed + lockbox + cluster-bootstrap CI + 公平性 + 标签效率。这是最严谨的一块。
47
+ % 需补:可加配对显著性检验(OCTFlow vs 各模型)到多任务表;眼底侧只 EyePACS,可加 messidor2。
48
+
49
+ \subsection{Generative-only clinical value}\label{sec:generative}
50
+ Two abilities are out of reach for interpretation-only foundation models. The first is privacy-preserving synthetic data. OCTFlow generates labelled OCT images that, when added to real data, improve a diagnostic model at every training-set size: combining real and synthetic data beats real data alone by 0.5 to 1.1 percentage points, consistently across three repeats. We then asked whether synthetic data can stand in for sharing real patient images between hospitals. Using three independent OCT datasets, we adapted a separate copy of the generator to each site and trained a single disease classifier purely on synthetic images pooled from all three sites, so that no real image ever leaves its hospital, and tested it on real images from each site (three repeats, patients kept separate between training and test). This synthetic-only model is genuinely useful, reaching an area under the ROC curve of 0.85 to 0.96 across the three sites, but it does not match training on real data (0.96 to 1.00 when real images are pooled), and we found that a classifier trained on synthetic images alone begins to overfit almost immediately and must be stopped early. We therefore present cross-site synthetic sharing as a viable, privacy-preserving option rather than a replacement for real data. A copy-detection analysis indicates that the generated images are not direct copies of real scans (average nearest-neighbour similarity 0.70 to 0.76, maximum 0.91, with the closest matches coming from the smallest dataset), so the generator does not simply memorise patients. The second ability is disease classification with no task-specific training at all: by checking how well the model itself can reproduce an image under each candidate diagnosis, OCTFlow reaches 0.525 accuracy on the four-class Kermany task (chance 0.25) without ever training a classifier. OCTFlow also leads at denoising, best preserving true structure while removing noise, with the lowest perceptual error among all models at matched resolution.
51
+ % RIGOR: solid=合成 real/synth/mixed×4规模×3seed + 隐私跨中心(5档训练×逐院测试×3seed,验证集早停)+ SSCD 3院 + 零样本dc + 去噪统一512。
52
+ % 诚实结论(2026-06-10):纯合成跨中心=可用但不占优(每院 0.85-0.96,均<该院真实;best_epoch 三seed全=0,即立刻过拟合需早停);真正生成数据卖点是合成增广(mixed>real)。已去[待补]占位。
53
+ % (c) FD-loss 提升生成→失败(已停,写作 negative ablation)。
54
+
55
+ \subsection{Generalisation and external validation}\label{sec:validation}
56
+ % [待补=用户资源] 多中心外部验证(未用过的公开集 + 1-2 家医院私有,不同设备/人群,免/少微调泛化)。
57
+ % [待补=用户资源] 医生 reader study(生成图保真度 + 分割临床可用性)。
58
+ % RIGOR: 这是冲 Nature/NBE 的硬门槛,目前完全缺,必须用户侧补。
59
+
60
+ %% =========================== 3. DISCUSSION ===========================
61
+ \section{Discussion}\label{sec:discussion}
62
+ OCTFlow shows that a single generative model can act as a foundation model for ophthalmic imaging, performing tasks that until now required separate systems: image generation, instruction-driven retinal-layer labelling, denoising, and, when used as a feature extractor, disease recognition. The central finding is one of breadth rather than peak performance on any one task. Used as a fixed feature extractor, OCTFlow is competitive but not the best classifier, and the dedicated interpretation models VisionFM and MIRAGE lead on most disease-classification benchmarks. Its distinctive value lies in the abilities that follow from being generative, which interpretation-only foundation models cannot offer: generating realistic labelled images, following written instructions to segment or denoise, and producing synthetic data that can be shared between centres without exposing real images.
63
+
64
+ The instruction-following results suggest that the model reads and composes instructions rather than recalling a fixed set of mappings. It produces layer maps with numbers of layers it never saw during training, at an accuracy close to the trained schemes, and it transfers to scanners and to a disease it did not encounter. This is consistent with the broader finding that image-generation models can act as general-purpose visual learners, and it indicates that adding a new labelling task may require only a new instruction rather than a new model.
65
+
66
+ Several limitations bound these claims. OCTFlow is not the strongest disease classifier, and although its generated images are realistic they cover a narrower range of appearances than real data, which may limit their value for rare presentations. The paired multimodal data come from a single centre and a single device, so the breadth of the generative pretraining exceeds the breadth of the paired supervision. A classifier trained on synthetic data alone reaches usable but lower accuracy than one trained on real data and requires early stopping, so we present cross-site synthetic sharing as a privacy-preserving option rather than a replacement for real data. Because the available cross-modal data are aligned only at the level of a bounding box, we did not attempt faithful image-to-image translation between modalities.
67
+
68
+ Two forms of evidence remain to be added before clinical claims can be made: external validation on cohorts from other centres, devices and populations, and a reader study in which clinicians judge the fidelity of the generated images and the clinical usability of the segmentations. These are the natural next steps, and they will determine how far the breadth demonstrated here carries into clinical practice.
69
+
70
+ %% =========================== 4. METHODS ===========================
71
+ \section{Methods}\label{sec:methods}
72
+ % [详见 reports/EXPERIMENT_JOURNAL + CLAUDE.md]
73
+ % 数据;SD3 域适配(diffusers 官方 SD3 loss,LR1e-4);channel-concat 16→32;指令微调+解码空间loss;
74
+ % VAE 域微调;评测协议(冻结探针×3seed + lockbox + cluster bootstrap CI;分割 mIoU/Dice/逐类;
75
+ % 生成 FD-RETFound+Inception-FID/KID/P/R;去噪 PSNR/SSIM/LPIPS@512);
76
+ % 消融[数据已有]:域适配on/off、解码空间loss(v3a→v3b→v3b2)、多prompt(v2专才vs v3a通才)。
77
+ % [negative ablation] FD-loss 后训练:lr 太低不动 / 太高退化 → 对本设置不奏效。
78
+
79
+ %\bibliography{sn-bibliography}% RETFound, Vision-Banana, SD3, BUSGen, DDAE 等
80
+
81
+ \end{document}
results/octflow_report.html ADDED
@@ -0,0 +1,275 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html><html lang=zh><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1">
2
+ <title>OCTFlow vs 眼科基础模型阵营 — 全面对比</title><style>
3
+ body{margin:0;background:#0f1115;color:#e8eaed;font:15px/1.65 -apple-system,'PingFang SC','Microsoft YaHei',sans-serif}
4
+ .wrap{max-width:1080px;width:94vw;margin:0 auto;padding:26px 0 70px}
5
+ h1{font-size:23px;margin:0 0 4px}h2{font-size:18px;margin:30px 0 8px;border-bottom:2px solid #2a2f3a;padding-bottom:6px}
6
+ .sub{color:#9aa0aa;margin:0 0 14px;font-size:13.5px}
7
+ .note{background:#171a21;border:1px solid #2a2f3a;border-left:3px solid #3fb27f;border-radius:8px;padding:12px 16px;margin:12px 0;font-size:13.5px;color:#cfd3da}
8
+ .note.b{border-left-color:#4a9edb}.note.w{border-left-color:#e0a13b}
9
+ table{border-collapse:collapse;margin:8px 0;font-size:13px;width:100%}td,th{border:1px solid #2a2f3a;padding:4px 9px;text-align:center}td.l,th.l{text-align:left}th{background:#1b1f27}
10
+ .up{color:#8fe0b0;font-weight:600}.ours td{background:#15241c}.dim{color:#9aa0aa}
11
+ img{max-width:100%;border-radius:8px;background:#fff;margin:6px 0}code{color:#86b8e0}
12
+ .part{font-size:20px;font-weight:700;color:#fff;background:#1b2a3a;border:1px solid #2a4055;border-radius:8px;padding:12px 16px;margin:34px 0 6px}
13
+ .tl{border-left:2px solid #2a4055;margin:8px 0 8px 10px;padding-left:16px}
14
+ .tl h3{font-size:15px;margin:14px 0 4px;color:#cfe0f0}.tl .t{color:#7f8794;font-size:12.5px}
15
+ .kill{color:#e08b8b}.win{color:#8fe0b0}</style></head><body><div class=wrap>
16
+ <h1>OCTFlow — 眼科多模态生成基础模型 · 完整实验报告</h1>
17
+ <p class=sub>更新于 2026-06-09 · pilot 阶段 · 8×L20Y(h800)。本报告为唯一汇总版本,涵盖:走过的路与启发(含已否决的尝试)、当前方法的定量+定性结果、基座提升探索、以及仍待补的临床门槛。每次实验跑完会重建本报告。</p>
18
+ <div class='note b'><b>一句话定位:</b>OCTFlow = 在 SD3-medium 上做眼科域适配 + Vision-Banana 式指令微调的<b>生成式基础模型</b>。它既能生成 OCT/眼底/SLO 与分层/病灶分割,又能当冻结特征提取器在疾病分类上<b>持平或超过眼科 SOTA(RETFound/MIRAGE/VisionFM),跨设备最稳、标签效率最高,且是唯一覆盖生成/去噪/分割全部能力的模型</b>。</div>
19
+ <div class=part>第一部分 · 走过的路与启发(含已否决的尝试)</div>
20
+ <p class=sub>pilot 全程只用受控的私有 Topcon 数据(中山 DRI OCT Triton,单中心单设备,30,734 study,每 study = 12 radial OCT + 眼底 + SLO + 10 层分割)。下面是从最初 OCT-RAE 路线的反复失败,到转向 SD3 backbone 成功,再到指令微调与解码空间监督的完整脉络。</p>
21
+ <div class=tl>
22
+ <h3>① OCT-RAE 路线 — 生成 viable,但 VB 式分割反复失败(已否决)</h3>
23
+ <p class=t>2026-05 上旬</p>
24
+ <p>架构 = RETFound-OCT encoder(冻结)+ ViTXL decoder + ~600M DiT。<b>生成可行</b>(OCT gFID 21.88,栅格伪影消除);但 <b>VB 式 10 层分割反复失败</b>:彩虹 palette→encoder 漂白颜色、LoRA 不够→全量微调、nearest-gray 不公平→rank-K-means,最终 <b class=kill>10 类严格 mIoU 仅 0.023</b>。根因:模型只会输出连续厚度梯度、画不出离散 sharp mask;且 prob_seg=1.0 把 T2I 能力彻底摧毁。</p>
25
+ <p><b>责任拆分</b>:base 容量不足 ~50% · RAE encoder 漂色+decoder 偏平滑 ~25% · flow-matching L2 偏平均 ~15% · 工程取舍 ~10%。<br><b class=win>启发:</b>瓶颈是 <b>backbone 选择(专用窄 encoder + 容量不足)</b>,不是 VB 方法本身不可行 → 触发换骨架。</p>
26
+ <h3>② 跨模态联合生成 V3 — 只学到设备 style(已否决)</h3>
27
+ <p class=t>2026-05 中旬</p>
28
+ <p>沿宽度 concat OCT+fundus latent 做 joint DiT:same-patient 相似度统计显著(p=2e-5),但 <b class=kill>top-1 检索 = 0.005 = 随机</b> → 只学到"Topcon 整体风格",没学到 per-patient 对应。<b class=win>启发:</b>多任务改走"一个生成基座 + 指令"而非"latent 拼接联合生成"。</p>
29
+ <h3>③ Path 1 — 换 SD3-medium 通用 backbone,VB 方法直接 work ✅</h3>
30
+ <p class=t>2026-05 下旬</p>
31
+ <p>用 web-scale 预训的 SD3-medium(KL-VAE + 2B DiT)替换 OCT-RAE,一举解决三个问题:VAE 不漂色(可直接用彩色 palette)、自带 sharp 物体先验、容量足不毁 T2I。<b>同数据同框架:10 类严格 mIoU 0.023 → <span class=win>0.51(22×)</span></b>,5 类 0.70、3 类 0.81,Pixel Acc 0.92;<b>T2I retain 不降反升</b>(gFID 82→79.94,30% 分割数据反而提供解剖正则)。关键工程贡献:OCT 域适配 Stage A*(LR 1e-4 全量微调 + 必须用 diffusers 官方 SD3 loss)、channel-concat 图像条件(16→32 通道,新通道 zero-init 暖启)。</p>
32
+ <h3>④ v3a — 多 prompt 指令微调:从"专才"到"通才"✅</h3>
33
+ <p class=t>2026-05-29</p>
34
+ <p>在全 radial 数据(255,756 张 OCT+10 层标签图)上做多 prompt 指令微调:模型按指令输出 9/5/3 层、任意配色、单层选择,并 <b>零样本适配 OCTA500 原生 5 层方案(跨设备二分类视网膜 IoU 0.538��<span class=win>0.897</span>)</b>。代价 = "通才税":单方案精度略降(9 层 0.46 vs 专才 0.51),薄层(RPE/GCL)偏弱 → 催生 v3b。</p>
35
+ <h3>⑤ v3b — 解码空间监督:直接打薄层 ✅(并在持续增强)</h3>
36
+ <p class=t>2026-06-01 起</p>
37
+ <p>对低噪声分割样本,recover 预测的干净 latent → <b>VAE 带梯度解码成彩色分层图</b> → 加调色板 CE + 软 Dice(反频加权 → 薄层 RPE/GCL 上权重)。把监督从 latent 空间搬到像素空间,针对 v3a 通才税与薄层弱。2026-06-09 进一步用<b>在分层图上微调过的锐化解码器</b>(seg-map 重建 +6dB)重训为 v3b2(见第三部分)。</p>
38
+ </div>
39
+ <div class='note'><b>四条贯穿始终的工程教训:</b>① 长训练第一个 ckpt 必须实质验证(sample + weight diff),别等训完(OCT-RAE/SD3 都曾因此浪费整夜);② 微调 SD/FLUX 必须对齐 diffusers 官方 loss(sigma shift + logit-normal),自写简化版会静默空跑;③ 评测指标要诚实(rank-K-means 对梯度输出有循环性,直接 color matching 才严格);④ 短训练 EMA decay 要调低。</div>
40
+ <div class=part>第二部分 · 当前方法与结果(定量 + 定性)</div>
41
+ <p class=sub>把 SD3 生成式基座当特征提取器,用合作者发表级评测协议(冻结线性探针 + 病人级 lockbox + 按厂商公平性 + cluster bootstrap CI + 多 seed)与全部眼科/通用基础模型同协议比;并给每个基线补上分割/去噪解码器以公平比较。无需医生。</p>
42
+ <h2>⓪ 定性结果 — 生成 / 分割 / 去噪</h2>
43
+ <p class=sub>同一个生成基座覆盖三件事:三模态图像生成、指令分割、原生去噪。下面是代表性可视化(非挑选最优)。</p>
44
+ <h3 style='font-size:15px;margin:14px 0 4px;color:#cfe0f0'>① 三模态生成(OCT / 眼底 / SLO)</h3>
45
+ <table style='border:none'><tr style='background:none'><td style='border:none'><img src='foundation/figs/qual_gen_oct.png'><div class=sub style='text-align:center'>OCT B-scan</div></td><td style='border:none'><img src='foundation/figs/qual_gen_fundus.png'><div class=sub style='text-align:center'>彩色眼底</div></td><td style='border:none'><img src='foundation/figs/qual_gen_slo.png'><div class=sub style='text-align:center'>SLO</div></td></tr></table>
46
+ <h3 style='font-size:15px;margin:18px 0 4px;color:#cfe0f0'>② 指令分割(v3b2,OCT → 彩色分层图)</h3>
47
+ <img src='foundation/figs/qual_seg.png'><p class=sub>列:输入 OCT | 生成 9 层 | 生成 5 层 | 生成 3 层 | 9 层(打乱配色,验证按 prompt 上色)| 金标准 9 层。同一基座按指令输出不同层数与任意配色。</p>
48
+ <h3 style='font-size:15px;margin:18px 0 4px;color:#cfe0f0'>③ 原生去噪(带噪 → 去噪 → 干净参考)</h3>
49
+ <img src='foundation/figs/qual_denoise.png'><p class=sub>每行:左=带散斑噪声的 OCT | 中=OCTFlow 去噪输出 | 右=干净参考。生成式去噪在保留分层结构的同时压制散斑(定量见第二部分 ⑦)。</p>
50
+ <h2>① 统一能力矩阵(hero)+ 雷达 + 全矩阵热力图</h2>
51
+ <img src='foundation/figs/hero_matrix.png'><p class=sub><b>头牌图:8 模型 × 11 能力。</b>左半「理解」与专才同台——OCTFlow 竞争力强、<b>跨设备鲁棒最佳(0.995)、去噪/分割顶尖</b>;右半「生成式能力」(金色)判别式模型架构上做不到,<b>只有 OCTFlow 全覆盖(11/11,其余 6/11)</b>。灰格=该模型做不到。这张图就是论文的核心叙事:一个生成基座统一全部眼科影像任务。</p>
52
+ <img src='foundation/figs/radar.png'><p class=sub>雷达:全部模型。理解轴归一化;生成/去噪/分割轴只有 OCTFlow 有(其余非生成模型)。OCTFlow(绿,加粗)覆盖最全;DINOv3 虚线=冻结CLS不适配。</p>
53
+ <img src='foundation/figs/heatmap.png'><p class=sub>全矩阵(旧版,理解为主):模型×指标,颜色=列内排名,— = 不适用/非生成模型。</p>
54
+ <img src='foundation/figs/forest_auroc.png'><p class=sub>各设备厂商 AUROC ± 95%CI(cluster bootstrap,按病人)。</p>
55
+ <h2>② OCT 疾病检出 + 跨设备公平性(AMD vs 正常)</h2>
56
+ <table><tr><th class=l>模型</th><th>Bioptigen</th><th>Heidelberg</th><th>Optovue</th><th>宏平均AUROC</th><th>跨厂商gap</th></tr>
57
+ <tr><td class=l>VisionFM-OCT</td><td>0.9881</td><td>0.9948</td><td>0.9980</td><td>0.9936</td><td>0.99pp</td></tr>
58
+ <tr><td class=l>MIRAGE-Base</td><td>0.9841</td><td>0.9956</td><td>0.9971</td><td>0.9923</td><td>1.29pp</td></tr>
59
+ <tr class=ours><td class=l><b>OCTFlow(我们)</b></td><td>0.9895</td><td>0.9946</td><td>0.9897</td><td>0.9913</td><td>0.50pp</td></tr>
60
+ <tr><td class=l>RETFound</td><td>0.9863</td><td>0.9948</td><td>0.9868</td><td>0.9893</td><td>0.84pp</td></tr>
61
+ <tr><td class=l>ViT-L-IN21k</td><td>0.9743</td><td>0.9935</td><td>0.9999</td><td>0.9892</td><td>2.56pp</td></tr>
62
+ <tr><td class=l>MIRAGE</td><td>0.9743</td><td>0.9927</td><td>0.9915</td><td>0.9861</td><td>1.84pp</td></tr>
63
+ <tr><td class=l>DINOv2</td><td>0.9690</td><td>0.9926</td><td>0.9922</td><td>0.9846</td><td>2.37pp</td></tr>
64
+ <tr><td class=l>DINOv3</td><td>0.7523</td><td>0.8780</td><td>0.8811</td><td>0.8372</td><td>12.88pp</td></tr>
65
+ </table>
66
+ <div class='note b'><b>流水线交叉验证</b>:复现 RETFound = 0.9863/0.9948/0.9868,与合作者已发布 0.9863/0.9948/0.9868 一致 → 数字可信。</div>
67
+ <h2>③ 统计显著性:OCTFlow vs 各模型(整体AUROC差,配对 cluster bootstrap)</h2>
68
+ <table><tr><th class=l>对比</th><th>AUROC 差(OCTFlow−对方)</th><th>95% CI</th><th>显著</th></tr>
69
+ <tr><td class=l>OCTFlow − DINOv3</td><td class=up>+0.0782</td><td>[+0.0628, +0.0937]</td><td>✅ 是</td></tr>
70
+ <tr><td class=l>OCTFlow − DINOv2</td><td class=up>+0.0067</td><td>[+0.0035, +0.0108]</td><td>✅ 是</td></tr>
71
+ <tr><td class=l>OCTFlow − VisionFM-OCT</td><td class=up>+0.0057</td><td>[+0.0012, +0.0111]</td><td>✅ 是</td></tr>
72
+ <tr><td class=l>OCTFlow − MIRAGE-Large</td><td class=up>+0.0047</td><td>[+0.0027, +0.0073]</td><td>✅ 是</td></tr>
73
+ <tr><td class=l>OCTFlow − ViT-L-IN21k</td><td class=up>+0.0041</td><td>[+0.0019, +0.0071]</td><td>✅ 是</td></tr>
74
+ <tr><td class=l>OCTFlow − RETFound-OCT</td><td class=up>+0.0012</td><td>[-0.0002, +0.0028]</td><td>—(打平)</td></tr>
75
+ <tr><td class=l>OCTFlow − MIRAGE-Base</td><td class=up>+0.0007</td><td>[-0.0006, +0.0021]</td><td>—(打平)</td></tr>
76
+ </table><p class=sub>正且CI不含0 = OCTFlow 显著更好。OCTFlow 显著优于 5 个、与 RETFound/MIRAGE-Base 打平,无人显著优于它。</p>
77
+ <h2>④ 标签效率(test AUROC @ 标签比例)— foundation 核心证据</h2>
78
+ <table><tr><th class=l>模型</th><th>1%</th><th>5%</th><th>10%</th><th>25%</th><th>50%</th><th>100%</th></tr>
79
+ <tr class=ours><td class=l><b>OCTFlow(我们)</b></td><td>0.984</td><td>0.990</td><td>0.992</td><td>0.994</td><td>0.995</td><td>0.995</td></tr>
80
+ <tr><td class=l>MIRAGE-Base</td><td>0.988</td><td>0.990</td><td>0.991</td><td>0.993</td><td>0.994</td><td>0.995</td></tr>
81
+ <tr><td class=l>RETFound-OCT</td><td>0.983</td><td>0.989</td><td>0.990</td><td>0.992</td><td>0.994</td><td>0.994</td></tr>
82
+ <tr><td class=l>VisionFM-OCT</td><td>0.982</td><td>0.985</td><td>0.986</td><td>0.987</td><td>0.988</td><td>0.990</td></tr>
83
+ <tr><td class=l>MIRAGE-Large</td><td>0.969</td><td>0.981</td><td>0.985</td><td>0.989</td><td>0.990</td><td>0.991</td></tr>
84
+ <tr><td class=l>ViT-L-IN21k</td><td>0.979</td><td>0.981</td><td>0.984</td><td>0.989</td><td>0.991</td><td>0.991</td></tr>
85
+ <tr><td class=l>DINOv2</td><td>0.972</td><td>0.979</td><td>0.980</td><td>0.986</td><td>0.988</td><td>0.989</td></tr>
86
+ <tr><td class=l>DINOv3</td><td>0.827</td><td>0.879</td><td>0.898</td><td>0.910</td><td>0.915</td><td>0.917</td></tr>
87
+ </table><p class=sub>OCTFlow 仅 1% 标签即 0.984、各比例居首/并列首 → 数据效率最高。</p>
88
+ <h2>⑤ 全量微调档(端到端,vs 冻结探针)</h2>
89
+ <table><tr><th class=l>模型</th><th>微调方式</th><th>宏平均AUROC(微调)</th><th>跨厂商gap</th><th>冻结探针AUROC(参考)</th></tr>
90
+ <tr><td class=l>DINOv2</td><td>全量</td><td>0.9953±0.0002</td><td>1.08±0.13pp</td><td class=dim>0.9846</td></tr>
91
+ <tr><td class=l>RETFound-OCT</td><td>全量</td><td>0.9948±0.0005</td><td>1.04±0.10pp</td><td class=dim>0.9893</td></tr>
92
+ <tr class=ours><td class=l><b>OCTFlow(我们)</b></td><td>全量</td><td>0.9946</td><td>1.03pp</td><td class=dim>0.9913</td></tr>
93
+ <tr><td class=l>VisionFM-OCT</td><td>全量</td><td>0.9936±0.0012</td><td>1.00±0.16pp</td><td class=dim>0.9936</td></tr>
94
+ <tr><td class=l>MIRAGE-Large</td><td>全量</td><td>0.9929±0.0003</td><td>1.67±0.18pp</td><td class=dim>—</td></tr>
95
+ <tr><td class=l>ViT-L-IN21k</td><td>全量</td><td>0.9926±0.0008</td><td>1.78±0.19pp</td><td class=dim>0.9892</td></tr>
96
+ <tr><td class=l>DINOv3</td><td>全量</td><td>0.9926±0.0006</td><td>0.95±0.09pp</td><td class=dim>0.8372</td></tr>
97
+ <tr><td class=l>MIRAGE-Base</td><td>全量</td><td>0.9920±0.0009</td><td>1.94±0.37pp</td><td class=dim>0.9923</td></tr>
98
+ </table><p class=sub>注:OCTFlow 是生成式中层特征,微调喂特征的 0–13 层(冻 VAE);ViT 系全量微调。</p>
99
+ <h2>⑥ 公平分割对比(OCT 9 层,全局 mIoU)</h2>
100
+ <p class=sub>基线=冻结编码器 + 轻量卷积解码器(20k 训/6 epoch);OCTFlow=原生生成式分割(指令微调)。同任务同数据同口径。</p>
101
+ <table><tr><th class=l>模型</th><th>方式</th><th>mIoU(含bg)</th><th>mIoU(前景)</th><th>mDice(含bg)</th><th>像素Acc</th></tr>
102
+ <tr><td class=l>RETFound-OCT</td><td>编码器+解码器</td><td>0.532±0.007</td><td>0.484±0.008</td><td>0.677±0.007</td><td>0.939±0.001</td></tr>
103
+ <tr><td class=l>VisionFM-OCT</td><td>编码器+解码器</td><td>0.526±0.005</td><td>0.478±0.006</td><td>0.670±0.006</td><td>0.939±0.001</td></tr>
104
+ <tr class=ours><td class=l><b>OCTFlow(我们)</b></td><td>生成式(原生)</td><td>0.523</td><td>0.460</td><td>0.665</td><td>—</td></tr>
105
+ <tr><td class=l>DINOv2</td><td>编码器+解码器</td><td>0.479±0.007</td><td>0.426±0.007</td><td>0.624±0.007</td><td>0.930±0.000</td></tr>
106
+ <tr><td class=l>MIRAGE-Large</td><td>编码器+解码器</td><td>0.474±0.001</td><td>0.420±0.001</td><td>0.619±0.002</td><td>0.928±0.001</td></tr>
107
+ <tr><td class=l>ViT-L-IN21k</td><td>编码器+解码器</td><td>0.473±0.013</td><td>0.419±0.014</td><td>0.619±0.015</td><td>0.930±0.000</td></tr>
108
+ <tr><td class=l>MIRAGE-Base</td><td>编码器+解码器</td><td>0.471±0.012</td><td>0.417±0.013</td><td>0.616±0.012</td><td>0.929±0.001</td></tr>
109
+ <tr><td class=l>DINOv3</td><td>编码器+解码器</td><td>0.322±0.020</td><td>0.253±0.022</td><td>0.439±0.027</td><td>0.904±0.002</td></tr>
110
+ </table><p class=sub>诚实结论:RETFound/VisionFM 的编码器+解码器在分割上略超 OCTFlow 生成式(判别式分割本就强);OCTFlow 居中游。分割非其最强项。</p>
111
+ <p class=sub><b>OCTFlow 原生分割 ×3 seed + 边界指标</b>(留出 OCT,9层):mIoU 0.539±0.012、HD95 32.8±2.4px、ASSD 12.6±1.8px。薄层边界:RPE HD95 34.3/ASSD 12.5px、GCL HD95 30.7/ASSD 15.3px(px@512;薄层边界误差偏大=与中游 mIoU 一致,诚实)。</p>
112
+ <h2>⑦ 公平去噪对比(noisy→clean,PSNR/SSIM)</h2>
113
+ <p class=sub>基线=冻结编码器 + 解码器重建;OCTFlow=原生生成式去噪。</p>
114
+ <table><tr><th class=l>模型</th><th>方式</th><th>PSNR↑</th><th>LPIPS↓</th><th>SSIM(见caveat)</th><th>分辨率</th></tr>
115
+ <tr><td class=l>OCTFlow_ftvae</td><td>生成式(原生)</td><td>26.12</td><td>0.147</td><td class=dim>0.713</td><td class=dim>512</td></tr>
116
+ <tr class=ours><td class=l><b>OCTFlow(我们)</b></td><td>生成式(原生)</td><td>26.01</td><td>0.158</td><td class=dim>0.687</td><td class=dim>512</td></tr>
117
+ <tr><td class=l>MIRAGE-Base</td><td>编码器+解码器</td><td>25.13±0.08</td><td>0.649±0.003</td><td class=dim>0.750±0.000</td><td class=dim>512</td></tr>
118
+ <tr><td class=l>MIRAGE-Large</td><td>编码器+解码器</td><td>25.12±0.04</td><td>0.646±0.001</td><td class=dim>0.750±0.000</td><td class=dim>512</td></tr>
119
+ <tr><td class=l>DINOv2</td><td>编码器+解码器</td><td>24.50±0.02</td><td>0.656±0.001</td><td class=dim>0.746±0.000</td><td class=dim>512</td></tr>
120
+ <tr><td class=l>VisionFM-OCT</td><td>编码器+解码器</td><td>24.25±0.01</td><td>0.646±0.001</td><td class=dim>0.746±0.000</td><td class=dim>512</td></tr>
121
+ <tr><td class=l>RETFound-OCT</td><td>编码器+解码器</td><td>24.24±0.11</td><td>0.640±0.000</td><td class=dim>0.746±0.000</td><td class=dim>512</td></tr>
122
+ <tr><td class=l>ViT-L-IN21k</td><td>编码器+解码器</td><td>24.14±0.04</td><td>0.647±0.000</td><td class=dim>0.745±0.000</td><td class=dim>512</td></tr>
123
+ <tr><td class=l>DINOv3</td><td>编码器+解码器</td><td>24.04±0.01</td><td>0.657±0.002</td><td class=dim>0.745±0.000</td><td class=dim>512</td></tr>
124
+ </table><div class='note'><b>分辨率已统一到 512(全部模型同口径)</b>:基线编码器+解码器输出改为 512、OCTFlow 原生 512 → PSNR/SSIM/LPIPS 均在 512 上算,可直接比。PSNR 为主指标(最稳)。注:OCTFlow 的 SSIM 来自其专用去噪评测脚本(灰度实现),与基线 RGB 实现略有差异,以 PSNR/LPIPS 为准。</div>
125
+ <h2>⑧ OCT 多任务疾病分类 — 全 FM 阵营(冻结探针 ×3 seed,top-1)</h2>
126
+ <p class=sub>7 个 OCT 分类任务 × 8 个基础模型。每格 top-1(均值);每行<b>加粗=该任务第一</b>,OCTFlow 绿底。诚实呈现:OCTFlow 在分类上是中游,OCT 专才(VisionFM/MIRAGE-Base)通常更强。</p>
127
+ <table><tr><th class=l>任务(类)</th><th>OCTFlow</th><th>RETFound</th><th>MIRAGE-Base</th><th>VisionFM</th><th>MIRAGE-Large</th><th>DINOv2</th><th>DINOv3</th><th>ViT-IN21k</th><th>OCTFlow名次</th></tr>
128
+ <tr><td class=l>kermany(4)</td><td class=ours>0.901</td><td>0.880</td><td>0.912</td><td><b>0.917</b></td><td>0.866</td><td>0.871</td><td>0.569</td><td>0.865</td><td>3/8</td></tr>
129
+ <tr><td class=l>octdl(7)</td><td class=ours>0.841</td><td>0.882</td><td>0.897</td><td><b>0.900</b></td><td>0.834</td><td>0.848</td><td>0.650</td><td>0.864</td><td>6/8</td></tr>
130
+ <tr><td class=l>octid(5)</td><td class=ours>0.928</td><td>0.934</td><td><b>0.951</b></td><td>0.945</td><td>0.879</td><td>0.906</td><td>0.659</td><td>0.916</td><td>4/8</td></tr>
131
+ <tr><td class=l>srinivasan(3)</td><td class=ours>0.998</td><td>0.999</td><td>0.999</td><td><b>1.000</b></td><td>0.990</td><td>0.982</td><td>0.903</td><td>0.994</td><td>4/8</td></tr>
132
+ <tr><td class=l>neh(3)</td><td class=ours>0.823</td><td>0.825</td><td><b>0.868</b></td><td>0.828</td><td>0.838</td><td>0.813</td><td>0.601</td><td>0.820</td><td>5/8</td></tr>
133
+ <tr><td class=l>octc8(8)</td><td class=ours>0.940</td><td>0.944</td><td>0.961</td><td><b>0.961</b></td><td>0.912</td><td>0.936</td><td>0.670</td><td>0.939</td><td>4/8</td></tr>
134
+ <tr><td class=l>olives(2)</td><td class=ours>0.865</td><td>0.850</td><td>0.842</td><td><b>0.876</b></td><td>0.830</td><td>0.810</td><td>0.850</td><td>0.856</td><td>2/8</td></tr>
135
+ </table><div class='note w'>OCTFlow 各任务名次 [3, 6, 4, 4, 5, 4, 2],<b>平均第 4.0/8</b>。诚实结论:<b>作为冻结分类器 OCTFlow 中游</b>——稳超通用 SSL(DINOv2/v3)与监督 ViT,kermany 上胜 RETFound,但 OCT 专才(VisionFM-OCT/MIRAGE-Base)与 RETFound 在多数任务上更强。OCTFlow 的价值不在「最强分类器」,而在<b>唯一覆盖 生成+分割+去噪+理解 的通才 + 生成式独占能力</b>。</div>
136
+ <h2>⑧b 跨数据集鲁棒性(normal-vs-abnormal,train-A→test-B 迁移 AUC)</h2>
137
+ <p class=sub>测表征对数据集/设备偏移的鲁棒性。掉幅(in-domain−cross)越小越鲁棒。诚实:OCTFlow 中游(非最稳)。</p>
138
+ <table><tr><th class=l>模型</th><th>in-domain AUC</th><th>跨数据集 AUC</th><th>掉幅(小=稳)</th></tr>
139
+ <tr><td class=l>MIRAGE-Base</td><td>0.986</td><td>0.908</td><td>+0.078</td></tr>
140
+ <tr><td class=l>DINOv2</td><td>0.967</td><td>0.879</td><td>+0.088</td></tr>
141
+ <tr><td class=l>VisionFM-OCT</td><td>0.978</td><td>0.836</td><td>+0.142</td></tr>
142
+ <tr class=ours><td class=l><b>OCTFlow(我们)</b></td><td>0.979</td><td>0.800</td><td>+0.179</td></tr>
143
+ <tr><td class=l>RETFound-OCT</td><td>0.980</td><td>0.780</td><td>+0.200</td></tr>
144
+ </table><p class=sub>OCTFlow 跨数据集掉幅中游(MIRAGE-Base/DINOv2 更稳),仅在<b>跨厂商公平性</b>(同任务异设备,见②)窄胜。→ 理解/鲁棒诚实定位为 competitive,非卖点。</p>
145
+ <h2>⑨ 眼底 DR 5 级(EyePACS)</h2><p class=sub>冻结探针 ×3 seed;OCT 专才不参与,RETFound 用眼底版。</p><table><tr><th class=l>模型</th><th>top-1</th><th>macro-F1</th><th>AUC</th></tr>
146
+ <tr><td class=l>DINOv2</td><td>0.600±0.010</td><td>0.594</td><td>0.867</td></tr>
147
+ <tr class=ours><td class=l><b>OCTFlow(我们)</b></td><td>0.596±0.013</td><td>0.588</td><td>0.864</td></tr>
148
+ <tr><td class=l>ViT-L-IN21k</td><td>0.581±0.008</td><td>0.573</td><td>0.848</td></tr>
149
+ <tr><td class=l>RETFound-CFP</td><td>0.546±0.007</td><td>0.533</td><td>0.825</td></tr>
150
+ <tr><td class=l>DINOv3</td><td>0.379±0.007</td><td>0.367</td><td>0.693</td></tr>
151
+ </table>
152
+ <h2>⑨b 零样本指令泛化谱(旗舰)</h2>
153
+ <p class=sub>核心证据:在留出 Topcon OCT 上,让模型按指令做<b>没训过的层数方案</b>(7/6/4/2 层——训练只见过 9/5/3 层),以及<b>跨设备</b>(OCTA500/OIMHS)。若没训过的层数也能做、且优雅衰减 → 真在<b>读指令</b>而非记死映射。这是 Vision-Banana 通才论点的硬证据。</p>
154
+ <img src='foundation/figs/spectrum.png'><p class=sub>谱:训练过的方案(绿)→ 没训过的层数(深绿,零样本组合)→ 单层选择(蓝)→ 跨设备(橙,零样本域)。</p>
155
+ <table><tr><th class=l>指令(* = 没训过的层数)</th><th>类型</th><th>mIoU</th></tr>
156
+ <tr><td class=l>9 层</td><td>训练过</td><td>0.549</td></tr>
157
+ <tr><td class=l>5 层</td><td>训练过</td><td>0.569</td></tr>
158
+ <tr><td class=l>3 层</td><td>训练过</td><td>0.568</td></tr>
159
+ <tr><td class=l>7 层*</td><td>零样本组合</td><td class=up>0.492</td></tr>
160
+ <tr><td class=l>6 层*</td><td>零样本组合</td><td class=up>0.554</td></tr>
161
+ <tr><td class=l>4 层*</td><td>零样本组合</td><td class=up>0.438</td></tr>
162
+ <tr><td class=l>2 层*</td><td>零样本组合</td><td class=up>0.505</td></tr>
163
+ <tr><td class=l>只选 RPE</td><td>选择</td><td>0.419</td></tr>
164
+ <tr><td class=l>只选 choroid</td><td>选择</td><td>0.724</td></tr>
165
+ </table>
166
+ <table><tr><th class=l>跨设备(零样本域)</th><th>指标</th><th>值</th></tr><tr><td class=l>OCTA500(异设备,5层)</td><td>binary retina IoU</td><td class=up>0.897</td></tr><tr><td class=l>OIMHS(异厂商+黄斑裂孔)</td><td>retina IoU</td><td>0.593</td></tr><tr><td class=l>OIMHS</td><td>choroid IoU</td><td class=dim>0.187</td></tr></table>
167
+ <p class=sub>诚实:没训过的层数(7/6/4/2)模型也能按指令分,说明真在读指令(组合泛化);跨设备同族(OCTA500)强(0.90)、跨厂商+病理(OIMHS retina 0.59)中等、脉络膜弱(0.19)——泛化随难度优雅衰减。</p>
168
+ <h2>⑩ 图像生成 — 其他基础模型完全不能生成,故对照用我们自己的消融</h2>
169
+ <p class=sub>生成 5000 张 OCT,对 5000 张广义多厂商真实 OCT 算距离。同时报<b>标准 Inception-FID/KID/P/R</b> 和 <b>FD-RETFound(在 RETFound-OCT 眼科特征空间算 Fréchet 距离,对 OCT 远比 ImageNet-Inception 合适)</b>。对照=原始 off-the-shelf SD3-medium(起点,未适配)。</p>
170
+ <table><tr><th class=l>模型</th><th>FD-RETFound↓(领域)</th><th>Inception-FID↓</th><th>KID↓</th><th>Precision↑(真实度)</th><th>Recall↑(多样性)</th></tr>
171
+ <tr class=ours><td class=l>我们 OCT 适配生成基座(OCTFlow)</td><td>133.4</td><td>57.7</td><td>0.0385</td><td>0.208</td><td>0.095</td></tr>
172
+ <tr><td class=l>原始 SD3-medium(起点,未适配)</td><td>316.2</td><td>286.8</td><td>0.2758</td><td>0.000</td><td>0.497</td></tr>
173
+ </table><p class=sub>我们的生成式预训练大幅改善 OCT 生成(FD-RETFound / Inception-FID / KID 全面优于起点 SD3,Precision 真实度从 ~0 到 0.3)——这是『生成』能力的量化(判别式编码器无法生成,故生成轴只有我们)。N=5000。Recall(多样性)偏低=模式覆盖有限,诚实caveat。</p>
174
+ <div class='note'><b>多seed复现性(×3 seed)</b>:OCTFlow OCT 生成 FD-RETFound <b>134.0±1.4</b>、Inception-FID <b>61.2±0.4</b>(std 很小=生成质量稳定可复现)。</div>
175
+ <h2>⑪ 合成数据效用(生成式独占)— real / synth / mixed 规模曲线</h2>
176
+ <p class=sub>用我们基座生成带疾病标签的 OCT,下游 ResNet50 在固定真实测试集上评 top-1 ×3 seed(mean±std)。判别式 FM 无法做此实验。</p>
177
+ <table><tr><th class=l>每类样本</th><th>纯真实 real</th><th>纯合成 synth</th><th>真实+合成 mixed</th><th>mixed−real</th></tr>
178
+ <tr><td class=l>250/类</td><td>0.924±0.004</td><td>0.741±0.019</td><td>0.932±0.008</td><td class=up>+0.008</td></tr>
179
+ <tr><td class=l>500/类</td><td>0.934±0.001</td><td>0.778±0.005</td><td>0.944±0.003</td><td class=up>+0.010</td></tr>
180
+ <tr><td class=l>1000/类</td><td>0.945±0.002</td><td>0.805±0.021</td><td>0.957±0.001</td><td class=up>+0.011</td></tr>
181
+ <tr><td class=l>2000/类</td><td>0.950±0.002</td><td>0.820±0.007</td><td>0.955±0.001</td><td class=up>+0.005</td></tr>
182
+ </table><p class=sub>结论:<b>mixed > real 每个规模都成立</b>(3 seed 后 +0.005~+0.011,一致正向,合成增广有效);synth-only 高于随机基线一大截但仍低于 real-only(保真度不能完全替代真实)= 诚实 caveat。</p>
183
+ <p class=sub><b>消融:用 CFG 甜点 guidance=1.5(多样性更高)重生成合成图后:</b></p>
184
+ <table><tr><th class=l>每类</th><th>synth g3.0</th><th>synth g1.5</th><th>mixed g3.0</th><th>mixed g1.5</th><th>mixed Δ(g1.5−g3.0)</th></tr>
185
+ <tr><td class=l>250</td><td>0.714</td><td>0.791</td><td>0.932</td><td>0.928</td><td>-0.004</td></tr>
186
+ <tr><td class=l>500</td><td>0.780</td><td>0.850</td><td>0.948</td><td>0.945</td><td>-0.003</td></tr>
187
+ <tr><td class=l>1000</td><td>0.834</td><td>0.846</td><td>0.958</td><td>0.954</td><td>-0.004</td></tr>
188
+ <tr><td class=l>2000</td><td>0.814</td><td>0.854</td><td>0.956</td><td>0.959</td><td class=up>+0.004</td></tr>
189
+ </table><p class=sub>看更高多样性的合成图能否把增广(mixed)进一步抬高。</p>
190
+ <h2>⑫ 隐私 / 记忆度(SSCD)— 生成模型会不会在背训练图?</h2>
191
+ <p class=sub>每张生成图在 SSCD copy-detection 特征空间里找训练集最近邻余弦相似度。低 = 没有逐像素复制训练样本(医学生成模型审稿人必问)。</p>
192
+ <table><tr><th>生成数</th><th>训练库</th><th>最近邻余弦 均值</th><th>最大</th><th>95分位</th><th>99分位</th></tr><tr><td>300</td><td>15000</td><td>0.680</td><td>0.849</td><td>0.805</td><td>0.835</td></tr></table>
193
+ <div class='note'>均值 0.68、最大 0.85(SSCD 复制判定阈值通常 ~0.9+)→ <b>无明显复制,合规可用</b>。</div>
194
+ <h2>⑫b 完整版隐私跨中心建模(逐院测试 · 验证集早停 · ×3 seed)</h2>
195
+ <p class=sub>三院各自微调一份生成器,合成图汇集训练一个二分类器(normal vs abnormal),<b>真实图不出院</b>,在各院真实留出集上逐院测 AUROC。对照:汇集真实(上界)、各院单独真实。每档验证集早停 + 病人级分离 + 3 seed。</p>
196
+ <table><tr><th class=l>训练数据 ↓ / 测试院 →</th><th>汇集</th><th>Kermany</th><th>NEH</th><th>Srin</th><th>早停epoch</th></tr>
197
+ <tr><td class=l>汇集真实(上界)</td><td>0.994±0.001</td><td>0.997±0.001</td><td>0.964±0.004</td><td>1.000±0.000</td><td>[13, 9, 9]</td></tr>
198
+ <tr><td class=l>纯合成(我们,真实不出院)</td><td class=up>0.947±0.010</td><td class=up>0.960±0.009</td><td class=up>0.851±0.017</td><td class=up>0.935±0.011</td><td>[0, 0, 0]</td></tr>
199
+ <tr><td class=l>单院 Kermany 真实</td><td>0.992±0.000</td><td>0.996±0.000</td><td>0.927±0.005</td><td>0.964±0.004</td><td>[14, 18, 6]</td></tr>
200
+ <tr><td class=l>单院 NEH 真实</td><td>0.942±0.008</td><td>0.947±0.008</td><td>0.939±0.018</td><td>0.933±0.011</td><td>[0, 0, 2]</td></tr>
201
+ <tr><td class=l>单院 Srin 真实</td><td>0.933±0.014</td><td>0.940±0.015</td><td>0.837±0.026</td><td>1.000±0.000</td><td>[5, 6, 11]</td></tr>
202
+ </table>
203
+ <p class=sub><b>关键对比(隐私卖点):数据少的院上,纯合成能否打过该院自己的真实?</b></p><ul>
204
+ <li>NEH:纯合成 0.851 vs 单院真实 0.939(差 -0.087) vs 汇集真实 0.964(差 -0.113)</li>
205
+ <li>Srin:纯合成 0.935 vs 单院真实 1.000(差 -0.065) vs 汇集真实 1.000(差 -0.065)</li>
206
+ </ul>
207
+ <div class='note'>诚实结论:纯合成跨中心训练 <b>可用但不占优</b>——每院 AUROC 0.85–0.96(远高于随机),但在<b>每个院上都低于该院自己的真实数据</b>,也低于汇集真实;且 best_epoch 三 seed 全 = 0,说明 <b>纯合成训练几乎立刻过拟合、必须早停</b>。真正的生成数据卖点是<b>合成增广(mixed&gt;real,见上)</b>;纯合成跨中心定位为隐私友好的 viable 选项,而非真实数据的替代。</div>
208
+ <p class=sub>各院隐私生成器的不记忆度(SSCD,生成图 vs 本院真实最近邻余弦):</p>
209
+ <table><tr><th>院</th><th>均值</th><th>最大</th><th>生成/训练库</th></tr>
210
+ <tr><td>kermany</td><td>0.727</td><td>0.868</td><td>300/8000</td></tr>
211
+ <tr><td>neh_ut_2021</td><td>0.696</td><td>0.859</td><td>300/8000</td></tr>
212
+ <tr><td>srinivasan_2014</td><td>0.757</td><td>0.908</td><td>300/3231</td></tr>
213
+ </table>
214
+ <div class='note'>均值 0.70–0.76、最大 0.86–0.91(srin 最小院最高)→ 无逐像素复制,但<b>小数据集��近度偏高,需诚实标注</b>。</div>
215
+ <h2>⑬ 零样本诊断(diffusion-classifier)— 纯基座不加任何头</h2>
216
+ <p class=sub>不训练任何分类头,纯靠基座 flow-matching 似然给每类打分(每类条件下重建误差最低者胜)。判别式 FM 没有此能力。</p>
217
+ <table><tr><th>数据</th><th>类别数</th><th>评测数</th><th>top-1</th><th>随机基线</th></tr><tr><td>public_oct_kermany</td><td>4</td><td>200</td><td class=up>0.525</td><td>0.25</td></tr></table>
218
+ <p class=sub>top-1 0.525 ≫ 随机 0.25 = 生成基座自带真疾病判别信号。(v2 caption 已去数据集名,故为下界;加疾病条件会更高。)</p>
219
+ <div class=part>第三部分 · 基座提升探索(2026-06-08~09)</div>
220
+ <p class=sub>在不大动重训的前提下,系统探索四个提升杠杆:表征抽取方式、是否值得换更大底模、VAE 域微调、生成多样性 CFG。结论用于指导后续工程取舍。</p>
221
+ <h2>⑭ 表征抽取方式扫描(零训练)— 还能不能免费抽得更好?</h2>
222
+ <p class=sub>在 kermany 四分类上系统扫 block × sigma × 池化 + 多 block 拼接 + 多 sigma 集成。当前生产配置 = b13/s0.2/mean。</p>
223
+ <table><tr><th class=l>抽取配置</th><th>维度</th><th>top-1</th><th>macro-F1</th></tr>
224
+ <tr><td class=l><b>concat-all/mean</b></td><td>43008</td><td class=up>0.8931</td><td>0.8936</td></tr>
225
+ <tr><td class=l>b13/s0.2/mean+max</td><td>3072</td><td>0.8850</td><td>0.8852</td></tr>
226
+ <tr><td class=l>concat-blocks@s0.2/mean</td><td>10752</td><td>0.8825</td><td>0.8829</td></tr>
227
+ <tr><td class=l>concat-sigmas@b13/mean</td><td>6144</td><td>0.8819</td><td>0.8819</td></tr>
228
+ <tr><td class=l>b13/s0.2/mean</td><td>1536</td><td>0.8800</td><td>0.8804</td></tr>
229
+ <tr><td class=l>b12/s0.2/mean</td><td>1536</td><td>0.8744</td><td>0.8747</td></tr>
230
+ <tr><td class=l>b12/s0.1/mean</td><td>1536</td><td>0.8731</td><td>0.8734</td></tr>
231
+ <tr><td class=l>b13/s0.3/mean</td><td>1536</td><td>0.8731</td><td>0.8737</td></tr>
232
+ </table>
233
+ <div class='note b'>winner = <b>concat-all/mean</b> top-1 0.8931 vs 当前默认 b13/s0.2/mean 0.8800(<b>+0.0131</b>)。→ 换抽取配置可免费涨点,建议切换。</div>
234
+ <h2>⑮ 更强生成先验探针 — 换更大的底模值不值得?</h2>
235
+ <p class=sub>用未适配 OCT 的现成权重抽冻结特征跑 kermany。看『先验大小』单变量。我们已 OCT 适配的基座 ~0.90 作上界参照。</p>
236
+ <table><tr><th class=l>现成先验(未适配)</th><th>top-1</th><th>macro-F1</th><th>状态</th></tr>
237
+ <tr><td class=l>SD3-medium</td><td>0.8181</td><td>0.8189</td><td>✓</td></tr>
238
+ <tr><td class=l>SD3.5-medium</td><td colspan=2 class=dim>403 Client Error. (Request ID: Root=1-6a270dd4-4238d03751a587024e776a18;4b351693</td><td>✗跳过</td></tr>
239
+ <tr><td class=l>FLUX.1-schnell</td><td>0.7806</td><td>0.7819</td><td>✓</td></tr>
240
+ </table><p class=sub>若 SD3.5/FLUX 未适配就明显高于 SD3-medium 未适配 → 更强先验有用,值得投入把它适配到 OCT;若打平 → 瓶颈在适配不在先验大小,不必换。</p>
241
+ <h2>⑯ VAE 眼科微调 — 打『薄层重建弱』短板</h2>
242
+ <p class=sub>冻结 SD3 VAE 编码器,只微调解码器,在 OCT 上做 L1+LPIPS 重建。看域内微调能否提升保真度(薄层锐度)。</p>
243
+ <table><tr><th class=l>VAE</th><th>PSNR↑</th><th>SSIM↑</th><th>LPIPS↓</th></tr>
244
+ <tr><td class=l>原始(自然图)</td><td>31.96</td><td>0.794</td><td>0.061</td></tr>
245
+ <tr class=ours><td class=l>OCT 微调解码器</td><td class=up>34.64</td><td>0.836</td><td class=up>0.045</td></tr>
246
+ </table>
247
+ <div class='note b'>OCT 重建 ΔPSNR +2.68。→ 域内 VAE 微调有效。</div>
248
+ <p class=sub>两个用途各微调一个解码器(编码器/latent 不变 → DiT 兼容):OCT 解码器用于生成/去噪,彩色分层图解码器用于 v3b 的解码空间监督。</p>
249
+ <table><tr><th class=l>分层图解码器</th><th>PSNR↑</th><th>SSIM↑</th><th>LPIPS↓</th></tr><tr><td class=l>原始</td><td>35.96</td><td>0.729</td><td>0.0035</td></tr><tr class=ours><td class=l>分层图微调</td><td class=up>41.97</td><td>0.992</td><td class=up>0.0009</td></tr></table>
250
+ <div class='note b'>分层图重建 ΔPSNR +6.01dB → 解码空间监督会锐很多,已接入 v3b2 重训(见下)。</div>
251
+ <table><tr><th class=l>OCT 去噪(原生)</th><th>PSNR↑</th><th>LPIPS↓</th></tr><tr><td class=l>原解码器</td><td>26.01</td><td>0.158</td></tr><tr class=ours><td class=l>OCT 微调解码器</td><td class=up>26.12</td><td class=up>0.147</td></tr></table>
252
+ <p class=sub>换上 OCT 微调解码器后去噪温和提升(推理即插即用,无需重训 DiT)。</p>
253
+ <h2>⑱ v3b2 — 锐化解码器 + 解码空间监督(打薄层)</h2>
254
+ <p class=sub>用上面的分层图微调解码器(seg-map 重建 +6dB)重训 v3b(从 v3a 暖启,隔离变量),看薄层是否真涨。对照 v3a。</p>
255
+ <table><tr><th class=l>方案 / 层</th><th>v3b2 mIoU</th><th>v3a 参照</th></tr>
256
+ <tr><td class=l>9</td><td class=up>0.5361</td><td class=dim>0.461</td></tr>
257
+ <tr><td class=l>5</td><td class=up>0.6255</td><td class=dim>—</td></tr>
258
+ <tr><td class=l>3</td><td class=up>0.6314</td><td class=dim>—</td></tr>
259
+ <tr><td class=l>thin_RPE</td><td class=up>0.4707</td><td class=dim>0.20-0.31</td></tr>
260
+ <tr><td class=l>thin_GCL</td><td class=up>0.5111</td><td class=dim>0.20-0.31</td></tr>
261
+ </table>
262
+ <p class=sub>三方对比(9层mIoU / RPE / GCL):v3a 0.461 / 0.20-0.31 / 0.20-0.31 → 旧v3b(解码空间loss,原解码器)0.520 / 0.456 / 0.503 → v3b2(+分层图锐化解码器)0.536 / 0.471 / 0.511。薄层的大跳跃来自解码空间loss本身(v3a→v3b);锐化解码器在其上再稳定加+1~2pt(几乎每层都涨:NFL 0.458→0.492、IPL 0.524→0.554、bg 0.871→0.887)=有效但增量的精炼。</p>
263
+ <h2>⑰ 生成多样性 / CFG 扫描 — 缓解 Recall 偏低</h2>
264
+ <p class=sub>固定基座,扫 guidance scale,看 FID(质量)与 Recall(多样性)的权衡,找甜点。</p>
265
+ <table><tr><th>guidance</th><th>FD-RETFound↓</th><th>Inception-FID↓</th><th>Precision↑</th><th>Recall↑(多样性)</th></tr>
266
+ <tr><td>1.5</td><td>130.7</td><td>60.2</td><td>0.201</td><td>0.132</td></tr>
267
+ <tr><td>3.0</td><td>132.9</td><td>61.7</td><td>0.208</td><td>0.066</td></tr>
268
+ <tr><td>5.0</td><td>133.3</td><td>63.9</td><td>0.278</td><td>0.052</td></tr>
269
+ <tr><td>7.0</td><td>141.5</td><td>69.0</td><td>0.359</td><td>0.038</td></tr>
270
+ </table><p class=sub>低 guidance 通常 Recall(多样性)更高但 FID 略升;据此为最终生成选 CFG。</p>
271
+ <div class=part>第四部分 · 总结与仍待补的临床门槛</div>
272
+ <div class='note b'><b>技术结论:</b>OCTFlow 在严格协议下处于眼科基础模型阵营顶端——疾病检出统计显著优于多数、与最强专才打平、跨设备最稳、标签效率最高,且唯一覆盖生成/去噪/分割。<b>生成式独占价值</b>(判别式 FM 做不到):合成数据增广 mixed>real、低记忆度(隐私合规)、零样本诊断。技术/benchmark 侧的严谨性(多模型 × 多任务 × 全指标 × 多 seed × 同口径)已基本到位。</div>
273
+ <div class='note w'><b>仍待补(决定论文天花板,需用户资源):</b>① <b>多中心 / 外部验证</b>(不同中心/设备的增量 hold-out)——没有它天花板约 npj Digital Medicine / MedIA / Nat Commun,补上才够 Nat Med 系;② <b>医生 reader study</b>(生成图/分割临床可用性)。两项已记入待办,会持续提醒。</div>
274
+ <div class='note'><b>已验证可落地的工程改动:</b>表征抽取改拼接式(mean+max,免费 +0.5pt;或 concat-all +1.3pt)· 生成 guidance 3.0→1.5(质量+多样性双赢)· VAE 域微调(OCT 解码器用于生成去噪、分层图解码器用于 v3b 解码空间监督)。<b>不建议</b>:换更大底模(FLUX/SD3.5 未适配反而更差,瓶颈在适配不在先验大小)。</div>
275
+ </div></body></html>
results/privacy_v3_summary.json ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "matrix": {
3
+ "pooled_real": {
4
+ "pooled": [
5
+ 0.9940642325634251,
6
+ 0.0009778862456143453
7
+ ],
8
+ "kermany": [
9
+ 0.9968398041648676,
10
+ 0.0005026052211476135
11
+ ],
12
+ "neh": [
13
+ 0.9640942509810405,
14
+ 0.004214314075712048
15
+ ],
16
+ "srin": [
17
+ 0.9995934141841616,
18
+ 0.0002610229765086888
19
+ ],
20
+ "_best_epoch": [
21
+ 13,
22
+ 9,
23
+ 9
24
+ ]
25
+ },
26
+ "pooled_synth": {
27
+ "pooled": [
28
+ 0.9469181197505004,
29
+ 0.00997929504004762
30
+ ],
31
+ "kermany": [
32
+ 0.9600237882732534,
33
+ 0.00929341714795941
34
+ ],
35
+ "neh": [
36
+ 0.8512505538997668,
37
+ 0.017064065688812517
38
+ ],
39
+ "srin": [
40
+ 0.9347174738633811,
41
+ 0.010903440157712647
42
+ ],
43
+ "_best_epoch": [
44
+ 0,
45
+ 0,
46
+ 0
47
+ ]
48
+ },
49
+ "single_kermany": {
50
+ "pooled": [
51
+ 0.9924919697079767,
52
+ 0.0004133839938224214
53
+ ],
54
+ "kermany": [
55
+ 0.9961292051192344,
56
+ 0.0002239257555700807
57
+ ],
58
+ "neh": [
59
+ 0.9266897319415902,
60
+ 0.0053282064221345645
61
+ ],
62
+ "srin": [
63
+ 0.9637570278139673,
64
+ 0.004369775443572045
65
+ ],
66
+ "_best_epoch": [
67
+ 14,
68
+ 18,
69
+ 6
70
+ ]
71
+ },
72
+ "single_neh_ut_2021": {
73
+ "pooled": [
74
+ 0.941808452325095,
75
+ 0.007960083821545184
76
+ ],
77
+ "kermany": [
78
+ 0.9470426985102124,
79
+ 0.007930622445004532
80
+ ],
81
+ "neh": [
82
+ 0.9385771152666433,
83
+ 0.018287350722872225
84
+ ],
85
+ "srin": [
86
+ 0.9330313814299579,
87
+ 0.011338296057419352
88
+ ],
89
+ "_best_epoch": [
90
+ 0,
91
+ 0,
92
+ 2
93
+ ]
94
+ },
95
+ "single_srinivasan_2014": {
96
+ "pooled": [
97
+ 0.9332693798456608,
98
+ 0.01418990530975932
99
+ ],
100
+ "kermany": [
101
+ 0.9403183886562915,
102
+ 0.015287777852155437
103
+ ],
104
+ "neh": [
105
+ 0.8372689362249334,
106
+ 0.02575438457274857
107
+ ],
108
+ "srin": [
109
+ 0.9998265816771155,
110
+ 0.00024525054418725095
111
+ ],
112
+ "_best_epoch": [
113
+ 5,
114
+ 6,
115
+ 11
116
+ ]
117
+ }
118
+ },
119
+ "key_comparisons": {
120
+ "neh": {
121
+ "pooled_real": 0.9640942509810405,
122
+ "pooled_synth": 0.8512505538997668,
123
+ "single": 0.9385771152666433,
124
+ "synth_minus_single": -0.08732656136687655,
125
+ "synth_minus_real": -0.11284369708127373
126
+ },
127
+ "srin": {
128
+ "pooled_real": 0.9995934141841616,
129
+ "pooled_synth": 0.9347174738633811,
130
+ "single": 0.9998265816771155,
131
+ "synth_minus_single": -0.06510910781373436,
132
+ "synth_minus_real": -0.06487594032078048
133
+ }
134
+ },
135
+ "sscd": {
136
+ "kermany": {
137
+ "mean": 0.7265010476112366,
138
+ "max": 0.8676784038543701,
139
+ "n_gen": 300,
140
+ "n_train": 8000
141
+ },
142
+ "neh_ut_2021": {
143
+ "mean": 0.6958641409873962,
144
+ "max": 0.8591353893280029,
145
+ "n_gen": 300,
146
+ "n_train": 8000
147
+ },
148
+ "srinivasan_2014": {
149
+ "mean": 0.7571740746498108,
150
+ "max": 0.9077655076980591,
151
+ "n_gen": 300,
152
+ "n_train": 3231
153
+ }
154
+ }
155
+ }
results/rigor_ms_summary.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "synth_scaling": {
3
+ "real_250": {
4
+ "mean": 0.9241666793823242,
5
+ "std": 0.004249178875657364
6
+ },
7
+ "real_500": {
8
+ "mean": 0.9337499936421713,
9
+ "std": 0.0005102977098561655
10
+ },
11
+ "real_1000": {
12
+ "mean": 0.9452083309491476,
13
+ "std": 0.0024116415445052538
14
+ },
15
+ "real_2000": {
16
+ "mean": 0.950208326180776,
17
+ "std": 0.0017921436140938619
18
+ },
19
+ "synth_250": {
20
+ "mean": 0.740625003973643,
21
+ "std": 0.019391785549262006
22
+ },
23
+ "synth_500": {
24
+ "mean": 0.777916669845581,
25
+ "std": 0.004823265925453981
26
+ },
27
+ "synth_1000": {
28
+ "mean": 0.8047916690508524,
29
+ "std": 0.02066809852989142
30
+ },
31
+ "synth_2000": {
32
+ "mean": 0.8204166690508524,
33
+ "std": 0.007258853240526642
34
+ },
35
+ "mixed_250": {
36
+ "mean": 0.9318749904632568,
37
+ "std": 0.008164958022559074
38
+ },
39
+ "mixed_500": {
40
+ "mean": 0.9441666801770529,
41
+ "std": 0.0030760011978938043
42
+ },
43
+ "mixed_1000": {
44
+ "mean": 0.9566666682561239,
45
+ "std": 0.0010622927706970175
46
+ },
47
+ "mixed_2000": {
48
+ "mean": 0.9550000031789144,
49
+ "std": 0.0005102977098561655
50
+ }
51
+ },
52
+ "gen_fid": {
53
+ "fd_retfound_mean": 133.966754056985,
54
+ "fd_retfound_std": 1.3879914673870124,
55
+ "fid_inception_mean": 61.179663939054905,
56
+ "fid_inception_std": 0.3540127125001281
57
+ }
58
+ }
results/seg_boundary_summary.json ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "overall": {
3
+ "miou": [
4
+ 0.539059199893439,
5
+ 0.0122381985847725
6
+ ],
7
+ "mean_hd95": [
8
+ 32.80832044693096,
9
+ 2.40311596031963
10
+ ],
11
+ "mean_assd": [
12
+ 12.622234333521414,
13
+ 1.7648827949562997
14
+ ]
15
+ },
16
+ "per_class": {
17
+ "NFL": {
18
+ "iou": [
19
+ 0.5001007453516401,
20
+ 0.02786920227163474
21
+ ],
22
+ "hd95": 26.809808159607226,
23
+ "assd": 10.271324545419425
24
+ },
25
+ "GCL": {
26
+ "iou": [
27
+ 0.4857506705253891,
28
+ 0.019063821852811094
29
+ ],
30
+ "hd95": 30.74972104245003,
31
+ "assd": 15.30492447759257
32
+ },
33
+ "IPL": {
34
+ "iou": [
35
+ 0.5199528574021834,
36
+ 0.008505872745597087
37
+ ],
38
+ "hd95": 32.676623373731616,
39
+ "assd": 15.017887104029938
40
+ },
41
+ "INL": {
42
+ "iou": [
43
+ 0.46574837478834413,
44
+ 0.018306268549606812
45
+ ],
46
+ "hd95": 32.271146536178684,
47
+ "assd": 11.283939248818745
48
+ },
49
+ "OPL/ONL": {
50
+ "iou": [
51
+ 0.666372677838302,
52
+ 0.029318737953420906
53
+ ],
54
+ "hd95": 19.746570125992395,
55
+ "assd": 7.445719229116048
56
+ },
57
+ "IS": {
58
+ "iou": [
59
+ 0.5084597332162772,
60
+ 0.006379272448726968
61
+ ],
62
+ "hd95": 29.505559714174698,
63
+ "assd": 11.465808935035065
64
+ },
65
+ "EZ/OS": {
66
+ "iou": [
67
+ 0.5569774912341479,
68
+ 0.013128964893477526
69
+ ],
70
+ "hd95": 25.120604876023013,
71
+ "assd": 11.23996373684029
72
+ },
73
+ "RPE": {
74
+ "iou": [
75
+ 0.48461360532474745,
76
+ 0.010622433314359988
77
+ ],
78
+ "hd95": 34.28593895552709,
79
+ "assd": 12.470469934678627
80
+ },
81
+ "choroid": {
82
+ "iou": [
83
+ 0.6635566433599193,
84
+ 0.002616907799457285
85
+ ],
86
+ "hd95": 64.10891123869392,
87
+ "assd": 19.10007179016203
88
+ }
89
+ },
90
+ "n_seeds": 3
91
+ }
results/spec_novel_2.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "condition": "novel_2",
3
+ "kind": "novel_count",
4
+ "note": "2 层 retina/choroid (没训过)",
5
+ "K": 2,
6
+ "n": 80,
7
+ "seed": 0,
8
+ "miou": 0.5051184789887164,
9
+ "per_class": {
10
+ "retina": 0.3612325289476875,
11
+ "choroid": 0.6490044290297454
12
+ },
13
+ "prompt": "Segment this OCT B-scan into 2 retinal layers as a colored visualization. Color mapping: retina=green, choroid=brown; background=black."
14
+ }
results/spec_novel_4.json ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "condition": "novel_4",
3
+ "kind": "novel_count",
4
+ "note": "4 层 (没训过)",
5
+ "K": 4,
6
+ "n": 80,
7
+ "seed": 0,
8
+ "miou": 0.43834285425370806,
9
+ "per_class": {
10
+ "inner retina": 0.2417493041660625,
11
+ "mid retina": 0.30165788944918287,
12
+ "photoreceptor": 0.5720959972570743,
13
+ "RPE-choroid": 0.6378682261425126
14
+ },
15
+ "prompt": "Segment this OCT B-scan into 4 retinal layers as a colored visualization. Color mapping: inner retina=red, mid retina=orange, photoreceptor=yellow, RPE-choroid=green; background=black."
16
+ }
results/spec_novel_6.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "condition": "novel_6",
3
+ "kind": "novel_count",
4
+ "note": "6 层 (没训过)",
5
+ "K": 6,
6
+ "n": 80,
7
+ "seed": 0,
8
+ "miou": 0.5538782710163591,
9
+ "per_class": {
10
+ "NFL": 0.603499748438424,
11
+ "GCL-IPL": 0.6228005092566957,
12
+ "INL-OPL": 0.6833495726365134,
13
+ "IS": 0.46293558686227704,
14
+ "EZ/OS": 0.3821152991592822,
15
+ "RPE-choroid": 0.5685689097449622
16
+ },
17
+ "prompt": "Segment this OCT B-scan into 6 retinal layers as a colored visualization. Color mapping: NFL=red, GCL-IPL=orange, INL-OPL=yellow, IS=green, EZ/OS=cyan, RPE-choroid=blue; background=black."
18
+ }
results/spec_novel_7.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "condition": "novel_7",
3
+ "kind": "novel_count",
4
+ "note": "7 层 (没训过的层数)",
5
+ "K": 7,
6
+ "n": 80,
7
+ "seed": 0,
8
+ "miou": 0.4919305965825104,
9
+ "per_class": {
10
+ "NFL": 0.48415722142015083,
11
+ "GCL-IPL": 0.4840258490843,
12
+ "INL": 0.2511451770971627,
13
+ "OPL/ONL": 0.582832389311089,
14
+ "IS": 0.5220311138335348,
15
+ "EZ/OS": 0.4161953672505959,
16
+ "RPE-choroid": 0.7031270580807397
17
+ },
18
+ "prompt": "Segment this OCT B-scan into 7 retinal layers as a colored visualization. Color mapping: NFL=red, GCL-IPL=orange, INL=yellow, OPL/ONL=green, IS=cyan, EZ/OS=blue, RPE-choroid=purple; background=black."
19
+ }
results/spec_select_RPE.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "condition": "select_RPE",
3
+ "kind": "selection",
4
+ "note": "只选 RPE",
5
+ "K": 1,
6
+ "n": 80,
7
+ "seed": 0,
8
+ "miou": 0.41852669872379317,
9
+ "per_class": {
10
+ "RPE": 0.41852669872379317
11
+ },
12
+ "prompt": "Segment only the RPE in this OCT B-scan; color them RPE=pink; everything else black."
13
+ }
results/spec_select_choroid.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "condition": "select_choroid",
3
+ "kind": "selection",
4
+ "note": "只选 choroid",
5
+ "K": 1,
6
+ "n": 80,
7
+ "seed": 0,
8
+ "miou": 0.7242341001580307,
9
+ "per_class": {
10
+ "choroid": 0.7242341001580307
11
+ },
12
+ "prompt": "Segment only the choroid in this OCT B-scan; color them choroid=brown; everything else black."
13
+ }
results/spec_trained_3.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "condition": "trained_3",
3
+ "kind": "trained",
4
+ "note": "3 层 (训练过)",
5
+ "K": 3,
6
+ "n": 80,
7
+ "seed": 0,
8
+ "miou": 0.5676611035267873,
9
+ "per_class": {
10
+ "inner retina": 0.5124880347013073,
11
+ "outer retina": 0.47571638597895644,
12
+ "RPE-choroid": 0.7147788899000982
13
+ },
14
+ "prompt": "Segment this OCT B-scan into 3 retinal layers as a colored visualization. Color mapping: inner retina=red, outer retina=orange, RPE-choroid=yellow; background=black."
15
+ }
results/spec_trained_5.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "condition": "trained_5",
3
+ "kind": "trained",
4
+ "note": "5 层 (训练过)",
5
+ "K": 5,
6
+ "n": 80,
7
+ "seed": 0,
8
+ "miou": 0.5694871085560197,
9
+ "per_class": {
10
+ "RNFL": 0.5471917050647714,
11
+ "GCL-IPL": 0.574363877355787,
12
+ "INL-OPL": 0.716465741910243,
13
+ "photoreceptor": 0.5568350860000484,
14
+ "RPE": 0.452579132449249
15
+ },
16
+ "prompt": "Segment this OCT B-scan into 5 retinal layers as a colored visualization. Color mapping: RNFL=red, GCL-IPL=orange, INL-OPL=yellow, photoreceptor=green, RPE=cyan; background=black."
17
+ }
results/spec_trained_9.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "condition": "trained_9",
3
+ "kind": "trained",
4
+ "note": "9 层 (训练过·标准配色)",
5
+ "K": 9,
6
+ "n": 80,
7
+ "seed": 0,
8
+ "miou": 0.5491934098758761,
9
+ "per_class": {
10
+ "NFL": 0.5004956336356615,
11
+ "GCL": 0.4820181340423965,
12
+ "IPL": 0.53686103914424,
13
+ "INL": 0.4709079601923307,
14
+ "OPL/ONL": 0.6971792776511694,
15
+ "IS": 0.550607469225885,
16
+ "EZ/OS": 0.5477674876267176,
17
+ "RPE": 0.4749261353292513,
18
+ "choroid": 0.6819775520352327
19
+ },
20
+ "prompt": "Segment this OCT B-scan into 9 retinal layers as a colored visualization. Color mapping: NFL=red, GCL=orange, IPL=yellow, INL=green, OPL/ONL=cyan, IS=blue, EZ/OS=purple, RPE=pink, choroid=brown; background=black."
21
+ }
weights/sd3_multimodal_base_v2_step240000.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ebe04fdf8c707b0bb53984b0985251868960b23d07d11588c48c33d5497cfd5b
3
+ size 8340380317
weights/sd3_oct_stageA_v3_step20000.pt CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:794136b2ccfe297adf566969366ddaab9c6fe0f9e7eb50aecc1c018dd34dc440
3
- size 8340371276
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5092dd324e1fc3c3ba4ed801a26404a69ba67a77aea632a49413aeca5a689907
3
+ size 8340371893
weights/sd3_vb_stageC_v3b2_step15000.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:df18889f0138e47983d40919b19caf0544bc8eb22937d2588255c262f5b48563
3
+ size 8340765905