Remembering one key is cumbersome, never mind two. A cryptographic key should consist of about 128 bits to be considered secure. Remembering a password or passphrase is hard enough. A password is not a secret / symmetric key as it doesn't consist of randomized bits.
There are basically two types of KDF. One is a KDF that uses a password as principal input material called a PBKDF: a password based key derivation function. The second is one that takes a key as principal input, called a KBKDF: a key based key derivation function.
Both a PBKDF and a KBKDF may take a salt, but a salt is much more important for a PBKDF. This is because otherwise the output of two identical passwords may be easily identified. Furthermore, without the salt, rainbow tables can be used to try and find the password. The strength of a key will also be weakened, especially if it is used many times, but the initial strength of a key is much higher than that of a regular password so the weakening will be less pronounced or not applicable for larger key sizes of 192 bits or higher.
A KBKDF may also take a salt, but it is mainly used to ease the proof for the KBKDF. If the input key does indeed contain enough entropy then the KDF should be secure without it. HKDF may take a salt as input and the HKDF standard contains a part on how the salt helps secure the output of HKDF-extract in chapter 3.1.
To derive two keys from a password the use of both a PBKDF and a KDF is the least brittle (by which I mean: the least likely to break if something is wrong with the PBKDF or KBKDF).
You'd get:
$$K_m = \text{PBKDF}(\mathit{work}, \mathit{salt}, \mathit{passphrase})$$
$$K_1 = \text{KBKDF}(K_m, \mathit{label}_1)$$
$$K_2 = \text{KBKDF}(K_m, \mathit{label}_2)$$
$$\ldots$$
that way you only require one salt, you perform key strengthening on the password and the keys $K_1$ and $K_2$ are independent. The password may be of any practical size. Of course it must still be relatively strong otherwise it may be brute forced or found using an (enhanced) dictionary attack.
If you want to use two modern implementations you can use one of the Argon2 variants as PBKDF and HKDF or HKDF-expand as KBKDF.
Note that the $\mathit{work}$ parameter may be include elements for the CPU work to be performed, the parallelism and possibly the memory hardness of the function. The $\mathit{label}$ is often part of a structure called $\mathit{OtherInfo}$ or just $\mathit{info}$ which may also contain other data that identifies or sets apart the output keys. Every standard may use slightly different parameter names and notation.
In principle, if you can actually remember a key then you can just use the KBKDF's, but that's highly cumbersome:
17a2ae1904debd903e090d5c7fb0a0e3
is a random key of 128 bits displayed as 32 hexadecimals.