RF Diffusion¶
Runs RFdiffusion to generate or redesign protein structures. Supports unconditional generation (by length), conditional generation using an input PDB and contigs, and scaffold-guided/fold-conditioned design via optional configuration nodes. Can optionally output trajectory PDBs from the diffusion process and supports deterministic runs via a base seed.

Usage¶
Use this node to create new protein backbones or redesign regions around fixed motifs. Typical workflows: (1) Unconditional generation by providing only a length range in contigs; (2) Conditional generation by providing an input PDB and contigs describing fixed and flexible regions; (3) Scaffold-guided or fold-conditioned design by connecting a Scaffold Guided Config. Optionally plug in Symmetry, Contigmap, Denoiser, and Potentials configs to control sampling behavior. Choose PROD for normal execution, TEST for fast dry-runs, or MOCK to return predefined results.
Inputs¶
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
| checkpoint | True | CHOICE | Which pretrained checkpoint to use. Auto automatically selects a compatible checkpoint based on inputs; others force a specific checkpoint. | Auto |
| write_trajectory | True | BOOLEAN | Whether to include diffusion trajectory PDBs (Xt-1 and pX0) in the outputs. | True |
| model_runner | True | CHOICE | Sampler to use during generation. | SelfConditioning |
| align_motif | True | BOOLEAN | If true, aligns the model's predicted motif to the provided motif in conditional modes. | True |
| final_step | True | INT | Reverse diffusion step to stop at (1-50). Larger values reduce compute but may affect quality. | 1 |
| contigs | True | STRING | Sequence layout specification. Unconditional: only length range (e.g., 100-100). Conditional: combine fixed regions (A10-25), flexible gaps (5-15), and chain breaks (/0). For partial diffusion (partial_T != 50), must match the exact residue order/count of input PDB. | 5-15/A10-25/30-40/0 B1-100 |
| hotspot_res | True | STRING | Residue positions on the TARGET protein to optimize interactions against (used in PPI/binder design). Leave empty unless a target is provided via Scaffold Guided Config. | |
| partial_T | True | INT | Set to 50 to disable partial diffusion. Values 0-49 start denoising from a partially noised structure. Requires input_pdb when enabled. | 50 |
| seed | True | INT | Base seed for deterministic generation. Derived seeds are used for each design internally. | 42 |
| mode | True | CHOICE | MOCK returns predefined data, PROD executes the service, TEST runs a faster minimal-parameter version (disables trajectory and cautious mode, sets final_step to 49). | PROD |
| timeout | True | INT | Timeout in seconds for the run. | 600 |
| input_pdb | False | PDB | Optional initial PDB for conditional design or partial diffusion. Required for partial diffusion (partial_T != 50). | {'pdb_name': 'input_structure.pdb', 'pdb_content': ' |
| symmetry_config | False | RFDIFFUSION_SYMMETRY_CONFIG | Additional symmetry settings. Connect from 'RF Diffusion Symmetry Config'. | {'symmetry': 'c2', 'recenter': True} |
| contigmap_config | False | RFDIFFUSION_CONTIGMAP_CONFIG | Sequence/structure masking and length settings. Connect from 'RF Diffusion Contigmap Config'. | {'inpaint_seq': 'A10-20', 'length': '100-150'} |
| denoiser_config | False | RFDIFFUSION_DENOISER_CONFIG | Noise schedule customization. Connect from 'RF Diffusion Denoiser Config'. | {'noise_scale_ca': 1.0, 'final_noise_scale_ca': 1.0} |
| potentials_config | False | RFDIFFUSION_POTENTIALS_CONFIG | Guiding potentials to steer generation. Connect from 'RF Diffusion Potentials Config'. | {'guiding_potentials': ['type:monomer_ROG,weight:1,min_dist:15'], 'guide_scale': 10} |
| scaffoldguided_config | False | RFDIFFUSION_SCAFFOLDGUIDED_CONFIG | Enable scaffold-guided/fold-conditioned design and optional target PPI context. Connect from 'RF Diffusion Scaffold Guided Config'. | {'scaffoldguided': True, 'target_pdb': True} |
Outputs¶
| Field | Type | Description | Example |
|---|---|---|---|
| generation.pdb | PDB | Final generated or redesigned protein structure. | {'pdb_name': 'generation_0.pdb', 'pdb_content': ' |
| trajectory_Xt-1.pdb | PDB | Trajectory snapshot at Xt-1 (if write_trajectory is true; disabled in TEST mode). | {'pdb_name': 'trajectory_Xt-1_0.pdb', 'pdb_content': ' |
| trajectory_pX0.pdb | PDB | Trajectory snapshot at pX0 (if write_trajectory is true; disabled in TEST mode). | {'pdb_name': 'trajectory_pX0_0.pdb', 'pdb_content': ' |
Important Notes¶
- Contigs format rules are strict. Unconditional generation must provide only a length range (e.g., 100-100). Conditional generation must include at least one fixed region with chain letters (e.g., A10-25), unless scaffold-guided design is enabled.
- Partial diffusion: set partial_T to 50 to disable. Any value 0-49 requires input_pdb and, for non-scaffold-guided runs, contigs must match the exact residue count/order of the input PDB.
- Unconditional generation forbids hotspot_res and any contigmap_config fields other than length.
- Hotspot residues require a target protein. If hotspot_res is provided, a target must be configured via Scaffold Guided Config (target_pdb).
- TEST mode automatically sets final_step to 49, disables trajectory outputs, and turns off cautious mode for speed.
- Seeds are used deterministically; per-output seeds are derived from the base seed.
- If write_trajectory is false (or in TEST mode), trajectory outputs may be empty or not populated.
Troubleshooting¶
- Error: 'Non empty contigs must be passed' or similar. Fix: For non-scaffold-guided runs, ensure contigs is provided and valid. In scaffold-guided mode, contigs may be omitted.
- Error: 'For partial diffusion sampling, expected input_pdb to be provided.' Fix: Supply input_pdb when partial_T is not 50, or set partial_T to 50 to disable partial diffusion.
- Error: 'For unconditional sampling, expected contigs to specify only length range' Fix: Use a format like 100-100 with no chain letters for unconditional mode.
- Error: 'For conditional sampling, expected contigs to specify least one fixed region' Fix: Include at least one region with a chain letter and residue range (e.g., A10-25) when not using scaffold-guided mode.
- Error: 'For unconditional sampling, expected hotspot_res to be empty' Fix: Clear hotspot_res when running unconditional generation.
- Error: 'Expected k to be empty' from contigmap settings. Fix: In unconditional mode, only length may be set in contigmap_config; clear other fields.
- Error about hotspot_res without target. Fix: Add a target protein via Scaffold Guided Config (target_pdb) or remove hotspot_res.
- No trajectory outputs returned. Fix: Ensure write_trajectory is true and not running in TEST mode; also confirm timeout is sufficient for full run.
- Timeouts. Fix: Increase timeout, reduce final_step, disable trajectory, or use TEST mode to validate configuration quickly.